From 027e0f27a5d3e6c93982e7397c1b08ec527fbcee Mon Sep 17 00:00:00 2001
From: Koosha Paridehpour
Date: Sun, 22 Feb 2026 04:09:08 -0700
Subject: [PATCH 001/412] wip: snapshot local CLIProxyAPIPlus working state
---
.../policies/approved-external-endpoints.txt | 42 +
.github/release-required-checks.txt | 13 +
.github/required-checks.txt | 14 +
.../check-approved-external-endpoints.sh | 67 +
.../check-distributed-critical-paths.sh | 19 +
.github/scripts/check-docs-secret-samples.sh | 53 +
.../check-workflow-token-permissions.sh | 31 +
.github/scripts/release-lint.sh | 106 +
.github/workflows/ci-rerun-flaky.yml | 91 +
.github/workflows/codeql.yml | 39 +
.github/workflows/pr-test-build.yml | 255 +-
.../workflows/required-check-names-guard.yml | 51 +
README.md | 16 +
Taskfile.yml | 314 +
cmd/boardsync/main.go | 758 +
cmd/server/main.go | 14 +-
docs/.vitepress/config.ts | 4 +-
docs/README.md | 7 +
docs/docsets/developer/external/index.md | 4 +
docs/docsets/index.md | 2 +
docs/index.md | 2 +
.../auth-refresh-failure-symptom-fix.md | 37 +
docs/operations/checks-owner-responder-map.md | 28 +
.../critical-endpoints-curl-pack.md | 64 +
.../distributed-fs-compute-status.md | 185 +
docs/operations/index.md | 20 +
.../provider-outage-triage-quick-guide.md | 41 +
docs/operations/release-governance.md | 55 +
.../required-branch-check-ownership.md | 42 +
...CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.csv | 1001 +
...LIPROXYAPI_1000_ITEM_BOARD_2026-02-22.json | 1 +
.../CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md | 9030 +++++
...I_2000_ITEM_EXECUTION_BOARD_2026-02-22.csv | 2001 +
..._2000_ITEM_EXECUTION_BOARD_2026-02-22.json | 30048 ++++++++++++++++
...PI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md | 2304 ++
...ECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv | 2001 +
docs/planning/README.md | 37 +
...liproxy-integration-research-2026-02-22.md | 290 +
docs/planning/board-workflow.md | 118 +
...-plus-relative-300-inventory-2026-02-22.md | 377 +
docs/planning/coverage-gaps.md | 57 +
docs/planning/index.md | 28 +
go.mod | 5 +-
.../api/handlers/management/auth_files.go | 2 +-
.../management/management_auth_test.go | 8 +-
.../management/management_basic_test.go | 2 +-
.../management/management_extra_test.go | 58 +-
.../error-message-2026-02-22T034105-2.log | 20 +
.../error-message-2026-02-22T034201-2.log | 20 +
.../error-message-2026-02-22T034410-2.log | 20 +
.../error-message-2026-02-22T034420-2.log | 20 +
.../error-message-2026-02-22T034441-2.log | 20 +
.../error-message-2026-02-22T034449-2.log | 20 +
.../error-message-2026-02-22T034601-2.log | 20 +
.../error-message-2026-02-22T034620-2.log | 20 +
.../error-message-2026-02-22T034819-2.log | 20 +
.../error-message-2026-02-22T034828-2.log | 20 +
.../error-message-2026-02-22T034836-2.log | 20 +
.../error-message-2026-02-22T034842-2.log | 20 +
.../error-message-2026-02-22T040354-2.log | 20 +
...1-responses-2026-02-22T032407-ac51cabf.log | 23 +
...1-responses-2026-02-22T032419-1fc912fd.log | 23 +
...1-responses-2026-02-22T032424-c4bbf7c9.log | 23 +
...1-responses-2026-02-22T032429-b90ef18f.log | 23 +
...1-responses-2026-02-22T032458-5144a367.log | 23 +
...1-responses-2026-02-22T032641-a9b33209.log | 23 +
...1-responses-2026-02-22T033052-686ea916.log | 23 +
...1-responses-2026-02-22T033454-ce8d3f3f.log | 23 +
...1-responses-2026-02-22T033544-829bfa04.log | 23 +
...1-responses-2026-02-22T033558-39a9ff38.log | 23 +
...1-responses-2026-02-22T034105-ebd60e8f.log | 23 +
...1-responses-2026-02-22T034201-a5c5f542.log | 23 +
...1-responses-2026-02-22T034620-dc425291.log | 23 +
...1-responses-2026-02-22T040354-814cee52.log | 23 +
.../api/middleware/response_writer_test.go | 16 +-
pkg/llmproxy/api/responses_websocket_test.go | 2 +-
pkg/llmproxy/api/server.go | 408 +-
pkg/llmproxy/api/server_test.go | 798 +-
pkg/llmproxy/auth/codex/filename_test.go | 10 +-
pkg/llmproxy/auth/codex/oauth_server_test.go | 14 +-
pkg/llmproxy/auth/codex/openai_auth_test.go | 8 +-
pkg/llmproxy/auth/codex/token_test.go | 4 +-
pkg/llmproxy/auth/copilot/copilot_auth.go | 10 +-
.../auth/copilot/copilot_extra_test.go | 22 +-
pkg/llmproxy/auth/copilot/token_test.go | 2 +-
pkg/llmproxy/auth/diff/config_diff_test.go | 14 +-
pkg/llmproxy/auth/gemini/gemini_auth_test.go | 26 +-
pkg/llmproxy/auth/kilo/kilo_auth.go | 8 +-
pkg/llmproxy/auth/kiro/aws_auth.go | 10 +-
pkg/llmproxy/auth/kiro/aws_extra_test.go | 10 +-
.../auth/kiro/codewhisperer_client.go | 24 +-
pkg/llmproxy/auth/kiro/cooldown.go | 4 +-
pkg/llmproxy/auth/kiro/fingerprint.go | 6 +-
pkg/llmproxy/auth/kiro/jitter.go | 6 +-
pkg/llmproxy/auth/kiro/jitter_test.go | 2 +-
pkg/llmproxy/auth/kiro/metrics.go | 8 +-
pkg/llmproxy/auth/kiro/oauth_web.go | 82 +-
pkg/llmproxy/auth/kiro/protocol_handler.go | 4 +-
pkg/llmproxy/auth/kiro/social_extra_test.go | 14 +-
pkg/llmproxy/auth/kiro/sso_oidc.go | 24 +-
pkg/llmproxy/auth/kiro/token_extra_test.go | 4 +-
pkg/llmproxy/auth/synthesizer/config.go | 4 +-
pkg/llmproxy/auth/synthesizer/config_test.go | 22 +-
pkg/llmproxy/auth/synthesizer/helpers.go | 2 +-
pkg/llmproxy/auth/synthesizer/helpers_test.go | 2 +-
.../auth/vertex/vertex_credentials_test.go | 12 +-
pkg/llmproxy/browser/browser.go | 2 +-
pkg/llmproxy/cmd/kilo_login.go | 33 +-
pkg/llmproxy/cmd/native_cli.go | 8 +-
pkg/llmproxy/config/config.go | 2 +-
pkg/llmproxy/cursorstorage/cursor_storage.go | 2 +-
.../executor/codex_websockets_executor.go | 66 +-
...x_websockets_executor_backpressure_test.go | 39 +
.../executor/github_copilot_executor.go | 3 -
pkg/llmproxy/executor/kilo_executor.go | 8 +-
pkg/llmproxy/executor/kiro_executor.go | 152 +-
pkg/llmproxy/executor/token_helpers_test.go | 4 +-
.../executor/codex_websockets_executor.go | 66 +-
...x_websockets_executor_backpressure_test.go | 39 +
.../executor/github_copilot_executor.go | 370 -
.../runtime/executor/kilo_executor.go | 8 +-
.../runtime/executor/kiro_executor.go | 3276 --
.../runtime/executor/token_helpers_test.go | 4 +-
pkg/llmproxy/store/atomic_write.go | 43 +
pkg/llmproxy/store/atomic_write_test.go | 57 +
pkg/llmproxy/store/git_helpers_test.go | 128 +
pkg/llmproxy/store/gitstore.go | 27 +
pkg/llmproxy/store/gitstore_bootstrap_test.go | 94 +
pkg/llmproxy/store/gitstore_push_test.go | 42 +
pkg/llmproxy/store/objectstore_prune_test.go | 129 +
pkg/llmproxy/store/postgresstore.go | 6 +-
pkg/llmproxy/store/postgresstore_test.go | 109 +
.../gemini/antigravity_gemini_request_test.go | 14 +-
.../claude_openai_response_test.go | 8 +-
.../claude_openai-responses_response_test.go | 10 +-
.../codex/claude/codex_claude_request.go | 14 +
.../claude/codex_claude_response_test.go | 6 +-
.../gemini/codex_gemini_response_test.go | 6 +-
.../codex_openai_request_test.go | 8 +-
.../codex_openai_response_test.go | 10 +-
.../codex_openai-responses_request_test.go | 16 +-
.../kiro/claude/kiro_claude_request_test.go | 10 +-
.../kiro/claude/kiro_claude_response_test.go | 30 +-
.../kiro/claude/kiro_claude_stream_parser.go | 12 -
.../translator/kiro/claude/kiro_websearch.go | 1 -
.../kiro/claude/kiro_websearch_test.go | 4 +-
.../kiro/claude/tool_compression_test.go | 16 +-
.../kiro/claude/truncation_detector_test.go | 2 +-
pkg/llmproxy/translator/kiro/common/utils.go | 2 +-
pkg/llmproxy/translator/kiro/openai/init.go | 2 +-
.../kiro/openai/kiro_openai_response.go | 2 +-
.../kiro/openai/kiro_openai_stream.go | 2 +-
.../claude/openai_claude_request_test.go | 2 +-
.../claude/openai_claude_response_test.go | 26 +-
.../gemini-cli/openai_gemini_request_test.go | 2 +-
.../openai_openai-responses_request_test.go | 16 +-
.../openai_openai-responses_response.go | 35 +-
.../openai_openai-responses_response_test.go | 24 +-
pkg/llmproxy/tui/client.go | 2 +-
pkg/llmproxy/tui/dashboard.go | 32 -
pkg/llmproxy/tui/helpers.go | 97 +
pkg/llmproxy/tui/styles.go | 27 -
pkg/llmproxy/usage/metrics.go | 32 +-
pkg/llmproxy/usage/metrics_test.go | 74 +-
pkg/llmproxy/usage/shm_sync.go | 14 +-
pkg/llmproxy/util/util_test.go | 2 +-
pkg/llmproxy/watcher/clients.go | 2 +-
pkg/llmproxy/watcher/config_reload.go | 2 +-
pkg/llmproxy/watcher/diff/config_diff_test.go | 14 +-
pkg/llmproxy/watcher/dispatcher.go | 2 +-
pkg/llmproxy/watcher/synthesizer/config.go | 4 +-
.../watcher/synthesizer/config_test.go | 48 +-
pkg/llmproxy/watcher/synthesizer/helpers.go | 2 +-
.../watcher/synthesizer/helpers_test.go | 2 +-
pkg/llmproxy/watcher/watcher_test.go | 2 +-
sdk/access/manager_test.go | 16 +-
sdk/api/handlers/handlers.go | 2 +-
sdk/api/handlers/handlers_metadata_test.go | 89 +
.../handlers_stream_bootstrap_test.go | 6 +
sdk/api/handlers/openai/openai_handlers.go | 8 +-
.../openai/openai_responses_compact_test.go | 3 +
.../openai/openai_responses_handlers.go | 8 +-
.../openai/openai_responses_websocket.go | 13 +-
sdk/auth/kilo.go | 8 +-
sdk/cliproxy/auth/conductor.go | 88 +-
sdk/cliproxy/service.go | 15 +-
sdk/config/config_test.go | 2 +-
test/amp_management_test.go | 2 +-
188 files changed, 53079 insertions(+), 4442 deletions(-)
create mode 100644 .github/policies/approved-external-endpoints.txt
create mode 100644 .github/release-required-checks.txt
create mode 100644 .github/required-checks.txt
create mode 100755 .github/scripts/check-approved-external-endpoints.sh
create mode 100755 .github/scripts/check-distributed-critical-paths.sh
create mode 100755 .github/scripts/check-docs-secret-samples.sh
create mode 100755 .github/scripts/check-workflow-token-permissions.sh
create mode 100755 .github/scripts/release-lint.sh
create mode 100644 .github/workflows/ci-rerun-flaky.yml
create mode 100644 .github/workflows/codeql.yml
create mode 100644 .github/workflows/required-check-names-guard.yml
create mode 100644 cmd/boardsync/main.go
create mode 100644 docs/operations/auth-refresh-failure-symptom-fix.md
create mode 100644 docs/operations/checks-owner-responder-map.md
create mode 100644 docs/operations/critical-endpoints-curl-pack.md
create mode 100644 docs/operations/distributed-fs-compute-status.md
create mode 100644 docs/operations/index.md
create mode 100644 docs/operations/provider-outage-triage-quick-guide.md
create mode 100644 docs/operations/release-governance.md
create mode 100644 docs/operations/required-branch-check-ownership.md
create mode 100644 docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.csv
create mode 100644 docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.json
create mode 100644 docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md
create mode 100644 docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.csv
create mode 100644 docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.json
create mode 100644 docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md
create mode 100644 docs/planning/GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv
create mode 100644 docs/planning/README.md
create mode 100644 docs/planning/agentapi-cliproxy-integration-research-2026-02-22.md
create mode 100644 docs/planning/board-workflow.md
create mode 100644 docs/planning/coder-org-plus-relative-300-inventory-2026-02-22.md
create mode 100644 docs/planning/coverage-gaps.md
create mode 100644 docs/planning/index.md
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034105-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034201-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034410-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034420-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034441-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034449-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034601-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034620-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034819-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034828-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034836-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T034842-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T040354-2.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032407-ac51cabf.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032419-1fc912fd.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032424-c4bbf7c9.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032429-b90ef18f.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032458-5144a367.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032641-a9b33209.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033052-686ea916.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033454-ce8d3f3f.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033544-829bfa04.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033558-39a9ff38.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034105-ebd60e8f.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034201-a5c5f542.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034620-dc425291.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T040354-814cee52.log
create mode 100644 pkg/llmproxy/executor/codex_websockets_executor_backpressure_test.go
create mode 100644 pkg/llmproxy/runtime/executor/codex_websockets_executor_backpressure_test.go
create mode 100644 pkg/llmproxy/store/atomic_write.go
create mode 100644 pkg/llmproxy/store/atomic_write_test.go
create mode 100644 pkg/llmproxy/store/git_helpers_test.go
create mode 100644 pkg/llmproxy/store/gitstore_bootstrap_test.go
create mode 100644 pkg/llmproxy/store/gitstore_push_test.go
create mode 100644 pkg/llmproxy/store/objectstore_prune_test.go
create mode 100644 pkg/llmproxy/store/postgresstore_test.go
create mode 100644 pkg/llmproxy/tui/helpers.go
create mode 100644 sdk/api/handlers/handlers_metadata_test.go
diff --git a/.github/policies/approved-external-endpoints.txt b/.github/policies/approved-external-endpoints.txt
new file mode 100644
index 0000000000..4b6588b8d2
--- /dev/null
+++ b/.github/policies/approved-external-endpoints.txt
@@ -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
diff --git a/.github/release-required-checks.txt b/.github/release-required-checks.txt
new file mode 100644
index 0000000000..51d61ffa2a
--- /dev/null
+++ b/.github/release-required-checks.txt
@@ -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
diff --git a/.github/required-checks.txt b/.github/required-checks.txt
new file mode 100644
index 0000000000..db67743060
--- /dev/null
+++ b/.github/required-checks.txt
@@ -0,0 +1,14 @@
+# 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
+pr-path-guard.yml|ensure-no-translator-changes
diff --git a/.github/scripts/check-approved-external-endpoints.sh b/.github/scripts/check-approved-external-endpoints.sh
new file mode 100755
index 0000000000..2d95aa6354
--- /dev/null
+++ b/.github/scripts/check-approved-external-endpoints.sh
@@ -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
+)
+
+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"
diff --git a/.github/scripts/check-distributed-critical-paths.sh b/.github/scripts/check-distributed-critical-paths.sh
new file mode 100755
index 0000000000..3e603faf49
--- /dev/null
+++ b/.github/scripts/check-distributed-critical-paths.sh
@@ -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"
diff --git a/.github/scripts/check-docs-secret-samples.sh b/.github/scripts/check-docs-secret-samples.sh
new file mode 100755
index 0000000000..95d6b0ac81
--- /dev/null
+++ b/.github/scripts/check-docs-secret-samples.sh
@@ -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"
diff --git a/.github/scripts/check-workflow-token-permissions.sh b/.github/scripts/check-workflow-token-permissions.sh
new file mode 100755
index 0000000000..41f3525cc2
--- /dev/null
+++ b/.github/scripts/check-workflow-token-permissions.sh
@@ -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"
diff --git a/.github/scripts/release-lint.sh b/.github/scripts/release-lint.sh
new file mode 100755
index 0000000000..7509adea7e
--- /dev/null
+++ b/.github/scripts/release-lint.sh
@@ -0,0 +1,106 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
+cd "$REPO_ROOT"
+
+echo "==> release-lint: config example and compatibility tests"
+go test ./pkg/llmproxy/config -run 'TestLoadConfig|TestMigrateOAuthModelAlias|TestConfig_Validate'
+
+if ! command -v python3 >/dev/null 2>&1; then
+ echo "[SKIP] python3 not available for markdown snippet parsing"
+ exit 0
+fi
+
+echo "==> release-lint: markdown yaml/json snippet parse"
+python3 - "$@" <<'PY'
+import re
+import sys
+from pathlib import Path
+
+import json
+import yaml
+
+
+repo_root = Path.cwd()
+docs_root = repo_root / "docs"
+md_roots = [repo_root / "README.md", repo_root / "README_CN.md", docs_root]
+skip_markers = [
+ "${",
+ "{{",
+ " list[Path]:
+ files: list[Path] = []
+ for path in md_roots:
+ if path.is_file():
+ files.append(path)
+ if docs_root.is_dir():
+ files.extend(sorted(p for p in docs_root.rglob("*.md") if p.is_file()))
+ return files
+
+
+def should_skip(text: str) -> bool:
+ return any(marker in text for marker in skip_markers) or "${" in text
+
+
+def is_parseable_json(block: str) -> bool:
+ stripped = []
+ for line in block.splitlines():
+ line = line.strip()
+ if not line or line.startswith("//"):
+ continue
+ stripped.append(line)
+ payload = "\n".join(stripped)
+ payload = re.sub(r",\s*([}\]])", r"\1", payload)
+ json.loads(payload)
+ return True
+
+
+def is_parseable_yaml(block: str) -> bool:
+ yaml.safe_load(block)
+ return True
+
+
+failed: list[str] = []
+for file in gather_files():
+ text = file.read_text(encoding="utf-8", errors="replace")
+ for match in fence_pattern.finditer(text):
+ lang = match.group(1).lower()
+ snippet = match.group(2).strip()
+ if not snippet:
+ continue
+ parser = supported_languages.get(lang)
+ if not parser:
+ continue
+ if should_skip(snippet):
+ continue
+ try:
+ if parser == "json":
+ is_parseable_json(snippet)
+ else:
+ is_parseable_yaml(snippet)
+ except Exception as error:
+ failed.append(f"{file}:{match.start(0)}::{lang}::{error}")
+
+if failed:
+ print("release-lint: markdown snippet parse failed:")
+ for item in failed:
+ print(f"- {item}")
+ sys.exit(1)
+
+print("release-lint: markdown snippet parse passed")
+PY
diff --git a/.github/workflows/ci-rerun-flaky.yml b/.github/workflows/ci-rerun-flaky.yml
new file mode 100644
index 0000000000..9e82e2aadd
--- /dev/null
+++ b/.github/workflows/ci-rerun-flaky.yml
@@ -0,0 +1,91 @@
+name: ci-rerun-flaky
+
+on:
+ pull_request_target:
+ types:
+ - labeled
+
+permissions:
+ actions: write
+ contents: read
+ pull-requests: write
+
+jobs:
+ rerun-failed-jobs:
+ name: rerun-failed-jobs
+ if: github.event.label.name == 'ci:rerun-flaky'
+ runs-on: ubuntu-latest
+ steps:
+ - name: Rerun failed CI jobs and remove rerun label
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const label = 'ci:rerun-flaky';
+ const { owner, repo } = context.repo;
+ const pr = context.payload.pull_request;
+ const headSha = pr.head.sha;
+
+ const workflows = [
+ 'pr-test-build.yml',
+ 'pr-path-guard.yml',
+ ];
+
+ let rerunCount = 0;
+ for (const workflow_id of workflows) {
+ const runsResp = await github.rest.actions.listWorkflowRuns({
+ owner,
+ repo,
+ workflow_id,
+ event: 'pull_request',
+ head_sha: headSha,
+ per_page: 1,
+ });
+
+ const run = runsResp.data.workflow_runs[0];
+ if (!run) {
+ core.info(`No run found for ${workflow_id} at ${headSha}`);
+ continue;
+ }
+
+ if (run.status !== 'completed') {
+ core.info(`Run ${run.id} for ${workflow_id} is still ${run.status}; skipping rerun.`);
+ continue;
+ }
+
+ if (run.conclusion === 'success') {
+ core.info(`Run ${run.id} for ${workflow_id} is already successful; skipping.`);
+ continue;
+ }
+
+ try {
+ await github.request('POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs', {
+ owner,
+ repo,
+ run_id: run.id,
+ });
+ rerunCount += 1;
+ core.notice(`Triggered rerun of failed jobs for run ${run.id} (${workflow_id}).`);
+ } catch (error) {
+ core.warning(`Failed to trigger rerun for run ${run.id} (${workflow_id}): ${error.message}`);
+ }
+ }
+
+ try {
+ await github.rest.issues.removeLabel({
+ owner,
+ repo,
+ issue_number: pr.number,
+ name: label,
+ });
+ core.notice(`Removed label '${label}' from PR #${pr.number}.`);
+ } catch (error) {
+ if (error.status === 404) {
+ core.info(`Label '${label}' was already removed from PR #${pr.number}.`);
+ } else {
+ throw error;
+ }
+ }
+
+ if (rerunCount === 0) {
+ core.notice('No failed CI runs were eligible for rerun.');
+ }
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
new file mode 100644
index 0000000000..a2a53dc0ae
--- /dev/null
+++ b/.github/workflows/codeql.yml
@@ -0,0 +1,39 @@
+name: codeql
+
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+ schedule:
+ - cron: '0 6 * * 1'
+
+permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+jobs:
+ analyze:
+ name: Analyze (Go)
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [go]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v3
+ with:
+ languages: ${{ matrix.language }}
+ - name: Set up Go
+ uses: actions/setup-go@v5
+ with:
+ go-version-file: go.mod
+ cache: true
+ - name: Build
+ run: go build ./...
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v3
diff --git a/.github/workflows/pr-test-build.yml b/.github/workflows/pr-test-build.yml
index 477ff0498e..c0f6630a3f 100644
--- a/.github/workflows/pr-test-build.yml
+++ b/.github/workflows/pr-test-build.yml
@@ -7,7 +7,8 @@ permissions:
contents: read
jobs:
- build:
+ quality-ci:
+ name: quality-ci
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -17,7 +18,253 @@ jobs:
with:
go-version-file: go.mod
cache: true
- - name: Build
+ - name: Install golangci-lint
run: |
- go build -o test-output ./cmd/server
- rm -f test-output
+ if ! command -v golangci-lint >/dev/null 2>&1; then
+ go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8
+ fi
+ - name: Install staticcheck
+ run: |
+ if ! command -v staticcheck >/dev/null 2>&1; then
+ go install honnef.co/go/tools/cmd/staticcheck@latest
+ fi
+ - name: Run CI quality gates
+ env:
+ QUALITY_DIFF_RANGE: "${{ github.event.pull_request.base.sha }}...${{ github.sha }}"
+ ENABLE_STATICCHECK: "1"
+ run: task quality:ci
+
+ quality-staged-check:
+ name: quality-staged-check
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Set up Go
+ uses: actions/setup-go@v5
+ with:
+ go-version-file: go.mod
+ cache: true
+ - name: Install golangci-lint
+ run: |
+ if ! command -v golangci-lint >/dev/null 2>&1; then
+ go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8
+ fi
+ - name: Check staged/diff files in PR range
+ env:
+ QUALITY_DIFF_RANGE: "${{ github.event.pull_request.base.sha }}...${{ github.sha }}"
+ run: task quality:fmt-staged:check
+
+ go-ci:
+ name: go-ci
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Set up Go
+ uses: actions/setup-go@v5
+ with:
+ go-version-file: go.mod
+ cache: true
+ - name: Run full tests with baseline
+ run: |
+ mkdir -p target
+ go test -json ./... > target/test-baseline.json
+ - name: Upload baseline artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: go-test-baseline
+ path: target/test-baseline.json
+ if-no-files-found: error
+
+ fmt-check:
+ name: fmt-check
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Set up Go
+ uses: actions/setup-go@v5
+ with:
+ go-version-file: go.mod
+ cache: true
+ - name: Verify formatting
+ run: task quality:fmt:check
+
+ golangci-lint:
+ name: golangci-lint
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Set up Go
+ uses: actions/setup-go@v5
+ with:
+ go-version-file: go.mod
+ cache: true
+ - name: Install golangci-lint
+ run: |
+ if ! command -v golangci-lint >/dev/null 2>&1; then
+ go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.8
+ fi
+ - name: Run golangci-lint
+ run: |
+ golangci-lint run ./...
+
+ route-lifecycle:
+ name: route-lifecycle
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Set up Go
+ uses: actions/setup-go@v5
+ with:
+ go-version-file: go.mod
+ cache: true
+ - name: Run route lifecycle tests
+ run: |
+ go test -run 'TestServer_' ./pkg/llmproxy/api
+
+ test-smoke:
+ name: test-smoke
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Set up Go
+ uses: actions/setup-go@v5
+ with:
+ go-version-file: go.mod
+ cache: true
+ - name: Run startup and control-plane smoke tests
+ run: task test:smoke
+
+ pre-release-config-compat-smoke:
+ name: pre-release-config-compat-smoke
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Set up Go
+ uses: actions/setup-go@v5
+ with:
+ go-version-file: go.mod
+ cache: true
+ - name: Validate config compatibility path
+ run: |
+ task quality:release-lint
+
+ distributed-critical-paths:
+ name: distributed-critical-paths
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Set up Go
+ uses: actions/setup-go@v5
+ with:
+ go-version-file: go.mod
+ cache: true
+ - name: Run targeted critical-path checks
+ run: ./.github/scripts/check-distributed-critical-paths.sh
+
+ changelog-scope-classifier:
+ name: changelog-scope-classifier
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Detect change scopes
+ run: |
+ mkdir -p target
+ if [ "${{ github.base_ref }}" = "" ]; then
+ base_ref="HEAD~1"
+ else
+ base_ref="origin/${{ github.base_ref }}"
+ fi
+ if git rev-parse --verify "${base_ref}" >/dev/null 2>&1; then
+ true
+ else
+ git fetch origin "${{ github.base_ref }}" --depth=1 || true
+ fi
+ if [ "${{ github.event_name }}" = "pull_request" ]; then
+ git fetch origin "${{ github.base_ref }}"
+ changed_files="$(git diff --name-only "${base_ref}...${{ github.sha }}")"
+ else
+ changed_files="$(git diff --name-only HEAD~1...HEAD)"
+ fi
+
+ if [ -z "${changed_files}" ]; then
+ echo "No changed files detected; scope=none"
+ echo "scope=none" >> "$GITHUB_ENV"
+ echo "scope=none" > target/changelog-scope.txt
+ exit 0
+ fi
+
+ scope="none"
+ if echo "${changed_files}" | rg -q '(^|/)pkg/(auth|config|runtime|api|usage)/|(^|/)sdk/(access|auth|cliproxy)/'; then
+ scope="routing"
+ elif echo "${changed_files}" | rg -q '(^|/)docs/'; then
+ scope="docs"
+ elif echo "${changed_files}" | rg -q '(^|/)security|policy|oauth|token|auth'; then
+ scope="security"
+ fi
+ echo "Detected changelog scope: ${scope}"
+ echo "scope=${scope}" >> "$GITHUB_ENV"
+ echo "scope=${scope}" > target/changelog-scope.txt
+ - name: Upload changelog scope artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: changelog-scope
+ path: target/changelog-scope.txt
+
+ docs-build:
+ name: docs-build
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ - name: Setup Node
+ uses: actions/setup-node@v4
+ with:
+ node-version: "20"
+ cache: "npm"
+ cache-dependency-path: docs/package.json
+ - name: Build docs
+ working-directory: docs
+ run: |
+ npm install
+ npm run docs:build
+
+ ci-summary:
+ name: ci-summary
+ runs-on: ubuntu-latest
+ needs:
+ - quality-ci
+ - quality-staged-check
+ - go-ci
+ - fmt-check
+ - golangci-lint
+ - route-lifecycle
+ - test-smoke
+ - pre-release-config-compat-smoke
+ - distributed-critical-paths
+ - changelog-scope-classifier
+ - docs-build
+ if: always()
+ steps:
+ - name: Summarize PR CI checks
+ run: |
+ echo "### cliproxyapi++ PR CI summary" >> "$GITHUB_STEP_SUMMARY"
+ echo "- quality-ci: ${{ needs.quality-ci.result }}" >> "$GITHUB_STEP_SUMMARY"
+ echo "- quality-staged-check: ${{ needs.quality-staged-check.result }}" >> "$GITHUB_STEP_SUMMARY"
+ echo "- go-ci: ${{ needs.go-ci.result }}" >> "$GITHUB_STEP_SUMMARY"
+ echo "- fmt-check: ${{ needs.fmt-check.result }}" >> "$GITHUB_STEP_SUMMARY"
+ echo "- golangci-lint: ${{ needs.golangci-lint.result }}" >> "$GITHUB_STEP_SUMMARY"
+ echo "- route-lifecycle: ${{ needs.route-lifecycle.result }}" >> "$GITHUB_STEP_SUMMARY"
+ echo "- test-smoke: ${{ needs.test-smoke.result }}" >> "$GITHUB_STEP_SUMMARY"
+ echo "- pre-release-config-compat-smoke: ${{ needs.pre-release-config-compat-smoke.result }}" >> "$GITHUB_STEP_SUMMARY"
+ echo "- distributed-critical-paths: ${{ needs.distributed-critical-paths.result }}" >> "$GITHUB_STEP_SUMMARY"
+ echo "- changelog-scope-classifier: ${{ needs.changelog-scope-classifier.result }}" >> "$GITHUB_STEP_SUMMARY"
+ echo "- docs-build: ${{ needs.docs-build.result }}" >> "$GITHUB_STEP_SUMMARY"
diff --git a/.github/workflows/required-check-names-guard.yml b/.github/workflows/required-check-names-guard.yml
new file mode 100644
index 0000000000..bc9e87bcdd
--- /dev/null
+++ b/.github/workflows/required-check-names-guard.yml
@@ -0,0 +1,51 @@
+name: required-check-names-guard
+
+on:
+ pull_request:
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+jobs:
+ verify-required-check-names:
+ name: verify-required-check-names
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Verify required check names exist
+ run: |
+ set -euo pipefail
+ manifest=".github/required-checks.txt"
+ if [ ! -f "${manifest}" ]; then
+ echo "Missing manifest: ${manifest}"
+ exit 1
+ fi
+
+ missing=0
+ while IFS='|' read -r workflow_file job_name; do
+ [ -z "${workflow_file}" ] && continue
+ case "${workflow_file}" in
+ \#*) continue ;;
+ esac
+
+ workflow_path=".github/workflows/${workflow_file}"
+ if [ ! -f "${workflow_path}" ]; then
+ echo "Missing workflow file: ${workflow_path}"
+ missing=1
+ continue
+ fi
+
+ escaped_job_name="$(printf '%s' "${job_name}" | sed 's/[][(){}.^$*+?|\\/]/\\&/g')"
+ if ! grep -Eq "^[[:space:]]+name:[[:space:]]*[\"']?${escaped_job_name}[\"']?[[:space:]]*$" "${workflow_path}"; then
+ echo "Missing required check name '${job_name}' in ${workflow_path}"
+ missing=1
+ fi
+ done < "${manifest}"
+
+ if [ "${missing}" -ne 0 ]; then
+ echo "Required check name guard failed."
+ exit 1
+ fi
diff --git a/README.md b/README.md
index 5bf1b477f1..6965c527b9 100644
--- a/README.md
+++ b/README.md
@@ -151,6 +151,15 @@ We maintain strict quality gates to preserve the "hardened" status of the projec
1. **Linting**: Must pass `golangci-lint` with zero warnings.
2. **Coverage**: All new translator logic MUST include unit tests.
3. **Governance**: Changes to core `pkg/` logic require a corresponding Issue discussion.
+4. **Daily QOL flow**:
+ - `task quality:fmt` to auto-format all Go files.
+ - `task quality:quick` for a fast local loop (format + selected tests; set `QUALITY_PACKAGES` to scope).
+ - `QUALITY_PACKAGES='./pkg/...' task quality:quick` for package-scoped smoke.
+ - `task quality:fmt-staged` for staged file format + lint before commit.
+ - `task quality:ci` for PR-scope non-mutating checks (fmt/vet/staticcheck/lint diff).
+ - `task test:smoke` for startup + control-plane smoke.
+ - `task verify:all` for a single-command local audit (fmt/lint/vet/quality + tests).
+ - `task hooks:install` to register the pre-commit hook.
See **[CONTRIBUTING.md](CONTRIBUTING.md)** for more details.
@@ -163,11 +172,18 @@ See **[CONTRIBUTING.md](CONTRIBUTING.md)** for more details.
- [Provider Catalog](./docs/provider-catalog.md)
- [Provider Operations Runbook](./docs/provider-operations.md)
- [Routing and Models Reference](./docs/routing-reference.md)
+- **Planning and Delivery Boards:**
+ - [Planning Index](./docs/planning/index.md)
+ - [2000-Item Execution Board](./docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md)
+ - [GitHub Project Import CSV](./docs/planning/GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv)
+ - [Board Workflow (source -> solution mapping)](./docs/planning/board-workflow.md)
- **[Docsets](./docs/docsets/)** — Role-oriented documentation sets.
- [Developer (Internal)](./docs/docsets/developer/internal/)
- [Developer (External)](./docs/docsets/developer/external/)
- [Technical User](./docs/docsets/user/)
- [Agent Operator](./docs/docsets/agent/)
+- **Research**: [AgentAPI + cliproxyapi++ tandem and alternatives](./docs/planning/agentapi-cliproxy-integration-research-2026-02-22.md)
+- **Research (300 repo sweep)**: [coder org + 97 adjacent repos](./docs/planning/coder-org-plus-relative-300-inventory-2026-02-22.md)
- **[Feature Changes in ++](./docs/FEATURE_CHANGES_PLUSPLUS.md)** — Comprehensive list of `++` differences and impacts.
- **[Docs README](./docs/README.md)** — Core docs map.
diff --git a/Taskfile.yml b/Taskfile.yml
index 2c1252fef6..86310307bb 100644
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -6,6 +6,8 @@ version: '3'
vars:
BINARY_NAME: cliproxyapi++
DOCKER_IMAGE: kooshapari/cliproxyapi-plusplus
+ TEST_REPORT_DIR: target
+ QUALITY_PACKAGES: '{{default "./..." .QUALITY_PACKAGES}}'
GO_FILES:
sh: find . -name "*.go" | grep -v "vendor"
@@ -33,12 +35,319 @@ tasks:
cmds:
- ./{{.BINARY_NAME}} --config config.example.yaml
+ preflight:
+ desc: "Fail fast if required tooling is missing"
+ cmds:
+ - |
+ command -v go >/dev/null 2>&1 || { echo "[FAIL] go is required"; exit 1; }
+ command -v task >/dev/null 2>&1 || { echo "[FAIL] task is required"; exit 1; }
+ command -v git >/dev/null 2>&1 || { echo "[FAIL] git is required"; exit 1; }
+ go version >/dev/null
+ echo "[OK] preflight checks passed"
+
+ cache:unlock:
+ desc: "Clear stale Go module lock files that can block parallel test workers"
+ cmds:
+ - |
+ modcache="$(go env GOMODCACHE)"
+ if [ -z "$modcache" ]; then
+ echo "[SKIP] GOMODCACHE unavailable"
+ exit 0
+ fi
+ find "$modcache" -type f -name '*.lock' -delete 2>/dev/null || true
+ echo "[OK] Removed stale lock files from: $modcache"
+
+ test:unit:
+ desc: "Run unit-tagged tests only"
+ deps: [preflight, cache:unlock]
+ cmds:
+ - go test -tags unit ./... {{.CLI_ARGS}}
+
+ test:integration:
+ desc: "Run integration-tagged tests only"
+ deps: [preflight, cache:unlock]
+ cmds:
+ - go test -tags integration ./... {{.CLI_ARGS}}
+
+ test:baseline:
+ desc: "Run full test suite and persist JSON baseline artifacts"
+ cmds:
+ - mkdir -p {{.TEST_REPORT_DIR}}
+ - go test -json ./... > "{{.TEST_REPORT_DIR}}/test-baseline.json"
+
# -- Testing & Quality --
test:
desc: "Run all Go tests"
+ deps: [preflight, cache:unlock]
cmds:
- go test -v ./...
+ quality:fmt:
+ desc: "Auto format Go source files with gofmt"
+ cmds:
+ - |
+ mapfile -t go_files < <(find . -name "*.go" -type f -not -path "./vendor/*")
+ if [ "${#go_files[@]}" -eq 0 ]; then
+ echo "[SKIP] No Go files found for formatting."
+ exit 0
+ fi
+ gofmt -w "${go_files[@]}"
+ echo "[OK] Formatted ${#go_files[@]} Go files."
+
+ quality:fmt:check:
+ desc: "Check Go formatting"
+ cmds:
+ - |
+ mapfile -t go_files < <(find . -name "*.go" -type f -not -path "./vendor/*")
+ if [ "${#go_files[@]}" -eq 0 ]; then
+ echo "[SKIP] No Go files found for formatting check."
+ exit 0
+ fi
+ unformatted="$(gofmt -l "${go_files[@]}")"
+ if [ -n "${unformatted}" ]; then
+ echo "Unformatted Go files:"
+ echo "${unformatted}"
+ exit 1
+ fi
+ echo "[OK] Go formatting is clean."
+
+ quality:fmt-staged:
+ desc: "Format and lint staged files only"
+ cmds:
+ - |
+ mapfile -t go_files < <(git diff --cached --name-only -- '*.go')
+ if [ "${#go_files[@]}" -eq 0 ]; then
+ echo "[SKIP] No staged Go files to format/lint."
+ exit 0
+ fi
+ gofmt -w "${go_files[@]}"
+ if ! command -v golangci-lint >/dev/null 2>&1; then
+ echo "[WARN] golangci-lint not found; skipping lint on staged files."
+ exit 0
+ fi
+ golangci-lint run --new-from-rev=HEAD --verbose
+ echo "[OK] Staged gofmt + lint complete."
+
+ quality:fmt-staged:check:
+ desc: "Check formatting and lint staged/diff files only"
+ cmds:
+ - |
+ if [ -n "${QUALITY_DIFF_RANGE:-}" ]; then
+ mapfile -t go_files < <(git diff --name-only "$QUALITY_DIFF_RANGE" -- '*.go' | sort -u)
+ else
+ mapfile -t go_files < <(git diff --cached --name-only -- '*.go')
+ fi
+ if [ "${#go_files[@]}" -eq 0 ]; then
+ echo "[SKIP] No staged or diff Go files to check."
+ exit 0
+ fi
+ unformatted="$(gofmt -l "${go_files[@]}")"
+ if [ -n "${unformatted}" ]; then
+ echo "Unformatted Go files:"
+ echo "${unformatted}"
+ exit 1
+ fi
+ if ! command -v golangci-lint >/dev/null 2>&1; then
+ echo "[WARN] golangci-lint not found; skipping lint on changed files."
+ exit 0
+ fi
+ golangci-lint run "${go_files[@]}"
+ echo "[OK] Format + lint check complete for staged/diff Go files."
+
+ quality:parent-sibling:
+ desc: "Optionally run sibling cliproxy project quality gates when in a monorepo"
+ cmds:
+ - |
+ if [ "${QUALITY_WITH_PARENT_CLIPROXY:-1}" = "0" ]; then
+ echo "[SKIP] quality:parent-sibling (QUALITY_WITH_PARENT_CLIPROXY=0)"
+ exit 0
+ fi
+
+ ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
+ PARENT="$(dirname "$ROOT")"
+ CURRENT="$(basename "$ROOT")"
+ FOUND=0
+ RAN=0
+
+ for d in "$PARENT"/*; do
+ [ -d "$d" ] || continue
+ base="$(basename "$d")"
+ [ "$base" = "$CURRENT" ] && continue
+ case "$base" in
+ *cliproxy*|*cliproxyapi*)
+ if [ ! -f "$d/Taskfile.yml" ]; then
+ continue
+ fi
+ FOUND=1
+ if task -C "$d" --list-all 2>/dev/null | rg -q '(^|[[:space:]])quality([[:space:]]|$)'; then
+ echo "[RUN] $base -> task quality"
+ QUALITY_WITH_PARENT_CLIPROXY=0 task -C "$d" quality
+ RAN=1
+ else
+ echo "[SKIP] $base (no quality task)"
+ fi
+ ;;
+ esac
+ done
+
+ if [ "$FOUND" -eq 0 ]; then
+ echo "[SKIP] No sibling cliproxy taskfiles found in parent: $PARENT"
+ elif [ "$RAN" -eq 0 ]; then
+ echo "[SKIP] No sibling cliproxy project had a runnable quality task"
+ fi
+
+ quality:
+ desc: "Run full strict project quality checks (fmt, test, lint)"
+ cmds:
+ - task: quality:fmt
+ - task: quality:fmt:check
+ - go vet ./...
+ - task: lint
+ - task: test
+ - task: quality:parent-sibling
+
+ quality:quick:
+ desc: "Run fast local quality checks (auto format + tests)"
+ cmds:
+ - task: quality:fmt
+ - task: quality:quick:check
+
+ quality:quick:check:
+ desc: "Fast non-mutating quality checks (fmt check + changed lint + targeted tests)"
+ deps: [preflight, cache:unlock]
+ cmds:
+ - task: quality:fmt:check
+ - task: lint:changed
+ - go test {{.QUALITY_PACKAGES}}
+
+ quality:quick:all:
+ desc: "Run quality quick locally and in sibling cliproxy/cliproxyapi++ repos"
+ cmds:
+ - task: quality:quick
+ - task: quality:parent-sibling
+
+ quality:vet:
+ desc: "Run go vet for all packages"
+ cmds:
+ - go vet ./...
+
+ quality:staticcheck:
+ desc: "Run staticcheck (opt-in)"
+ cmds:
+ - |
+ if [ "${ENABLE_STATICCHECK:-0}" != "1" ]; then
+ echo "[SKIP] ENABLE_STATICCHECK=1 to run staticcheck"
+ exit 0
+ fi
+ if ! command -v staticcheck >/dev/null 2>&1; then
+ echo "[WARN] staticcheck not found"
+ exit 0
+ fi
+ staticcheck ./...
+
+ quality:ci:
+ desc: "Run non-mutating PR quality gates"
+ cmds:
+ - |
+ if [ -n "${QUALITY_DIFF_RANGE:-}" ]; then
+ echo "[INFO] quality:ci with QUALITY_DIFF_RANGE=$QUALITY_DIFF_RANGE"
+ else
+ echo "[INFO] quality:ci without QUALITY_DIFF_RANGE; lint defaults to working tree/staged diffs"
+ fi
+ - task: quality:fmt:check
+ - task: quality:vet
+ - task: quality:staticcheck
+ - task: lint:changed
+
+ quality:release-lint:
+ desc: "Validate release-facing config examples and docs snippets"
+ cmds:
+ - task: preflight
+ - ./.github/scripts/release-lint.sh
+
+ test:smoke:
+ desc: "Run smoke tests for startup and control-plane surfaces"
+ deps: [preflight, cache:unlock]
+ cmds:
+ - |
+ go test -run 'TestServer_StartupSmokeEndpoints|TestServer_StartupSmokeEndpoints/GET_v1_models|TestServer_StartupSmokeEndpoints/GET_v1_metrics_providers|TestServer_RoutesNamespaceIsolation|TestServer_ControlPlane_MessageLifecycle|TestServer_ControlPlane_IdempotencyKey_ReplaysResponseAndPreventsDuplicateMessages|TestServer_ControlPlane_IdempotencyKey_DifferentKeysCreateDifferentMessages' ./pkg/llmproxy/api
+
+ lint:changed:
+ desc: "Run golangci-lint on changed/staged files only"
+ cmds:
+ - |
+ tmp_files="$(mktemp)"
+ if [ -n "${QUALITY_DIFF_RANGE:-}" ]; then
+ git diff --name-only "$QUALITY_DIFF_RANGE" -- '*.go' | sort -u > "$tmp_files"
+ else
+ git diff --name-only -- '*.go' | sort -u > "$tmp_files"
+ git diff --cached --name-only -- '*.go' | sort -u >> "$tmp_files"
+ fi
+ mapfile -t files < <(sort -u "$tmp_files")
+ rm -f "$tmp_files"
+ if [ "${#files[@]}" -eq 0 ]; then
+ echo "[SKIP] No changed or staged Go files found."
+ exit 0
+ fi
+ if ! command -v golangci-lint >/dev/null 2>&1; then
+ echo "[WARN] golangci-lint not found; skipping lint on changed files."
+ exit 0
+ fi
+ mapfile -t changed_dirs < <(printf '%s\n' "${files[@]}" | sed 's#^\\./##' | xargs -n1 dirname | sort -u)
+ failed=0
+ for dir in "${changed_dirs[@]}"; do
+ if [ "$dir" = "." ]; then
+ dir="."
+ fi
+ if [ -z "$dir" ] || [ ! -d "$dir" ]; then
+ continue
+ fi
+ golangci-lint run "$dir" || failed=1
+ done
+ if [ "$failed" -ne 0 ]; then
+ exit 1
+ fi
+ if [ "${#changed_dirs[@]}" -eq 0 ]; then
+ echo "[SKIP] No changed directories resolved."
+ exit 0
+ fi
+ echo "[OK] linted changed directories: ${changed_dirs[*]}"
+
+ verify:all:
+ desc: "Run quality quick checks and static analysis"
+ cmds:
+ - task: quality:fmt:check
+ - task: test:smoke
+ - task: lint:changed
+ - task: quality:release-lint
+ - task: quality:vet
+ - task: quality:staticcheck
+ - task: test
+
+ hooks:install:
+ desc: "Install local git pre-commit hook for staged gofmt + lint"
+ cmds:
+ - |
+ mkdir -p .git/hooks
+ cat > .git/hooks/pre-commit <<'EOF'
+ #!/usr/bin/env sh
+ set -eu
+ if ! command -v go >/dev/null 2>&1; then
+ echo "[WARN] go not found on PATH; skipping pre-commit quality checks."
+ exit 0
+ fi
+
+ if ! command -v task >/dev/null 2>&1; then
+ echo "[WARN] task not found on PATH; skipping pre-commit quality checks."
+ exit 0
+ fi
+
+ cd "$(git rev-parse --show-toplevel)"
+ task quality:fmt-staged
+ EOF
+ chmod +x .git/hooks/pre-commit
+ echo "[OK] Installed .git/hooks/pre-commit"
+
lint:
desc: "Run golangci-lint"
cmds:
@@ -86,3 +395,8 @@ tasks:
cmds:
- echo "Checking for llms.txt..."
- if [ ! -f llms.txt ]; then echo "⚠️ llms.txt missing"; else echo "✅ llms.txt present"; fi
+
+ board:sync:
+ desc: "Sync GitHub sources and regenerate planning board/import artifacts (Go tool)"
+ cmds:
+ - go run ./cmd/boardsync
diff --git a/cmd/boardsync/main.go b/cmd/boardsync/main.go
new file mode 100644
index 0000000000..75eda8e226
--- /dev/null
+++ b/cmd/boardsync/main.go
@@ -0,0 +1,758 @@
+package main
+
+import (
+ "bytes"
+ "encoding/csv"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "sort"
+ "strings"
+ "time"
+)
+
+const (
+ targetCount = 2000
+)
+
+var repos = []string{
+ "router-for-me/CLIProxyAPIPlus",
+ "router-for-me/CLIProxyAPI",
+}
+
+type sourceItem struct {
+ Kind string `json:"kind"`
+ Repo string `json:"repo"`
+ Number int `json:"number"`
+ Title string `json:"title"`
+ State string `json:"state"`
+ URL string `json:"url"`
+ Labels []string `json:"labels"`
+ Comments int `json:"comments"`
+ CreatedAt string `json:"created_at"`
+ UpdatedAt string `json:"updated_at"`
+ Body string `json:"body"`
+}
+
+type boardItem struct {
+ ID string `json:"id"`
+ Theme string `json:"theme"`
+ Title string `json:"title"`
+ Priority string `json:"priority"`
+ Effort string `json:"effort"`
+ Wave string `json:"wave"`
+ Status string `json:"status"`
+ ImplementationReady string `json:"implementation_ready"`
+ SourceKind string `json:"source_kind"`
+ SourceRepo string `json:"source_repo"`
+ SourceRef string `json:"source_ref"`
+ SourceURL string `json:"source_url"`
+ ImplementationNote string `json:"implementation_note"`
+}
+
+type boardJSON struct {
+ Stats map[string]int `json:"stats"`
+ Counts map[string]map[string]int `json:"counts"`
+ Items []boardItem `json:"items"`
+}
+
+type discussionNode struct {
+ Number int `json:"number"`
+ Title string `json:"title"`
+ URL string `json:"url"`
+ CreatedAt string `json:"createdAt"`
+ UpdatedAt string `json:"updatedAt"`
+ Closed bool `json:"closed"`
+ BodyText string `json:"bodyText"`
+ Category struct {
+ Name string `json:"name"`
+ } `json:"category"`
+ Author struct {
+ Login string `json:"login"`
+ } `json:"author"`
+ Comments struct {
+ TotalCount int `json:"totalCount"`
+ } `json:"comments"`
+}
+
+func main() {
+ root, err := os.Getwd()
+ if err != nil {
+ fail(err)
+ }
+
+ tmpDir := filepath.Join(root, "tmp", "gh_board")
+ planDir := filepath.Join(root, "docs", "planning")
+ must(os.MkdirAll(tmpDir, 0o755))
+ must(os.MkdirAll(planDir, 0o755))
+
+ for _, repo := range repos {
+ must(fetchRepoSnapshots(tmpDir, repo))
+ }
+
+ sources, stats, err := loadSources(tmpDir)
+ if err != nil {
+ fail(err)
+ }
+
+ board := buildBoard(sources)
+ sortBoard(board)
+
+ jsonObj := boardJSON{
+ Stats: stats,
+ Counts: summarizeCounts(board),
+ Items: board,
+ }
+
+ const base = "CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22"
+ boardJSONPath := filepath.Join(planDir, base+".json")
+ boardCSVPath := filepath.Join(planDir, base+".csv")
+ boardMDPath := filepath.Join(planDir, base+".md")
+ importCSVPath := filepath.Join(planDir, "GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv")
+
+ must(writeBoardJSON(boardJSONPath, jsonObj))
+ must(writeBoardCSV(boardCSVPath, board))
+ must(writeBoardMarkdown(boardMDPath, board, jsonObj))
+ must(writeProjectImportCSV(importCSVPath, board))
+
+ fmt.Println("board sync complete")
+ fmt.Println(boardJSONPath)
+ fmt.Println(boardCSVPath)
+ fmt.Println(boardMDPath)
+ fmt.Println(importCSVPath)
+ fmt.Printf("items=%d\n", len(board))
+}
+
+func fetchRepoSnapshots(tmpDir, repo string) error {
+ base := strings.ReplaceAll(repo, "/", "_")
+ if err := ghToFile([]string{"api", "--paginate", "repos/" + repo + "/issues?state=all&per_page=100"}, filepath.Join(tmpDir, base+"_issues_prs.json")); err != nil {
+ return err
+ }
+ if err := ghToFile([]string{"api", "--paginate", "repos/" + repo + "/pulls?state=all&per_page=100"}, filepath.Join(tmpDir, base+"_pulls.json")); err != nil {
+ return err
+ }
+ discussions, err := fetchDiscussions(repo)
+ if err != nil {
+ return err
+ }
+ b, err := json.MarshalIndent(discussions, "", " ")
+ if err != nil {
+ return err
+ }
+ return os.WriteFile(filepath.Join(tmpDir, base+"_discussions_graphql.json"), b, 0o644)
+}
+
+func ghToFile(args []string, path string) error {
+ out, err := run("gh", args...)
+ if err != nil {
+ return err
+ }
+ return os.WriteFile(path, out, 0o644)
+}
+
+func fetchDiscussions(repo string) ([]discussionNode, error) {
+ parts := strings.Split(repo, "/")
+ if len(parts) != 2 {
+ return nil, fmt.Errorf("invalid repo: %s", repo)
+ }
+ owner, name := parts[0], parts[1]
+ cursor := ""
+ var all []discussionNode
+
+ for {
+ q := `query($owner:String!,$repo:String!,$first:Int!,$after:String){
+ repository(owner:$owner,name:$repo){
+ discussions(first:$first,after:$after,orderBy:{field:UPDATED_AT,direction:DESC}){
+ nodes{
+ number title url createdAt updatedAt closed bodyText
+ category{name}
+ author{login}
+ comments{totalCount}
+ }
+ pageInfo{hasNextPage endCursor}
+ }
+ }
+ }`
+ args := []string{"api", "graphql", "-f", "owner=" + owner, "-f", "repo=" + name, "-F", "first=50", "-f", "query=" + q}
+ if cursor != "" {
+ args = append(args, "-f", "after="+cursor)
+ }
+ out, err := run("gh", args...)
+ if err != nil {
+ // repo may not have discussions enabled; treat as empty
+ return all, nil
+ }
+ var resp struct {
+ Data struct {
+ Repository struct {
+ Discussions struct {
+ Nodes []discussionNode `json:"nodes"`
+ PageInfo struct {
+ HasNextPage bool `json:"hasNextPage"`
+ EndCursor string `json:"endCursor"`
+ } `json:"pageInfo"`
+ } `json:"discussions"`
+ } `json:"repository"`
+ } `json:"data"`
+ }
+ if err := json.Unmarshal(out, &resp); err != nil {
+ return nil, err
+ }
+ all = append(all, resp.Data.Repository.Discussions.Nodes...)
+ if !resp.Data.Repository.Discussions.PageInfo.HasNextPage {
+ break
+ }
+ cursor = resp.Data.Repository.Discussions.PageInfo.EndCursor
+ if cursor == "" {
+ break
+ }
+ }
+ return all, nil
+}
+
+func loadSources(tmpDir string) ([]sourceItem, map[string]int, error) {
+ var out []sourceItem
+ stats := map[string]int{
+ "sources_total_unique": 0,
+ "issues_plus": 0,
+ "issues_core": 0,
+ "prs_plus": 0,
+ "prs_core": 0,
+ "discussions_plus": 0,
+ "discussions_core": 0,
+ }
+
+ for _, repo := range repos {
+ base := strings.ReplaceAll(repo, "/", "_")
+
+ issuesPath := filepath.Join(tmpDir, base+"_issues_prs.json")
+ pullsPath := filepath.Join(tmpDir, base+"_pulls.json")
+ discussionsPath := filepath.Join(tmpDir, base+"_discussions_graphql.json")
+
+ var issues []map[string]any
+ if err := readJSON(issuesPath, &issues); err != nil {
+ return nil, nil, err
+ }
+ for _, it := range issues {
+ if _, isPR := it["pull_request"]; isPR {
+ continue
+ }
+ s := sourceItem{
+ Kind: "issue",
+ Repo: repo,
+ Number: intFromAny(it["number"]),
+ Title: strFromAny(it["title"]),
+ State: strFromAny(it["state"]),
+ URL: strFromAny(it["html_url"]),
+ Labels: labelsFromAny(it["labels"]),
+ Comments: intFromAny(it["comments"]),
+ CreatedAt: strFromAny(it["created_at"]),
+ UpdatedAt: strFromAny(it["updated_at"]),
+ Body: shrink(strFromAny(it["body"]), 1200),
+ }
+ out = append(out, s)
+ if strings.HasSuffix(repo, "CLIProxyAPIPlus") {
+ stats["issues_plus"]++
+ } else {
+ stats["issues_core"]++
+ }
+ }
+
+ var pulls []map[string]any
+ if err := readJSON(pullsPath, &pulls); err != nil {
+ return nil, nil, err
+ }
+ for _, it := range pulls {
+ s := sourceItem{
+ Kind: "pr",
+ Repo: repo,
+ Number: intFromAny(it["number"]),
+ Title: strFromAny(it["title"]),
+ State: strFromAny(it["state"]),
+ URL: strFromAny(it["html_url"]),
+ Labels: labelsFromAny(it["labels"]),
+ Comments: intFromAny(it["comments"]),
+ CreatedAt: strFromAny(it["created_at"]),
+ UpdatedAt: strFromAny(it["updated_at"]),
+ Body: shrink(strFromAny(it["body"]), 1200),
+ }
+ out = append(out, s)
+ if strings.HasSuffix(repo, "CLIProxyAPIPlus") {
+ stats["prs_plus"]++
+ } else {
+ stats["prs_core"]++
+ }
+ }
+
+ var discussions []discussionNode
+ if err := readJSON(discussionsPath, &discussions); err != nil {
+ return nil, nil, err
+ }
+ for _, d := range discussions {
+ s := sourceItem{
+ Kind: "discussion",
+ Repo: repo,
+ Number: d.Number,
+ Title: d.Title,
+ State: ternary(d.Closed, "closed", "open"),
+ URL: d.URL,
+ Labels: []string{d.Category.Name},
+ Comments: d.Comments.TotalCount,
+ CreatedAt: d.CreatedAt,
+ UpdatedAt: d.UpdatedAt,
+ Body: shrink(d.BodyText, 1200),
+ }
+ out = append(out, s)
+ if strings.HasSuffix(repo, "CLIProxyAPIPlus") {
+ stats["discussions_plus"]++
+ } else {
+ stats["discussions_core"]++
+ }
+ }
+ }
+
+ seen := map[string]bool{}
+ dedup := make([]sourceItem, 0, len(out))
+ for _, s := range out {
+ if s.URL == "" || seen[s.URL] {
+ continue
+ }
+ seen[s.URL] = true
+ dedup = append(dedup, s)
+ }
+ stats["sources_total_unique"] = len(dedup)
+ return dedup, stats, nil
+}
+
+func buildBoard(sources []sourceItem) []boardItem {
+ seed := []boardItem{
+ newSeed("CP2K-0001", "platform-architecture", "Port thegent proxy lifecycle/install/login/model-management flows into first-class cliproxy Go CLI commands.", "P1", "L", "wave-1"),
+ newSeed("CP2K-0002", "integration-api-bindings", "Define a non-subprocess integration contract: Go bindings first, HTTP API fallback, versioned capability negotiation.", "P1", "L", "wave-1"),
+ newSeed("CP2K-0003", "dev-runtime-refresh", "Add process-compose dev profile with HMR-style reload, config watcher, and explicit `cliproxy refresh` command.", "P1", "M", "wave-1"),
+ newSeed("CP2K-0004", "docs-quickstarts", "Publish provider-specific 5-minute quickstarts with auth + model selection + sanity-check commands.", "P1", "M", "wave-1"),
+ newSeed("CP2K-0005", "docs-quickstarts", "Add troubleshooting matrix for auth, model mapping, thinking normalization, stream parsing, and retry semantics.", "P1", "M", "wave-1"),
+ newSeed("CP2K-0006", "cli-ux-dx", "Ship interactive setup wizard and `doctor --fix` with machine-readable JSON output and deterministic remediation.", "P1", "M", "wave-1"),
+ newSeed("CP2K-0007", "testing-and-quality", "Add cross-provider OpenAI Responses/Chat Completions conformance test suite with golden fixtures.", "P1", "L", "wave-1"),
+ newSeed("CP2K-0008", "testing-and-quality", "Add dedicated reasoning controls tests (`variant`, `reasoning_effort`, `reasoning.effort`, suffix forms).", "P1", "M", "wave-1"),
+ newSeed("CP2K-0009", "project-frontmatter", "Rewrite project frontmatter/readme with architecture, compatibility matrix, provider guides, support policy, and release channels.", "P2", "M", "wave-1"),
+ newSeed("CP2K-0010", "install-and-ops", "Improve release and install UX with unified install flow, binary verification, and platform post-install checks.", "P2", "M", "wave-1"),
+ }
+
+ templates := []string{
+ `Follow up "%s" by closing compatibility gaps and locking in regression coverage.`,
+ `Harden "%s" with stricter validation, safer defaults, and explicit fallback semantics.`,
+ `Operationalize "%s" with observability, runbook updates, and deployment safeguards.`,
+ `Generalize "%s" into provider-agnostic translation/utilities to reduce duplicate logic.`,
+ `Improve CLI UX around "%s" with clearer commands, flags, and immediate validation feedback.`,
+ `Extend docs for "%s" with quickstart snippets and troubleshooting decision trees.`,
+ `Add robust stream/non-stream parity tests for "%s" across supported providers.`,
+ `Refactor internals touched by "%s" to reduce coupling and improve maintainability.`,
+ `Prepare safe rollout for "%s" via flags, migration docs, and backward-compat tests.`,
+ `Standardize naming/metadata affected by "%s" across both repos and docs.`,
+ }
+
+ actions := []string{
+ "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.",
+ "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.",
+ "Improve error diagnostics and add actionable remediation text in CLI and docs.",
+ "Refactor translation layer to isolate provider transform logic from transport concerns.",
+ "Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.",
+ "Add staged rollout controls (feature flags) with safe defaults and migration notes.",
+ "Harden edge-case parsing for stream and non-stream payload variants.",
+ "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.",
+ "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.",
+ "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.",
+ }
+
+ board := make([]boardItem, 0, targetCount)
+ board = append(board, seed...)
+
+ for i := len(seed) + 1; len(board) < targetCount; i++ {
+ src := sources[(i-1)%len(sources)]
+ title := clean(src.Title)
+ if title == "" {
+ title = fmt.Sprintf("%s #%d", src.Kind, src.Number)
+ }
+
+ theme := pickTheme(title + " " + src.Body)
+ itemTitle := fmt.Sprintf(templates[(i-1)%len(templates)], title)
+ priority := pickPriority(src)
+ effort := pickEffort(src)
+
+ switch {
+ case i%17 == 0:
+ theme = "docs-quickstarts"
+ itemTitle = fmt.Sprintf(`Create or refresh provider quickstart derived from "%s" with setup/auth/model/sanity-check flow.`, title)
+ priority = "P1"
+ case i%19 == 0:
+ theme = "go-cli-extraction"
+ itemTitle = fmt.Sprintf(`Port relevant thegent-managed behavior implied by "%s" into cliproxy Go CLI commands and interactive setup.`, title)
+ priority, effort = "P1", "M"
+ case i%23 == 0:
+ theme = "integration-api-bindings"
+ itemTitle = fmt.Sprintf(`Design non-subprocess integration contract related to "%s" with Go bindings primary and API fallback.`, title)
+ priority, effort = "P1", "M"
+ case i%29 == 0:
+ theme = "dev-runtime-refresh"
+ itemTitle = fmt.Sprintf(`Add process-compose/HMR refresh workflow linked to "%s" for deterministic local runtime reload.`, title)
+ priority, effort = "P1", "M"
+ }
+
+ board = append(board, boardItem{
+ ID: fmt.Sprintf("CP2K-%04d", i),
+ Theme: theme,
+ Title: itemTitle,
+ Priority: priority,
+ Effort: effort,
+ Wave: pickWave(priority, effort),
+ Status: "proposed",
+ ImplementationReady: "yes",
+ SourceKind: src.Kind,
+ SourceRepo: src.Repo,
+ SourceRef: fmt.Sprintf("%s#%d", src.Kind, src.Number),
+ SourceURL: src.URL,
+ ImplementationNote: actions[(i-1)%len(actions)],
+ })
+ }
+
+ return board
+}
+
+func sortBoard(board []boardItem) {
+ pr := map[string]int{"P1": 0, "P2": 1, "P3": 2}
+ wr := map[string]int{"wave-1": 0, "wave-2": 1, "wave-3": 2}
+ er := map[string]int{"S": 0, "M": 1, "L": 2}
+ sort.SliceStable(board, func(i, j int) bool {
+ a, b := board[i], board[j]
+ if pr[a.Priority] != pr[b.Priority] {
+ return pr[a.Priority] < pr[b.Priority]
+ }
+ if wr[a.Wave] != wr[b.Wave] {
+ return wr[a.Wave] < wr[b.Wave]
+ }
+ if er[a.Effort] != er[b.Effort] {
+ return er[a.Effort] < er[b.Effort]
+ }
+ return a.ID < b.ID
+ })
+}
+
+func summarizeCounts(board []boardItem) map[string]map[string]int {
+ out := map[string]map[string]int{
+ "priority": {},
+ "wave": {},
+ "effort": {},
+ "theme": {},
+ }
+ for _, b := range board {
+ out["priority"][b.Priority]++
+ out["wave"][b.Wave]++
+ out["effort"][b.Effort]++
+ out["theme"][b.Theme]++
+ }
+ return out
+}
+
+func writeBoardJSON(path string, data boardJSON) error {
+ b, err := json.MarshalIndent(data, "", " ")
+ if err != nil {
+ return err
+ }
+ return os.WriteFile(path, b, 0o644)
+}
+
+func writeBoardCSV(path string, board []boardItem) error {
+ f, err := os.Create(path)
+ if err != nil {
+ return err
+ }
+ defer func() { _ = f.Close() }()
+ w := csv.NewWriter(f)
+ defer w.Flush()
+ if err := w.Write([]string{"id", "theme", "title", "priority", "effort", "wave", "status", "implementation_ready", "source_kind", "source_repo", "source_ref", "source_url", "implementation_note"}); err != nil {
+ return err
+ }
+ for _, b := range board {
+ if err := w.Write([]string{b.ID, b.Theme, b.Title, b.Priority, b.Effort, b.Wave, b.Status, b.ImplementationReady, b.SourceKind, b.SourceRepo, b.SourceRef, b.SourceURL, b.ImplementationNote}); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func writeProjectImportCSV(path string, board []boardItem) error {
+ f, err := os.Create(path)
+ if err != nil {
+ return err
+ }
+ defer func() { _ = f.Close() }()
+ w := csv.NewWriter(f)
+ defer w.Flush()
+ if err := w.Write([]string{"Title", "Body", "Status", "Priority", "Wave", "Effort", "Theme", "Implementation Ready", "Source Kind", "Source Repo", "Source Ref", "Source URL", "Labels", "Board ID"}); err != nil {
+ return err
+ }
+ for _, b := range board {
+ body := fmt.Sprintf("Execution item %s | Source: %s %s | Source URL: %s | Implementation note: %s | Tracking rule: keep source->solution mapping and update Status as work progresses.", b.ID, b.SourceRepo, b.SourceRef, b.SourceURL, b.ImplementationNote)
+ labels := strings.Join([]string{
+ "board-2000",
+ "theme:" + b.Theme,
+ "prio:" + strings.ToLower(b.Priority),
+ "wave:" + b.Wave,
+ "effort:" + strings.ToLower(b.Effort),
+ "kind:" + b.SourceKind,
+ }, ",")
+ if err := w.Write([]string{b.Title, body, b.Status, b.Priority, b.Wave, b.Effort, b.Theme, b.ImplementationReady, b.SourceKind, b.SourceRepo, b.SourceRef, b.SourceURL, labels, b.ID}); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func writeBoardMarkdown(path string, board []boardItem, bj boardJSON) error {
+ var buf bytes.Buffer
+ now := time.Now().Format("2006-01-02")
+ buf.WriteString("# CLIProxyAPI Ecosystem 2000-Item Execution Board\n\n")
+ buf.WriteString(fmt.Sprintf("- Generated: %s\n", now))
+ buf.WriteString("- Scope: `router-for-me/CLIProxyAPIPlus` + `router-for-me/CLIProxyAPI` Issues, PRs, Discussions\n")
+ buf.WriteString("- Objective: Implementation-ready backlog (up to 2000), including CLI extraction, bindings/API integration, docs quickstarts, and dev-runtime refresh\n\n")
+ buf.WriteString("## Coverage\n")
+ keys := []string{"generated_items", "sources_total_unique", "issues_plus", "issues_core", "prs_plus", "prs_core", "discussions_plus", "discussions_core"}
+ bj.Stats["generated_items"] = len(board)
+ for _, k := range keys {
+ buf.WriteString(fmt.Sprintf("- %s: %d\n", k, bj.Stats[k]))
+ }
+ buf.WriteString("\n## Distribution\n")
+ for _, sec := range []string{"priority", "wave", "effort", "theme"} {
+ buf.WriteString(fmt.Sprintf("### %s\n", strings.Title(sec)))
+ type kv struct {
+ K string
+ V int
+ }
+ var arr []kv
+ for k, v := range bj.Counts[sec] {
+ arr = append(arr, kv{K: k, V: v})
+ }
+ sort.Slice(arr, func(i, j int) bool {
+ if arr[i].V != arr[j].V {
+ return arr[i].V > arr[j].V
+ }
+ return arr[i].K < arr[j].K
+ })
+ for _, p := range arr {
+ buf.WriteString(fmt.Sprintf("- %s: %d\n", p.K, p.V))
+ }
+ buf.WriteString("\n")
+ }
+
+ buf.WriteString("## Top 250 (Execution Order)\n\n")
+ limit := 250
+ if len(board) < limit {
+ limit = len(board)
+ }
+ for _, b := range board[:limit] {
+ buf.WriteString(fmt.Sprintf("### [%s] %s\n", b.ID, b.Title))
+ buf.WriteString(fmt.Sprintf("- Priority: %s\n", b.Priority))
+ buf.WriteString(fmt.Sprintf("- Wave: %s\n", b.Wave))
+ buf.WriteString(fmt.Sprintf("- Effort: %s\n", b.Effort))
+ buf.WriteString(fmt.Sprintf("- Theme: %s\n", b.Theme))
+ buf.WriteString(fmt.Sprintf("- Source: %s %s\n", b.SourceRepo, b.SourceRef))
+ if b.SourceURL != "" {
+ buf.WriteString(fmt.Sprintf("- Source URL: %s\n", b.SourceURL))
+ }
+ buf.WriteString(fmt.Sprintf("- Implementation note: %s\n\n", b.ImplementationNote))
+ }
+ buf.WriteString("## Full 2000 Items\n")
+ buf.WriteString("- Use the CSV/JSON artifacts for full import and sorting.\n")
+
+ return os.WriteFile(path, buf.Bytes(), 0o644)
+}
+
+func newSeed(id, theme, title, priority, effort, wave string) boardItem {
+ return boardItem{
+ ID: id,
+ Theme: theme,
+ Title: title,
+ Priority: priority,
+ Effort: effort,
+ Wave: wave,
+ Status: "proposed",
+ ImplementationReady: "yes",
+ SourceKind: "strategy",
+ SourceRepo: "cross-repo",
+ SourceRef: "synthesis",
+ SourceURL: "",
+ ImplementationNote: "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.",
+ }
+}
+
+func pickTheme(text string) string {
+ t := strings.ToLower(text)
+ cases := []struct {
+ theme string
+ keys []string
+ }{
+ {"thinking-and-reasoning", []string{"reasoning", "thinking", "effort", "variant", "budget", "token"}},
+ {"responses-and-chat-compat", []string{"responses", "chat/completions", "translator", "message", "tool call", "response_format"}},
+ {"provider-model-registry", []string{"model", "registry", "alias", "metadata", "provider"}},
+ {"oauth-and-authentication", []string{"oauth", "login", "auth", "token exchange", "credential"}},
+ {"websocket-and-streaming", []string{"websocket", "sse", "stream", "delta", "chunk"}},
+ {"error-handling-retries", []string{"error", "retry", "429", "cooldown", "timeout", "backoff", "limit"}},
+ {"docs-quickstarts", []string{"readme", "docs", "quick start", "guide", "example", "tutorial"}},
+ {"install-and-ops", []string{"docker", "compose", "install", "build", "binary", "release", "ops"}},
+ {"cli-ux-dx", []string{"cli", "command", "flag", "wizard", "ux", "dx", "tui", "interactive"}},
+ {"testing-and-quality", []string{"test", "ci", "coverage", "lint", "benchmark", "contract"}},
+ }
+ for _, c := range cases {
+ for _, k := range c.keys {
+ if strings.Contains(t, k) {
+ return c.theme
+ }
+ }
+ }
+ return "general-polish"
+}
+
+func pickPriority(src sourceItem) string {
+ t := strings.ToLower(src.Title + " " + src.Body)
+ if containsAny(t, []string{"oauth", "login", "auth", "translator", "responses", "stream", "reasoning", "token exchange", "critical", "security", "429"}) {
+ return "P1"
+ }
+ if containsAny(t, []string{"docs", "readme", "guide", "example", "polish", "ux", "dx"}) {
+ return "P3"
+ }
+ return "P2"
+}
+
+func pickEffort(src sourceItem) string {
+ switch src.Kind {
+ case "discussion":
+ return "S"
+ case "pr":
+ return "M"
+ default:
+ return "S"
+ }
+}
+
+func pickWave(priority, effort string) string {
+ if priority == "P1" && (effort == "S" || effort == "M") {
+ return "wave-1"
+ }
+ if priority == "P1" && effort == "L" {
+ return "wave-2"
+ }
+ if priority == "P2" {
+ return "wave-2"
+ }
+ return "wave-3"
+}
+
+func clean(s string) string {
+ s = strings.TrimSpace(s)
+ if s == "" {
+ return s
+ }
+ return strings.Join(strings.Fields(s), " ")
+}
+
+func containsAny(s string, tokens []string) bool {
+ for _, t := range tokens {
+ if strings.Contains(s, t) {
+ return true
+ }
+ }
+ return false
+}
+
+func shrink(s string, max int) string {
+ if len(s) <= max {
+ return s
+ }
+ return s[:max]
+}
+
+func readJSON(path string, out any) error {
+ b, err := os.ReadFile(path)
+ if err != nil {
+ return err
+ }
+ return json.Unmarshal(b, out)
+}
+
+func labelsFromAny(v any) []string {
+ arr, ok := v.([]any)
+ if !ok {
+ return nil
+ }
+ out := make([]string, 0, len(arr))
+ for _, it := range arr {
+ m, ok := it.(map[string]any)
+ if !ok {
+ continue
+ }
+ name := strFromAny(m["name"])
+ if name != "" {
+ out = append(out, name)
+ }
+ }
+ return out
+}
+
+func intFromAny(v any) int {
+ switch t := v.(type) {
+ case float64:
+ return int(t)
+ case int:
+ return t
+ case json.Number:
+ i, _ := t.Int64()
+ return int(i)
+ default:
+ return 0
+ }
+}
+
+func strFromAny(v any) string {
+ if v == nil {
+ return ""
+ }
+ s, ok := v.(string)
+ if ok {
+ return s
+ }
+ return fmt.Sprintf("%v", v)
+}
+
+func ternary(cond bool, a, b string) string {
+ if cond {
+ return a
+ }
+ return b
+}
+
+func run(name string, args ...string) ([]byte, error) {
+ cmd := exec.Command(name, args...)
+ cmd.Env = os.Environ()
+ out, err := cmd.CombinedOutput()
+ if err != nil {
+ return nil, fmt.Errorf("command failed: %s %s: %w; output=%s", name, strings.Join(args, " "), err, string(out))
+ }
+ return out, nil
+}
+
+func must(err error) {
+ if err != nil {
+ fail(err)
+ }
+}
+
+func fail(err error) {
+ if err == nil {
+ err = errors.New("unknown error")
+ }
+ fmt.Fprintln(os.Stderr, err.Error())
+ os.Exit(1)
+}
diff --git a/cmd/server/main.go b/cmd/server/main.go
index e2854049ad..8cca52f17b 100644
--- a/cmd/server/main.go
+++ b/cmd/server/main.go
@@ -663,15 +663,15 @@ func main() {
}
}
} else {
- // Start the main proxy service
- managementasset.StartAutoUpdater(context.Background(), configFilePath)
+ // Start the main proxy service
+ managementasset.StartAutoUpdater(context.Background(), configFilePath)
- if cfg.AuthDir != "" {
- kiro.InitializeAndStart(cfg.AuthDir, cfg)
- defer kiro.StopGlobalRefreshManager()
- }
+ if cfg.AuthDir != "" {
+ kiro.InitializeAndStart(cfg.AuthDir, cfg)
+ defer kiro.StopGlobalRefreshManager()
+ }
- cmd.StartService(cfg, configFilePath, password)
+ cmd.StartService(cfg, configFilePath, password)
}
}
}
diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index 32ecabf97d..a8cb31448f 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -16,6 +16,7 @@ export default defineConfig({
{ text: "Getting Started", link: "/getting-started" },
{ text: "Providers", link: "/provider-usage" },
{ text: "Provider Catalog", link: "/provider-catalog" },
+ { text: "Planning", link: "/planning/" },
{ text: "Reference", link: "/routing-reference" },
{ text: "API", link: "/api/" },
{ text: "Docsets", link: "/docsets/" }
@@ -30,7 +31,8 @@ export default defineConfig({
{ text: "Provider Usage", link: "/provider-usage" },
{ text: "Provider Catalog", link: "/provider-catalog" },
{ text: "Provider Operations", link: "/provider-operations" },
- { text: "Troubleshooting", link: "/troubleshooting" }
+ { text: "Troubleshooting", link: "/troubleshooting" },
+ { text: "Planning Boards", link: "/planning/" }
]
},
{
diff --git a/docs/README.md b/docs/README.md
index 952afe9863..609b436539 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -36,6 +36,13 @@ This docs site is organized by onboarding guides, API reference, and audience-sp
- [Technical User](./docsets/user/index.md)
- [Agent Operator](./docsets/agent/index.md)
+## Planning and Boards
+
+- [Planning Index](./planning/index.md)
+- [Board Workflow](./planning/board-workflow.md)
+- [2000-Item Execution Board](./planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md)
+- [GitHub Project Import CSV](./planning/GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv)
+
## Canonical Project Docs
- [Root README](https://github.com/KooshaPari/cliproxyapi-plusplus/blob/main/README.md)
diff --git a/docs/docsets/developer/external/index.md b/docs/docsets/developer/external/index.md
index 1f55e5dd9b..02ceda5de5 100644
--- a/docs/docsets/developer/external/index.md
+++ b/docs/docsets/developer/external/index.md
@@ -13,6 +13,8 @@ For engineers integrating `cliproxyapi++` into external services or products.
2. [OpenAI-Compatible API](/api/openai-compatible)
3. [Provider Usage](/provider-usage)
4. [Routing and Models Reference](/routing-reference)
+5. [Planning Boards](/planning/)
+6. [Board Workflow](/planning/board-workflow)
## Design Guidelines
@@ -23,3 +25,5 @@ For engineers integrating `cliproxyapi++` into external services or products.
## Change Awareness
- [Feature Change Reference](../../../FEATURE_CHANGES_PLUSPLUS.md)
+- [2000-Item Execution Board](../../../planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md)
+- [GitHub Project Import CSV](../../../planning/GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv)
diff --git a/docs/docsets/index.md b/docs/docsets/index.md
index 8e5edbb12e..01a6b43c66 100644
--- a/docs/docsets/index.md
+++ b/docs/docsets/index.md
@@ -26,3 +26,5 @@ Audience-specific tracks for operating and integrating `cliproxyapi++`.
- [Getting Started](/getting-started)
- [API Index](/api/)
- [Troubleshooting](/troubleshooting)
+- [Planning Boards](/planning/)
+- [Board Workflow](/planning/board-workflow)
diff --git a/docs/index.md b/docs/index.md
index 9c2166e43a..bca72d60ce 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -25,6 +25,7 @@
5. [Provider Operations](/provider-operations) for on-call runbook and incident workflows.
6. [Routing and Models Reference](/routing-reference) for model resolution behavior.
7. [Troubleshooting](/troubleshooting) for common failures and concrete fixes.
+8. [Planning Boards](/planning/) for source-linked execution tracking and import-ready board artifacts.
## API Surfaces
@@ -37,6 +38,7 @@
- [Docsets](/docsets/) for user, developer, and agent-focused guidance.
- [Feature Guides](/features/) for deeper behavior and implementation notes.
+- [Planning Boards](/planning/) for source-to-solution mapping across issues, PRs, discussions, and external requests.
## Fast Verification Commands
diff --git a/docs/operations/auth-refresh-failure-symptom-fix.md b/docs/operations/auth-refresh-failure-symptom-fix.md
new file mode 100644
index 0000000000..fa7cff2771
--- /dev/null
+++ b/docs/operations/auth-refresh-failure-symptom-fix.md
@@ -0,0 +1,37 @@
+# Auth Refresh Failure Symptom/Fix Table
+
+Use this table when token refresh is failing for OAuth/session-based providers.
+
+| Symptom | How to Confirm | Fix |
+| --- | --- | --- |
+| Requests return repeated `401` after prior success | Check logs + provider metrics for auth errors | Trigger manual refresh: `POST /v0/management/auths/{provider}/refresh` |
+| Manual refresh returns `401` | Verify management key header | Use `Authorization: Bearer ` or `X-Management-Key` |
+| Manual refresh returns `404` | Check if management routes are enabled | Set `remote-management.secret-key`, restart service |
+| Refresh appears to run but token stays expired | Inspect auth files + provider-specific auth state | Re-login provider flow to regenerate refresh token |
+| Refresh failures spike after config change | Compare active config and recent deploy diff | Roll back auth/provider block changes, then re-apply safely |
+
+## Fast Commands
+
+```bash
+# Check management API is reachable
+curl -sS http://localhost:8317/v0/management/config \
+ -H "Authorization: Bearer " | jq
+
+# Trigger a refresh for one provider
+curl -sS -X POST http://localhost:8317/v0/management/auths//refresh \
+ -H "Authorization: Bearer " | jq
+
+# Inspect auth file summary
+curl -sS http://localhost:8317/v0/management/auth-files \
+ -H "Authorization: Bearer " | jq
+```
+
+## Related
+
+- [Provider Outage Triage Quick Guide](./provider-outage-triage-quick-guide.md)
+- [Critical Endpoints Curl Pack](./critical-endpoints-curl-pack.md)
+
+---
+Last reviewed: `2026-02-21`
+Owner: `Auth Runtime On-Call`
+Pattern: `YYYY-MM-DD`
diff --git a/docs/operations/checks-owner-responder-map.md b/docs/operations/checks-owner-responder-map.md
new file mode 100644
index 0000000000..13565e85ea
--- /dev/null
+++ b/docs/operations/checks-owner-responder-map.md
@@ -0,0 +1,28 @@
+# Checks-to-Owner Responder Map
+
+Route each failing check to the fastest owner path.
+
+| Check | Primary Owner | Secondary Owner | First Response |
+| --- | --- | --- | --- |
+| `GET /health` fails | Runtime On-Call | Platform On-Call | Verify process/pod status, restart if needed |
+| `GET /v1/models` fails/auth errors | Auth Runtime On-Call | Platform On-Call | Validate API key, provider auth files, refresh path |
+| `GET /v1/metrics/providers` shows one provider degraded | Platform On-Call | Provider Integrations | Shift traffic to fallback prefix/provider |
+| `GET /v0/management/config` returns `404` | Platform On-Call | Runtime On-Call | Enable `remote-management.secret-key`, restart |
+| `POST /v0/management/auths/{provider}/refresh` fails | Auth Runtime On-Call | Provider Integrations | Validate management key, rerun provider auth login |
+| Logs show sustained `429` | Platform On-Call | Capacity Owner | Reduce concurrency, add credentials/capacity |
+
+## Paging Guidelines
+
+1. Page primary owner immediately when critical user traffic is impacted.
+2. Add secondary owner if no mitigation within 10 minutes.
+3. Escalate incident lead when two or more critical checks fail together.
+
+## Related
+
+- [Provider Outage Triage Quick Guide](./provider-outage-triage-quick-guide.md)
+- [Auth Refresh Failure Symptom/Fix Table](./auth-refresh-failure-symptom-fix.md)
+
+---
+Last reviewed: `2026-02-21`
+Owner: `Incident Commander Rotation`
+Pattern: `YYYY-MM-DD`
diff --git a/docs/operations/critical-endpoints-curl-pack.md b/docs/operations/critical-endpoints-curl-pack.md
new file mode 100644
index 0000000000..a262f27445
--- /dev/null
+++ b/docs/operations/critical-endpoints-curl-pack.md
@@ -0,0 +1,64 @@
+# Critical Endpoints Curl Pack
+
+Copy/paste pack for first-response checks.
+
+## Runtime Canonical Probes
+
+```bash
+# Health probe
+curl -sS -f http://localhost:8317/health | jq
+
+# Operations provider status
+curl -sS -f http://localhost:8317/v0/operations/providers/status | jq
+
+# Operations load-balancing status
+curl -sS -f http://localhost:8317/v0/operations/load_balancing/status | jq
+
+# Runtime metrics surface (canonical unauth probe)
+curl -sS -f http://localhost:8317/v1/metrics/providers | jq
+
+# Exposed models (requires API key)
+curl -sS http://localhost:8317/v1/models \
+ -H "Authorization: Bearer " | jq '.data[:10]'
+```
+
+## Management Safety Checks
+
+```bash
+# Effective runtime config
+curl -sS http://localhost:8317/v0/management/config \
+ -H "Authorization: Bearer " | jq
+
+# Auth files snapshot
+curl -sS http://localhost:8317/v0/management/auth-files \
+ -H "Authorization: Bearer " | jq
+
+# Recent logs
+curl -sS "http://localhost:8317/v0/management/logs?lines=200" \
+ -H "Authorization: Bearer "
+```
+
+## Auth Refresh Action
+
+```bash
+curl -sS -X POST \
+ http://localhost:8317/v0/management/auths//refresh \
+ -H "Authorization: Bearer " | jq
+```
+
+## Deprecated Probes (Not Implemented In Runtime Yet)
+
+```bash
+# Deprecated: cooldown endpoints are not currently registered
+curl -sS http://localhost:8317/v0/operations/cooldown/status
+```
+
+## Use With
+
+- [Provider Outage Triage Quick Guide](./provider-outage-triage-quick-guide.md)
+- [Checks-to-Owner Responder Map](./checks-owner-responder-map.md)
+
+---
+Last reviewed: `2026-02-21`
+Owner: `SRE`
+Pattern: `YYYY-MM-DD`
diff --git a/docs/operations/distributed-fs-compute-status.md b/docs/operations/distributed-fs-compute-status.md
new file mode 100644
index 0000000000..39b494e1f6
--- /dev/null
+++ b/docs/operations/distributed-fs-compute-status.md
@@ -0,0 +1,185 @@
+# Distributed FS/Compute Status
+
+Last reviewed: `2026-02-21`
+Scope: current implementation status for distributed-ish auth storage, file-sync, and runtime compute control paths.
+
+## Status Matrix
+
+| Track | Status | Evidence (current code/docs) | Notes |
+| --- | --- | --- | --- |
+| Auth/config persistence backends (Postgres/Object/Git/File) | Implemented | `cmd/server/main.go:226`, `cmd/server/main.go:259`, `cmd/server/main.go:292`, `cmd/server/main.go:361`, `cmd/server/main.go:393`, `cmd/server/main.go:497` | Runtime can boot from multiple storage backends and register a shared token store. |
+| Local file-change ingestion (config + auth dir) | Implemented | `pkg/llmproxy/watcher/watcher.go:88`, `pkg/llmproxy/watcher/events.go:36`, `pkg/llmproxy/watcher/events.go:42`, `pkg/llmproxy/watcher/events.go:77` | Uses `fsnotify`; this is node-local watching, not a distributed event system. |
+| Auth update compute queue + burst drain | Implemented | `sdk/cliproxy/service.go:130`, `sdk/cliproxy/service.go:137`, `sdk/cliproxy/service.go:140`, `sdk/cliproxy/service.go:154`, `sdk/cliproxy/service.go:640` | Queue depth fixed at 256; drains backlog in tight loop. |
+| Runtime compute attachment via websocket provider sessions | Implemented | `sdk/cliproxy/service.go:535`, `sdk/cliproxy/service.go:537`, `sdk/cliproxy/service.go:230` | Websocket channels can add/remove runtime auths dynamically. |
+| Periodic auth refresh worker in core runtime | Implemented | `sdk/cliproxy/service.go:666` | Core manager auto-refresh starts at 15m interval. |
+| Provider metrics surface for ops dashboards | Implemented | `pkg/llmproxy/api/server.go:370` | `/v1/metrics/providers` is live and should be treated as current operational surface. |
+| Cooldown/recovery control plane endpoints (`/v0/operations/*`) | In Progress | `docs/features/operations/USER.md:720`, `docs/features/operations/USER.md:725`, `docs/features/operations/USER.md:740`; route reality: `pkg/llmproxy/api/server.go:331`, `pkg/llmproxy/api/server.go:518` | Docs/spec describe endpoints, but runtime only exposes `/v1` and `/v0/management` groups today. |
+| Liveness endpoint (`/health`) contract | Blocked | `docs/api/operations.md:12`, `docs/features/operations/USER.md:710`; no matching route registration in `pkg/llmproxy/api/server.go` | Ops docs and runtime are currently out of sync on health probe path. |
+| Distributed multi-node state propagation (cross-node auth event bus) | Blocked | local watcher model in `pkg/llmproxy/watcher/events.go:36`, `pkg/llmproxy/watcher/events.go:42`; queue wiring in `sdk/cliproxy/service.go:640` | Current flow is single-node event ingestion + local queue handling. |
+| Generic operations API for cooldown status/provider status/load-balancing status | Blocked | docs claims in `docs/features/operations/USER.md:720`, `docs/features/operations/USER.md:725`, `docs/features/operations/USER.md:740`; runtime routes in `pkg/llmproxy/api/server.go:331`, `pkg/llmproxy/api/server.go:518` | No concrete handler registration found for `/v0/operations/...` paths. |
+
+## Architecture Map (Current)
+
+```text
+Storage Backends (FS/Git/Postgres/Object)
+ -> token store registration (cmd/server/main.go)
+ -> core auth manager load (sdk/cliproxy/service.go)
+ -> watcher fsnotify loop (pkg/llmproxy/watcher/events.go)
+ -> auth update queue (sdk/cliproxy/service.go, buffered 256)
+ -> auth apply/update + model registration (sdk/cliproxy/service.go)
+ -> API server routes (/v1/* + /v0/management/* + /v1/metrics/providers)
+
+Parallel runtime path:
+Websocket gateway (/v1/ws and /v1/responses)
+ -> runtime auth add/remove events
+ -> same auth queue/apply pipeline
+```
+
+Key boundary today:
+- Distributed storage backends exist.
+- Distributed coordination plane does not (no cross-node watcher/event bus contract in runtime paths yet).
+
+## Next 10 Actionable Items
+
+1. Add a real `GET /health` route in `setupRoutes` and return dependency-aware status (`pkg/llmproxy/api/server.go`).
+2. Introduce `/v0/operations/providers/status` handler backed by core auth + registry/runtime provider state (`sdk/cliproxy/service.go`, `pkg/llmproxy/api/server.go`).
+3. Expose cooldown snapshot endpoint by wrapping existing Kiro cooldown manager state (`pkg/llmproxy/auth/kiro/cooldown.go`, `pkg/llmproxy/runtime/executor/kiro_executor.go`).
+4. Add `/v0/operations/load_balancing/status` using current selector/routing strategy already switched in reload callback (`sdk/cliproxy/service.go`).
+5. Emit queue depth/drain counters for `authUpdates` to make backpressure visible (`sdk/cliproxy/service.go:130`, `sdk/cliproxy/service.go:154`).
+6. Add API tests asserting presence/response shape for `/health` and `/v0/operations/*` once implemented (`pkg/llmproxy/api` test suite).
+7. Define a node identity + backend mode payload (file/git/postgres/object) for ops introspection using startup configuration paths (`cmd/server/main.go`).
+8. Add an optional cross-node event transport (Postgres `LISTEN/NOTIFY`) so non-local auth mutations can propagate without filesystem coupling. See [Actionable Item 8 Design Prep](#actionable-item-8-design-prep-postgres-listennotify).
+9. Reconcile docs with runtime in one pass: update `docs/features/operations/USER.md` and `docs/api/operations.md` to only list implemented endpoints until new handlers ship.
+10. Extend `docs/operations/critical-endpoints-curl-pack.md` with the new canonical health + operations endpoints after implementation, and deprecate stale probes.
+
+## Actionable Item 8 Design Prep (Postgres LISTEN/NOTIFY)
+
+Goal: propagate auth/config mutation events across nodes without changing existing local watcher semantics.
+
+Design constraints:
+- Non-breaking: current single-node fsnotify + local queue path remains default.
+- Optional transport: only enabled when a Postgres DSN and feature flag are set.
+- At-least-once delivery semantics with idempotent consumer behavior.
+- No cross-node hard dependency for startup; service must run if transport is disabled.
+
+### Proposed Transport Shape
+
+Channel:
+- `cliproxy_auth_events_v1`
+
+Emit path (future runtime implementation):
+- On successful local auth/config mutation apply, issue `NOTIFY cliproxy_auth_events_v1, ''`.
+- Local origin node should still process its own queue directly (no dependency on loopback notify).
+
+Receive path (future runtime implementation):
+- Dedicated listener connection executes `LISTEN cliproxy_auth_events_v1`.
+- Each received payload is validated, deduped, and enqueued onto existing `authUpdates` path.
+
+### Payload Schema (JSON)
+
+```json
+{
+ "schema_version": 1,
+ "event_id": "01JZ9Y2SM9BZXW4KQY4R6X8J6W",
+ "event_type": "auth.upsert",
+ "occurred_at": "2026-02-21T08:30:00Z",
+ "origin": {
+ "node_id": "node-a-01",
+ "instance_id": "pod/cliproxy-7f6f4db96b-w2x9d",
+ "backend_mode": "postgres"
+ },
+ "subject": {
+ "auth_id": "openai-default",
+ "provider": "openai",
+ "tenant_id": "default"
+ },
+ "mutation": {
+ "revision": 42,
+ "kind": "upsert",
+ "reason": "api_write"
+ },
+ "correlation": {
+ "request_id": "req_123",
+ "actor": "operations-api"
+ }
+}
+```
+
+Field notes:
+- `event_id`: ULID/UUID for dedupe.
+- `event_type`: enum candidate set: `auth.upsert`, `auth.delete`, `config.reload`.
+- `mutation.revision`: monotonically increasing per `auth_id` if available; otherwise omitted and dedupe uses `event_id`.
+- `origin.node_id`: stable node identity from startup config.
+
+### Failure Modes and Handling
+
+1. Notify payload dropped or listener disconnect:
+- Risk: missed event on one or more nodes.
+- Handling: periodic reconciliation poll (`N` minutes) compares latest auth/config revision and self-heals drift.
+
+2. Duplicate delivery (at-least-once):
+- Risk: repeated apply work.
+- Handling: dedupe cache keyed by `event_id` (TTL 10-30m) before enqueue.
+
+3. Out-of-order events:
+- Risk: stale mutation applied after newer one.
+- Handling: if `mutation.revision` exists, ignore stale revisions per `auth_id`; otherwise rely on timestamp guard plus eventual reconcile.
+
+4. Oversized payload (> Postgres NOTIFY payload limit):
+- Risk: event reject/truncation.
+- Handling: keep payload metadata-only; never include secrets/token material; fetch full state from source-of-truth store on consume.
+
+5. Channel flood/backpressure:
+- Risk: queue saturation and delayed apply.
+- Handling: preserve current bounded queue; add drop/lag metrics and alert thresholds before turning feature on by default.
+
+6. Poison payload (invalid JSON/schema):
+- Risk: listener crash or stuck loop.
+- Handling: strict decode + schema validation, count and discard invalid events, continue loop.
+
+### Rollout Plan (Non-Breaking)
+
+Phase 0: Design + observability prep (this track)
+- Finalize schema and channel names.
+- Add docs for SLOs and required metrics.
+
+Phase 1: Dark launch behind feature flag
+- Add emitter/listener code paths disabled by default.
+- Enable only in one non-prod environment.
+- Validate no behavior change with flag off.
+
+Phase 2: Canary
+- Enable on 1 node in a multi-node staging cluster.
+- Verify cross-node propagation latency and dedupe hit rate.
+- Run failover drills (listener reconnect, DB restart).
+
+Phase 3: Staged production enablement
+- Enable for low-risk tenants first.
+- Keep reconciliation poll as safety net.
+- Roll back by toggling flag off (local path still active).
+
+Phase 4: Default-on decision
+- Require stable error budget over 2 release cycles.
+- Promote only after ops sign-off on latency, drift, and invalid-event rates.
+
+### Test Plan
+
+Unit tests:
+- Payload encode/decode and schema validation.
+- Dedupe cache behavior for duplicate `event_id`.
+- Revision ordering guard (`newer` wins).
+
+Integration tests (Postgres-backed):
+- Node A emits `auth.upsert`, Node B receives and enqueues.
+- Listener reconnect after forced connection drop.
+- Invalid payload does not crash listener loop.
+
+Resilience tests:
+- Burst notifications at > steady-state rate to validate queue pressure behavior.
+- Simulated dropped notifications followed by reconciliation repair.
+- Postgres restart during active mutation traffic.
+
+Operational acceptance criteria:
+- P95 propagation latency target defined and met in staging.
+- No secret/token bytes present in emitted payload logs/metrics.
+- Drift detector returns to zero after reconciliation window.
diff --git a/docs/operations/index.md b/docs/operations/index.md
new file mode 100644
index 0000000000..a4ff651270
--- /dev/null
+++ b/docs/operations/index.md
@@ -0,0 +1,20 @@
+# Operations Response Kit
+
+This section centralizes first-response runbooks for active incidents.
+
+## Status Tracking
+
+- [Distributed FS/Compute Status](./distributed-fs-compute-status.md)
+
+## Use This Order During Incidents
+
+1. [Provider Outage Triage Quick Guide](./provider-outage-triage-quick-guide.md)
+2. [Auth Refresh Failure Symptom/Fix Table](./auth-refresh-failure-symptom-fix.md)
+3. [Critical Endpoints Curl Pack](./critical-endpoints-curl-pack.md)
+4. [Checks-to-Owner Responder Map](./checks-owner-responder-map.md)
+
+## Freshness Pattern
+
+- Last reviewed: `2026-02-21`
+- Date format standard: `YYYY-MM-DD`
+- Owner field pattern: `Owner: `
diff --git a/docs/operations/provider-outage-triage-quick-guide.md b/docs/operations/provider-outage-triage-quick-guide.md
new file mode 100644
index 0000000000..ef02199496
--- /dev/null
+++ b/docs/operations/provider-outage-triage-quick-guide.md
@@ -0,0 +1,41 @@
+# Provider Outage Triage Quick Guide
+
+Use this quick guide when a provider starts failing or latency spikes.
+
+## 5-Minute Flow
+
+1. Confirm process health:
+ - `curl -sS -f http://localhost:8317/health`
+2. Confirm exposed models still look normal:
+ - `curl -sS http://localhost:8317/v1/models -H "Authorization: Bearer " | jq '.data | length'`
+3. Inspect provider metrics for the failing provider:
+ - `curl -sS http://localhost:8317/v1/metrics/providers | jq`
+4. Check logs for repeated status codes (`401`, `403`, `429`, `5xx`).
+5. Reroute critical traffic to fallback prefix/provider.
+
+## Decision Hints
+
+| Symptom | Likely Cause | Immediate Action |
+| --- | --- | --- |
+| One provider has high error ratio, others healthy | Upstream outage/degradation | Shift traffic to fallback provider prefix |
+| Mostly `401/403` | Expired/invalid provider auth | Run auth refresh checks and manual refresh |
+| Mostly `429` | Upstream throttling | Lower concurrency and shift non-critical traffic |
+| `/v1/models` missing expected models | Provider config/auth problem | Recheck provider block, auth file, and filters |
+
+## Escalation Trigger
+
+Escalate after 10 minutes if any one is true:
+
+- No successful requests for a critical workload.
+- Error ratio remains above on-call threshold after reroute.
+- Two independent providers are simultaneously degraded.
+
+## Related
+
+- [Critical Endpoints Curl Pack](./critical-endpoints-curl-pack.md)
+- [Checks-to-Owner Responder Map](./checks-owner-responder-map.md)
+
+---
+Last reviewed: `2026-02-21`
+Owner: `Platform On-Call`
+Pattern: `YYYY-MM-DD`
diff --git a/docs/operations/release-governance.md b/docs/operations/release-governance.md
new file mode 100644
index 0000000000..29c9b24bf7
--- /dev/null
+++ b/docs/operations/release-governance.md
@@ -0,0 +1,55 @@
+# Release Governance and Checklist
+
+Use this runbook before creating a release tag.
+
+## 1) Release Gate: Required Checks Must Be Green
+
+Release workflow gate:
+
+- Workflow: `.github/workflows/release.yaml`
+- Required-check manifest: `.github/release-required-checks.txt`
+- Rule: all listed checks for the tagged commit SHA must have at least one successful check run.
+
+If any required check is missing or non-successful, release stops before Goreleaser.
+
+## 2) Breaking Provider Behavior Checklist
+
+Complete this section for any change that can alter provider behavior, auth semantics, model routing, or fallback behavior.
+
+- [ ] `provider-catalog.md` updated with behavior impact and rollout notes.
+- [ ] `routing-reference.md` updated when model selection/routing semantics changed.
+- [ ] `provider-operations.md` updated with new mitigation/fallback/monitoring actions.
+- [ ] Backward compatibility impact documented (prefix rules, alias behavior, auth expectations).
+- [ ] `/v1/models` and `/v1/metrics/providers` validation evidence captured for release notes.
+- [ ] Any breaking behavior flagged in changelog under the correct scope (`auth`, `routing`, `docs`, `security`).
+
+## 3) Changelog Scope Classifier Policy
+
+CI classifier check:
+
+- Workflow: `.github/workflows/pr-test-build.yml`
+- Job name: `changelog-scope-classifier`
+- Scopes emitted: `auth`, `routing`, `docs`, `security` (or `none` if no scope match)
+
+Classifier is path-based and intended to keep release notes consistently scoped.
+
+## 4) Pre-release Config Compatibility Smoke Test
+
+CI smoke check:
+
+- Workflow: `.github/workflows/pr-test-build.yml`
+- Job name: `pre-release-config-compat-smoke`
+- Verifies:
+ - `config.example.yaml` loads via config parser.
+ - OAuth model alias migration runs successfully.
+ - migrated config reloads successfully.
+
+## Related
+
+- [Required Branch Check Ownership](./required-branch-check-ownership.md)
+- [Checks-to-Owner Responder Map](./checks-owner-responder-map.md)
+
+---
+Last reviewed: `2026-02-21`
+Owner: `Release Engineering`
+Pattern: `YYYY-MM-DD`
diff --git a/docs/operations/required-branch-check-ownership.md b/docs/operations/required-branch-check-ownership.md
new file mode 100644
index 0000000000..24a8f490f5
--- /dev/null
+++ b/docs/operations/required-branch-check-ownership.md
@@ -0,0 +1,42 @@
+# Required Branch Check Ownership
+
+Ownership map for required checks and release gate manifests.
+
+## Required Check Sources
+
+- Branch protection check manifest: `.github/required-checks.txt`
+- Release gate check manifest: `.github/release-required-checks.txt`
+- Name integrity guard workflow: `.github/workflows/required-check-names-guard.yml`
+
+## Ownership Matrix
+
+| Surface | Owner | Backup | Notes |
+| --- | --- | --- | --- |
+| `.github/required-checks.txt` | Release Engineering | Platform On-Call | Controls required check names for branch governance |
+| `.github/release-required-checks.txt` | Release Engineering | Platform On-Call | Controls release gate required checks |
+| `.github/workflows/pr-test-build.yml` check names | CI Maintainers | Release Engineering | Check names must stay stable or manifests must be updated |
+| `.github/workflows/release.yaml` release gate | Release Engineering | CI Maintainers | Must block releases when required checks are not green |
+| `.github/workflows/required-check-names-guard.yml` | CI Maintainers | Release Engineering | Prevents silent drift between manifests and workflow check names |
+
+## Change Procedure
+
+1. Update workflow job name(s) and required-check manifest(s) in the same PR.
+2. Ensure `required-check-names-guard` passes.
+3. Confirm branch protection required checks in GitHub settings match manifest names.
+4. For release gate changes, verify `.github/release-required-checks.txt` remains in sync with release expectations.
+
+## Escalation
+
+- If a required check disappears unexpectedly: page `CI Maintainers`.
+- If release gate blocks valid release due to manifest drift: page `Release Engineering`.
+- If branch protection and manifest diverge: escalate to `Platform On-Call`.
+
+## Related
+
+- [Release Governance and Checklist](./release-governance.md)
+- [Checks-to-Owner Responder Map](./checks-owner-responder-map.md)
+
+---
+Last reviewed: `2026-02-21`
+Owner: `Release Engineering`
+Pattern: `YYYY-MM-DD`
diff --git a/docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.csv b/docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.csv
new file mode 100644
index 0000000000..376f49012b
--- /dev/null
+++ b/docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.csv
@@ -0,0 +1,1001 @@
+id,theme,title,priority,effort,source_kind,source_repo,source_ref,source_url,status,action
+CPB-0001,platform-architecture,"Extract a standalone Go mgmt CLI from thegent-owned cliproxy flows (`install`, `doctor`, `login`, `models`, `watch`, `reload`).",P1,L,strategy,cross-repo,synthesis,,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0002,platform-architecture,Define non-subprocess integration surface for thegent: local Go bindings (preferred) and HTTP API fallback with capability negotiation.,P1,L,strategy,cross-repo,synthesis,,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0003,install-and-ops,"Add `cliproxy dev` process-compose profile with hot reload, config regeneration watch, and explicit `refresh` command.",P1,M,strategy,cross-repo,synthesis,,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0004,docs-quickstarts,"Ship provider-specific quickstarts (Codex, Claude, Gemini, Copilot, Kiro, MiniMax, OpenAI-compat) with 5-minute success path.",P1,M,strategy,cross-repo,synthesis,,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0005,docs-quickstarts,"Create troubleshooting matrix: auth failures, model not found, reasoning mismatch, stream parse faults, timeout classes.",P1,M,strategy,cross-repo,synthesis,,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0006,cli-ux-dx,"Introduce interactive first-run setup wizard in Go CLI with profile detection, auth choice, and post-check summary.",P1,M,strategy,cross-repo,synthesis,,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0007,cli-ux-dx,Add `cliproxy doctor --fix` with deterministic remediation steps and machine-readable JSON report mode.,P1,M,strategy,cross-repo,synthesis,,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0008,testing-and-quality,Establish conformance suite for OpenAI Responses + Chat Completions translation across all providers.,P1,L,strategy,cross-repo,synthesis,,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0009,testing-and-quality,"Add golden fixture tests for reasoning controls (`variant`, `reasoning_effort`, `reasoning.effort`, model suffix).",P1,M,strategy,cross-repo,synthesis,,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0010,project-frontmatter,"Rewrite repo frontmatter: mission, architecture, support policy, compatibility matrix, release channels, contribution path.",P2,M,strategy,cross-repo,synthesis,,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0011,general-polish,"Follow up on ""kiro账号被封"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#221,https://github.com/router-for-me/CLIProxyAPIPlus/issues/221,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0012,thinking-and-reasoning,"Harden ""Opus 4.6"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#219,https://github.com/router-for-me/CLIProxyAPIPlus/issues/219,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0013,responses-and-chat-compat,"Operationalize ""Bug: MergeAdjacentMessages drops tool_calls from assistant messages"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPIPlus,issue#217,https://github.com/router-for-me/CLIProxyAPIPlus/issues/217,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0014,thinking-and-reasoning,"Convert ""Add support for proxying models from kilocode CLI"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPIPlus,issue#213,https://github.com/router-for-me/CLIProxyAPIPlus/issues/213,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0015,responses-and-chat-compat,"Add DX polish around ""[Bug] Kiro 与 Ampcode 的 Bash 工具参数不兼容"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#210,https://github.com/router-for-me/CLIProxyAPIPlus/issues/210,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0016,provider-model-registry,"Expand docs and examples for ""[Feature Request] Add default oauth-model-alias for Kiro channel (like Antigravity)"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#208,https://github.com/router-for-me/CLIProxyAPIPlus/issues/208,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0017,docs-quickstarts,"Create/refresh provider quickstart derived from ""bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#206,https://github.com/router-for-me/CLIProxyAPIPlus/issues/206,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0018,thinking-and-reasoning,"Refactor implementation behind ""GitHub Copilot CLI 使用方法"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#202,https://github.com/router-for-me/CLIProxyAPIPlus/issues/202,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0019,go-cli-extraction,"Port relevant thegent-managed flow implied by ""failed to save config: open /CLIProxyAPI/config.yaml: read-only file system"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#201,https://github.com/router-for-me/CLIProxyAPIPlus/issues/201,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0020,general-polish,"Standardize metadata and naming conventions touched by ""gemini能不能设置配额,自动禁用 ,自动启用?"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#200,https://github.com/router-for-me/CLIProxyAPIPlus/issues/200,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0021,provider-model-registry,"Follow up on ""Cursor CLI \ Auth Support"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#198,https://github.com/router-for-me/CLIProxyAPIPlus/issues/198,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0022,oauth-and-authentication,"Harden ""Why no opus 4.6 on github copilot auth"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#196,https://github.com/router-for-me/CLIProxyAPIPlus/issues/196,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0023,integration-api-bindings,"Define non-subprocess integration path related to ""why no kiro in dashboard"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#183,https://github.com/router-for-me/CLIProxyAPIPlus/issues/183,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0024,general-polish,"Convert ""OpenAI-MLX-Server and vLLM-MLX Support?"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#179,https://github.com/router-for-me/CLIProxyAPIPlus/issues/179,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0025,thinking-and-reasoning,"Add DX polish around ""Claude thought_signature forwarded to Gemini causes Base64 decode error"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#178,https://github.com/router-for-me/CLIProxyAPIPlus/issues/178,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0026,thinking-and-reasoning,"Expand docs and examples for ""Kiro Token 导入失败: Refresh token is required"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPIPlus,issue#177,https://github.com/router-for-me/CLIProxyAPIPlus/issues/177,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0027,general-polish,"Add QA scenarios for ""Kimi Code support"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#169,https://github.com/router-for-me/CLIProxyAPIPlus/issues/169,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0028,general-polish,"Refactor implementation behind ""kiro如何看配额?"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#165,https://github.com/router-for-me/CLIProxyAPIPlus/issues/165,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0029,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""kiro反代的Write工具json截断问题,返回的文件路径经常是错误的"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#164,https://github.com/router-for-me/CLIProxyAPIPlus/issues/164,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0030,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""fix(kiro): handle empty content in messages to prevent Bad Request errors"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#163,https://github.com/router-for-me/CLIProxyAPIPlus/issues/163,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0031,responses-and-chat-compat,"Follow up on ""在配置文件中支持为所有 OAuth 渠道自定义上游 URL"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#158,https://github.com/router-for-me/CLIProxyAPIPlus/issues/158,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0032,general-polish,"Harden ""kiro反代出现重复输出的情况"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#160,https://github.com/router-for-me/CLIProxyAPIPlus/issues/160,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0033,thinking-and-reasoning,"Operationalize ""kiro IDC 刷新 token 失败"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#149,https://github.com/router-for-me/CLIProxyAPIPlus/issues/149,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0034,docs-quickstarts,"Create/refresh provider quickstart derived from ""请求docker部署支持arm架构的机器!感谢。"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#147,https://github.com/router-for-me/CLIProxyAPIPlus/issues/147,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0035,websocket-and-streaming,"Add DX polish around ""[Feature Request] 请求增加 Kiro 配额的展示功能"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#146,https://github.com/router-for-me/CLIProxyAPIPlus/issues/146,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0036,thinking-and-reasoning,"Expand docs and examples for ""[Bug]进一步完善 openai兼容模式对 claude 模型的支持(完善 协议格式转换 )"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#145,https://github.com/router-for-me/CLIProxyAPIPlus/issues/145,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0037,thinking-and-reasoning,"Add QA scenarios for ""完善 claude openai兼容渠道的格式转换"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#142,https://github.com/router-for-me/CLIProxyAPIPlus/issues/142,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0038,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Kimi For Coding Support / 请求为 Kimi 添加编程支持"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#141,https://github.com/router-for-me/CLIProxyAPIPlus/issues/141,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0039,responses-and-chat-compat,"Ensure rollout safety for ""kiro idc登录需要手动刷新状态"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#136,https://github.com/router-for-me/CLIProxyAPIPlus/issues/136,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0040,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""[Bug Fix] 修复 Kiro 的Claude模型非流式请求 output_tokens 为 0 导致的用量统计缺失"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#134,https://github.com/router-for-me/CLIProxyAPIPlus/issues/134,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0041,general-polish,"Follow up on ""Routing strategy ""fill-first"" is not working as expected"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#133,https://github.com/router-for-me/CLIProxyAPIPlus/issues/133,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0042,responses-and-chat-compat,"Harden ""WARN kiro_executor.go:1189 kiro: received 400 error (attempt 1/3), body: {""message"":""Improperly formed request."",""reason"":null}"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#131,https://github.com/router-for-me/CLIProxyAPIPlus/issues/131,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0043,cli-ux-dx,"Operationalize ""CLIProxyApiPlus不支持像CLIProxyApi一样使用ClawCloud云部署吗?"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#129,https://github.com/router-for-me/CLIProxyAPIPlus/issues/129,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0044,cli-ux-dx,"Convert ""kiro的social凭证无法刷新过期时间。"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#128,https://github.com/router-for-me/CLIProxyAPIPlus/issues/128,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0045,responses-and-chat-compat,"Add DX polish around ""Error 403"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#125,https://github.com/router-for-me/CLIProxyAPIPlus/issues/125,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0046,integration-api-bindings,"Define non-subprocess integration path related to ""Gemini3无法生图"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#122,https://github.com/router-for-me/CLIProxyAPIPlus/issues/122,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0047,thinking-and-reasoning,"Add QA scenarios for ""enterprise 账号 Kiro不是很稳定,很容易就403不可用了"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#118,https://github.com/router-for-me/CLIProxyAPIPlus/issues/118,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0048,oauth-and-authentication,"Refactor implementation behind ""-kiro-aws-login 登录后一直封号"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#115,https://github.com/router-for-me/CLIProxyAPIPlus/issues/115,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0049,provider-model-registry,"Ensure rollout safety for ""[Bug]Copilot Premium usage significantly amplified when using amp"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#113,https://github.com/router-for-me/CLIProxyAPIPlus/issues/113,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0050,oauth-and-authentication,"Standardize metadata and naming conventions touched by ""Antigravity authentication failed"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#111,https://github.com/router-for-me/CLIProxyAPIPlus/issues/111,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0051,docs-quickstarts,"Create/refresh provider quickstart derived from ""大佬,什么时候搞个多账号管理呀"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#108,https://github.com/router-for-me/CLIProxyAPIPlus/issues/108,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0052,oauth-and-authentication,"Harden ""日志中,一直打印auth file changed (WRITE)"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#105,https://github.com/router-for-me/CLIProxyAPIPlus/issues/105,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0053,oauth-and-authentication,"Operationalize ""登录incognito参数无效"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#102,https://github.com/router-for-me/CLIProxyAPIPlus/issues/102,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0054,thinking-and-reasoning,"Convert ""OpenAI-compat provider hardcodes /v1/models (breaks Z.ai v4: /api/coding/paas/v4/models)"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPIPlus,issue#101,https://github.com/router-for-me/CLIProxyAPIPlus/issues/101,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0055,general-polish,"Add DX polish around ""ADD TRAE IDE support"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#97,https://github.com/router-for-me/CLIProxyAPIPlus/issues/97,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0056,responses-and-chat-compat,"Expand docs and examples for ""Kiro currently has no authentication available"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPIPlus,issue#96,https://github.com/router-for-me/CLIProxyAPIPlus/issues/96,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0057,go-cli-extraction,"Port relevant thegent-managed flow implied by ""GitHub Copilot Model Call Failure"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#99,https://github.com/router-for-me/CLIProxyAPIPlus/issues/99,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0058,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Feature: Add Veo Video Generation Support (Similar to Image Generation)"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#94,https://github.com/router-for-me/CLIProxyAPIPlus/issues/94,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0059,thinking-and-reasoning,"Ensure rollout safety for ""Bug: Kiro/BuilderId tokens can collide when email/profile_arn are empty; refresh token lifecycle not handled"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#90,https://github.com/router-for-me/CLIProxyAPIPlus/issues/90,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0060,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""[Bug] Amazon Q endpoint returns HTTP 400 ValidationException (wrong CLI/KIRO_CLI origin)"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#89,https://github.com/router-for-me/CLIProxyAPIPlus/issues/89,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0061,provider-model-registry,"Follow up on ""UI 上没有 Kiro 配置的入口,或者说想添加 Kiro 支持,具体该怎么做"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPIPlus,issue#87,https://github.com/router-for-me/CLIProxyAPIPlus/issues/87,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0062,responses-and-chat-compat,"Harden ""Cursor Issue"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#86,https://github.com/router-for-me/CLIProxyAPIPlus/issues/86,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0063,thinking-and-reasoning,"Operationalize ""Feature request: Configurable HTTP request timeout for Extended Thinking models"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#84,https://github.com/router-for-me/CLIProxyAPIPlus/issues/84,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0064,responses-and-chat-compat,"Convert ""kiro请求偶尔报错event stream fatal"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#83,https://github.com/router-for-me/CLIProxyAPIPlus/issues/83,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0065,error-handling-retries,"Add DX polish around ""failed to load config: failed to read config file: read /CLIProxyAPI/config.yaml: is a directory"" through improved command ergonomics and faster feedback loops.",P3,S,issue,router-for-me/CLIProxyAPIPlus,issue#81,https://github.com/router-for-me/CLIProxyAPIPlus/issues/81,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0066,oauth-and-authentication,"Expand docs and examples for ""[建议] 技术大佬考虑可以有机会新增一堆逆向平台"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#79,https://github.com/router-for-me/CLIProxyAPIPlus/issues/79,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0067,thinking-and-reasoning,"Add QA scenarios for ""Issue with removed parameters - Sequential Thinking Tool Failure (nextThoughtNeeded undefined)"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#78,https://github.com/router-for-me/CLIProxyAPIPlus/issues/78,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0068,docs-quickstarts,"Create/refresh provider quickstart derived from ""kiro请求的数据好像一大就会出错,导致cc写入文件失败"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#77,https://github.com/router-for-me/CLIProxyAPIPlus/issues/77,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0069,integration-api-bindings,"Define non-subprocess integration path related to ""[Bug] Kiro multi-account support broken - auth file overwritten on re-login"" (Go bindings surface + HTTP fallback contract + version negotiation).",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#76,https://github.com/router-for-me/CLIProxyAPIPlus/issues/76,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0070,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Claude Code WebSearch fails with 400 error when using Kiro/Amazon Q backend"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#72,https://github.com/router-for-me/CLIProxyAPIPlus/issues/72,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0071,responses-and-chat-compat,"Follow up on ""[BUG] Vision requests fail for ZAI (glm) and Copilot models with missing header / invalid parameter errors"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPIPlus,issue#69,https://github.com/router-for-me/CLIProxyAPIPlus/issues/69,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0072,general-polish,"Harden ""怎么更新iflow的模型列表。"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#66,https://github.com/router-for-me/CLIProxyAPIPlus/issues/66,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0073,oauth-and-authentication,"Operationalize ""How to use KIRO with IAM?"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#56,https://github.com/router-for-me/CLIProxyAPIPlus/issues/56,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0074,provider-model-registry,"Convert ""[Bug] Models from Codex (openai) are not accessible when Copilot is added"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#43,https://github.com/router-for-me/CLIProxyAPIPlus/issues/43,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0075,responses-and-chat-compat,"Add DX polish around ""model gpt-5.1-codex-mini is not accessible via the /chat/completions endpoint"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#41,https://github.com/router-for-me/CLIProxyAPIPlus/issues/41,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0076,go-cli-extraction,"Port relevant thegent-managed flow implied by ""GitHub Copilot models seem to be hardcoded"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#37,https://github.com/router-for-me/CLIProxyAPIPlus/issues/37,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0077,general-polish,"Add QA scenarios for ""plus版本只能自己构建吗?"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#34,https://github.com/router-for-me/CLIProxyAPIPlus/issues/34,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0078,install-and-ops,"Refactor implementation behind ""kiro命令登录没有端口"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPIPlus,issue#30,https://github.com/router-for-me/CLIProxyAPIPlus/issues/30,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0079,thinking-and-reasoning,"Ensure rollout safety for ""lack of thinking signature in kiro's non-stream response cause incompatibility with some ai clients (specifically cherry studio)"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#27,https://github.com/router-for-me/CLIProxyAPIPlus/issues/27,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0080,oauth-and-authentication,"Standardize metadata and naming conventions touched by ""I did not find the Kiro entry in the Web UI"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#26,https://github.com/router-for-me/CLIProxyAPIPlus/issues/26,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0081,thinking-and-reasoning,"Follow up on ""Kiro (AWS CodeWhisperer) - Stream error, status: 400"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPIPlus,issue#7,https://github.com/router-for-me/CLIProxyAPIPlus/issues/7,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0082,provider-model-registry,"Harden ""BUG: Cannot use Claude Models in Codex CLI"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1671,https://github.com/router-for-me/CLIProxyAPI/issues/1671,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0083,responses-and-chat-compat,"Operationalize ""feat: support image content in tool result messages (OpenAI ↔ Claude translation)"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1670,https://github.com/router-for-me/CLIProxyAPI/issues/1670,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0084,docs-quickstarts,"Convert ""docker镜像及docker相关其它优化建议"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1669,https://github.com/router-for-me/CLIProxyAPI/issues/1669,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0085,docs-quickstarts,"Create/refresh provider quickstart derived from ""Need maintainer-handled codex translator compatibility for Responses compaction fields"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1667,https://github.com/router-for-me/CLIProxyAPI/issues/1667,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0086,responses-and-chat-compat,"Expand docs and examples for ""codex: usage_limit_reached (429) should honor resets_at/resets_in_seconds as next_retry_after"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1666,https://github.com/router-for-me/CLIProxyAPI/issues/1666,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0087,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Concerns regarding the removal of Gemini Web support in the early stages of the project"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1665,https://github.com/router-for-me/CLIProxyAPI/issues/1665,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0088,thinking-and-reasoning,"Refactor implementation behind ""fix(claude): token exchange blocked by Cloudflare managed challenge on console.anthropic.com"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1659,https://github.com/router-for-me/CLIProxyAPI/issues/1659,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0089,responses-and-chat-compat,"Ensure rollout safety for ""Qwen Oauth fails"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1658,https://github.com/router-for-me/CLIProxyAPI/issues/1658,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0090,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""logs-max-total-size-mb does not account for per-day subdirectories"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1657,https://github.com/router-for-me/CLIProxyAPI/issues/1657,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0091,responses-and-chat-compat,"Follow up on ""All credentials for model claude-sonnet-4-6 are cooling down"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1655,https://github.com/router-for-me/CLIProxyAPI/issues/1655,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0092,integration-api-bindings,"Define non-subprocess integration path related to """"Please add claude-sonnet-4-6 to registered Claude models. Released 2026-02-15."""" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#1653,https://github.com/router-for-me/CLIProxyAPI/issues/1653,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0093,thinking-and-reasoning,"Operationalize ""Claude Sonnet 4.5 models are deprecated - please remove from panel"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1651,https://github.com/router-for-me/CLIProxyAPI/issues/1651,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0094,responses-and-chat-compat,"Convert ""Gemini API integration: incorrect renaming of 'parameters' to 'parametersJsonSchema'"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1649,https://github.com/router-for-me/CLIProxyAPI/issues/1649,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0095,go-cli-extraction,"Port relevant thegent-managed flow implied by ""codex 返回 Unsupported parameter: response_format"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1647,https://github.com/router-for-me/CLIProxyAPI/issues/1647,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0096,thinking-and-reasoning,"Expand docs and examples for ""Bug: Invalid JSON payload when tool_result has no content field (antigravity translator)"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1646,https://github.com/router-for-me/CLIProxyAPI/issues/1646,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0097,error-handling-retries,"Add QA scenarios for ""Docker Image Error"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1641,https://github.com/router-for-me/CLIProxyAPI/issues/1641,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0098,error-handling-retries,"Refactor implementation behind ""Google blocked my 3 email id at once"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1637,https://github.com/router-for-me/CLIProxyAPI/issues/1637,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0099,general-polish,"Ensure rollout safety for ""不同思路的 Antigravity 代理"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1633,https://github.com/router-for-me/CLIProxyAPI/issues/1633,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0100,cli-ux-dx,"Standardize metadata and naming conventions touched by ""是否支持微软账号的反代?"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1632,https://github.com/router-for-me/CLIProxyAPI/issues/1632,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0101,provider-model-registry,"Follow up on ""Google官方好像已经有检测并稳定封禁CPA反代Antigravity的方案了?"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1631,https://github.com/router-for-me/CLIProxyAPI/issues/1631,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0102,docs-quickstarts,"Create/refresh provider quickstart derived from ""Claude Sonnet 4.5 is no longer available. Please switch to Claude Sonnet 4.6."" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1630,https://github.com/router-for-me/CLIProxyAPI/issues/1630,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0103,provider-model-registry,"Operationalize ""codex 中 plus/team错误支持gpt-5.3-codex-spark 但实际上不支持"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1623,https://github.com/router-for-me/CLIProxyAPI/issues/1623,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0104,general-polish,"Convert ""Please add support for Claude Sonnet 4.6"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1622,https://github.com/router-for-me/CLIProxyAPI/issues/1622,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0105,thinking-and-reasoning,"Add DX polish around ""Question: applyClaudeHeaders() — how were these defaults chosen?"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1621,https://github.com/router-for-me/CLIProxyAPI/issues/1621,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0106,responses-and-chat-compat,"Expand docs and examples for ""[BUG] claude code 接入 cliproxyapi 使用时,模型的输出没有呈现流式,而是一下子蹦出来回答结果"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1620,https://github.com/router-for-me/CLIProxyAPI/issues/1620,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0107,oauth-and-authentication,"Add QA scenarios for ""[Feature Request] Session-Aware Hybrid Routing Strategy"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1617,https://github.com/router-for-me/CLIProxyAPI/issues/1617,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0108,responses-and-chat-compat,"Refactor implementation behind ""Any Plans to support Jetbrains IDE?"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1615,https://github.com/router-for-me/CLIProxyAPI/issues/1615,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0109,provider-model-registry,"Ensure rollout safety for ""[bug] codex oauth登录流程失败"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1612,https://github.com/router-for-me/CLIProxyAPI/issues/1612,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0110,oauth-and-authentication,"Standardize metadata and naming conventions touched by ""qwen auth 里获取到了 qwen3.5,但是 ai 客户端获取不到这个模型"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1611,https://github.com/router-for-me/CLIProxyAPI/issues/1611,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0111,responses-and-chat-compat,"Follow up on ""fix: handle response.function_call_arguments.done in codex→claude streaming translator"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1609,https://github.com/router-for-me/CLIProxyAPI/issues/1609,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0112,thinking-and-reasoning,"Harden ""不能正确统计minimax-m2.5/kimi-k2.5的Token"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1607,https://github.com/router-for-me/CLIProxyAPI/issues/1607,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0113,general-polish,"Operationalize ""速速支持qwen code的qwen3.5"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1603,https://github.com/router-for-me/CLIProxyAPI/issues/1603,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0114,go-cli-extraction,"Port relevant thegent-managed flow implied by ""[Feature Request] Antigravity channel should support routing claude-haiku-4-5-20251001 model (used by Claude Code pre-flight checks)"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1596,https://github.com/router-for-me/CLIProxyAPI/issues/1596,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0115,integration-api-bindings,"Define non-subprocess integration path related to ""希望为提供商添加请求优先级功能,最好是以模型为基础来进行请求"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#1594,https://github.com/router-for-me/CLIProxyAPI/issues/1594,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0116,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""gpt-5.3-codex-spark error"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1593,https://github.com/router-for-me/CLIProxyAPI/issues/1593,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0117,thinking-and-reasoning,"Add QA scenarios for ""[Bug] Claude Code 2.1.37 random cch in x-anthropic-billing-header causes severe prompt-cache miss on third-party upstreams"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1592,https://github.com/router-for-me/CLIProxyAPI/issues/1592,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0118,responses-and-chat-compat,"Refactor implementation behind ""()强制思考会在2m左右时返回500错误"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1591,https://github.com/router-for-me/CLIProxyAPI/issues/1591,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0119,docs-quickstarts,"Create/refresh provider quickstart derived from ""配额管理可以刷出额度,但是调用的时候提示额度不足"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1590,https://github.com/router-for-me/CLIProxyAPI/issues/1590,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0120,general-polish,"Standardize metadata and naming conventions touched by ""每次更新或者重启 使用统计数据都会清空"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1589,https://github.com/router-for-me/CLIProxyAPI/issues/1589,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0121,thinking-and-reasoning,"Follow up on ""iflow GLM 5 时不时会返回 406"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1588,https://github.com/router-for-me/CLIProxyAPI/issues/1588,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0122,general-polish,"Harden ""封号了,pro号没了,又找了个免费认证bot分享出来"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1587,https://github.com/router-for-me/CLIProxyAPI/issues/1587,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0123,cli-ux-dx,"Operationalize ""gemini-cli 不能自定请求头吗?"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1586,https://github.com/router-for-me/CLIProxyAPI/issues/1586,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0124,thinking-and-reasoning,"Convert ""bug: Invalid thinking block signature when switching from Gemini CLI to Claude OAuth mid-conversation"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1584,https://github.com/router-for-me/CLIProxyAPI/issues/1584,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0125,thinking-and-reasoning,"Add DX polish around ""I saved 10M tokens (89%) on my Claude Code sessions with a CLI proxy"" through improved command ergonomics and faster feedback loops.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1583,https://github.com/router-for-me/CLIProxyAPI/issues/1583,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0126,responses-and-chat-compat,"Expand docs and examples for ""[bug]? gpt-5.3-codex-spark 在 team 账户上报错 400"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1582,https://github.com/router-for-me/CLIProxyAPI/issues/1582,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0127,general-polish,"Add QA scenarios for ""希望能加一个一键清理失效的认证文件功能"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1580,https://github.com/router-for-me/CLIProxyAPI/issues/1580,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0128,websocket-and-streaming,"Refactor implementation behind ""GPT Team认证似乎获取不到5.3 Codex"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1577,https://github.com/router-for-me/CLIProxyAPI/issues/1577,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0129,general-polish,"Ensure rollout safety for ""iflow渠道调用会一直返回406状态码"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1576,https://github.com/router-for-me/CLIProxyAPI/issues/1576,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0130,oauth-and-authentication,"Standardize metadata and naming conventions touched by ""Port 8317 becomes unreachable after running for some time, recovers immediately after SSH login"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1575,https://github.com/router-for-me/CLIProxyAPI/issues/1575,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0131,thinking-and-reasoning,"Follow up on ""Support for gpt-5.3-codex-spark"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1573,https://github.com/router-for-me/CLIProxyAPI/issues/1573,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0132,thinking-and-reasoning,"Harden ""Reasoning Error"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1572,https://github.com/router-for-me/CLIProxyAPI/issues/1572,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0133,go-cli-extraction,"Port relevant thegent-managed flow implied by ""iflow MiniMax-2.5 is online,please add"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1567,https://github.com/router-for-me/CLIProxyAPI/issues/1567,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0134,provider-model-registry,"Convert ""能否再难用一点?!"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1564,https://github.com/router-for-me/CLIProxyAPI/issues/1564,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0135,thinking-and-reasoning,"Add DX polish around ""Cache usage through Claude oAuth always 0"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1562,https://github.com/router-for-me/CLIProxyAPI/issues/1562,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0136,docs-quickstarts,"Create/refresh provider quickstart derived from ""antigravity 无法使用"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1561,https://github.com/router-for-me/CLIProxyAPI/issues/1561,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0137,provider-model-registry,"Add QA scenarios for ""GLM-5 return empty"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1560,https://github.com/router-for-me/CLIProxyAPI/issues/1560,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0138,integration-api-bindings,"Define non-subprocess integration path related to ""Claude Code 调用 nvidia 发现 无法正常使用bash grep类似的工具"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#1557,https://github.com/router-for-me/CLIProxyAPI/issues/1557,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0139,oauth-and-authentication,"Ensure rollout safety for ""Gemini CLI: 额度获取失败:请检查凭证状态"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1556,https://github.com/router-for-me/CLIProxyAPI/issues/1556,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0140,websocket-and-streaming,"Standardize metadata and naming conventions touched by ""403 error"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1555,https://github.com/router-for-me/CLIProxyAPI/issues/1555,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0141,websocket-and-streaming,"Follow up on ""iflow glm-5 is online,please add"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1554,https://github.com/router-for-me/CLIProxyAPI/issues/1554,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0142,oauth-and-authentication,"Harden ""Kimi的OAuth无法使用"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1553,https://github.com/router-for-me/CLIProxyAPI/issues/1553,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0143,oauth-and-authentication,"Operationalize ""grok的OAuth登录认证可以支持下吗? 谢谢!"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1552,https://github.com/router-for-me/CLIProxyAPI/issues/1552,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0144,thinking-and-reasoning,"Convert ""iflow executor: token refresh failed"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1551,https://github.com/router-for-me/CLIProxyAPI/issues/1551,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0145,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""为什么gemini3会报错"" so local config and runtime can be reloaded deterministically.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1549,https://github.com/router-for-me/CLIProxyAPI/issues/1549,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0146,thinking-and-reasoning,"Expand docs and examples for ""cursor报错根源"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1548,https://github.com/router-for-me/CLIProxyAPI/issues/1548,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0147,responses-and-chat-compat,"Add QA scenarios for ""[Claude code] ENABLE_TOOL_SEARCH - MCP not in available tools 400"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1547,https://github.com/router-for-me/CLIProxyAPI/issues/1547,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0148,thinking-and-reasoning,"Refactor implementation behind ""自定义别名在调用的时候404"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1546,https://github.com/router-for-me/CLIProxyAPI/issues/1546,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0149,provider-model-registry,"Ensure rollout safety for ""删除iflow提供商的过时模型"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1545,https://github.com/router-for-me/CLIProxyAPI/issues/1545,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0150,provider-model-registry,"Standardize metadata and naming conventions touched by ""删除iflow提供商的过时模型"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1544,https://github.com/router-for-me/CLIProxyAPI/issues/1544,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0151,websocket-and-streaming,"Follow up on ""佬们,隔壁很多账号403啦,这里一切正常吗?"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1541,https://github.com/router-for-me/CLIProxyAPI/issues/1541,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0152,go-cli-extraction,"Port relevant thegent-managed flow implied by ""feat(thinking): support Claude output_config.effort parameter (Opus 4.6)"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1540,https://github.com/router-for-me/CLIProxyAPI/issues/1540,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0153,docs-quickstarts,"Create/refresh provider quickstart derived from ""Gemini-3-pro-high Corrupted thought signature"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1538,https://github.com/router-for-me/CLIProxyAPI/issues/1538,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0154,thinking-and-reasoning,"Convert ""bug: ""status"": ""INVALID_ARGUMENT"" when using antigravity claude-opus-4-6"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1535,https://github.com/router-for-me/CLIProxyAPI/issues/1535,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0155,thinking-and-reasoning,"Add DX polish around ""[Bug] Persistent 400 ""Invalid Argument"" error with claude-opus-4-6-thinking model (with and without thinking budget)"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1533,https://github.com/router-for-me/CLIProxyAPI/issues/1533,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0156,responses-and-chat-compat,"Expand docs and examples for ""Invalid JSON payload received: Unknown name \""deprecated\"""" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1531,https://github.com/router-for-me/CLIProxyAPI/issues/1531,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0157,thinking-and-reasoning,"Add QA scenarios for ""bug: proxy_ prefix applied to tool_choice.name but not tools[].name causes 400 errors on OAuth requests"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1530,https://github.com/router-for-me/CLIProxyAPI/issues/1530,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0158,general-polish,"Refactor implementation behind ""请求为Windows添加启动自动更新命令"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1528,https://github.com/router-for-me/CLIProxyAPI/issues/1528,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0159,websocket-and-streaming,"Ensure rollout safety for ""反重力逻辑加载失效"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1526,https://github.com/router-for-me/CLIProxyAPI/issues/1526,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0160,general-polish,"Standardize metadata and naming conventions touched by ""support openai image generations api(/v1/images/generations)"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1525,https://github.com/router-for-me/CLIProxyAPI/issues/1525,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0161,integration-api-bindings,"Define non-subprocess integration path related to ""The account has available credit, but a 503 or 429 error is occurring."" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#1521,https://github.com/router-for-me/CLIProxyAPI/issues/1521,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0162,thinking-and-reasoning,"Harden ""openclaw调用CPA 中的codex5.2 报错。"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1517,https://github.com/router-for-me/CLIProxyAPI/issues/1517,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0163,general-polish,"Operationalize ""opus4.6都支持1m的上下文了,请求体什么时候从280K调整下,现在也太小了,动不动就报错"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1515,https://github.com/router-for-me/CLIProxyAPI/issues/1515,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0164,thinking-and-reasoning,"Convert ""Token refresh logic fails with generic 500 error (""server busy"") from iflow provider"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1514,https://github.com/router-for-me/CLIProxyAPI/issues/1514,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0165,responses-and-chat-compat,"Add DX polish around ""bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1513,https://github.com/router-for-me/CLIProxyAPI/issues/1513,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0166,general-polish,"Expand docs and examples for ""请求体过大280KB限制和opus 4.6无法调用的问题,啥时候可以修复"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1512,https://github.com/router-for-me/CLIProxyAPI/issues/1512,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0167,thinking-and-reasoning,"Add QA scenarios for ""502 unknown provider for model gemini-claude-opus-4-6-thinking"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1510,https://github.com/router-for-me/CLIProxyAPI/issues/1510,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0168,thinking-and-reasoning,"Refactor implementation behind ""反重力 claude-opus-4-6-thinking 模型如何通过 () 实现强行思考"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1509,https://github.com/router-for-me/CLIProxyAPI/issues/1509,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0169,thinking-and-reasoning,"Ensure rollout safety for ""Feature: Per-OAuth-Account Outbound Proxy Enforcement for Google (Gemini/Antigravity) + OpenAI Codex – incl. Token Refresh and optional Strict/Fail-Closed Mode"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1508,https://github.com/router-for-me/CLIProxyAPI/issues/1508,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0170,docs-quickstarts,"Create/refresh provider quickstart derived from ""[BUG] 反重力 Opus-4.5 在 OpenCode 上搭配 DCP 插件使用时会报错"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1507,https://github.com/router-for-me/CLIProxyAPI/issues/1507,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0171,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Antigravity使用时,设计额度最小阈值,超过停止使用或者切换账号,因为额度多次用尽,会触发 5 天刷新"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1505,https://github.com/router-for-me/CLIProxyAPI/issues/1505,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0172,websocket-and-streaming,"Harden ""iflow的glm-4.7会返回406"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1504,https://github.com/router-for-me/CLIProxyAPI/issues/1504,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0173,provider-model-registry,"Operationalize ""[BUG] sdkaccess.RegisterProvider 逻辑被 syncInlineAccessProvider 破坏"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1503,https://github.com/router-for-me/CLIProxyAPI/issues/1503,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0174,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""iflow部分模型增加了签名"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1501,https://github.com/router-for-me/CLIProxyAPI/issues/1501,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0175,general-polish,"Add DX polish around ""Qwen Free allocated quota exceeded"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1500,https://github.com/router-for-me/CLIProxyAPI/issues/1500,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0176,provider-model-registry,"Expand docs and examples for ""After logging in with iFlowOAuth, most models cannot be used, only non-CLI models can be used."" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1499,https://github.com/router-for-me/CLIProxyAPI/issues/1499,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0177,websocket-and-streaming,"Add QA scenarios for ""为什么我请求了很多次,但是使用统计里仍然显示使用为0呢?"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1497,https://github.com/router-for-me/CLIProxyAPI/issues/1497,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0178,general-polish,"Refactor implementation behind ""为什么配额管理里没有claude pro账号的额度?"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1496,https://github.com/router-for-me/CLIProxyAPI/issues/1496,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0179,websocket-and-streaming,"Ensure rollout safety for ""最近几个版本,好像轮询失效了"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1495,https://github.com/router-for-me/CLIProxyAPI/issues/1495,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0180,error-handling-retries,"Standardize metadata and naming conventions touched by ""iFlow error"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1494,https://github.com/router-for-me/CLIProxyAPI/issues/1494,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0181,provider-model-registry,"Follow up on ""Feature request [allow to configure RPM, TPM, RPD, TPD]"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1493,https://github.com/router-for-me/CLIProxyAPI/issues/1493,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0182,thinking-and-reasoning,"Harden ""Antigravity using Ultra plan: Opus 4.6 gets 429 on CLIProxy but runs with Opencode-Auth"" with clearer validation, safer defaults, and defensive fallbacks.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1486,https://github.com/router-for-me/CLIProxyAPI/issues/1486,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0183,thinking-and-reasoning,"Operationalize ""gemini在cherry studio的openai接口无法控制思考长度"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1484,https://github.com/router-for-me/CLIProxyAPI/issues/1484,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0184,integration-api-bindings,"Define non-subprocess integration path related to ""codex5.3什么时候能获取到啊"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#1482,https://github.com/router-for-me/CLIProxyAPI/issues/1482,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0185,provider-model-registry,"Add DX polish around ""Amp code doesn't route through CLIProxyAPI"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1481,https://github.com/router-for-me/CLIProxyAPI/issues/1481,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0186,responses-and-chat-compat,"Expand docs and examples for ""导入kiro账户,过一段时间就失效了"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1480,https://github.com/router-for-me/CLIProxyAPI/issues/1480,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0187,docs-quickstarts,"Create/refresh provider quickstart derived from ""openai-compatibility: streaming response empty when translating Codex protocol (/v1/responses) to OpenAI chat/completions"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1478,https://github.com/router-for-me/CLIProxyAPI/issues/1478,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0188,thinking-and-reasoning,"Refactor implementation behind ""bug: request-level metadata fields injected into contents[] causing Gemini API rejection (v6.8.4)"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1477,https://github.com/router-for-me/CLIProxyAPI/issues/1477,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0189,responses-and-chat-compat,"Ensure rollout safety for ""Roo Code v3.47.0 cannot make Gemini API calls anymore"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1476,https://github.com/router-for-me/CLIProxyAPI/issues/1476,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0190,go-cli-extraction,"Port relevant thegent-managed flow implied by ""[feat]更新很频繁,可以内置软件更新功能吗"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1475,https://github.com/router-for-me/CLIProxyAPI/issues/1475,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0191,provider-model-registry,"Follow up on ""Cannot alias multiple models to single model only on Antigravity"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1472,https://github.com/router-for-me/CLIProxyAPI/issues/1472,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0192,general-polish,"Harden ""无法识别图片"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1469,https://github.com/router-for-me/CLIProxyAPI/issues/1469,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0193,thinking-and-reasoning,"Operationalize ""Support for Antigravity Opus 4.6"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1468,https://github.com/router-for-me/CLIProxyAPI/issues/1468,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0194,thinking-and-reasoning,"Convert ""model not found for gpt-5.3-codex"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1463,https://github.com/router-for-me/CLIProxyAPI/issues/1463,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0195,websocket-and-streaming,"Add DX polish around ""antigravity用不了"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1461,https://github.com/router-for-me/CLIProxyAPI/issues/1461,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0196,general-polish,"Expand docs and examples for ""为啥openai的端点可以添加多个密钥,但是a社的端点不能添加"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1457,https://github.com/router-for-me/CLIProxyAPI/issues/1457,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0197,websocket-and-streaming,"Add QA scenarios for ""轮询会无差别轮询即便某个账号在很久前已经空配额"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1456,https://github.com/router-for-me/CLIProxyAPI/issues/1456,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0198,provider-model-registry,"Refactor implementation behind ""When I don’t add the authentication file, opening Claude Code keeps throwing a 500 error, instead of directly using the AI provider I’ve configured."" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1455,https://github.com/router-for-me/CLIProxyAPI/issues/1455,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0199,oauth-and-authentication,"Ensure rollout safety for ""6.7.53版本反重力无法看到opus-4.6模型"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1453,https://github.com/router-for-me/CLIProxyAPI/issues/1453,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0200,oauth-and-authentication,"Standardize metadata and naming conventions touched by ""Codex OAuth failed"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1451,https://github.com/router-for-me/CLIProxyAPI/issues/1451,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0201,responses-and-chat-compat,"Follow up on ""Google asking to Verify account"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1447,https://github.com/router-for-me/CLIProxyAPI/issues/1447,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0202,responses-and-chat-compat,"Harden ""API Error"" with clearer validation, safer defaults, and defensive fallbacks.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1445,https://github.com/router-for-me/CLIProxyAPI/issues/1445,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0203,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Unable to use GPT 5.3 codex (model_not_found)"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1443,https://github.com/router-for-me/CLIProxyAPI/issues/1443,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0204,docs-quickstarts,"Create/refresh provider quickstart derived from ""gpt-5.3-codex 请求400 显示不存在该模型"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1442,https://github.com/router-for-me/CLIProxyAPI/issues/1442,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0205,responses-and-chat-compat,"Add DX polish around ""The requested model 'gpt-5.3-codex' does not exist."" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1441,https://github.com/router-for-me/CLIProxyAPI/issues/1441,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0206,install-and-ops,"Expand docs and examples for ""Feature request: Add support for claude opus 4.6"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1439,https://github.com/router-for-me/CLIProxyAPI/issues/1439,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0207,integration-api-bindings,"Define non-subprocess integration path related to ""Feature request: Add support for perplexity"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#1438,https://github.com/router-for-me/CLIProxyAPI/issues/1438,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0208,thinking-and-reasoning,"Refactor implementation behind ""iflow kimi-k2.5 无法正常统计消耗的token数,一直是0"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1437,https://github.com/router-for-me/CLIProxyAPI/issues/1437,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0209,go-cli-extraction,"Port relevant thegent-managed flow implied by ""[BUG] Invalid JSON payload with large requests (~290KB) - truncated body"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1433,https://github.com/router-for-me/CLIProxyAPI/issues/1433,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0210,general-polish,"Standardize metadata and naming conventions touched by ""希望支持国产模型如glm kimi minimax 的 proxy"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1432,https://github.com/router-for-me/CLIProxyAPI/issues/1432,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0211,general-polish,"Follow up on ""关闭某个认证文件后没有持久化处理"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1431,https://github.com/router-for-me/CLIProxyAPI/issues/1431,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0212,responses-and-chat-compat,"Harden ""[v6.7.47] 接入智谱 Plan 计划后请求报错"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1430,https://github.com/router-for-me/CLIProxyAPI/issues/1430,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0213,general-polish,"Operationalize ""大佬能不能把使用统计数据持久化?"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1427,https://github.com/router-for-me/CLIProxyAPI/issues/1427,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0214,thinking-and-reasoning,"Convert ""[BUG] 使用 Google 官方 Python SDK时思考设置无法生效"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1426,https://github.com/router-for-me/CLIProxyAPI/issues/1426,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0215,thinking-and-reasoning,"Add DX polish around ""bug: Claude → Gemini translation fails due to unsupported JSON Schema fields ($id, patternProperties)"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1424,https://github.com/router-for-me/CLIProxyAPI/issues/1424,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0216,provider-model-registry,"Expand docs and examples for ""Add Container Tags / Project Scoping for Memory Organization"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1420,https://github.com/router-for-me/CLIProxyAPI/issues/1420,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0217,error-handling-retries,"Add QA scenarios for ""Add LangChain/LangGraph Integration for Memory System"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1419,https://github.com/router-for-me/CLIProxyAPI/issues/1419,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0218,thinking-and-reasoning,"Refactor implementation behind ""Security Review: Apply Lessons from Supermemory Security Findings"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1418,https://github.com/router-for-me/CLIProxyAPI/issues/1418,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0219,install-and-ops,"Ensure rollout safety for ""Add Webhook Support for Document Lifecycle Events"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1417,https://github.com/router-for-me/CLIProxyAPI/issues/1417,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0220,general-polish,"Standardize metadata and naming conventions touched by ""Create OpenAI-Compatible Memory Tools Wrapper"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1416,https://github.com/router-for-me/CLIProxyAPI/issues/1416,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0221,docs-quickstarts,"Create/refresh provider quickstart derived from ""Add Google Drive Connector for Memory Ingestion"" including setup, auth, model select, and sanity-check commands.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1415,https://github.com/router-for-me/CLIProxyAPI/issues/1415,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0222,provider-model-registry,"Harden ""Add Document Processor for PDF and URL Content Extraction"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1414,https://github.com/router-for-me/CLIProxyAPI/issues/1414,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0223,error-handling-retries,"Operationalize ""Add Notion Connector for Memory Ingestion"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1413,https://github.com/router-for-me/CLIProxyAPI/issues/1413,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0224,error-handling-retries,"Convert ""Add Strict Schema Mode for OpenAI Function Calling"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1412,https://github.com/router-for-me/CLIProxyAPI/issues/1412,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0225,provider-model-registry,"Add DX polish around ""Add Conversation Tracking Support for Chat History"" through improved command ergonomics and faster feedback loops.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1411,https://github.com/router-for-me/CLIProxyAPI/issues/1411,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0226,thinking-and-reasoning,"Expand docs and examples for ""Implement MCP Server for Memory Operations"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1410,https://github.com/router-for-me/CLIProxyAPI/issues/1410,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0227,responses-and-chat-compat,"Add QA scenarios for ""■ stream disconnected before completion: stream closed before response.completed"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1407,https://github.com/router-for-me/CLIProxyAPI/issues/1407,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0228,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Bug: /v1/responses returns 400 ""Input must be a list"" when input is string (regression 6.7.42, Droid auto-compress broken)"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1403,https://github.com/router-for-me/CLIProxyAPI/issues/1403,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0229,thinking-and-reasoning,"Ensure rollout safety for ""Factory Droid CLI got 404"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1401,https://github.com/router-for-me/CLIProxyAPI/issues/1401,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0230,integration-api-bindings,"Define non-subprocess integration path related to ""反代反重力的 claude 在 opencode 中使用出现 unexpected EOF 错误"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#1400,https://github.com/router-for-me/CLIProxyAPI/issues/1400,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0231,oauth-and-authentication,"Follow up on ""Feature request: Cursor CLI support"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1399,https://github.com/router-for-me/CLIProxyAPI/issues/1399,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0232,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""bug: Invalid signature in thinking block (API 400) on follow-up requests"" so local config and runtime can be reloaded deterministically.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1398,https://github.com/router-for-me/CLIProxyAPI/issues/1398,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0233,error-handling-retries,"Operationalize ""在 Visual Studio Code无法使用过工具"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1405,https://github.com/router-for-me/CLIProxyAPI/issues/1405,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0234,general-polish,"Convert ""Vertex AI global 区域端点 URL 格式错误,导致无法访问 Gemini 3 Preview 模型"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1395,https://github.com/router-for-me/CLIProxyAPI/issues/1395,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0235,responses-and-chat-compat,"Add DX polish around ""Session title generation fails for Claude models via Antigravity provider (OpenCode)"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1394,https://github.com/router-for-me/CLIProxyAPI/issues/1394,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0236,provider-model-registry,"Expand docs and examples for ""反代反重力请求gemini-3-pro-image-preview接口报错"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1393,https://github.com/router-for-me/CLIProxyAPI/issues/1393,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0237,responses-and-chat-compat,"Add QA scenarios for ""[Feature Request] Implement automatic account rotation on VALIDATION_REQUIRED errors"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1392,https://github.com/router-for-me/CLIProxyAPI/issues/1392,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0238,docs-quickstarts,"Create/refresh provider quickstart derived from ""[antigravity] 500 Internal error and 403 Verification Required for multiple accounts"" including setup, auth, model select, and sanity-check commands.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1389,https://github.com/router-for-me/CLIProxyAPI/issues/1389,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0239,general-polish,"Ensure rollout safety for ""Antigravity的配额管理,账号没有订阅资格了,还是在显示模型额度"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1388,https://github.com/router-for-me/CLIProxyAPI/issues/1388,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0240,general-polish,"Standardize metadata and naming conventions touched by ""大佬,可以加一个apikey的过期时间不"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1387,https://github.com/router-for-me/CLIProxyAPI/issues/1387,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0241,responses-and-chat-compat,"Follow up on ""在codex运行报错"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1406,https://github.com/router-for-me/CLIProxyAPI/issues/1406,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0242,thinking-and-reasoning,"Harden ""[Feature request] Support nested object parameter mapping in payload config"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1384,https://github.com/router-for-me/CLIProxyAPI/issues/1384,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0243,oauth-and-authentication,"Operationalize ""Claude authentication failed in v6.7.41 (works in v6.7.25)"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1383,https://github.com/router-for-me/CLIProxyAPI/issues/1383,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0244,responses-and-chat-compat,"Convert ""Question: Does load balancing work with 2 Codex accounts for the Responses API?"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1382,https://github.com/router-for-me/CLIProxyAPI/issues/1382,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0245,oauth-and-authentication,"Add DX polish around ""登陆提示“登录失败: 访问被拒绝,权限不足”"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1381,https://github.com/router-for-me/CLIProxyAPI/issues/1381,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0246,thinking-and-reasoning,"Expand docs and examples for ""Gemini 3 Flash includeThoughts参数不生效了"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1378,https://github.com/router-for-me/CLIProxyAPI/issues/1378,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0247,go-cli-extraction,"Port relevant thegent-managed flow implied by ""antigravity无法登录"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1376,https://github.com/router-for-me/CLIProxyAPI/issues/1376,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0248,responses-and-chat-compat,"Refactor implementation behind ""[Bug] Gemini 400 Error: ""defer_loading"" field in ToolSearch is not supported by Gemini API"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1375,https://github.com/router-for-me/CLIProxyAPI/issues/1375,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0249,responses-and-chat-compat,"Ensure rollout safety for ""API Error: 403"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1374,https://github.com/router-for-me/CLIProxyAPI/issues/1374,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0250,general-polish,"Standardize metadata and naming conventions touched by ""Feature Request: 有没有可能支持Trea中国版?"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1373,https://github.com/router-for-me/CLIProxyAPI/issues/1373,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0251,responses-and-chat-compat,"Follow up on ""Bug: Auto-injected cache_control exceeds Anthropic API's 4-block limit"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1372,https://github.com/router-for-me/CLIProxyAPI/issues/1372,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0252,responses-and-chat-compat,"Harden ""Bad processing of Claude prompt caching that is already implemented by client app"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1366,https://github.com/router-for-me/CLIProxyAPI/issues/1366,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0253,integration-api-bindings,"Define non-subprocess integration path related to ""[Bug] OpenAI-compatible provider: message_start.usage always returns 0 tokens (kimi-for-coding)"" (Go bindings surface + HTTP fallback contract + version negotiation).",P1,S,issue,router-for-me/CLIProxyAPI,issue#1365,https://github.com/router-for-me/CLIProxyAPI/issues/1365,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0254,oauth-and-authentication,"Convert ""iflow Cli官方针对terminal有Oauth 登录方式"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1364,https://github.com/router-for-me/CLIProxyAPI/issues/1364,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0255,docs-quickstarts,"Create/refresh provider quickstart derived from ""Kimi For Coding 好像被 ban 了"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1327,https://github.com/router-for-me/CLIProxyAPI/issues/1327,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0256,responses-and-chat-compat,"Expand docs and examples for ""“Error 404: Requested entity was not found"" for gemini 3 by gemini-cli"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1325,https://github.com/router-for-me/CLIProxyAPI/issues/1325,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0257,websocket-and-streaming,"Add QA scenarios for ""nvidia openai接口连接失败"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1324,https://github.com/router-for-me/CLIProxyAPI/issues/1324,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0258,thinking-and-reasoning,"Refactor implementation behind ""Feature Request: Add generateImages endpoint support for Gemini API"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1322,https://github.com/router-for-me/CLIProxyAPI/issues/1322,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0259,oauth-and-authentication,"Ensure rollout safety for ""iFlow Error: LLM returned 200 OK but response body was empty (possible rate limit)"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1321,https://github.com/router-for-me/CLIProxyAPI/issues/1321,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0260,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""feat: add code_execution and url_context tool passthrough for Gemini"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1318,https://github.com/router-for-me/CLIProxyAPI/issues/1318,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0261,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""This version of Antigravity is no longer supported. Please update to receive the latest features!"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1316,https://github.com/router-for-me/CLIProxyAPI/issues/1316,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0262,websocket-and-streaming,"Harden ""无法轮询请求反重力和gemini cli"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1315,https://github.com/router-for-me/CLIProxyAPI/issues/1315,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0263,thinking-and-reasoning,"Operationalize ""400 Bad Request when reasoning_effort=""xhigh"" with kimi k2.5 (OpenAI-compatible API)"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1307,https://github.com/router-for-me/CLIProxyAPI/issues/1307,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0264,thinking-and-reasoning,"Convert ""Claude Opus 4.5 returns ""Internal server error"" in response body via Anthropic OAuth (Sonnet works)"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1306,https://github.com/router-for-me/CLIProxyAPI/issues/1306,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0265,oauth-and-authentication,"Add DX polish around ""CLI Proxy API 版本: v6.7.28,OAuth 模型别名里的antigravity项目无法被删除。"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1305,https://github.com/router-for-me/CLIProxyAPI/issues/1305,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0266,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Feature Request: Add ""Sequential"" routing strategy to optimize account quota usage"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1304,https://github.com/router-for-me/CLIProxyAPI/issues/1304,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0267,thinking-and-reasoning,"Add QA scenarios for ""版本: v6.7.27 添加openai-compatibility的时候出现 malformed HTTP response 错误"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1301,https://github.com/router-for-me/CLIProxyAPI/issues/1301,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0268,responses-and-chat-compat,"Refactor implementation behind ""fix(logging): request and API response timestamps are inaccurate in error logs"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1299,https://github.com/router-for-me/CLIProxyAPI/issues/1299,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0269,thinking-and-reasoning,"Ensure rollout safety for ""cpaUsageMetadata leaks to Gemini API responses when using Antigravity backend"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1297,https://github.com/router-for-me/CLIProxyAPI/issues/1297,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0270,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Gemini API error: empty text content causes 'required oneof field data must have one initialized field'"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1293,https://github.com/router-for-me/CLIProxyAPI/issues/1293,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0271,responses-and-chat-compat,"Follow up on ""Gemini API error: empty text content causes 'required oneof field data must have one initialized field'"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1292,https://github.com/router-for-me/CLIProxyAPI/issues/1292,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0272,docs-quickstarts,"Create/refresh provider quickstart derived from ""gemini-3-pro-image-preview api 返回500 我看log中报500的都基本在1分钟左右"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1291,https://github.com/router-for-me/CLIProxyAPI/issues/1291,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0273,general-polish,"Operationalize ""希望代理设置 能为多个不同的认证文件分别配置不同的代理 URL"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1290,https://github.com/router-for-me/CLIProxyAPI/issues/1290,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0274,responses-and-chat-compat,"Convert ""Request takes over a minute to get sent with Antigravity"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1289,https://github.com/router-for-me/CLIProxyAPI/issues/1289,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0275,thinking-and-reasoning,"Add DX polish around ""Antigravity auth requires daily re-login - sessions expire unexpectedly"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1288,https://github.com/router-for-me/CLIProxyAPI/issues/1288,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0276,integration-api-bindings,"Define non-subprocess integration path related to ""cpa长时间运行会oom"" (Go bindings surface + HTTP fallback contract + version negotiation).",P3,S,issue,router-for-me/CLIProxyAPI,issue#1287,https://github.com/router-for-me/CLIProxyAPI/issues/1287,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0277,thinking-and-reasoning,"Add QA scenarios for ""429 RESOURCE_EXHAUSTED for Claude Opus 4.5 Thinking with Google AI Pro Account"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1284,https://github.com/router-for-me/CLIProxyAPI/issues/1284,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0278,general-polish,"Refactor implementation behind ""[功能建议] 建议实现统计数据持久化,免去更新时的手动导出导入"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1282,https://github.com/router-for-me/CLIProxyAPI/issues/1282,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0279,websocket-and-streaming,"Ensure rollout safety for ""反重力的banana pro额度一直无法恢复"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1281,https://github.com/router-for-me/CLIProxyAPI/issues/1281,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0280,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Support request: Kimi For Coding (Kimi Code / K2.5) behind CLIProxyAPI"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1280,https://github.com/router-for-me/CLIProxyAPI/issues/1280,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0281,websocket-and-streaming,"Follow up on ""TPM/RPM过载,但是等待半小时后依旧不行"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1278,https://github.com/router-for-me/CLIProxyAPI/issues/1278,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0282,provider-model-registry,"Harden ""支持codex的 /personality"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1273,https://github.com/router-for-me/CLIProxyAPI/issues/1273,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0283,websocket-and-streaming,"Operationalize ""Antigravity 可用模型数为 0"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1270,https://github.com/router-for-me/CLIProxyAPI/issues/1270,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0284,provider-model-registry,"Convert ""Tool Error on Antigravity Gemini 3 Flash"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1269,https://github.com/router-for-me/CLIProxyAPI/issues/1269,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0285,go-cli-extraction,"Port relevant thegent-managed flow implied by ""[Improvement] Persist Management UI assets in a dedicated volume"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1268,https://github.com/router-for-me/CLIProxyAPI/issues/1268,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0286,websocket-and-streaming,"Expand docs and examples for ""[Feature Request] Provide optional standalone UI service in docker-compose"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1267,https://github.com/router-for-me/CLIProxyAPI/issues/1267,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0287,websocket-and-streaming,"Add QA scenarios for ""[Improvement] Pre-bundle Management UI in Docker Image"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1266,https://github.com/router-for-me/CLIProxyAPI/issues/1266,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0288,thinking-and-reasoning,"Refactor implementation behind ""AMP CLI not working"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1264,https://github.com/router-for-me/CLIProxyAPI/issues/1264,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0289,docs-quickstarts,"Create/refresh provider quickstart derived from ""建议增加根据额度阈值跳过轮询凭证功能"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1263,https://github.com/router-for-me/CLIProxyAPI/issues/1263,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0290,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""[Bug] Antigravity Gemini API 报错:enum 仅允许用于 STRING 类型"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1260,https://github.com/router-for-me/CLIProxyAPI/issues/1260,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0291,general-polish,"Follow up on ""好像codebuddy也能有命令行也能用,能加进去吗"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1259,https://github.com/router-for-me/CLIProxyAPI/issues/1259,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0292,thinking-and-reasoning,"Harden ""Anthropic via OAuth can not callback URL"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1256,https://github.com/router-for-me/CLIProxyAPI/issues/1256,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0293,thinking-and-reasoning,"Operationalize ""[Bug] 反重力banana pro 4k 图片生成输出为空,仅思考过程可见"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1255,https://github.com/router-for-me/CLIProxyAPI/issues/1255,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0294,websocket-and-streaming,"Convert ""iflow Cookies 登陆好像不能用"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1254,https://github.com/router-for-me/CLIProxyAPI/issues/1254,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0295,oauth-and-authentication,"Add DX polish around ""CLIProxyAPI goes down after some time, only recovers when SSH into server"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1253,https://github.com/router-for-me/CLIProxyAPI/issues/1253,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0296,oauth-and-authentication,"Expand docs and examples for ""kiro hope"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1252,https://github.com/router-for-me/CLIProxyAPI/issues/1252,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0297,thinking-and-reasoning,"Add QA scenarios for """"Requested entity was not found"" for all antigravity models"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1251,https://github.com/router-for-me/CLIProxyAPI/issues/1251,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0298,provider-model-registry,"Refactor implementation behind ""[BUG] Why does it repeat twice? 为什么他重复了两次?"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1247,https://github.com/router-for-me/CLIProxyAPI/issues/1247,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0299,integration-api-bindings,"Define non-subprocess integration path related to ""6.6.109之前的版本都可以开启iflow的deepseek3.2,qwen3-max-preview思考,6.7.xx就不能了"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#1245,https://github.com/router-for-me/CLIProxyAPI/issues/1245,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0300,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""Bug: Anthropic API 400 Error - Missing 'thinking' block before 'tool_use'"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1244,https://github.com/router-for-me/CLIProxyAPI/issues/1244,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0301,responses-and-chat-compat,"Follow up on ""v6.7.24,反重力的gemini-3,调用API有bug"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1243,https://github.com/router-for-me/CLIProxyAPI/issues/1243,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0302,provider-model-registry,"Harden ""How to reset /models"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1240,https://github.com/router-for-me/CLIProxyAPI/issues/1240,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0303,oauth-and-authentication,"Operationalize ""Feature Request:Add support for separate proxy configuration with credentials"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1236,https://github.com/router-for-me/CLIProxyAPI/issues/1236,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0304,go-cli-extraction,"Port relevant thegent-managed flow implied by ""GLM Coding Plan"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1226,https://github.com/router-for-me/CLIProxyAPI/issues/1226,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0305,thinking-and-reasoning,"Add DX polish around ""更新到最新版本之后,出现了503的报错"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1224,https://github.com/router-for-me/CLIProxyAPI/issues/1224,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0306,docs-quickstarts,"Create/refresh provider quickstart derived from ""能不能增加一个配额保护"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1223,https://github.com/router-for-me/CLIProxyAPI/issues/1223,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0307,thinking-and-reasoning,"Add QA scenarios for ""auth_unavailable: no auth available in claude code cli, 使用途中经常500"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1222,https://github.com/router-for-me/CLIProxyAPI/issues/1222,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0308,websocket-and-streaming,"Refactor implementation behind ""无法关闭谷歌的某个具体的账号的使用权限"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1219,https://github.com/router-for-me/CLIProxyAPI/issues/1219,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0309,websocket-and-streaming,"Ensure rollout safety for ""docker中的最新版本不是lastest"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1218,https://github.com/router-for-me/CLIProxyAPI/issues/1218,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0310,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""openai codex 认证失败: Failed to exchange authorization code for tokens"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1217,https://github.com/router-for-me/CLIProxyAPI/issues/1217,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0311,thinking-and-reasoning,"Follow up on ""tool_use_error InputValidationError: EnterPlanMode failed due to the following issue: An unexpected parameter `reason` was provided"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1215,https://github.com/router-for-me/CLIProxyAPI/issues/1215,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0312,responses-and-chat-compat,"Harden ""Error 403"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1214,https://github.com/router-for-me/CLIProxyAPI/issues/1214,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0313,oauth-and-authentication,"Operationalize ""Gemini CLI OAuth 认证失败: failed to start callback server"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1213,https://github.com/router-for-me/CLIProxyAPI/issues/1213,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0314,thinking-and-reasoning,"Convert ""bug: Thinking budget ignored in cross-provider conversations (Antigravity)"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1199,https://github.com/router-for-me/CLIProxyAPI/issues/1199,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0315,websocket-and-streaming,"Add DX polish around ""[功能需求] 认证文件增加屏蔽模型跳过轮询"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1197,https://github.com/router-for-me/CLIProxyAPI/issues/1197,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0316,general-polish,"Expand docs and examples for ""可以出个检查更新吗,不然每次都要拉下载然后重启"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1195,https://github.com/router-for-me/CLIProxyAPI/issues/1195,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0317,general-polish,"Add QA scenarios for ""antigravity可以增加配额保护吗 剩余额度多少的时候不在使用"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1194,https://github.com/router-for-me/CLIProxyAPI/issues/1194,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0318,responses-and-chat-compat,"Refactor implementation behind ""codex总是有失败"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1193,https://github.com/router-for-me/CLIProxyAPI/issues/1193,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0319,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""建议在使用Antigravity 额度时,设计额度阈值自定义功能"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1192,https://github.com/router-for-me/CLIProxyAPI/issues/1192,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0320,provider-model-registry,"Standardize metadata and naming conventions touched by ""Antigravity: rev19-uic3-1p (Alias: gemini-2.5-computer-use-preview-10-2025) nolonger useable"" across both repos.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1190,https://github.com/router-for-me/CLIProxyAPI/issues/1190,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0321,provider-model-registry,"Follow up on ""🚨🔥 CRITICAL BUG REPORT: Invalid Function Declaration Schema in API Request 🔥🚨"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1189,https://github.com/router-for-me/CLIProxyAPI/issues/1189,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0322,integration-api-bindings,"Define non-subprocess integration path related to ""认证失败: Failed to exchange token"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#1186,https://github.com/router-for-me/CLIProxyAPI/issues/1186,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0323,docs-quickstarts,"Create/refresh provider quickstart derived from ""Model combo support"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1184,https://github.com/router-for-me/CLIProxyAPI/issues/1184,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0324,oauth-and-authentication,"Convert ""使用 Antigravity OAuth 使用openai格式调用opencode问题"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1173,https://github.com/router-for-me/CLIProxyAPI/issues/1173,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0325,error-handling-retries,"Add DX polish around ""今天中午开始一直429"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1172,https://github.com/router-for-me/CLIProxyAPI/issues/1172,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0326,thinking-and-reasoning,"Expand docs and examples for ""gemini api 使用openai 兼容的url 使用时 tool_call 有问题"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1168,https://github.com/router-for-me/CLIProxyAPI/issues/1168,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0327,install-and-ops,"Add QA scenarios for ""linux一键安装的如何更新"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1167,https://github.com/router-for-me/CLIProxyAPI/issues/1167,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0328,general-polish,"Refactor implementation behind ""新增微软copilot GPT5.2codex模型"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1166,https://github.com/router-for-me/CLIProxyAPI/issues/1166,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0329,responses-and-chat-compat,"Ensure rollout safety for ""Tool Calling Not Working in Cursor When Using Claude via CLIPROXYAPI + Antigravity Proxy"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1165,https://github.com/router-for-me/CLIProxyAPI/issues/1165,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0330,provider-model-registry,"Standardize metadata and naming conventions touched by ""[Improvement] Allow multiple model mappings to have the same Alias"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1163,https://github.com/router-for-me/CLIProxyAPI/issues/1163,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0331,websocket-and-streaming,"Follow up on ""Antigravity模型在Cursor无法使用工具"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1162,https://github.com/router-for-me/CLIProxyAPI/issues/1162,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0332,responses-and-chat-compat,"Harden ""Gemini"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1161,https://github.com/router-for-me/CLIProxyAPI/issues/1161,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0333,cli-ux-dx,"Operationalize ""Add support proxy per account"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1160,https://github.com/router-for-me/CLIProxyAPI/issues/1160,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0334,oauth-and-authentication,"Convert ""[Feature] 添加Github Copilot 的OAuth"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1159,https://github.com/router-for-me/CLIProxyAPI/issues/1159,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0335,general-polish,"Add DX polish around ""希望支持claude api"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1157,https://github.com/router-for-me/CLIProxyAPI/issues/1157,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0336,thinking-and-reasoning,"Expand docs and examples for ""[Bug] v6.7.x Regression: thinking parameter not recognized, causing Cherry Studio and similar clients to fail displaying extended thinking content"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1155,https://github.com/router-for-me/CLIProxyAPI/issues/1155,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0337,thinking-and-reasoning,"Add QA scenarios for ""nvidia今天开始超时了,昨天刚配置还好好的"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1154,https://github.com/router-for-me/CLIProxyAPI/issues/1154,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0338,provider-model-registry,"Refactor implementation behind ""Antigravity OAuth认证失败"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1153,https://github.com/router-for-me/CLIProxyAPI/issues/1153,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0339,websocket-and-streaming,"Ensure rollout safety for ""日志怎么不记录了"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1152,https://github.com/router-for-me/CLIProxyAPI/issues/1152,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0340,docs-quickstarts,"Create/refresh provider quickstart derived from ""v6.7.16无法反重力的gemini-3-pro-preview"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1150,https://github.com/router-for-me/CLIProxyAPI/issues/1150,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0341,provider-model-registry,"Follow up on ""OpenAI 兼容模型请求失败问题"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1149,https://github.com/router-for-me/CLIProxyAPI/issues/1149,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0342,go-cli-extraction,"Port relevant thegent-managed flow implied by ""没有单个凭证 启用/禁用 的切换开关吗"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1148,https://github.com/router-for-me/CLIProxyAPI/issues/1148,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0343,error-handling-retries,"Operationalize ""[Bug] Internal restart loop causes continuous ""address already in use"" errors in logs"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1146,https://github.com/router-for-me/CLIProxyAPI/issues/1146,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0344,thinking-and-reasoning,"Convert ""cc 使用 zai-glm-4.7 报错 body.reasoning"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1143,https://github.com/router-for-me/CLIProxyAPI/issues/1143,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0345,integration-api-bindings,"Define non-subprocess integration path related to ""NVIDIA不支持,转发成claude和gpt都用不了"" (Go bindings surface + HTTP fallback contract + version negotiation).",P1,S,issue,router-for-me/CLIProxyAPI,issue#1139,https://github.com/router-for-me/CLIProxyAPI/issues/1139,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0346,provider-model-registry,"Expand docs and examples for ""Feature Request: Add support for Cursor IDE as a backend/provider"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1138,https://github.com/router-for-me/CLIProxyAPI/issues/1138,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0347,thinking-and-reasoning,"Add QA scenarios for ""Claude to OpenAI Translation Generates Empty System Message"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1136,https://github.com/router-for-me/CLIProxyAPI/issues/1136,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0348,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""tool_choice not working for Gemini models via Claude API endpoint"" so local config and runtime can be reloaded deterministically.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1135,https://github.com/router-for-me/CLIProxyAPI/issues/1135,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0349,provider-model-registry,"Ensure rollout safety for ""model stops by itself does not proceed to the next step"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1134,https://github.com/router-for-me/CLIProxyAPI/issues/1134,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0350,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""API Error: 400是怎么回事,之前一直能用"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1133,https://github.com/router-for-me/CLIProxyAPI/issues/1133,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0351,general-polish,"Follow up on ""希望供应商能够加上微软365"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1128,https://github.com/router-for-me/CLIProxyAPI/issues/1128,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0352,cli-ux-dx,"Harden ""codex的config.toml文件在哪里修改?"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1127,https://github.com/router-for-me/CLIProxyAPI/issues/1127,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0353,thinking-and-reasoning,"Operationalize ""[Bug] Antigravity provider intermittently strips `thinking` blocks in multi-turn conversations with extended thinking enabled"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1124,https://github.com/router-for-me/CLIProxyAPI/issues/1124,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0354,websocket-and-streaming,"Convert ""使用Amp CLI的Painter工具画图显示prompt is too long"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1123,https://github.com/router-for-me/CLIProxyAPI/issues/1123,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0355,responses-and-chat-compat,"Add DX polish around ""gpt-5.2-codex ""System messages are not allowed"""" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1122,https://github.com/router-for-me/CLIProxyAPI/issues/1122,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0356,thinking-and-reasoning,"Expand docs and examples for ""kiro使用orchestrator 模式调用的时候会报错400"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1120,https://github.com/router-for-me/CLIProxyAPI/issues/1120,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0357,docs-quickstarts,"Create/refresh provider quickstart derived from ""Error code: 400 - {'detail': 'Unsupported parameter: user'}"" including setup, auth, model select, and sanity-check commands.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1119,https://github.com/router-for-me/CLIProxyAPI/issues/1119,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0358,websocket-and-streaming,"Refactor implementation behind ""添加智谱OpenAI兼容提供商获取模型和测试会失败"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1118,https://github.com/router-for-me/CLIProxyAPI/issues/1118,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0359,responses-and-chat-compat,"Ensure rollout safety for ""gemini-3-pro-high (Antigravity): malformed_function_call error with tools"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1113,https://github.com/router-for-me/CLIProxyAPI/issues/1113,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0360,general-polish,"Standardize metadata and naming conventions touched by ""该凭证暂无可用模型,这是被封号了的意思吗"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1111,https://github.com/router-for-me/CLIProxyAPI/issues/1111,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0361,go-cli-extraction,"Port relevant thegent-managed flow implied by ""香蕉pro 图片一下将所有图片额度都消耗没了"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1110,https://github.com/router-for-me/CLIProxyAPI/issues/1110,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0362,thinking-and-reasoning,"Harden ""Error 'Expected thinking or redacted_thinking' after upgrade to v6.7.12"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1109,https://github.com/router-for-me/CLIProxyAPI/issues/1109,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0363,provider-model-registry,"Operationalize ""[Feature Request] whitelist models for specific API KEY"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1107,https://github.com/router-for-me/CLIProxyAPI/issues/1107,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0364,responses-and-chat-compat,"Convert ""gemini-3-pro-high returns empty response when subagent uses tools"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1106,https://github.com/router-for-me/CLIProxyAPI/issues/1106,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0365,provider-model-registry,"Add DX polish around ""GitStore local repo fills tmpfs due to accumulating loose git objects (no GC/repack)"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1104,https://github.com/router-for-me/CLIProxyAPI/issues/1104,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0366,websocket-and-streaming,"Expand docs and examples for ""ℹ ⚠️ Response stopped due to malformed function call. 在 Gemini CLI 中 频繁出现这个提示,对话中断"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1100,https://github.com/router-for-me/CLIProxyAPI/issues/1100,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0367,general-polish,"Add QA scenarios for ""【功能请求】添加禁用项目按键(或优先级逻辑)"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1098,https://github.com/router-for-me/CLIProxyAPI/issues/1098,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0368,integration-api-bindings,"Define non-subprocess integration path related to ""有支持豆包的反代吗"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#1097,https://github.com/router-for-me/CLIProxyAPI/issues/1097,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0369,provider-model-registry,"Ensure rollout safety for ""Wrong workspace selected for OpenAI accounts"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1095,https://github.com/router-for-me/CLIProxyAPI/issues/1095,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0370,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Anthropic web_search fails in v6.7.x - invalid tool name web_search_20250305"" across both repos.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1094,https://github.com/router-for-me/CLIProxyAPI/issues/1094,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0371,thinking-and-reasoning,"Follow up on ""Antigravity 生图无法指定分辨率"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1093,https://github.com/router-for-me/CLIProxyAPI/issues/1093,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0372,oauth-and-authentication,"Harden ""文件写方式在docker下容易出现Inode变更问题"" with clearer validation, safer defaults, and defensive fallbacks.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1092,https://github.com/router-for-me/CLIProxyAPI/issues/1092,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0373,websocket-and-streaming,"Operationalize ""命令行中返回结果一切正常,但是在cherry studio中找不到模型"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1090,https://github.com/router-for-me/CLIProxyAPI/issues/1090,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0374,docs-quickstarts,"Create/refresh provider quickstart derived from ""[Feedback #1044] 尝试通过 Payload 设置 Gemini 3 宽高比失败 (Google API 400 Error)"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1089,https://github.com/router-for-me/CLIProxyAPI/issues/1089,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0375,websocket-and-streaming,"Add DX polish around ""反重力2API opus模型 Error searching files"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1086,https://github.com/router-for-me/CLIProxyAPI/issues/1086,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0376,thinking-and-reasoning,"Expand docs and examples for ""Streaming Response Translation Fails to Emit Completion Events on `[DONE]` Marker"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1085,https://github.com/router-for-me/CLIProxyAPI/issues/1085,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0377,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Feature Request: Add support for Text Embedding API (/v1/embeddings)"" so local config and runtime can be reloaded deterministically.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1084,https://github.com/router-for-me/CLIProxyAPI/issues/1084,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0378,websocket-and-streaming,"Refactor implementation behind ""大香蕉生图无图片返回"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1083,https://github.com/router-for-me/CLIProxyAPI/issues/1083,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0379,responses-and-chat-compat,"Ensure rollout safety for ""修改报错HTTP Status Code"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1082,https://github.com/router-for-me/CLIProxyAPI/issues/1082,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0380,go-cli-extraction,"Port relevant thegent-managed flow implied by ""反重力2api无法使用工具"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1080,https://github.com/router-for-me/CLIProxyAPI/issues/1080,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0381,oauth-and-authentication,"Follow up on ""配额管理中可否新增Claude OAuth认证方式号池的配额信息"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1079,https://github.com/router-for-me/CLIProxyAPI/issues/1079,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0382,thinking-and-reasoning,"Harden ""Extended thinking model fails with ""Expected thinking or redacted_thinking, but found tool_use"" on multi-turn conversations"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1078,https://github.com/router-for-me/CLIProxyAPI/issues/1078,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0383,responses-and-chat-compat,"Operationalize ""functionDeclarations 和 googleSearch 合并到同一个 tool 对象导致 Gemini API 报错"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1077,https://github.com/router-for-me/CLIProxyAPI/issues/1077,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0384,responses-and-chat-compat,"Convert ""Antigravity: MCP 工具的数字类型 enum 值导致 INVALID_ARGUMENT 错误"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1075,https://github.com/router-for-me/CLIProxyAPI/issues/1075,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0385,websocket-and-streaming,"Add DX polish around ""认证文件管理可否添加一键导出所有凭证的按钮"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1074,https://github.com/router-for-me/CLIProxyAPI/issues/1074,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0386,responses-and-chat-compat,"Expand docs and examples for ""image generation 429"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1073,https://github.com/router-for-me/CLIProxyAPI/issues/1073,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0387,thinking-and-reasoning,"Add QA scenarios for ""No Auth Available"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1072,https://github.com/router-for-me/CLIProxyAPI/issues/1072,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0388,responses-and-chat-compat,"Refactor implementation behind ""配置OpenAI兼容格式的API,用Anthropic接口 OpenAI接口都调用不成功"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1066,https://github.com/router-for-me/CLIProxyAPI/issues/1066,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0389,thinking-and-reasoning,"Ensure rollout safety for """"Think Mode"" Reasoning models are not visible in GitHub Copilot interface"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1065,https://github.com/router-for-me/CLIProxyAPI/issues/1065,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0390,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Gemini 和 Claude 多条 system 提示词时,只有最后一条生效 / When Gemini and Claude have multiple system prompt words, only the last one takes effect"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1064,https://github.com/router-for-me/CLIProxyAPI/issues/1064,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0391,docs-quickstarts,"Create/refresh provider quickstart derived from ""OAuth issue with Qwen using Google Social Login"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1063,https://github.com/router-for-me/CLIProxyAPI/issues/1063,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0392,oauth-and-authentication,"Harden ""[Feature] allow to disable auth files from UI (management)"" with clearer validation, safer defaults, and defensive fallbacks.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1062,https://github.com/router-for-me/CLIProxyAPI/issues/1062,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0393,general-polish,"Operationalize ""最新版claude 2.1.9调用后,会在后台刷出大量warn;持续输出"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1061,https://github.com/router-for-me/CLIProxyAPI/issues/1061,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0394,websocket-and-streaming,"Convert ""Antigravity 针对Pro账号的 Claude/GPT 模型有周限额了吗?"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1060,https://github.com/router-for-me/CLIProxyAPI/issues/1060,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0395,thinking-and-reasoning,"Add DX polish around ""OpenAI 兼容提供商 由于客户端没有兼容OpenAI接口,导致调用失败"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1059,https://github.com/router-for-me/CLIProxyAPI/issues/1059,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0396,general-polish,"Expand docs and examples for ""希望可以增加antigravity授权的配额保护功能"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1058,https://github.com/router-for-me/CLIProxyAPI/issues/1058,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0397,responses-and-chat-compat,"Add QA scenarios for ""[bug]在 opencode 多次正常请求后出现 500 Unknown Error 后紧接着 No Auth Available"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1057,https://github.com/router-for-me/CLIProxyAPI/issues/1057,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0398,thinking-and-reasoning,"Refactor implementation behind ""6.7.3报错 claude和cherry 都报错,是配置问题吗?还是模型换名了unknown provider for model gemini-claude-opus-4-"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1056,https://github.com/router-for-me/CLIProxyAPI/issues/1056,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0399,go-cli-extraction,"Port relevant thegent-managed flow implied by ""codex-instructions-enabled为true时,在codex-cli中使用是否会重复注入instructions?"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1055,https://github.com/router-for-me/CLIProxyAPI/issues/1055,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0400,websocket-and-streaming,"Standardize metadata and naming conventions touched by ""cliproxyapi多个账户切换(因限流/账号问题), 导致客户端直接报错"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1053,https://github.com/router-for-me/CLIProxyAPI/issues/1053,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0401,provider-model-registry,"Follow up on ""Codex authentication cannot be detected"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1052,https://github.com/router-for-me/CLIProxyAPI/issues/1052,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0402,oauth-and-authentication,"Harden ""v6.7.3 OAuth 模型映射 新增或修改存在问题"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1051,https://github.com/router-for-me/CLIProxyAPI/issues/1051,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0403,general-polish,"Operationalize ""【建议】持久化储存使用统计"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1050,https://github.com/router-for-me/CLIProxyAPI/issues/1050,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0404,oauth-and-authentication,"Convert ""最新版本CPA,OAuths模型映射功能失败?"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1048,https://github.com/router-for-me/CLIProxyAPI/issues/1048,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0405,oauth-and-authentication,"Add DX polish around ""新增的Antigravity文件会报错429"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1047,https://github.com/router-for-me/CLIProxyAPI/issues/1047,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0406,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Docker部署缺失gemini-web-auth功能"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1045,https://github.com/router-for-me/CLIProxyAPI/issues/1045,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0407,cli-ux-dx,"Add QA scenarios for ""image模型能否在cliproxyapi中直接区分2k,4k"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1044,https://github.com/router-for-me/CLIProxyAPI/issues/1044,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0408,docs-quickstarts,"Create/refresh provider quickstart derived from ""OpenAI-compatible assistant content arrays dropped in conversion, causing repeated replies"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1043,https://github.com/router-for-me/CLIProxyAPI/issues/1043,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0409,websocket-and-streaming,"Ensure rollout safety for ""qwen进行模型映射时提示 更新模型映射失败: channel not found"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1042,https://github.com/router-for-me/CLIProxyAPI/issues/1042,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0410,websocket-and-streaming,"Standardize metadata and naming conventions touched by ""升级到最新版本后,认证文件页面提示请升级CPA版本"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1041,https://github.com/router-for-me/CLIProxyAPI/issues/1041,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0411,websocket-and-streaming,"Follow up on ""服务启动后,终端连续不断打印相同内容"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1040,https://github.com/router-for-me/CLIProxyAPI/issues/1040,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0412,websocket-and-streaming,"Harden ""Issue"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1039,https://github.com/router-for-me/CLIProxyAPI/issues/1039,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0413,websocket-and-streaming,"Operationalize ""Antigravity error to get quota limit"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1038,https://github.com/router-for-me/CLIProxyAPI/issues/1038,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0414,integration-api-bindings,"Define non-subprocess integration path related to ""macos webui Codex OAuth error"" (Go bindings surface + HTTP fallback contract + version negotiation).",P1,S,issue,router-for-me/CLIProxyAPI,issue#1037,https://github.com/router-for-me/CLIProxyAPI/issues/1037,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0415,oauth-and-authentication,"Add DX polish around ""antigravity 无法获取登录链接"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1035,https://github.com/router-for-me/CLIProxyAPI/issues/1035,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0416,error-handling-retries,"Expand docs and examples for ""UltraAI Workspace account error: project_id cannot be retrieved"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1034,https://github.com/router-for-me/CLIProxyAPI/issues/1034,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0417,websocket-and-streaming,"Add QA scenarios for ""额度获取失败:Gemini CLI 凭证缺少 Project ID"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1032,https://github.com/router-for-me/CLIProxyAPI/issues/1032,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0418,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Antigravity auth causes infinite refresh loop when project_id cannot be fetched"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1030,https://github.com/router-for-me/CLIProxyAPI/issues/1030,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0419,error-handling-retries,"Ensure rollout safety for ""希望能够通过配置文件设定API调用超时时间"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1029,https://github.com/router-for-me/CLIProxyAPI/issues/1029,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0420,provider-model-registry,"Standardize metadata and naming conventions touched by ""Calling gpt-codex-5.2 returns 400 error: “Unsupported parameter: safety_identifier”"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1028,https://github.com/router-for-me/CLIProxyAPI/issues/1028,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0421,general-polish,"Follow up on ""【建议】能否加一下模型配额优先级?"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1027,https://github.com/router-for-me/CLIProxyAPI/issues/1027,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0422,websocket-and-streaming,"Harden ""求问,配额显示并不准确"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1026,https://github.com/router-for-me/CLIProxyAPI/issues/1026,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0423,provider-model-registry,"Operationalize ""Vertex Credential Doesn't Work with gemini-3-pro-image-preview"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1024,https://github.com/router-for-me/CLIProxyAPI/issues/1024,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0424,install-and-ops,"Convert ""[Feature] 提供更新命令"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1023,https://github.com/router-for-me/CLIProxyAPI/issues/1023,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0425,docs-quickstarts,"Create/refresh provider quickstart derived from ""授权文件可以拷贝使用"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1022,https://github.com/router-for-me/CLIProxyAPI/issues/1022,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0426,provider-model-registry,"Expand docs and examples for ""额度的消耗怎么做到平均分配和限制最多使用量呢?"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1021,https://github.com/router-for-me/CLIProxyAPI/issues/1021,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0427,websocket-and-streaming,"Add QA scenarios for ""【建议】就算开了日志也无法区别为什么新加的这个账号错误的原因"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1020,https://github.com/router-for-me/CLIProxyAPI/issues/1020,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0428,provider-model-registry,"Refactor implementation behind ""每天早上都报错 错误: Failed to call gemini-3-pro-preview model: unknown provider for model gemini-3-pro-preview 要重新删除账号重新登录,"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1019,https://github.com/router-for-me/CLIProxyAPI/issues/1019,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0429,thinking-and-reasoning,"Ensure rollout safety for ""Antigravity Accounts Rate Limited (HTTP 429) Despite Available Quota"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1015,https://github.com/router-for-me/CLIProxyAPI/issues/1015,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0430,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Bug: CLIproxyAPI returns Prompt is too long (need trim history)"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1014,https://github.com/router-for-me/CLIProxyAPI/issues/1014,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0431,provider-model-registry,"Follow up on ""Management Usage report resets at restart"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1013,https://github.com/router-for-me/CLIProxyAPI/issues/1013,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0432,websocket-and-streaming,"Harden ""使用gemini-3-pro-image-preview 模型,生成不了图片"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1012,https://github.com/router-for-me/CLIProxyAPI/issues/1012,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0433,oauth-and-authentication,"Operationalize ""「建议」希望能添加一个手动控制某 oauth 认证是否参与反代的功能"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1010,https://github.com/router-for-me/CLIProxyAPI/issues/1010,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0434,thinking-and-reasoning,"Convert ""[Bug] Missing mandatory tool_use.id in request payload causing failure on subsequent tool calls"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1009,https://github.com/router-for-me/CLIProxyAPI/issues/1009,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0435,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""添加openai v1 chat接口,使用responses调用,出现截断,最后几个字不显示"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1008,https://github.com/router-for-me/CLIProxyAPI/issues/1008,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0436,thinking-and-reasoning,"Expand docs and examples for ""iFlow token刷新失败"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1007,https://github.com/router-for-me/CLIProxyAPI/issues/1007,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0437,go-cli-extraction,"Port relevant thegent-managed flow implied by ""fix(codex): Codex 流错误格式不符合 OpenAI Responses API 规范导致客户端解析失败"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1006,https://github.com/router-for-me/CLIProxyAPI/issues/1006,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0438,responses-and-chat-compat,"Refactor implementation behind ""Feature: Add Veo 3.1 Video Generation Support"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#1005,https://github.com/router-for-me/CLIProxyAPI/issues/1005,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0439,responses-and-chat-compat,"Ensure rollout safety for ""Bug: Streaming response.output_item.done missing function name"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#1004,https://github.com/router-for-me/CLIProxyAPI/issues/1004,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0440,general-polish,"Standardize metadata and naming conventions touched by ""Close"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1003,https://github.com/router-for-me/CLIProxyAPI/issues/1003,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0441,provider-model-registry,"Follow up on ""gemini 3 missing field"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#1002,https://github.com/router-for-me/CLIProxyAPI/issues/1002,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0442,docs-quickstarts,"Create/refresh provider quickstart derived from ""[Bug] Codex Responses API: item_reference in `input` not cleaned, causing 404 errors and incorrect client suspension"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#999,https://github.com/router-for-me/CLIProxyAPI/issues/999,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0443,responses-and-chat-compat,"Operationalize ""[Bug] Codex Responses API: `input` 中的 item_reference 未清理,导致 404 错误和客户端被误暂停"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#998,https://github.com/router-for-me/CLIProxyAPI/issues/998,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0444,responses-and-chat-compat,"Convert ""【建议】保留Gemini格式请求的思考签名"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#997,https://github.com/router-for-me/CLIProxyAPI/issues/997,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0445,websocket-and-streaming,"Add DX polish around ""Gemini CLI 认证api,不支持gemini 3"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#996,https://github.com/router-for-me/CLIProxyAPI/issues/996,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0446,general-polish,"Expand docs and examples for ""配额管理显示不正常。"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#995,https://github.com/router-for-me/CLIProxyAPI/issues/995,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0447,general-polish,"Add QA scenarios for ""使用oh my opencode的时候subagent调用不积极"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#992,https://github.com/router-for-me/CLIProxyAPI/issues/992,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0448,general-polish,"Refactor implementation behind ""A tool for AmpCode agent to turn on off free mode to enjoy Oracle, Websearch by free credits without seeing ads to much"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#990,https://github.com/router-for-me/CLIProxyAPI/issues/990,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0449,thinking-and-reasoning,"Ensure rollout safety for ""`tool_use` ids were found without `tool_result` blocks immediately"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#989,https://github.com/router-for-me/CLIProxyAPI/issues/989,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0450,general-polish,"Standardize metadata and naming conventions touched by ""Codex callback URL仅显示:http://localhost:1455/success"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#988,https://github.com/router-for-me/CLIProxyAPI/issues/988,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0451,websocket-and-streaming,"Follow up on ""【建议】在CPA webui中实现禁用某个特定的凭证"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#987,https://github.com/router-for-me/CLIProxyAPI/issues/987,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0452,responses-and-chat-compat,"Harden ""New OpenAI API: /responses/compact"" with clearer validation, safer defaults, and defensive fallbacks.",P3,S,issue,router-for-me/CLIProxyAPI,issue#986,https://github.com/router-for-me/CLIProxyAPI/issues/986,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0453,responses-and-chat-compat,"Operationalize ""Bug Report: OAuth Login Failure on Windows due to Port 51121 Conflict"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#985,https://github.com/router-for-me/CLIProxyAPI/issues/985,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0454,responses-and-chat-compat,"Convert ""Claude model reports wrong/unknown model when accessed via API (Claude Code OAuth)"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#984,https://github.com/router-for-me/CLIProxyAPI/issues/984,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0455,thinking-and-reasoning,"Add DX polish around ""400 Error: Unsupported max_tokens Parameter When Using OpenAI Base URL"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#983,https://github.com/router-for-me/CLIProxyAPI/issues/983,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0456,go-cli-extraction,"Port relevant thegent-managed flow implied by ""[建议]Codex渠道将System角色映射为Developer角色"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#982,https://github.com/router-for-me/CLIProxyAPI/issues/982,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0457,provider-model-registry,"Add QA scenarios for ""No Image Generation Models Available After Gemini CLI Setup"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#978,https://github.com/router-for-me/CLIProxyAPI/issues/978,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0458,thinking-and-reasoning,"Refactor implementation behind ""When using the amp cli with gemini 3 pro, after thinking, nothing happens"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#977,https://github.com/router-for-me/CLIProxyAPI/issues/977,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0459,docs-quickstarts,"Create/refresh provider quickstart derived from ""GPT5.2模型异常报错 auth_unavailable: no auth available"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#976,https://github.com/router-for-me/CLIProxyAPI/issues/976,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0460,integration-api-bindings,"Define non-subprocess integration path related to ""fill-first strategy does not take effect (all accounts remain at 99%)"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#974,https://github.com/router-for-me/CLIProxyAPI/issues/974,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0461,responses-and-chat-compat,"Follow up on ""Auth files permanently deleted from S3 on service restart due to race condition"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#973,https://github.com/router-for-me/CLIProxyAPI/issues/973,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0462,provider-model-registry,"Harden ""feat: Enhanced Request Logging with Metadata and Management API for Observability"" with clearer validation, safer defaults, and defensive fallbacks.",P3,S,issue,router-for-me/CLIProxyAPI,issue#972,https://github.com/router-for-me/CLIProxyAPI/issues/972,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0463,provider-model-registry,"Operationalize ""Antigravity with opus 4,5 keeps giving rate limits error for no reason."" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#970,https://github.com/router-for-me/CLIProxyAPI/issues/970,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0464,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""exhausted没被重试or跳过,被传下来了"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#968,https://github.com/router-for-me/CLIProxyAPI/issues/968,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0465,oauth-and-authentication,"Add DX polish around ""初次运行运行.exe文件报错"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#966,https://github.com/router-for-me/CLIProxyAPI/issues/966,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0466,error-handling-retries,"Expand docs and examples for ""登陆后白屏"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#965,https://github.com/router-for-me/CLIProxyAPI/issues/965,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0467,provider-model-registry,"Add QA scenarios for ""版本:6.6.98 症状:登录成功后白屏,React Error #300 复现:登录后立即崩溃白屏"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#964,https://github.com/router-for-me/CLIProxyAPI/issues/964,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0468,general-polish,"Refactor implementation behind ""反重力反代在opencode不支持,问话回答一下就断"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#962,https://github.com/router-for-me/CLIProxyAPI/issues/962,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0469,thinking-and-reasoning,"Ensure rollout safety for ""Antigravity using Flash 2.0 Model for Sonet"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#960,https://github.com/router-for-me/CLIProxyAPI/issues/960,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0470,general-polish,"Standardize metadata and naming conventions touched by ""建议优化轮询逻辑,同一账号额度用完刷新后作为第二优先级轮询"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#959,https://github.com/router-for-me/CLIProxyAPI/issues/959,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0471,responses-and-chat-compat,"Follow up on ""macOS的webui无法登录"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#957,https://github.com/router-for-me/CLIProxyAPI/issues/957,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0472,websocket-and-streaming,"Harden ""【bug】三方兼容open ai接口 测试会报这个,如何解决呢?"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#956,https://github.com/router-for-me/CLIProxyAPI/issues/956,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0473,oauth-and-authentication,"Operationalize ""[Feature] Allow define log filepath in config"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#954,https://github.com/router-for-me/CLIProxyAPI/issues/954,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0474,general-polish,"Convert ""[建议]希望OpenAI 兼容提供商支持启用停用功能"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#953,https://github.com/router-for-me/CLIProxyAPI/issues/953,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0475,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Reasoning field missing for gpt-5.1-codex-max at xhigh reasoning level (while gpt-5.2-codex works as expected)"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#952,https://github.com/router-for-me/CLIProxyAPI/issues/952,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0476,docs-quickstarts,"Create/refresh provider quickstart derived from ""[Bug]反代 Antigravity 使用Claude Code 时,特定请求持续无响应导致 504 Gateway Timeout"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#951,https://github.com/router-for-me/CLIProxyAPI/issues/951,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0477,docs-quickstarts,"Add QA scenarios for ""README has been replaced by the one from CLIProxyAPIPlus"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#950,https://github.com/router-for-me/CLIProxyAPI/issues/950,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0478,responses-and-chat-compat,"Refactor implementation behind ""Internal Server Error: {""error"":{""message"":""auth_unavailable: no auth available""... (click to expand) [retrying in 8s attempt #4]"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#949,https://github.com/router-for-me/CLIProxyAPI/issues/949,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0479,responses-and-chat-compat,"Ensure rollout safety for ""[BUG] Multi-part Gemini response loses content - only last part preserved in OpenAI translation"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#948,https://github.com/router-for-me/CLIProxyAPI/issues/948,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0480,general-polish,"Standardize metadata and naming conventions touched by ""内存占用太高,用了1.5g"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#944,https://github.com/router-for-me/CLIProxyAPI/issues/944,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0481,thinking-and-reasoning,"Follow up on ""接入openroute成功,但是下游使用异常"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#942,https://github.com/router-for-me/CLIProxyAPI/issues/942,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0482,responses-and-chat-compat,"Harden ""fix: use original request JSON for echoed fields in OpenAI Responses translator"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#941,https://github.com/router-for-me/CLIProxyAPI/issues/941,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0483,integration-api-bindings,"Define non-subprocess integration path related to ""现有指令会让 Gemini 产生误解,无法真正忽略前置系统提示"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#940,https://github.com/router-for-me/CLIProxyAPI/issues/940,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0484,provider-model-registry,"Convert ""[Feature Request] Support Priority Failover Strategy (Priority Queue) Instead of all Round-Robin"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#937,https://github.com/router-for-me/CLIProxyAPI/issues/937,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0485,thinking-and-reasoning,"Add DX polish around ""[Feature Request] Support multiple aliases for a single model name in oauth-model-mappings"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#936,https://github.com/router-for-me/CLIProxyAPI/issues/936,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0486,thinking-and-reasoning,"Expand docs and examples for ""新手登陆认证问题"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#934,https://github.com/router-for-me/CLIProxyAPI/issues/934,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0487,general-polish,"Add QA scenarios for ""能不能支持UA伪装?"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#933,https://github.com/router-for-me/CLIProxyAPI/issues/933,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0488,cli-ux-dx,"Refactor implementation behind ""[features request] 恳请CPA团队能否增加KIRO的反代模式?Could you add a reverse proxy api to KIRO?"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#932,https://github.com/router-for-me/CLIProxyAPI/issues/932,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0489,thinking-and-reasoning,"Ensure rollout safety for ""Gemini 3 Pro cannot perform native tool calls in Roo Code"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#931,https://github.com/router-for-me/CLIProxyAPI/issues/931,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0490,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Qwen OAuth Request Error"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#930,https://github.com/router-for-me/CLIProxyAPI/issues/930,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0491,thinking-and-reasoning,"Follow up on ""无法在 api 代理中使用 Anthropic 模型,报错 429"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#929,https://github.com/router-for-me/CLIProxyAPI/issues/929,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0492,thinking-and-reasoning,"Harden ""[Bug] 400 error on Claude Code internal requests when thinking is enabled - assistant message missing thinking block"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#928,https://github.com/router-for-me/CLIProxyAPI/issues/928,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0493,docs-quickstarts,"Create/refresh provider quickstart derived from ""配置自定义提供商的时候怎么给相同的baseurl一次配置多个API Token呢?"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#927,https://github.com/router-for-me/CLIProxyAPI/issues/927,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0494,go-cli-extraction,"Port relevant thegent-managed flow implied by ""同一个chatgpt账号加入了多个工作空间,同时个人账户也有gptplus,他们的codex认证文件在cliproxyapi不能同时使用"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#926,https://github.com/router-for-me/CLIProxyAPI/issues/926,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0495,oauth-and-authentication,"Add DX polish around ""iFlow 登录失败"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#923,https://github.com/router-for-me/CLIProxyAPI/issues/923,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0496,general-polish,"Expand docs and examples for ""希望能自定义系统提示,比如自定义前缀"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#922,https://github.com/router-for-me/CLIProxyAPI/issues/922,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0497,thinking-and-reasoning,"Add QA scenarios for ""Help for setting mistral"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#920,https://github.com/router-for-me/CLIProxyAPI/issues/920,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0498,general-polish,"Refactor implementation behind ""能不能添加功能,禁用某些配置文件"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#919,https://github.com/router-for-me/CLIProxyAPI/issues/919,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0499,oauth-and-authentication,"Ensure rollout safety for ""How to run this?"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#917,https://github.com/router-for-me/CLIProxyAPI/issues/917,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0500,general-polish,"Standardize metadata and naming conventions touched by ""API密钥→特定配额文件"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#915,https://github.com/router-for-me/CLIProxyAPI/issues/915,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0501,docs-quickstarts,"Follow up on ""增加支持Gemini API v1版本"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#914,https://github.com/router-for-me/CLIProxyAPI/issues/914,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0502,responses-and-chat-compat,"Harden ""error on claude code"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#913,https://github.com/router-for-me/CLIProxyAPI/issues/913,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0503,general-polish,"Operationalize ""反重力Claude修好后,大香蕉不行了"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#912,https://github.com/router-for-me/CLIProxyAPI/issues/912,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0504,general-polish,"Convert ""看到有人发了一个更短的提示词"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#911,https://github.com/router-for-me/CLIProxyAPI/issues/911,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0505,thinking-and-reasoning,"Add DX polish around ""Antigravity models return 429 RESOURCE_EXHAUSTED via cURL, but Antigravity IDE still works (started ~18:00 GMT+7)"" through improved command ergonomics and faster feedback loops.",P3,S,issue,router-for-me/CLIProxyAPI,issue#910,https://github.com/router-for-me/CLIProxyAPI/issues/910,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0506,integration-api-bindings,"Define non-subprocess integration path related to ""gemini3p报429,其他的都好好的"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#908,https://github.com/router-for-me/CLIProxyAPI/issues/908,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0507,responses-and-chat-compat,"Add QA scenarios for ""[BUG] 403 You are currently configured to use a Google Cloud Project but lack a Gemini Code Assist license"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#907,https://github.com/router-for-me/CLIProxyAPI/issues/907,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0508,websocket-and-streaming,"Refactor implementation behind ""新版本运行闪退"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#906,https://github.com/router-for-me/CLIProxyAPI/issues/906,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0509,thinking-and-reasoning,"Ensure rollout safety for ""更新到最新版本后,自定义 System Prompt 无效"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#905,https://github.com/router-for-me/CLIProxyAPI/issues/905,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0510,docs-quickstarts,"Create/refresh provider quickstart derived from ""⎿ 429 {""error"":{""code"":""model_cooldown"",""message"":""All credentials for model gemini-claude-opus-4-5-thinking are cooling down via provider antigravity"",""model"":""gemini-claude-opus-4-5-thinking"",""provider"":""antigravity"",""reset_seconds"" including setup, auth, model select, and sanity-check commands.",P3,S,issue,router-for-me/CLIProxyAPI,issue#904,https://github.com/router-for-me/CLIProxyAPI/issues/904,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0511,general-polish,"Follow up on ""有人遇到相同问题么?Resource has been exhausted (e.g. check quota)"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#903,https://github.com/router-for-me/CLIProxyAPI/issues/903,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0512,oauth-and-authentication,"Harden ""auth_unavailable: no auth available"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#902,https://github.com/router-for-me/CLIProxyAPI/issues/902,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0513,go-cli-extraction,"Port relevant thegent-managed flow implied by ""OpenAI Codex returns 400: Unsupported parameter: prompt_cache_retention"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#897,https://github.com/router-for-me/CLIProxyAPI/issues/897,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0514,general-polish,"Convert ""[feat]自动优化Antigravity的quota刷新时间选项"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#895,https://github.com/router-for-me/CLIProxyAPI/issues/895,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0515,oauth-and-authentication,"Add DX polish around ""Apply Routing Strategy also to Auth Files"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#893,https://github.com/router-for-me/CLIProxyAPI/issues/893,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0516,provider-model-registry,"Expand docs and examples for ""支持包含模型配置"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#892,https://github.com/router-for-me/CLIProxyAPI/issues/892,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0517,oauth-and-authentication,"Add QA scenarios for ""Cursor subscription support"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#891,https://github.com/router-for-me/CLIProxyAPI/issues/891,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0518,cli-ux-dx,"Refactor implementation behind ""增加qodercli"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#889,https://github.com/router-for-me/CLIProxyAPI/issues/889,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0519,thinking-and-reasoning,"Ensure rollout safety for ""[Bug] Codex auth file overwritten when account has both Plus and Team plans"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#887,https://github.com/router-for-me/CLIProxyAPI/issues/887,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0520,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""新版本有超时Bug,切换回老版本没问题"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#886,https://github.com/router-for-me/CLIProxyAPI/issues/886,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0521,thinking-and-reasoning,"Follow up on ""can not work with mcp:ncp on antigravity auth"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#885,https://github.com/router-for-me/CLIProxyAPI/issues/885,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0522,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Gemini Cli Oauth 认证失败"" so local config and runtime can be reloaded deterministically.",P1,S,issue,router-for-me/CLIProxyAPI,issue#884,https://github.com/router-for-me/CLIProxyAPI/issues/884,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0523,testing-and-quality,"Operationalize ""Claude Code Web Search doesn’t work"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#883,https://github.com/router-for-me/CLIProxyAPI/issues/883,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0524,responses-and-chat-compat,"Convert ""fix(antigravity): Streaming finish_reason 'tool_calls' overwritten by 'stop' - breaks Claude Code tool detection"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#876,https://github.com/router-for-me/CLIProxyAPI/issues/876,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0525,general-polish,"Add DX polish around ""同时使用GPT账号个人空间和团队空间"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#875,https://github.com/router-for-me/CLIProxyAPI/issues/875,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0526,provider-model-registry,"Expand docs and examples for ""antigravity and gemini cli duplicated model names"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#873,https://github.com/router-for-me/CLIProxyAPI/issues/873,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0527,docs-quickstarts,"Create/refresh provider quickstart derived from ""supports stakpak.dev"" including setup, auth, model select, and sanity-check commands.",P3,S,issue,router-for-me/CLIProxyAPI,issue#872,https://github.com/router-for-me/CLIProxyAPI/issues/872,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0528,provider-model-registry,"Refactor implementation behind ""gemini 模型 tool_calls 问题"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#866,https://github.com/router-for-me/CLIProxyAPI/issues/866,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0529,integration-api-bindings,"Define non-subprocess integration path related to ""谷歌授权登录成功,但是额度刷新失败"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#864,https://github.com/router-for-me/CLIProxyAPI/issues/864,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0530,websocket-and-streaming,"Standardize metadata and naming conventions touched by ""使用统计 每次重启服务就没了,能否重启不丢失,使用手动的方式去清理统计数据"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#863,https://github.com/router-for-me/CLIProxyAPI/issues/863,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0531,websocket-and-streaming,"Follow up on ""代理 iflow 模型服务的时候频繁出现重复调用同一个请求的情况。一直循环"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#856,https://github.com/router-for-me/CLIProxyAPI/issues/856,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0532,go-cli-extraction,"Port relevant thegent-managed flow implied by ""请增加对kiro的支持"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#855,https://github.com/router-for-me/CLIProxyAPI/issues/855,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0533,general-polish,"Operationalize ""Reqest for supporting github copilot"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#854,https://github.com/router-for-me/CLIProxyAPI/issues/854,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0534,provider-model-registry,"Convert ""请添加iflow最新模型iFlow-ROME-30BA3B"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#853,https://github.com/router-for-me/CLIProxyAPI/issues/853,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0535,thinking-and-reasoning,"Add DX polish around ""[Bug] Infinite hanging and quota surge with gemini-claude-opus-4-5-thinking in Claude Code"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#852,https://github.com/router-for-me/CLIProxyAPI/issues/852,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0536,general-polish,"Expand docs and examples for ""Would the consumption be greater in Claude Code?"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#848,https://github.com/router-for-me/CLIProxyAPI/issues/848,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0537,thinking-and-reasoning,"Add QA scenarios for ""功能请求:为 OAuth 账户添加独立代理配置支持"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#847,https://github.com/router-for-me/CLIProxyAPI/issues/847,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0538,responses-and-chat-compat,"Refactor implementation behind ""Promt caching"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#845,https://github.com/router-for-me/CLIProxyAPI/issues/845,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0539,general-polish,"Ensure rollout safety for ""Feature Request: API for fetching Quota stats (remaining, renew time, etc)"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#844,https://github.com/router-for-me/CLIProxyAPI/issues/844,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0540,cli-ux-dx,"Standardize metadata and naming conventions touched by ""使用antigravity转为API在claude code中使用不支持web search"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#842,https://github.com/router-for-me/CLIProxyAPI/issues/842,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0541,thinking-and-reasoning,"Follow up on ""[Bug] Antigravity countTokens ignores tools field - always returns content-only token count"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#840,https://github.com/router-for-me/CLIProxyAPI/issues/840,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0542,responses-and-chat-compat,"Harden ""Image Generation 504 Timeout Investigation"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#839,https://github.com/router-for-me/CLIProxyAPI/issues/839,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0543,provider-model-registry,"Operationalize ""[Feature Request] Schedule automated requests to AI models"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#838,https://github.com/router-for-me/CLIProxyAPI/issues/838,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0544,docs-quickstarts,"Create/refresh provider quickstart derived from """"Feature Request: Android Binary Support (Termux Build Guide)"""" including setup, auth, model select, and sanity-check commands.",P3,S,issue,router-for-me/CLIProxyAPI,issue#836,https://github.com/router-for-me/CLIProxyAPI/issues/836,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0545,thinking-and-reasoning,"Add DX polish around ""[Bug] Antigravity token refresh loop caused by metadataEqualIgnoringTimestamps skipping critical field updates"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#833,https://github.com/router-for-me/CLIProxyAPI/issues/833,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0546,general-polish,"Expand docs and examples for ""mac使用brew安装的cpa,请问配置文件在哪?"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#831,https://github.com/router-for-me/CLIProxyAPI/issues/831,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0547,testing-and-quality,"Add QA scenarios for ""Feature request"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#828,https://github.com/router-for-me/CLIProxyAPI/issues/828,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0548,thinking-and-reasoning,"Refactor implementation behind ""长时间运行后会出现`internal_server_error`"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#827,https://github.com/router-for-me/CLIProxyAPI/issues/827,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0549,thinking-and-reasoning,"Ensure rollout safety for ""windows环境下,认证文件显示重复的BUG"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#822,https://github.com/router-for-me/CLIProxyAPI/issues/822,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0550,provider-model-registry,"Standardize metadata and naming conventions touched by ""[FQ]增加telegram bot集成和更多管理API命令刷新Providers周期额度"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#820,https://github.com/router-for-me/CLIProxyAPI/issues/820,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0551,go-cli-extraction,"Port relevant thegent-managed flow implied by ""[Feature] 能否增加/v1/embeddings 端点"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#818,https://github.com/router-for-me/CLIProxyAPI/issues/818,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0552,integration-api-bindings,"Define non-subprocess integration path related to ""模型带前缀并开启force_model_prefix后,以gemini格式获取模型列表中没有带前缀的模型"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#816,https://github.com/router-for-me/CLIProxyAPI/issues/816,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0553,thinking-and-reasoning,"Operationalize ""iFlow account error show on terminal"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#815,https://github.com/router-for-me/CLIProxyAPI/issues/815,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0554,thinking-and-reasoning,"Convert ""代理的codex 404"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#812,https://github.com/router-for-me/CLIProxyAPI/issues/812,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0555,install-and-ops,"Add DX polish around ""Set up Apprise on TrueNAS for notifications"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#808,https://github.com/router-for-me/CLIProxyAPI/issues/808,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0556,responses-and-chat-compat,"Expand docs and examples for ""Request for maintenance team intervention: Changes in internal/translator needed"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#806,https://github.com/router-for-me/CLIProxyAPI/issues/806,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0557,responses-and-chat-compat,"Add QA scenarios for ""feat(translator): integrate SanitizeFunctionName across Claude translators"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#804,https://github.com/router-for-me/CLIProxyAPI/issues/804,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0558,websocket-and-streaming,"Refactor implementation behind ""win10无法安装没反应,cmd安装提示,failed to read config file"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#801,https://github.com/router-for-me/CLIProxyAPI/issues/801,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0559,websocket-and-streaming,"Ensure rollout safety for ""在cherry-studio中的流失响应似乎未生效"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#798,https://github.com/router-for-me/CLIProxyAPI/issues/798,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0560,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""Bug: ModelStates (BackoffLevel) lost when auth is reloaded or refreshed"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#797,https://github.com/router-for-me/CLIProxyAPI/issues/797,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0561,docs-quickstarts,"Create/refresh provider quickstart derived from ""[Bug] Stream usage data is merged with finish_reason: ""stop"", causing Letta AI to crash (OpenAI Stream Options incompatibility)"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#796,https://github.com/router-for-me/CLIProxyAPI/issues/796,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0562,provider-model-registry,"Harden ""[BUG] Codex 默认回调端口 1455 位于 Hyper-v 保留端口段内"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#793,https://github.com/router-for-me/CLIProxyAPI/issues/793,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0563,thinking-and-reasoning,"Operationalize ""【Bug】: High CPU usage when managing 50+ OAuth accounts"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#792,https://github.com/router-for-me/CLIProxyAPI/issues/792,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0564,websocket-and-streaming,"Convert ""使用上游提供的 Gemini API 和 URL 获取到的模型名称不对应"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#791,https://github.com/router-for-me/CLIProxyAPI/issues/791,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0565,thinking-and-reasoning,"Add DX polish around ""当在codex exec 中使用gemini 或claude 模型时 codex 无输出结果"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#790,https://github.com/router-for-me/CLIProxyAPI/issues/790,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0566,general-polish,"Expand docs and examples for ""Brew 版本更新延迟,能否在 github Actions 自动增加更新 brew 版本?"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#789,https://github.com/router-for-me/CLIProxyAPI/issues/789,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0567,thinking-and-reasoning,"Add QA scenarios for ""[Bug]: Gemini Models Output Truncated - Database Schema Exceeds Maximum Allowed Tokens (140k+ chars) in Claude Code"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#788,https://github.com/router-for-me/CLIProxyAPI/issues/788,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0568,websocket-and-streaming,"Refactor implementation behind ""可否增加一个轮询方式的设置,某一个账户额度用尽时再使用下一个"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#784,https://github.com/router-for-me/CLIProxyAPI/issues/784,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0569,general-polish,"Ensure rollout safety for ""[功能请求] 新增联网gemini 联网模型"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#779,https://github.com/router-for-me/CLIProxyAPI/issues/779,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0570,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Support for parallel requests"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#778,https://github.com/router-for-me/CLIProxyAPI/issues/778,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0571,websocket-and-streaming,"Follow up on ""当认证账户消耗完之后,不会自动切换到 AI 提供商账户"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#777,https://github.com/router-for-me/CLIProxyAPI/issues/777,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0572,websocket-and-streaming,"Harden ""[功能请求] 假流式和非流式防超时"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#775,https://github.com/router-for-me/CLIProxyAPI/issues/775,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0573,general-polish,"Operationalize ""[功能请求]可否增加 google genai 的兼容"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#771,https://github.com/router-for-me/CLIProxyAPI/issues/771,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0574,general-polish,"Convert ""反重力账号额度同时消耗"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#768,https://github.com/router-for-me/CLIProxyAPI/issues/768,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0575,integration-api-bindings,"Define non-subprocess integration path related to ""iflow模型排除无效"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#762,https://github.com/router-for-me/CLIProxyAPI/issues/762,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0576,provider-model-registry,"Expand docs and examples for ""support proxy for opencode"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#753,https://github.com/router-for-me/CLIProxyAPI/issues/753,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0577,thinking-and-reasoning,"Add QA scenarios for ""[BUG] thinking/思考链在 antigravity 反代下被截断/丢失(stream 分块处理过严)"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#752,https://github.com/router-for-me/CLIProxyAPI/issues/752,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0578,docs-quickstarts,"Create/refresh provider quickstart derived from ""api-keys 필드에 placeholder 값이 있으면 invalid api key 에러 발생"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#751,https://github.com/router-for-me/CLIProxyAPI/issues/751,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0579,thinking-and-reasoning,"Ensure rollout safety for ""[Bug]Fix `invalid_request_error` (Field required) when assistant message has empty content with tool_calls"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#749,https://github.com/router-for-me/CLIProxyAPI/issues/749,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0580,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""建议增加 kiro CLI"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#748,https://github.com/router-for-me/CLIProxyAPI/issues/748,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0581,thinking-and-reasoning,"Follow up on ""[Bug] Streaming response 'message_start' event missing token counts (affects OpenCode/Vercel AI SDK)"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#747,https://github.com/router-for-me/CLIProxyAPI/issues/747,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0582,thinking-and-reasoning,"Harden ""[Bug] Invalid request error when using thinking with multi-turn conversations"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#746,https://github.com/router-for-me/CLIProxyAPI/issues/746,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0583,thinking-and-reasoning,"Operationalize ""Add output_tokens_details.reasoning_tokens for thinking models on /v1/messages"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#744,https://github.com/router-for-me/CLIProxyAPI/issues/744,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0584,responses-and-chat-compat,"Convert ""qwen-code-plus not supoort guided-json Structured Output"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#743,https://github.com/router-for-me/CLIProxyAPI/issues/743,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0585,thinking-and-reasoning,"Add DX polish around ""Bash tool too slow"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#742,https://github.com/router-for-me/CLIProxyAPI/issues/742,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0586,websocket-and-streaming,"Expand docs and examples for ""反代Antigravity,CC读图的时候似乎会触发bug?明明现在上下文还有很多,但是提示要compact了"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#741,https://github.com/router-for-me/CLIProxyAPI/issues/741,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0587,thinking-and-reasoning,"Add QA scenarios for ""Claude Code CLI's status line shows zero tokens"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#740,https://github.com/router-for-me/CLIProxyAPI/issues/740,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0588,thinking-and-reasoning,"Refactor implementation behind ""Tool calls not emitted after thinking blocks"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#739,https://github.com/router-for-me/CLIProxyAPI/issues/739,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0589,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Pass through actual Anthropic token counts instead of estimating"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#738,https://github.com/router-for-me/CLIProxyAPI/issues/738,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0590,general-polish,"Standardize metadata and naming conventions touched by ""多渠道同一模型映射成一个显示"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#737,https://github.com/router-for-me/CLIProxyAPI/issues/737,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0591,responses-and-chat-compat,"Follow up on ""Feature Request: Complete OpenAI Tool Calling Format Support for Claude Models (Cursor MCP Compatibility)"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#735,https://github.com/router-for-me/CLIProxyAPI/issues/735,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0592,responses-and-chat-compat,"Harden ""Bug: /v1/responses endpoint does not correctly convert message format for Anthropic API"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#736,https://github.com/router-for-me/CLIProxyAPI/issues/736,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0593,general-polish,"Operationalize ""请问有计划支持显示目前剩余额度吗"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#734,https://github.com/router-for-me/CLIProxyAPI/issues/734,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0594,thinking-and-reasoning,"Convert ""reasoning_content is null for extended thinking models (thinking goes to content instead)"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#732,https://github.com/router-for-me/CLIProxyAPI/issues/732,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0595,docs-quickstarts,"Create/refresh provider quickstart derived from ""Use actual Anthropic token counts instead of estimation for reasoning_tokens"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#731,https://github.com/router-for-me/CLIProxyAPI/issues/731,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0596,thinking-and-reasoning,"Expand docs and examples for ""400 error: messages.X.content.0.text.text: Field required"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#730,https://github.com/router-for-me/CLIProxyAPI/issues/730,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0597,thinking-and-reasoning,"Add QA scenarios for ""[BUG] Antigravity Opus + Codex cannot read images"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#729,https://github.com/router-for-me/CLIProxyAPI/issues/729,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0598,integration-api-bindings,"Define non-subprocess integration path related to ""[Feature] Usage Statistics Persistence to JSON File - PR Proposal"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#726,https://github.com/router-for-me/CLIProxyAPI/issues/726,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0599,thinking-and-reasoning,"Ensure rollout safety for ""反代的Antigravity的claude模型在opencode cli需要增强适配"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#725,https://github.com/router-for-me/CLIProxyAPI/issues/725,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0600,websocket-and-streaming,"Standardize metadata and naming conventions touched by ""iflow日志提示:当前找我聊的人太多了,可以晚点再来问我哦。"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#724,https://github.com/router-for-me/CLIProxyAPI/issues/724,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0601,general-polish,"Follow up on ""怎么加入多个反重力账号?"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#723,https://github.com/router-for-me/CLIProxyAPI/issues/723,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0602,oauth-and-authentication,"Harden ""最新的版本无法构建成镜像"" with clearer validation, safer defaults, and defensive fallbacks.",P3,S,issue,router-for-me/CLIProxyAPI,issue#721,https://github.com/router-for-me/CLIProxyAPI/issues/721,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0603,responses-and-chat-compat,"Operationalize ""API Error: 400"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#719,https://github.com/router-for-me/CLIProxyAPI/issues/719,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0604,responses-and-chat-compat,"Convert ""是否可以支持/openai/v1/responses端点"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#718,https://github.com/router-for-me/CLIProxyAPI/issues/718,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0605,general-polish,"Add DX polish around ""证书是否可以停用而非删除"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#717,https://github.com/router-for-me/CLIProxyAPI/issues/717,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0606,thinking-and-reasoning,"Expand docs and examples for ""thinking.cache_control error"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#714,https://github.com/router-for-me/CLIProxyAPI/issues/714,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0607,cli-ux-dx,"Add QA scenarios for ""Feature: able to show the remaining quota of antigravity and gemini cli"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#713,https://github.com/router-for-me/CLIProxyAPI/issues/713,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0608,go-cli-extraction,"Port relevant thegent-managed flow implied by ""/context show system tools 1 tokens, mcp tools 4 tokens"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P3,S,issue,router-for-me/CLIProxyAPI,issue#712,https://github.com/router-for-me/CLIProxyAPI/issues/712,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0609,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""报错:failed to download management asset"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#711,https://github.com/router-for-me/CLIProxyAPI/issues/711,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0610,provider-model-registry,"Standardize metadata and naming conventions touched by ""iFlow models don't work in CC anymore"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#710,https://github.com/router-for-me/CLIProxyAPI/issues/710,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0611,thinking-and-reasoning,"Follow up on ""claude code 的指令/cotnext 裡token 計算不正確"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#709,https://github.com/router-for-me/CLIProxyAPI/issues/709,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0612,docs-quickstarts,"Create/refresh provider quickstart derived from ""Behavior is not consistent with codex"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#708,https://github.com/router-for-me/CLIProxyAPI/issues/708,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0613,cli-ux-dx,"Operationalize ""iflow cli更新 GLM4.7 & MiniMax M2.1 模型"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#707,https://github.com/router-for-me/CLIProxyAPI/issues/707,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0614,thinking-and-reasoning,"Convert ""Antigravity provider returns 400 error when extended thinking is enabled after tool calls"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#702,https://github.com/router-for-me/CLIProxyAPI/issues/702,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0615,cli-ux-dx,"Add DX polish around ""iflow-cli上线glm4.7和m2.1"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#701,https://github.com/router-for-me/CLIProxyAPI/issues/701,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0616,thinking-and-reasoning,"Expand docs and examples for ""[功能请求] 支持使用 Vertex AI的API Key 模式调用"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#699,https://github.com/router-for-me/CLIProxyAPI/issues/699,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0617,docs-quickstarts,"Add QA scenarios for ""是否可以提供kiro的支持啊"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#698,https://github.com/router-for-me/CLIProxyAPI/issues/698,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0618,thinking-and-reasoning,"Refactor implementation behind ""6.6.49版本下Antigravity渠道的claude模型使用claude code缓存疑似失效"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#696,https://github.com/router-for-me/CLIProxyAPI/issues/696,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0619,responses-and-chat-compat,"Ensure rollout safety for ""Translator: support first-class system prompt override for codex"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#694,https://github.com/router-for-me/CLIProxyAPI/issues/694,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0620,websocket-and-streaming,"Standardize metadata and naming conventions touched by ""Add efficient scalar operations API (mul_scalar, add_scalar, etc.)"" across both repos.",P3,S,issue,router-for-me/CLIProxyAPI,issue#691,https://github.com/router-for-me/CLIProxyAPI/issues/691,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0621,integration-api-bindings,"Define non-subprocess integration path related to ""[功能请求] 能不能给每个号单独配置代理?"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#690,https://github.com/router-for-me/CLIProxyAPI/issues/690,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0622,general-polish,"Harden ""[Feature request] Add support for checking remaining Antigravity quota"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#687,https://github.com/router-for-me/CLIProxyAPI/issues/687,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0623,provider-model-registry,"Operationalize ""Feature Request: Priority-based Auth Selection for Specific Models"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#685,https://github.com/router-for-me/CLIProxyAPI/issues/685,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0624,provider-model-registry,"Convert ""Update Gemini 3 model names: remove -preview suffix for gemini-3-pro and gemini-3-flash"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#683,https://github.com/router-for-me/CLIProxyAPI/issues/683,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0625,responses-and-chat-compat,"Add DX polish around ""Frequent Tool-Call Failures with Gemini-2.5-pro in OpenAI-Compatible Mode"" through improved command ergonomics and faster feedback loops.",P3,S,issue,router-for-me/CLIProxyAPI,issue#682,https://github.com/router-for-me/CLIProxyAPI/issues/682,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0626,install-and-ops,"Expand docs and examples for ""Feature: Persist stats to disk (Docker-friendly) instead of in-memory only"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#681,https://github.com/router-for-me/CLIProxyAPI/issues/681,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0627,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Support developer role"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#680,https://github.com/router-for-me/CLIProxyAPI/issues/680,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0628,thinking-and-reasoning,"Refactor implementation behind ""[Bug] Token counting endpoint /v1/messages/count_tokens significantly undercounts tokens"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#679,https://github.com/router-for-me/CLIProxyAPI/issues/679,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0629,docs-quickstarts,"Create/refresh provider quickstart derived from ""[Feature] Automatic Censoring Logs"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#678,https://github.com/router-for-me/CLIProxyAPI/issues/678,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0630,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Translator: remove Copilot mention in OpenAI->Claude stream comment"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#677,https://github.com/router-for-me/CLIProxyAPI/issues/677,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0631,thinking-and-reasoning,"Follow up on ""iflow渠道凭证报错"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#669,https://github.com/router-for-me/CLIProxyAPI/issues/669,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0632,provider-model-registry,"Harden ""[Feature Request] Add timeout configuration"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#668,https://github.com/router-for-me/CLIProxyAPI/issues/668,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0633,general-polish,"Operationalize ""Support Trae"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#666,https://github.com/router-for-me/CLIProxyAPI/issues/666,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0634,oauth-and-authentication,"Convert ""Filter OTLP telemetry from Amp VS Code hitting /api/otel/v1/metrics"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#660,https://github.com/router-for-me/CLIProxyAPI/issues/660,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0635,responses-and-chat-compat,"Add DX polish around ""Handle OpenAI Responses-format payloads hitting /v1/chat/completions"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#659,https://github.com/router-for-me/CLIProxyAPI/issues/659,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0636,provider-model-registry,"Expand docs and examples for ""[Feature Request] Support reverse proxy for 'mimo' to enable Codex CLI usage"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#656,https://github.com/router-for-me/CLIProxyAPI/issues/656,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0637,responses-and-chat-compat,"Add QA scenarios for ""[Bug] Gemini API Error: 'defer_loading' field in function declarations results in 400 Invalid JSON payload"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#655,https://github.com/router-for-me/CLIProxyAPI/issues/655,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0638,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""System message (role: ""system"") completely dropped when converting to Antigravity API format"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#654,https://github.com/router-for-me/CLIProxyAPI/issues/654,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0639,responses-and-chat-compat,"Ensure rollout safety for ""Antigravity Provider Broken"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#650,https://github.com/router-for-me/CLIProxyAPI/issues/650,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0640,oauth-and-authentication,"Standardize metadata and naming conventions touched by ""希望能支持 GitHub Copilot"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#649,https://github.com/router-for-me/CLIProxyAPI/issues/649,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0641,provider-model-registry,"Follow up on ""Request Wrap Cursor to use models as proxy"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#648,https://github.com/router-for-me/CLIProxyAPI/issues/648,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0642,responses-and-chat-compat,"Harden ""[BUG] calude chrome中使用 antigravity模型 tool call错误"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#642,https://github.com/router-for-me/CLIProxyAPI/issues/642,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0643,responses-and-chat-compat,"Operationalize ""get error when tools call in jetbrains ai assistant with openai BYOK"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#639,https://github.com/router-for-me/CLIProxyAPI/issues/639,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0644,integration-api-bindings,"Define non-subprocess integration path related to ""[Bug] OAuth tokens have insufficient scopes for Gemini/Antigravity API - 401 ""Invalid API key"""" (Go bindings surface + HTTP fallback contract + version negotiation).",P1,S,issue,router-for-me/CLIProxyAPI,issue#637,https://github.com/router-for-me/CLIProxyAPI/issues/637,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0645,responses-and-chat-compat,"Add DX polish around ""Large prompt failures w/ Claude Code vs Codex routes (gpt-5.2): cloudcode 'Prompt is too long' + codex SSE missing response.completed"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#636,https://github.com/router-for-me/CLIProxyAPI/issues/636,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0646,docs-quickstarts,"Create/refresh provider quickstart derived from ""Spam about server clients and configuration updated"" including setup, auth, model select, and sanity-check commands.",P3,S,issue,router-for-me/CLIProxyAPI,issue#635,https://github.com/router-for-me/CLIProxyAPI/issues/635,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0647,thinking-and-reasoning,"Add QA scenarios for ""Payload thinking overrides break requests with tool_choice (handoff fails)"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#630,https://github.com/router-for-me/CLIProxyAPI/issues/630,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0648,provider-model-registry,"Refactor implementation behind ""我无法使用gpt5.2max而其他正常"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#629,https://github.com/router-for-me/CLIProxyAPI/issues/629,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0649,provider-model-registry,"Ensure rollout safety for ""[Feature Request] Add support for AWS Bedrock API"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#626,https://github.com/router-for-me/CLIProxyAPI/issues/626,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0650,provider-model-registry,"Standardize metadata and naming conventions touched by ""[Question] Mapping different keys to different accounts for same provider"" across both repos.",P3,S,issue,router-for-me/CLIProxyAPI,issue#625,https://github.com/router-for-me/CLIProxyAPI/issues/625,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0651,provider-model-registry,"Follow up on """"Requested entity was not found"" for Gemini 3"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#620,https://github.com/router-for-me/CLIProxyAPI/issues/620,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0652,thinking-and-reasoning,"Harden ""[Feature Request] Set hard limits for CLIProxyAPI API Keys"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#617,https://github.com/router-for-me/CLIProxyAPI/issues/617,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0653,thinking-and-reasoning,"Operationalize ""Management routes (threads, user, auth) fail with 401/402 because proxy strips client auth and injects provider-only credentials"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#614,https://github.com/router-for-me/CLIProxyAPI/issues/614,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0654,responses-and-chat-compat,"Convert ""Amp client fails with ""unexpected EOF"" when creating large files, while OpenAI-compatible clients succeed"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#613,https://github.com/router-for-me/CLIProxyAPI/issues/613,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0655,websocket-and-streaming,"Add DX polish around ""Request support for codebuff access."" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#612,https://github.com/router-for-me/CLIProxyAPI/issues/612,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0656,provider-model-registry,"Expand docs and examples for ""SDK Internal Package Dependency Issue"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#607,https://github.com/router-for-me/CLIProxyAPI/issues/607,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0657,provider-model-registry,"Add QA scenarios for ""Can't use Oracle tool in AMP Code"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#606,https://github.com/router-for-me/CLIProxyAPI/issues/606,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0658,testing-and-quality,"Refactor implementation behind ""Openai 5.2 Codex is launched"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#603,https://github.com/router-for-me/CLIProxyAPI/issues/603,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0659,thinking-and-reasoning,"Ensure rollout safety for ""Failing to do tool use from within Cursor"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#601,https://github.com/router-for-me/CLIProxyAPI/issues/601,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0660,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""[Bug] gpt-5.1-codex models return 400 error (no body) while other OpenAI models succeed"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#600,https://github.com/router-for-me/CLIProxyAPI/issues/600,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0661,thinking-and-reasoning,"Follow up on ""调用deepseek-chat报错"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#599,https://github.com/router-for-me/CLIProxyAPI/issues/599,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0662,general-polish,"Harden """" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#595,https://github.com/router-for-me/CLIProxyAPI/issues/595,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0663,docs-quickstarts,"Create/refresh provider quickstart derived from ""不能通过回调链接认证吗"" including setup, auth, model select, and sanity-check commands.",P3,S,issue,router-for-me/CLIProxyAPI,issue#594,https://github.com/router-for-me/CLIProxyAPI/issues/594,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0664,thinking-and-reasoning,"Convert ""bug: Streaming not working for Gemini 3 models (Flash/Pro Preview) via Gemini CLI/Antigravity"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#593,https://github.com/router-for-me/CLIProxyAPI/issues/593,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0665,go-cli-extraction,"Port relevant thegent-managed flow implied by ""[Bug] Antigravity prompt caching broken by random sessionId per request"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P3,S,issue,router-for-me/CLIProxyAPI,issue#592,https://github.com/router-for-me/CLIProxyAPI/issues/592,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0666,websocket-and-streaming,"Expand docs and examples for ""Important Security & Integrity Alert regarding @Eric Tech"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#591,https://github.com/router-for-me/CLIProxyAPI/issues/591,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0667,integration-api-bindings,"Define non-subprocess integration path related to ""[Bug] Models from Codex (openai) are not accessible when Copilot is added"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#590,https://github.com/router-for-me/CLIProxyAPI/issues/590,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0668,provider-model-registry,"Refactor implementation behind ""[Feature request] Add an enable switch for OpenAI-compatible providers and add model alias for antigravity"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#588,https://github.com/router-for-me/CLIProxyAPI/issues/588,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0669,responses-and-chat-compat,"Ensure rollout safety for ""[Bug] Gemini API rejects ""optional"" field in tool parameters"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#583,https://github.com/router-for-me/CLIProxyAPI/issues/583,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0670,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""github copilot problem"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#578,https://github.com/router-for-me/CLIProxyAPI/issues/578,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0671,responses-and-chat-compat,"Follow up on ""amp使用时日志频繁出现下面报错"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#576,https://github.com/router-for-me/CLIProxyAPI/issues/576,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0672,responses-and-chat-compat,"Harden ""Github Copilot Error"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#574,https://github.com/router-for-me/CLIProxyAPI/issues/574,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0673,provider-model-registry,"Operationalize ""Cursor support"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#573,https://github.com/router-for-me/CLIProxyAPI/issues/573,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0674,responses-and-chat-compat,"Convert ""Qwen CLI often stops working before finishing the task"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#567,https://github.com/router-for-me/CLIProxyAPI/issues/567,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0675,oauth-and-authentication,"Add DX polish around ""gemini cli接入后,可以正常调用所属大模型;Antigravity通过OAuth成功认证接入后,无法调用所属的模型"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#566,https://github.com/router-for-me/CLIProxyAPI/issues/566,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0676,responses-and-chat-compat,"Expand docs and examples for ""Model ignores tool response and keeps repeating tool calls (Gemini 3 Pro / 2.5 Pro)"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#565,https://github.com/router-for-me/CLIProxyAPI/issues/565,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0677,responses-and-chat-compat,"Add QA scenarios for ""fix(translator): emit message_start on first chunk regardless of role field"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#563,https://github.com/router-for-me/CLIProxyAPI/issues/563,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0678,responses-and-chat-compat,"Refactor implementation behind ""Bug: OpenAI→Anthropic streaming translation fails with tool calls - missing message_start"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#561,https://github.com/router-for-me/CLIProxyAPI/issues/561,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0679,responses-and-chat-compat,"Ensure rollout safety for ""stackTrace.format error in error response handling"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#559,https://github.com/router-for-me/CLIProxyAPI/issues/559,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0680,docs-quickstarts,"Create/refresh provider quickstart derived from ""docker运行的容器最近几个版本不会自动下载management.html了"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#557,https://github.com/router-for-me/CLIProxyAPI/issues/557,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0681,oauth-and-authentication,"Follow up on ""Bug: AmpCode login routes incorrectly require API key authentication since v6.6.15"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#554,https://github.com/router-for-me/CLIProxyAPI/issues/554,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0682,responses-and-chat-compat,"Harden ""Github Copilot"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#551,https://github.com/router-for-me/CLIProxyAPI/issues/551,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0683,thinking-and-reasoning,"Operationalize ""Gemini3配置了thinkingConfig无效,模型调用名称被改为了gemini-3-pro-high"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#550,https://github.com/router-for-me/CLIProxyAPI/issues/550,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0684,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Antigravity has no gemini-2.5-pro"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P3,S,issue,router-for-me/CLIProxyAPI,issue#548,https://github.com/router-for-me/CLIProxyAPI/issues/548,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0685,provider-model-registry,"Add DX polish around ""Add General Request Queue with Windowed Concurrency for Reliable Pseudo-Concurrent Execution"" through improved command ergonomics and faster feedback loops.",P3,S,issue,router-for-me/CLIProxyAPI,issue#546,https://github.com/router-for-me/CLIProxyAPI/issues/546,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0686,thinking-and-reasoning,"Expand docs and examples for ""The token file was not generated."" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#544,https://github.com/router-for-me/CLIProxyAPI/issues/544,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0687,provider-model-registry,"Add QA scenarios for ""Suggestion: Retain statistics after each update."" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#541,https://github.com/router-for-me/CLIProxyAPI/issues/541,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0688,thinking-and-reasoning,"Refactor implementation behind ""Bug: Codex→Claude SSE content_block.index collisions break Claude clients"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#539,https://github.com/router-for-me/CLIProxyAPI/issues/539,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0689,general-polish,"Ensure rollout safety for ""[Feature Request] Add logs rotation"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#535,https://github.com/router-for-me/CLIProxyAPI/issues/535,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0690,integration-api-bindings,"Define non-subprocess integration path related to ""[Bug] AI Studio 渠道流式响应 JSON 格式异常导致客户端解析失败"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#534,https://github.com/router-for-me/CLIProxyAPI/issues/534,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0691,responses-and-chat-compat,"Follow up on ""Feature: Add copilot-unlimited-mode config for copilot-api compatibility"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#532,https://github.com/router-for-me/CLIProxyAPI/issues/532,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0692,thinking-and-reasoning,"Harden ""Bug: content_block_start sent before message_start in OpenAI→Anthropic translation"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#530,https://github.com/router-for-me/CLIProxyAPI/issues/530,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0693,websocket-and-streaming,"Operationalize ""CLIProxyAPI,通过gemini cli来实现对gemini-2.5-pro的调用,如果遇到输出长度在上万字的情况,总是遇到429错误"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#518,https://github.com/router-for-me/CLIProxyAPI/issues/518,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0694,thinking-and-reasoning,"Convert ""Antigravity Error 400"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#517,https://github.com/router-for-me/CLIProxyAPI/issues/517,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0695,websocket-and-streaming,"Add DX polish around ""Add AiStudio error"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#513,https://github.com/router-for-me/CLIProxyAPI/issues/513,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0696,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Claude Code with Antigravity gemini-claude-sonnet-4-5-thinking error: Extra inputs are not permitted"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#512,https://github.com/router-for-me/CLIProxyAPI/issues/512,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0697,docs-quickstarts,"Create/refresh provider quickstart derived from ""Claude code results in errors with ""poor internet connection"""" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#510,https://github.com/router-for-me/CLIProxyAPI/issues/510,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0698,thinking-and-reasoning,"Refactor implementation behind ""[Feature Request] Global Alias"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#509,https://github.com/router-for-me/CLIProxyAPI/issues/509,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0699,thinking-and-reasoning,"Ensure rollout safety for ""GET /v1/models does not expose model capabilities (e.g. gpt-5.2 supports (xhigh) but cannot be discovered)"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#508,https://github.com/router-for-me/CLIProxyAPI/issues/508,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0700,provider-model-registry,"Standardize metadata and naming conventions touched by ""[Bug] Load balancing is uneven: Requests are not distributed equally among available accounts"" across both repos.",P3,S,issue,router-for-me/CLIProxyAPI,issue#506,https://github.com/router-for-me/CLIProxyAPI/issues/506,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0701,provider-model-registry,"Follow up on ""openai兼容错误使用“alias”作为模型id请求"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#503,https://github.com/router-for-me/CLIProxyAPI/issues/503,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0702,responses-and-chat-compat,"Harden ""bug: antigravity oauth callback fails on windows due to hard-coded port 51121"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#499,https://github.com/router-for-me/CLIProxyAPI/issues/499,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0703,go-cli-extraction,"Port relevant thegent-managed flow implied by ""unexpected `tool_use_id` found in `tool_result` blocks"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#497,https://github.com/router-for-me/CLIProxyAPI/issues/497,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0704,thinking-and-reasoning,"Convert ""gpt5.2 cherry 报错"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#496,https://github.com/router-for-me/CLIProxyAPI/issues/496,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0705,thinking-and-reasoning,"Add DX polish around ""antigravity中反代的接口在claude code中无法使用thinking模式"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#495,https://github.com/router-for-me/CLIProxyAPI/issues/495,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0706,general-polish,"Expand docs and examples for ""Add support for gpt-5,2"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#493,https://github.com/router-for-me/CLIProxyAPI/issues/493,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0707,provider-model-registry,"Add QA scenarios for ""OAI models not working."" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#492,https://github.com/router-for-me/CLIProxyAPI/issues/492,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0708,provider-model-registry,"Refactor implementation behind ""Did the API change?"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#491,https://github.com/router-for-me/CLIProxyAPI/issues/491,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0709,provider-model-registry,"Ensure rollout safety for ""5.2 missing. no automatic model discovery"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#490,https://github.com/router-for-me/CLIProxyAPI/issues/490,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0710,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""Tool calling fails when using Claude Opus 4.5 Thinking (AntiGravity) model via Zed Agent"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#489,https://github.com/router-for-me/CLIProxyAPI/issues/489,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0711,websocket-and-streaming,"Follow up on ""Issue with enabling logs in Mac settings."" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#484,https://github.com/router-for-me/CLIProxyAPI/issues/484,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0712,thinking-and-reasoning,"Harden ""How to configure thinking for Claude and Codex?"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#483,https://github.com/router-for-me/CLIProxyAPI/issues/483,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0713,integration-api-bindings,"Define non-subprocess integration path related to ""gpt-5-codex-(low,medium,high) models not listed anymore"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#482,https://github.com/router-for-me/CLIProxyAPI/issues/482,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0714,docs-quickstarts,"Create/refresh provider quickstart derived from ""CLIProxyAPI配置 Gemini CLI最后一步失败:Google账号权限设置不够"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#480,https://github.com/router-for-me/CLIProxyAPI/issues/480,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0715,thinking-and-reasoning,"Add DX polish around ""Files and images not working with Antigravity"" through improved command ergonomics and faster feedback loops.",P3,S,issue,router-for-me/CLIProxyAPI,issue#478,https://github.com/router-for-me/CLIProxyAPI/issues/478,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0716,thinking-and-reasoning,"Expand docs and examples for ""antigravity渠道的claude模型在claude code中无法使用explore工具"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#477,https://github.com/router-for-me/CLIProxyAPI/issues/477,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0717,thinking-and-reasoning,"Add QA scenarios for ""Error with Antigravity"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#476,https://github.com/router-for-me/CLIProxyAPI/issues/476,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0718,thinking-and-reasoning,"Refactor implementation behind ""fix(translator): skip empty functionResponse in OpenAI-to-Antigravity path"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#475,https://github.com/router-for-me/CLIProxyAPI/issues/475,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0719,thinking-and-reasoning,"Ensure rollout safety for ""Antigravity API reports API Error: 400 with Claude Code"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#472,https://github.com/router-for-me/CLIProxyAPI/issues/472,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0720,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""fix(translator): preserve tool_use blocks on args parse failure"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#471,https://github.com/router-for-me/CLIProxyAPI/issues/471,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0721,thinking-and-reasoning,"Follow up on ""Antigravity API reports API Error: 400 with Claude Code"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#463,https://github.com/router-for-me/CLIProxyAPI/issues/463,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0722,go-cli-extraction,"Port relevant thegent-managed flow implied by ""支持一下https://gemini.google.com/app"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#462,https://github.com/router-for-me/CLIProxyAPI/issues/462,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0723,thinking-and-reasoning,"Operationalize ""Streaming fails for ""preview"" and ""thinking"" models (response is buffered)"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#460,https://github.com/router-for-me/CLIProxyAPI/issues/460,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0724,responses-and-chat-compat,"Convert ""failed to unmarshal function response: invalid character 'm' looking for beginning of value on droid"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#451,https://github.com/router-for-me/CLIProxyAPI/issues/451,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0725,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""iFlow Cookie 登录流程BUG"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#445,https://github.com/router-for-me/CLIProxyAPI/issues/445,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0726,responses-and-chat-compat,"Expand docs and examples for ""[Suggestion] Add ingress rate limiting and 403 circuit breaker for /v1/messages"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#443,https://github.com/router-for-me/CLIProxyAPI/issues/443,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0727,thinking-and-reasoning,"Add QA scenarios for ""AGY Claude models"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#442,https://github.com/router-for-me/CLIProxyAPI/issues/442,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0728,oauth-and-authentication,"Refactor implementation behind ""【BUG】Infinite loop on startup if an auth file is removed (Windows)"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#440,https://github.com/router-for-me/CLIProxyAPI/issues/440,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0729,provider-model-registry,"Ensure rollout safety for ""can I use models of droid in Claude Code?"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#438,https://github.com/router-for-me/CLIProxyAPI/issues/438,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0730,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""`[Bug/Question]: Antigravity models looping in Plan Mode & 400 Invalid Argument errors`"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#437,https://github.com/router-for-me/CLIProxyAPI/issues/437,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0731,docs-quickstarts,"Create/refresh provider quickstart derived from ""[Bug] 400 Invalid Argument: 'thinking' block missing in ConvertClaudeRequestToAntigravity"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#436,https://github.com/router-for-me/CLIProxyAPI/issues/436,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0732,thinking-and-reasoning,"Harden ""gemini等模型没有按openai api的格式返回呀"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#433,https://github.com/router-for-me/CLIProxyAPI/issues/433,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0733,install-and-ops,"Operationalize ""[Feature Request] Persistent Storage for Usage Statistics"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#431,https://github.com/router-for-me/CLIProxyAPI/issues/431,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0734,thinking-and-reasoning,"Convert ""Antigravity Claude *-thinking + tools only stream reasoning (no assistant content/tool_calls) via OpenAI-compatible API"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#425,https://github.com/router-for-me/CLIProxyAPI/issues/425,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0735,thinking-and-reasoning,"Add DX polish around ""Antigravity Claude by Claude Code `max_tokens` must be greater than `thinking.budget_tokens`"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#424,https://github.com/router-for-me/CLIProxyAPI/issues/424,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0736,integration-api-bindings,"Define non-subprocess integration path related to ""Antigravity: Permission denied on resource project [projectID]"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#421,https://github.com/router-for-me/CLIProxyAPI/issues/421,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0737,thinking-and-reasoning,"Add QA scenarios for ""Extended thinking blocks not preserved during tool use, causing API rejection"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#420,https://github.com/router-for-me/CLIProxyAPI/issues/420,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0738,thinking-and-reasoning,"Refactor implementation behind ""Antigravity Claude via CLIProxyAPI: browsing enabled in Cherry but no actual web requests"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#419,https://github.com/router-for-me/CLIProxyAPI/issues/419,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0739,responses-and-chat-compat,"Ensure rollout safety for ""OpenAI Compatibility with OpenRouter results in invalid JSON response despite 200 OK"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#417,https://github.com/router-for-me/CLIProxyAPI/issues/417,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0740,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""Bug: Claude proxy models fail with tools - `tools.0.custom.input_schema: Field required`"" across both repos.",P3,S,issue,router-for-me/CLIProxyAPI,issue#415,https://github.com/router-for-me/CLIProxyAPI/issues/415,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0741,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Gemini-CLI,gemini-2.5-pro调用触发限流之后(You have exhausted your capacity on this model. Your quota will reset after 51s.),会自动切换请求gemini-2.5-pro-preview-06-05,但是这个模型貌似已经不存在了"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#414,https://github.com/router-for-me/CLIProxyAPI/issues/414,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0742,thinking-and-reasoning,"Harden ""invalid_request_error"",""message"":""`max_tokens` must be greater than `thinking.budget_tokens`."" with clearer validation, safer defaults, and defensive fallbacks.",P3,S,issue,router-for-me/CLIProxyAPI,issue#413,https://github.com/router-for-me/CLIProxyAPI/issues/413,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0743,cli-ux-dx,"Operationalize ""Which CLIs that support Antigravity?"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#412,https://github.com/router-for-me/CLIProxyAPI/issues/412,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0744,thinking-and-reasoning,"Convert ""[Feature Request] Dynamic Model Mapping & Custom Parameter Injection (e.g., iflow /tab)"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#411,https://github.com/router-for-me/CLIProxyAPI/issues/411,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0745,websocket-and-streaming,"Add DX polish around ""iflow使用谷歌登录后,填入cookie无法正常使用"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#408,https://github.com/router-for-me/CLIProxyAPI/issues/408,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0746,thinking-and-reasoning,"Expand docs and examples for ""Antigravity not working"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#407,https://github.com/router-for-me/CLIProxyAPI/issues/407,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0747,responses-and-chat-compat,"Add QA scenarios for ""大佬能不能出个zeabur部署的教程"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#403,https://github.com/router-for-me/CLIProxyAPI/issues/403,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0748,docs-quickstarts,"Create/refresh provider quickstart derived from ""Gemini responses contain non-standard OpenAI fields causing parser failures"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#400,https://github.com/router-for-me/CLIProxyAPI/issues/400,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0749,thinking-and-reasoning,"Ensure rollout safety for ""HTTP Proxy Not Effective: Token Unobtainable After Google Account Authentication Success"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#397,https://github.com/router-for-me/CLIProxyAPI/issues/397,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0750,websocket-and-streaming,"Standardize metadata and naming conventions touched by ""antigravity认证难以成功"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#396,https://github.com/router-for-me/CLIProxyAPI/issues/396,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0751,cli-ux-dx,"Follow up on ""Could I use gemini-3-pro-preview by gmini cli?"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#391,https://github.com/router-for-me/CLIProxyAPI/issues/391,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0752,provider-model-registry,"Harden ""Ports Reserved By Windows Hyper-V"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#387,https://github.com/router-for-me/CLIProxyAPI/issues/387,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0753,provider-model-registry,"Operationalize ""Image gen not supported/enabled for gemini-3-pro-image-preview?"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#374,https://github.com/router-for-me/CLIProxyAPI/issues/374,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0754,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Is it possible to support gemini native api for file upload?"" so local config and runtime can be reloaded deterministically.",P3,S,issue,router-for-me/CLIProxyAPI,issue#373,https://github.com/router-for-me/CLIProxyAPI/issues/373,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0755,provider-model-registry,"Add DX polish around ""Web Search tool not working in AMP with cliproxyapi"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#370,https://github.com/router-for-me/CLIProxyAPI/issues/370,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0756,install-and-ops,"Expand docs and examples for ""1006怎么处理"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#369,https://github.com/router-for-me/CLIProxyAPI/issues/369,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0757,thinking-and-reasoning,"Add QA scenarios for ""能否为kiro oauth提供支持?(附实现项目链接)"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#368,https://github.com/router-for-me/CLIProxyAPI/issues/368,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0758,oauth-and-authentication,"Refactor implementation behind ""antigravity 无法配置?"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#367,https://github.com/router-for-me/CLIProxyAPI/issues/367,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0759,integration-api-bindings,"Define non-subprocess integration path related to ""Frequent 500 auth_unavailable and Codex CLI models disappearing from /v1/models"" (Go bindings surface + HTTP fallback contract + version negotiation).",P1,S,issue,router-for-me/CLIProxyAPI,issue#365,https://github.com/router-for-me/CLIProxyAPI/issues/365,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0760,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Web Search tool not functioning in Claude Code"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#364,https://github.com/router-for-me/CLIProxyAPI/issues/364,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0761,thinking-and-reasoning,"Follow up on ""claude code Auto compact not triggered even after reaching autocompact buffer threshold"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#363,https://github.com/router-for-me/CLIProxyAPI/issues/363,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0762,general-polish,"Harden ""[Feature] 增加gemini business账号支持"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#361,https://github.com/router-for-me/CLIProxyAPI/issues/361,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0763,thinking-and-reasoning,"Operationalize ""[Bug] Codex Reasponses Sometimes Omit Reasoning Tokens"" with observability, alerting thresholds, and runbook updates.",P1,S,issue,router-for-me/CLIProxyAPI,issue#356,https://github.com/router-for-me/CLIProxyAPI/issues/356,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0764,thinking-and-reasoning,"Convert ""[Bug] Codex Max Does Not Utilize XHigh Reasoning Effort"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#354,https://github.com/router-for-me/CLIProxyAPI/issues/354,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0765,docs-quickstarts,"Create/refresh provider quickstart derived from ""[Bug] Gemini 3 Does Not Utilize Reasoning Effort"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#353,https://github.com/router-for-me/CLIProxyAPI/issues/353,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0766,thinking-and-reasoning,"Expand docs and examples for ""API for iflow-cli is not work anymore: iflow executor: token refresh failed: iflow token: missing access token in response"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#352,https://github.com/router-for-me/CLIProxyAPI/issues/352,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0767,responses-and-chat-compat,"Add QA scenarios for ""[Bug] Antigravity/Claude Code: ""tools.0.custom.input_schema: Field required"" error on all antigravity models"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#351,https://github.com/router-for-me/CLIProxyAPI/issues/351,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0768,general-polish,"Refactor implementation behind ""[Feature Request] Amazonq Support"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#350,https://github.com/router-for-me/CLIProxyAPI/issues/350,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0769,thinking-and-reasoning,"Ensure rollout safety for ""Feature: Add tier-based provider prioritization"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#349,https://github.com/router-for-me/CLIProxyAPI/issues/349,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0770,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Gemini 3 Pro + Codex CLI"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#346,https://github.com/router-for-me/CLIProxyAPI/issues/346,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0771,thinking-and-reasoning,"Follow up on ""Add support for anthropic-beta header for Claude thinking models with tool use"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#344,https://github.com/router-for-me/CLIProxyAPI/issues/344,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0772,thinking-and-reasoning,"Harden ""Anitigravity models are not working in opencode cli, has serveral bugs"" with clearer validation, safer defaults, and defensive fallbacks.",P3,S,issue,router-for-me/CLIProxyAPI,issue#342,https://github.com/router-for-me/CLIProxyAPI/issues/342,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0773,general-polish,"Operationalize ""[Bug] Antigravity 渠道使用原生 Gemini 格式:模型列表缺失及 gemini-3-pro-preview 联网搜索不可用"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#341,https://github.com/router-for-me/CLIProxyAPI/issues/341,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0774,responses-and-chat-compat,"Convert ""checkSystemInstructions adds cache_control block causing 'maximum of 4 blocks' error"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#339,https://github.com/router-for-me/CLIProxyAPI/issues/339,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0775,thinking-and-reasoning,"Add DX polish around ""OpenAI and Gemini API: thinking/chain-of-thought broken or 400 error (max_tokens vs thinking.budget_tokens) for thinking models"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#338,https://github.com/router-for-me/CLIProxyAPI/issues/338,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0776,thinking-and-reasoning,"Expand docs and examples for ""[Bug] Commit 52c17f0 breaks OAuth authentication for Anthropic models"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#337,https://github.com/router-for-me/CLIProxyAPI/issues/337,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0777,provider-model-registry,"Add QA scenarios for ""Droid as provider"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#336,https://github.com/router-for-me/CLIProxyAPI/issues/336,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0778,provider-model-registry,"Refactor implementation behind ""Support for JSON schema / structured output"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#335,https://github.com/router-for-me/CLIProxyAPI/issues/335,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0779,go-cli-extraction,"Port relevant thegent-managed flow implied by ""gemini-claude-sonnet-4-5-thinking: Chain-of-Thought (thinking) does not work on any API (OpenAI/Gemini/Claude)"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#332,https://github.com/router-for-me/CLIProxyAPI/issues/332,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0780,install-and-ops,"Standardize metadata and naming conventions touched by ""docker方式部署后,怎么登陆gemini账号呢?"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#328,https://github.com/router-for-me/CLIProxyAPI/issues/328,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0781,thinking-and-reasoning,"Follow up on ""FR: Add support for beta headers for Claude models"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#324,https://github.com/router-for-me/CLIProxyAPI/issues/324,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0782,docs-quickstarts,"Create/refresh provider quickstart derived from ""FR: Add Opus 4.5 Support"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#321,https://github.com/router-for-me/CLIProxyAPI/issues/321,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0783,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""`gemini-3-pro-preview` tool usage failures"" so local config and runtime can be reloaded deterministically.",P3,S,issue,router-for-me/CLIProxyAPI,issue#320,https://github.com/router-for-me/CLIProxyAPI/issues/320,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0784,cli-ux-dx,"Convert ""RooCode compatibility"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#319,https://github.com/router-for-me/CLIProxyAPI/issues/319,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0785,provider-model-registry,"Add DX polish around ""undefined is not an object (evaluating 'T.match')"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#317,https://github.com/router-for-me/CLIProxyAPI/issues/317,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0786,cli-ux-dx,"Expand docs and examples for ""Nano Banana"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#316,https://github.com/router-for-me/CLIProxyAPI/issues/316,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0787,general-polish,"Add QA scenarios for ""Feature: 渠道关闭/开启切换按钮、渠道测试按钮、指定渠道模型调用"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#314,https://github.com/router-for-me/CLIProxyAPI/issues/314,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0788,responses-and-chat-compat,"Refactor implementation behind ""Previous request seem to be concatenated into new ones with Antigravity"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#313,https://github.com/router-for-me/CLIProxyAPI/issues/313,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0789,thinking-and-reasoning,"Ensure rollout safety for ""Question: Is the Antigravity provider available and compatible with the sonnet 4.5 Thinking LLM model?"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#311,https://github.com/router-for-me/CLIProxyAPI/issues/311,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0790,websocket-and-streaming,"Standardize metadata and naming conventions touched by ""cursor with gemini-claude-sonnet-4-5"" across both repos.",P3,S,issue,router-for-me/CLIProxyAPI,issue#310,https://github.com/router-for-me/CLIProxyAPI/issues/310,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0791,thinking-and-reasoning,"Follow up on ""Gemini not stream thinking result"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#308,https://github.com/router-for-me/CLIProxyAPI/issues/308,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0792,provider-model-registry,"Harden ""[Suggestion] Improve Prompt Caching for Gemini CLI / Antigravity - Don't do round-robin for all every request"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#307,https://github.com/router-for-me/CLIProxyAPI/issues/307,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0793,oauth-and-authentication,"Operationalize ""docker-compose启动错误"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#305,https://github.com/router-for-me/CLIProxyAPI/issues/305,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0794,cli-ux-dx,"Convert ""可以让不同的提供商分别设置代理吗?"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#304,https://github.com/router-for-me/CLIProxyAPI/issues/304,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0795,general-polish,"Add DX polish around ""如果能控制aistudio的认证文件启用就好了"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#302,https://github.com/router-for-me/CLIProxyAPI/issues/302,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0796,responses-and-chat-compat,"Expand docs and examples for ""Dynamic model provider not work"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#301,https://github.com/router-for-me/CLIProxyAPI/issues/301,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0797,thinking-and-reasoning,"Add QA scenarios for ""token无计数"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#300,https://github.com/router-for-me/CLIProxyAPI/issues/300,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0798,go-cli-extraction,"Port relevant thegent-managed flow implied by ""cursor with antigravity"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#298,https://github.com/router-for-me/CLIProxyAPI/issues/298,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0799,docs-quickstarts,"Create/refresh provider quickstart derived from ""认证未走代理"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#297,https://github.com/router-for-me/CLIProxyAPI/issues/297,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0800,oauth-and-authentication,"Standardize metadata and naming conventions touched by ""[Feature Request] Add --manual-callback mode for headless/remote OAuth (especially for users behind proxy / Clash TUN in China)"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#295,https://github.com/router-for-me/CLIProxyAPI/issues/295,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0801,provider-model-registry,"Follow up on ""Regression: gemini-3-pro-preview unusable due to removal of 429 retry logic in d50b0f7"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#293,https://github.com/router-for-me/CLIProxyAPI/issues/293,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0802,responses-and-chat-compat,"Harden ""Gemini 3 Pro no response in Roo Code with AI Studio setup"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#291,https://github.com/router-for-me/CLIProxyAPI/issues/291,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0803,websocket-and-streaming,"Operationalize ""CLIProxyAPI error in huggingface"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#290,https://github.com/router-for-me/CLIProxyAPI/issues/290,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0804,responses-and-chat-compat,"Convert ""Post ""https://chatgpt.com/backend-api/codex/responses"": Not Found"" into a provider-agnostic pattern and codify in shared translation utilities.",P3,S,issue,router-for-me/CLIProxyAPI,issue#286,https://github.com/router-for-me/CLIProxyAPI/issues/286,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0805,integration-api-bindings,"Define non-subprocess integration path related to ""Feature: Add Image Support for Gemini 3"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#283,https://github.com/router-for-me/CLIProxyAPI/issues/283,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0806,thinking-and-reasoning,"Expand docs and examples for ""Bug: Gemini 3 Thinking Budget requires normalization in CLI Translator"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#282,https://github.com/router-for-me/CLIProxyAPI/issues/282,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0807,thinking-and-reasoning,"Add QA scenarios for ""Feature Request: Support for Gemini 3 Pro Preview"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#278,https://github.com/router-for-me/CLIProxyAPI/issues/278,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0808,thinking-and-reasoning,"Refactor implementation behind ""[Suggestion] Improve Prompt Caching - Don't do round-robin for all every request"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#277,https://github.com/router-for-me/CLIProxyAPI/issues/277,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0809,provider-model-registry,"Ensure rollout safety for ""Feature Request: Support Google Antigravity provider"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#273,https://github.com/router-for-me/CLIProxyAPI/issues/273,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0810,cli-ux-dx,"Standardize metadata and naming conventions touched by ""Add copilot cli proxy"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#272,https://github.com/router-for-me/CLIProxyAPI/issues/272,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0811,provider-model-registry,"Follow up on ""`gemini-3-pro-preview` is missing"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#271,https://github.com/router-for-me/CLIProxyAPI/issues/271,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0812,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Adjust gemini-3-pro-preview`s doc"" so local config and runtime can be reloaded deterministically.",P1,S,issue,router-for-me/CLIProxyAPI,issue#269,https://github.com/router-for-me/CLIProxyAPI/issues/269,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0813,install-and-ops,"Operationalize ""Account banned after using CLI Proxy API on VPS"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#266,https://github.com/router-for-me/CLIProxyAPI/issues/266,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0814,oauth-and-authentication,"Convert ""Bug: config.example.yaml has incorrect auth-dir default, causes auth files to be saved in wrong location"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,S,issue,router-for-me/CLIProxyAPI,issue#265,https://github.com/router-for-me/CLIProxyAPI/issues/265,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0815,thinking-and-reasoning,"Add DX polish around ""Security: Auth directory created with overly permissive 0o755 instead of 0o700"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#264,https://github.com/router-for-me/CLIProxyAPI/issues/264,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0816,docs-quickstarts,"Create/refresh provider quickstart derived from ""Gemini CLI Oauth with Claude Code"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#263,https://github.com/router-for-me/CLIProxyAPI/issues/263,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0817,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Gemini cli使用不了"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#262,https://github.com/router-for-me/CLIProxyAPI/issues/262,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0818,cli-ux-dx,"Refactor implementation behind ""麻烦大佬能不能更进模型id,比如gpt已经更新了小版本5.1了"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#261,https://github.com/router-for-me/CLIProxyAPI/issues/261,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0819,provider-model-registry,"Ensure rollout safety for ""Factory Droid: /compress (session compact) fails on Gemini 2.5 via CLIProxyAPI"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#260,https://github.com/router-for-me/CLIProxyAPI/issues/260,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0820,provider-model-registry,"Standardize metadata and naming conventions touched by ""Feat Request: Support gpt-5-pro"" across both repos.",P3,S,issue,router-for-me/CLIProxyAPI,issue#259,https://github.com/router-for-me/CLIProxyAPI/issues/259,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0821,provider-model-registry,"Follow up on ""gemini oauth in droid cli: unknown provider"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#258,https://github.com/router-for-me/CLIProxyAPI/issues/258,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0822,general-polish,"Harden ""认证文件管理 主动触发同步"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#255,https://github.com/router-for-me/CLIProxyAPI/issues/255,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0823,thinking-and-reasoning,"Operationalize ""Kimi K2 Thinking"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#254,https://github.com/router-for-me/CLIProxyAPI/issues/254,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0824,cli-ux-dx,"Convert ""nano banana 水印的能解决?我使用CLIProxyAPI 6.1"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#253,https://github.com/router-for-me/CLIProxyAPI/issues/253,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0825,install-and-ops,"Add DX polish around ""ai studio 不能用"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#252,https://github.com/router-for-me/CLIProxyAPI/issues/252,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0826,responses-and-chat-compat,"Expand docs and examples for ""Feature: scoped `auto` model (provider + pattern)"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#251,https://github.com/router-for-me/CLIProxyAPI/issues/251,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0827,thinking-and-reasoning,"Add QA scenarios for ""wss 链接失败"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#250,https://github.com/router-for-me/CLIProxyAPI/issues/250,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0828,integration-api-bindings,"Define non-subprocess integration path related to ""应该给GPT-5.1添加-none后缀适配以保持一致性"" (Go bindings surface + HTTP fallback contract + version negotiation).",P3,S,issue,router-for-me/CLIProxyAPI,issue#248,https://github.com/router-for-me/CLIProxyAPI/issues/248,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0829,thinking-and-reasoning,"Ensure rollout safety for ""不支持 candidate_count 功能,设置需要多版本回复的时候,只会输出1条"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#247,https://github.com/router-for-me/CLIProxyAPI/issues/247,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0830,general-polish,"Standardize metadata and naming conventions touched by ""gpt-5.1模型添加"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#246,https://github.com/router-for-me/CLIProxyAPI/issues/246,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0831,oauth-and-authentication,"Follow up on ""cli-proxy-api --gemini-web-auth"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#244,https://github.com/router-for-me/CLIProxyAPI/issues/244,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0832,thinking-and-reasoning,"Harden ""支持为模型设定默认请求参数"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#242,https://github.com/router-for-me/CLIProxyAPI/issues/242,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0833,docs-quickstarts,"Create/refresh provider quickstart derived from ""ClawCloud 如何结合NanoBanana 使用?"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#241,https://github.com/router-for-me/CLIProxyAPI/issues/241,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0834,websocket-and-streaming,"Convert ""gemini cli 无法画图是不是必须要使用低版本了"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#240,https://github.com/router-for-me/CLIProxyAPI/issues/240,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0835,thinking-and-reasoning,"Add DX polish around ""[error] [iflow_executor.go:273] iflow executor: token refresh failed: iflow token: missing access token in response"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#239,https://github.com/router-for-me/CLIProxyAPI/issues/239,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0836,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Codex API 配置中Base URL需要加v1嘛?"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#238,https://github.com/router-for-me/CLIProxyAPI/issues/238,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0837,responses-and-chat-compat,"Add QA scenarios for ""Feature Request: Support ""auto"" Model Selection for Seamless Provider Updates"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#236,https://github.com/router-for-me/CLIProxyAPI/issues/236,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0838,general-polish,"Refactor implementation behind ""AI Studio途径,是否支持imagen图片生成模型?"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#235,https://github.com/router-for-me/CLIProxyAPI/issues/235,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0839,general-polish,"Ensure rollout safety for ""现在对话很容易就结束"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#234,https://github.com/router-for-me/CLIProxyAPI/issues/234,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0840,websocket-and-streaming,"Standardize metadata and naming conventions touched by ""添加文件时重复添加"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#233,https://github.com/router-for-me/CLIProxyAPI/issues/233,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0841,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Feature Request : Token Caching for Codex"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#231,https://github.com/router-for-me/CLIProxyAPI/issues/231,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0842,responses-and-chat-compat,"Harden ""agentrouter problem"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#228,https://github.com/router-for-me/CLIProxyAPI/issues/228,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0843,provider-model-registry,"Operationalize ""[Suggestion] Add suport iFlow CLI MiniMax-M2"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#223,https://github.com/router-for-me/CLIProxyAPI/issues/223,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0844,responses-and-chat-compat,"Convert ""Feature: Prevent infinite loop to allow direct access to Gemini-native features"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#220,https://github.com/router-for-me/CLIProxyAPI/issues/220,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0845,provider-model-registry,"Add DX polish around ""Feature request: Support amazon-q-developer-cli"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#219,https://github.com/router-for-me/CLIProxyAPI/issues/219,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0846,responses-and-chat-compat,"Expand docs and examples for ""Gemini Cli 400 Error"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#218,https://github.com/router-for-me/CLIProxyAPI/issues/218,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0847,responses-and-chat-compat,"Add QA scenarios for ""/v1/responese connection error for version 0.55.0 of codex"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#216,https://github.com/router-for-me/CLIProxyAPI/issues/216,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0848,provider-model-registry,"Refactor implementation behind ""https://huggingface.co/chat"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#212,https://github.com/router-for-me/CLIProxyAPI/issues/212,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0849,websocket-and-streaming,"Ensure rollout safety for ""Codex trying to read from non-existant Bashes in Claude"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#211,https://github.com/router-for-me/CLIProxyAPI/issues/211,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0850,docs-quickstarts,"Create/refresh provider quickstart derived from ""Feature Request: Git-backed Configuration and Token Store for sync"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#210,https://github.com/router-for-me/CLIProxyAPI/issues/210,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0851,integration-api-bindings,"Define non-subprocess integration path related to ""CLIProxyAPI中的Gemini cli的图片生成,是不是无法使用了?"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#208,https://github.com/router-for-me/CLIProxyAPI/issues/208,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0852,responses-and-chat-compat,"Harden ""Model gemini-2.5-flash-image not work any more"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#203,https://github.com/router-for-me/CLIProxyAPI/issues/203,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0853,general-polish,"Operationalize ""qwen code和iflow的模型重复了"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#202,https://github.com/router-for-me/CLIProxyAPI/issues/202,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0854,install-and-ops,"Convert ""docker compose还会继续维护吗"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#201,https://github.com/router-for-me/CLIProxyAPI/issues/201,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0855,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Wrong Claude Model Recognized"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#200,https://github.com/router-for-me/CLIProxyAPI/issues/200,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0856,provider-model-registry,"Expand docs and examples for ""Unable to Select Specific Model"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#197,https://github.com/router-for-me/CLIProxyAPI/issues/197,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0857,thinking-and-reasoning,"Add QA scenarios for ""claude code with copilot"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#193,https://github.com/router-for-me/CLIProxyAPI/issues/193,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0858,provider-model-registry,"Refactor implementation behind ""Feature Request: OAuth Aliases & Multiple Aliases"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#192,https://github.com/router-for-me/CLIProxyAPI/issues/192,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0859,error-handling-retries,"Ensure rollout safety for ""[feature request] enable host or bind ip option / 添加 host 配置选项以允许外部网络访问"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#190,https://github.com/router-for-me/CLIProxyAPI/issues/190,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0860,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""Feature request: Add token cost statistics"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#189,https://github.com/router-for-me/CLIProxyAPI/issues/189,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0861,responses-and-chat-compat,"Follow up on ""internal/translator下的翻译器对外暴露了吗?"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#188,https://github.com/router-for-me/CLIProxyAPI/issues/188,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0862,responses-and-chat-compat,"Harden ""API Key issue"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#181,https://github.com/router-for-me/CLIProxyAPI/issues/181,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0863,thinking-and-reasoning,"Operationalize ""[Request] Add support for Gemini Embeddings (AI Studio API key) and optional multi-key rotation"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#179,https://github.com/router-for-me/CLIProxyAPI/issues/179,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0864,cli-ux-dx,"Convert ""希望增加渠道分类"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#178,https://github.com/router-for-me/CLIProxyAPI/issues/178,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0865,responses-and-chat-compat,"Add DX polish around ""gemini-cli `Request Failed: 400` exception"" through improved command ergonomics and faster feedback loops.",P3,S,issue,router-for-me/CLIProxyAPI,issue#176,https://github.com/router-for-me/CLIProxyAPI/issues/176,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0866,responses-and-chat-compat,"Expand docs and examples for ""Possible JSON Marshal issue: Some Chars transformed to unicode while transforming Anthropic request to OpenAI compatible request"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#175,https://github.com/router-for-me/CLIProxyAPI/issues/175,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0867,docs-quickstarts,"Create/refresh provider quickstart derived from ""question about subagents:"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#174,https://github.com/router-for-me/CLIProxyAPI/issues/174,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0868,responses-and-chat-compat,"Refactor implementation behind ""MiniMax-M2 API error"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#172,https://github.com/router-for-me/CLIProxyAPI/issues/172,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0869,responses-and-chat-compat,"Ensure rollout safety for ""[feature request] pass model names without defining them [HAS PR]"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#171,https://github.com/router-for-me/CLIProxyAPI/issues/171,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0870,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""MiniMax-M2 and other Anthropic compatible models"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#170,https://github.com/router-for-me/CLIProxyAPI/issues/170,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0871,responses-and-chat-compat,"Follow up on ""Troublesome First Instruction"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#169,https://github.com/router-for-me/CLIProxyAPI/issues/169,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0872,oauth-and-authentication,"Harden ""No Auth Status"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#168,https://github.com/router-for-me/CLIProxyAPI/issues/168,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0873,responses-and-chat-compat,"Operationalize ""Major Bug in transforming anthropic request to openai compatible request"" with observability, alerting thresholds, and runbook updates.",P3,S,issue,router-for-me/CLIProxyAPI,issue#167,https://github.com/router-for-me/CLIProxyAPI/issues/167,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0874,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Created an install script for linux"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P3,S,issue,router-for-me/CLIProxyAPI,issue#166,https://github.com/router-for-me/CLIProxyAPI/issues/166,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0875,provider-model-registry,"Add DX polish around ""Feature Request: Add support for vision-model for Qwen-CLI"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#164,https://github.com/router-for-me/CLIProxyAPI/issues/164,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0876,thinking-and-reasoning,"Expand docs and examples for ""[Suggestion] Intelligent Model Routing"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#162,https://github.com/router-for-me/CLIProxyAPI/issues/162,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0877,error-handling-retries,"Add QA scenarios for ""Clarification Needed: Is 'timeout' a Supported Config Parameter?"" including stream/non-stream parity and edge-case payloads.",P3,S,issue,router-for-me/CLIProxyAPI,issue#160,https://github.com/router-for-me/CLIProxyAPI/issues/160,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0878,thinking-and-reasoning,"Refactor implementation behind ""GeminiCLI的模型,总是会把历史问题全部回答一遍"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#159,https://github.com/router-for-me/CLIProxyAPI/issues/159,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0879,thinking-and-reasoning,"Ensure rollout safety for ""Gemini Cli With github copilot"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#158,https://github.com/router-for-me/CLIProxyAPI/issues/158,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0880,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""Enhancement: _FILE env vars for docker compose"" across both repos.",P3,S,issue,router-for-me/CLIProxyAPI,issue#156,https://github.com/router-for-me/CLIProxyAPI/issues/156,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0881,thinking-and-reasoning,"Follow up on ""All-in-WSL2: Claude Code (sub-agents + MCP) via CLIProxyAPI — token-only Codex, gpt-5-high / gpt-5-low mapping, multi-account"" by closing compatibility gaps and preventing regressions in adjacent providers.",P3,S,issue,router-for-me/CLIProxyAPI,issue#154,https://github.com/router-for-me/CLIProxyAPI/issues/154,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0882,responses-and-chat-compat,"Harden ""OpenAI-compatible API not working properly with certain models (e.g. glm-4.6, kimi-k2, DeepSeek-V3.2)"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#153,https://github.com/router-for-me/CLIProxyAPI/issues/153,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0883,websocket-and-streaming,"Operationalize ""OpenRouter Grok 4 Fast Bug"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#152,https://github.com/router-for-me/CLIProxyAPI/issues/152,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0884,docs-quickstarts,"Create/refresh provider quickstart derived from ""Question about models:"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#150,https://github.com/router-for-me/CLIProxyAPI/issues/150,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0885,provider-model-registry,"Add DX polish around ""Feature Request: Add rovodev CLI Support"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#149,https://github.com/router-for-me/CLIProxyAPI/issues/149,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0886,provider-model-registry,"Expand docs and examples for ""CC 使用 gpt-5-codex 模型几乎没有走缓存"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#148,https://github.com/router-for-me/CLIProxyAPI/issues/148,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0887,oauth-and-authentication,"Add QA scenarios for ""Cannot create Auth files in docker container webui management page"" including stream/non-stream parity and edge-case payloads.",P1,S,issue,router-for-me/CLIProxyAPI,issue#144,https://github.com/router-for-me/CLIProxyAPI/issues/144,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0888,general-polish,"Refactor implementation behind ""关于openai兼容供应商"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#143,https://github.com/router-for-me/CLIProxyAPI/issues/143,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0889,general-polish,"Ensure rollout safety for ""No System Prompt maybe possible?"" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#142,https://github.com/router-for-me/CLIProxyAPI/issues/142,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0890,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""Claude Code tokens counter"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#140,https://github.com/router-for-me/CLIProxyAPI/issues/140,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0891,responses-and-chat-compat,"Follow up on ""API Error"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#137,https://github.com/router-for-me/CLIProxyAPI/issues/137,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0892,responses-and-chat-compat,"Harden ""代理在生成函数调用请求时使用了 Gemini API 不支持的 ""const"" 字段"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#136,https://github.com/router-for-me/CLIProxyAPI/issues/136,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0893,go-cli-extraction,"Port relevant thegent-managed flow implied by ""droid cli with CLIProxyAPI [codex,zai]"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#135,https://github.com/router-for-me/CLIProxyAPI/issues/135,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0894,thinking-and-reasoning,"Convert ""Claude Code ``/context`` command"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#133,https://github.com/router-for-me/CLIProxyAPI/issues/133,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0895,provider-model-registry,"Add DX polish around ""Any interest in adding AmpCode support?"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#132,https://github.com/router-for-me/CLIProxyAPI/issues/132,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0896,responses-and-chat-compat,"Expand docs and examples for ""Agentrouter.org Support"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#131,https://github.com/router-for-me/CLIProxyAPI/issues/131,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0897,integration-api-bindings,"Define non-subprocess integration path related to ""Geminicli api proxy error"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#129,https://github.com/router-for-me/CLIProxyAPI/issues/129,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0898,thinking-and-reasoning,"Refactor implementation behind ""Github Copilot Subscription"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#128,https://github.com/router-for-me/CLIProxyAPI/issues/128,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0899,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""Add Z.ai / GLM API Configuration"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#124,https://github.com/router-for-me/CLIProxyAPI/issues/124,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0900,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Gemini + Droid = Bug"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#123,https://github.com/router-for-me/CLIProxyAPI/issues/123,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0901,docs-quickstarts,"Create/refresh provider quickstart derived from ""Custom models for AI Proviers"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#122,https://github.com/router-for-me/CLIProxyAPI/issues/122,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0902,responses-and-chat-compat,"Harden ""Web Search and other network tools"" with clearer validation, safer defaults, and defensive fallbacks.",P1,S,issue,router-for-me/CLIProxyAPI,issue#121,https://github.com/router-for-me/CLIProxyAPI/issues/121,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0903,general-polish,"Operationalize ""recommend using bufio to improve terminal visuals(reduce flickering)"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#120,https://github.com/router-for-me/CLIProxyAPI/issues/120,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0904,cli-ux-dx,"Convert ""视觉以及PDF适配"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#119,https://github.com/router-for-me/CLIProxyAPI/issues/119,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0905,cli-ux-dx,"Add DX polish around ""claude code接入gemini cli模型问题"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#115,https://github.com/router-for-me/CLIProxyAPI/issues/115,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0906,thinking-and-reasoning,"Expand docs and examples for ""Feat Request: Usage Limit Notifications + Timers + Per-Auth Usage"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#112,https://github.com/router-for-me/CLIProxyAPI/issues/112,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0907,thinking-and-reasoning,"Add QA scenarios for ""Thinking toggle with GPT-5-Codex model"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#109,https://github.com/router-for-me/CLIProxyAPI/issues/109,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0908,general-polish,"Refactor implementation behind ""可否增加 请求 api-key = 渠道密钥模式"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#108,https://github.com/router-for-me/CLIProxyAPI/issues/108,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0909,cli-ux-dx,"Ensure rollout safety for ""Homebrew 安装的 CLIProxyAPI 如何设置配置文件?"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#106,https://github.com/router-for-me/CLIProxyAPI/issues/106,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0910,cli-ux-dx,"Standardize metadata and naming conventions touched by ""支持Gemini CLI 的全部模型"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#105,https://github.com/router-for-me/CLIProxyAPI/issues/105,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0911,thinking-and-reasoning,"Follow up on ""gemini能否适配思考预算后缀?"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#103,https://github.com/router-for-me/CLIProxyAPI/issues/103,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0912,go-cli-extraction,"Port relevant thegent-managed flow implied by ""Bug: function calling error in the request on OpenAI completion for gemini-cli"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P2,S,issue,router-for-me/CLIProxyAPI,issue#102,https://github.com/router-for-me/CLIProxyAPI/issues/102,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0913,general-polish,"Operationalize ""增加 IFlow 支持模型"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#101,https://github.com/router-for-me/CLIProxyAPI/issues/101,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0914,general-polish,"Convert ""Feature Request: Grok usage"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#100,https://github.com/router-for-me/CLIProxyAPI/issues/100,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0915,websocket-and-streaming,"Add DX polish around ""新版本的claude code2.0.X搭配本项目的使用问题"" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#98,https://github.com/router-for-me/CLIProxyAPI/issues/98,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0916,responses-and-chat-compat,"Expand docs and examples for ""Huge error message when connecting to Gemini via Opencode, SanitizeSchemaForGemini not being used?"" with copy-paste quickstart and troubleshooting section.",P1,S,issue,router-for-me/CLIProxyAPI,issue#97,https://github.com/router-for-me/CLIProxyAPI/issues/97,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0917,general-polish,"Add QA scenarios for ""可以支持z.ai 吗"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#96,https://github.com/router-for-me/CLIProxyAPI/issues/96,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0918,docs-quickstarts,"Create/refresh provider quickstart derived from ""Gemini and Qwen doesn't work with Opencode"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#93,https://github.com/router-for-me/CLIProxyAPI/issues/93,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0919,cli-ux-dx,"Ensure rollout safety for ""Agent Client Protocol (ACP)?"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#92,https://github.com/router-for-me/CLIProxyAPI/issues/92,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0920,integration-api-bindings,"Define non-subprocess integration path related to ""Auto compress - Error: B is not an Object. (evaluating '""object""in B')"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#91,https://github.com/router-for-me/CLIProxyAPI/issues/91,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0921,thinking-and-reasoning,"Follow up on ""Gemini Web Auto Refresh Token"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#89,https://github.com/router-for-me/CLIProxyAPI/issues/89,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0922,general-polish,"Harden ""Gemini API 能否添加设置Base URL 的选项"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#88,https://github.com/router-for-me/CLIProxyAPI/issues/88,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0923,provider-model-registry,"Operationalize ""Some third-party claude code will return null when used with this project"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#87,https://github.com/router-for-me/CLIProxyAPI/issues/87,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0924,provider-model-registry,"Convert ""Auto compress - Error: 500 status code (no body)"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#86,https://github.com/router-for-me/CLIProxyAPI/issues/86,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0925,responses-and-chat-compat,"Add DX polish around ""Add more model selection options"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#84,https://github.com/router-for-me/CLIProxyAPI/issues/84,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0926,thinking-and-reasoning,"Expand docs and examples for ""Error on switching models in Droid after hitting Usage Limit"" with copy-paste quickstart and troubleshooting section.",P3,S,issue,router-for-me/CLIProxyAPI,issue#81,https://github.com/router-for-me/CLIProxyAPI/issues/81,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0927,thinking-and-reasoning,"Add QA scenarios for ""Command /context dont work in claude code"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#80,https://github.com/router-for-me/CLIProxyAPI/issues/80,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0928,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""MacOS brew installation support?"" so local config and runtime can be reloaded deterministically.",P2,S,issue,router-for-me/CLIProxyAPI,issue#79,https://github.com/router-for-me/CLIProxyAPI/issues/79,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0929,oauth-and-authentication,"Ensure rollout safety for ""[Feature Request] - Adding OAuth support of Z.AI and Kimi"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#76,https://github.com/router-for-me/CLIProxyAPI/issues/76,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0930,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""Bug: 500 Invalid resource field value in the request on OpenAI completion for gemini-cli"" across both repos.",P3,S,issue,router-for-me/CLIProxyAPI,issue#75,https://github.com/router-for-me/CLIProxyAPI/issues/75,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0931,go-cli-extraction,"Port relevant thegent-managed flow implied by ""添加 Factor CLI 2api 选项"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P3,S,issue,router-for-me/CLIProxyAPI,issue#74,https://github.com/router-for-me/CLIProxyAPI/issues/74,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0932,cli-ux-dx,"Harden ""Support audio for gemini-cli"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#73,https://github.com/router-for-me/CLIProxyAPI/issues/73,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0933,install-and-ops,"Operationalize ""添加回调链接输入认证"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#56,https://github.com/router-for-me/CLIProxyAPI/issues/56,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0934,cli-ux-dx,"Convert ""如果配置了gemini cli,再配置aistudio api key,会怎样?"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#48,https://github.com/router-for-me/CLIProxyAPI/issues/48,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0935,docs-quickstarts,"Create/refresh provider quickstart derived from ""Error walking auth directory: open C:\Users\xiaohu\AppData\Local\ElevatedDiagnostics: Access is denied"" including setup, auth, model select, and sanity-check commands.",P1,S,issue,router-for-me/CLIProxyAPI,issue#42,https://github.com/router-for-me/CLIProxyAPI/issues/42,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0936,provider-model-registry,"Expand docs and examples for ""#38 Lobechat问题的可能性 暨 Get Models返回JSON规整化的建议"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#40,https://github.com/router-for-me/CLIProxyAPI/issues/40,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0937,websocket-and-streaming,"Add QA scenarios for ""lobechat 添加自定义API服务商后无法使用"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#38,https://github.com/router-for-me/CLIProxyAPI/issues/38,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0938,thinking-and-reasoning,"Refactor implementation behind ""Missing API key"" to reduce complexity and isolate transformation boundaries.",P3,S,issue,router-for-me/CLIProxyAPI,issue#37,https://github.com/router-for-me/CLIProxyAPI/issues/37,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0939,general-polish,"Ensure rollout safety for ""登录默认跳转浏览器 没有url"" via feature flags, staged defaults, and migration notes.",P2,S,issue,router-for-me/CLIProxyAPI,issue#35,https://github.com/router-for-me/CLIProxyAPI/issues/35,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0940,general-polish,"Standardize metadata and naming conventions touched by ""Qwen3-Max-Preview可以使用了吗"" across both repos.",P2,S,issue,router-for-me/CLIProxyAPI,issue#34,https://github.com/router-for-me/CLIProxyAPI/issues/34,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0941,install-and-ops,"Follow up on ""使用docker-compose.yml搭建失败"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#32,https://github.com/router-for-me/CLIProxyAPI/issues/32,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0942,error-handling-retries,"Harden ""Claude Code 报错 API Error: Cannot read properties of undefined (reading 'filter')"" with clearer validation, safer defaults, and defensive fallbacks.",P2,S,issue,router-for-me/CLIProxyAPI,issue#25,https://github.com/router-for-me/CLIProxyAPI/issues/25,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0943,integration-api-bindings,"Define non-subprocess integration path related to ""QQ group search not found, can we open a TG group?"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,S,issue,router-for-me/CLIProxyAPI,issue#24,https://github.com/router-for-me/CLIProxyAPI/issues/24,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0944,cli-ux-dx,"Convert ""Codex CLI 能中转到Claude Code吗?"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#22,https://github.com/router-for-me/CLIProxyAPI/issues/22,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0945,thinking-and-reasoning,"Add DX polish around ""客户端/终端可以正常访问该代理,但无法输出回复"" through improved command ergonomics and faster feedback loops.",P1,S,issue,router-for-me/CLIProxyAPI,issue#21,https://github.com/router-for-me/CLIProxyAPI/issues/21,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0946,cli-ux-dx,"Expand docs and examples for ""希望支持iflow"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#20,https://github.com/router-for-me/CLIProxyAPI/issues/20,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0947,responses-and-chat-compat,"Add QA scenarios for ""希望可以加入对responses的支持。"" including stream/non-stream parity and edge-case payloads.",P2,S,issue,router-for-me/CLIProxyAPI,issue#19,https://github.com/router-for-me/CLIProxyAPI/issues/19,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0948,error-handling-retries,"Refactor implementation behind ""关于gpt5"" to reduce complexity and isolate transformation boundaries.",P2,S,issue,router-for-me/CLIProxyAPI,issue#18,https://github.com/router-for-me/CLIProxyAPI/issues/18,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0949,responses-and-chat-compat,"Ensure rollout safety for ""v1beta接口报错Please use a valid role: user, model."" via feature flags, staged defaults, and migration notes.",P3,S,issue,router-for-me/CLIProxyAPI,issue#17,https://github.com/router-for-me/CLIProxyAPI/issues/17,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0950,go-cli-extraction,"Port relevant thegent-managed flow implied by ""gemini使用project_id登录,会无限要求跳转链接,使用配置更改auth_dir无效"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,S,issue,router-for-me/CLIProxyAPI,issue#14,https://github.com/router-for-me/CLIProxyAPI/issues/14,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0951,thinking-and-reasoning,"Follow up on ""新认证生成的auth文件,使用的时候提示:400 API key not valid."" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,S,issue,router-for-me/CLIProxyAPI,issue#13,https://github.com/router-for-me/CLIProxyAPI/issues/13,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0952,docs-quickstarts,"Create/refresh provider quickstart derived from ""500就一直卡死了"" including setup, auth, model select, and sanity-check commands.",P2,S,issue,router-for-me/CLIProxyAPI,issue#12,https://github.com/router-for-me/CLIProxyAPI/issues/12,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0953,responses-and-chat-compat,"Operationalize ""无法使用/v1/messages端口"" with observability, alerting thresholds, and runbook updates.",P2,S,issue,router-for-me/CLIProxyAPI,issue#11,https://github.com/router-for-me/CLIProxyAPI/issues/11,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0954,general-polish,"Convert ""可用正常接入new-api这种api站吗?"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,S,issue,router-for-me/CLIProxyAPI,issue#10,https://github.com/router-for-me/CLIProxyAPI/issues/10,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0955,responses-and-chat-compat,"Add DX polish around ""Unexpected API Response: The language model did not provide any assistant messages. This may indicate an issue with the API or the model's output."" through improved command ergonomics and faster feedback loops.",P2,S,issue,router-for-me/CLIProxyAPI,issue#9,https://github.com/router-for-me/CLIProxyAPI/issues/9,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0956,cli-ux-dx,"Expand docs and examples for ""cli有办法像别的gemini一样关闭安全审查吗?"" with copy-paste quickstart and troubleshooting section.",P2,S,issue,router-for-me/CLIProxyAPI,issue#7,https://github.com/router-for-me/CLIProxyAPI/issues/7,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0957,dev-runtime-refresh,"Add process-compose/HMR refresh workflow tied to ""如果一个项目需要指定ID认证,则指定后一定也会失败"" so local config and runtime can be reloaded deterministically.",P1,S,issue,router-for-me/CLIProxyAPI,issue#6,https://github.com/router-for-me/CLIProxyAPI/issues/6,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0958,thinking-and-reasoning,"Refactor implementation behind ""指定project_id登录,无限跳转登陆页面"" to reduce complexity and isolate transformation boundaries.",P1,S,issue,router-for-me/CLIProxyAPI,issue#5,https://github.com/router-for-me/CLIProxyAPI/issues/5,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0959,thinking-and-reasoning,"Ensure rollout safety for ""Error walking auth directory"" via feature flags, staged defaults, and migration notes.",P1,S,issue,router-for-me/CLIProxyAPI,issue#4,https://github.com/router-for-me/CLIProxyAPI/issues/4,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0960,oauth-and-authentication,"Standardize metadata and naming conventions touched by ""Login error.win11"" across both repos.",P1,S,issue,router-for-me/CLIProxyAPI,issue#3,https://github.com/router-for-me/CLIProxyAPI/issues/3,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0961,responses-and-chat-compat,"Follow up on ""偶尔会弹出无效API key提示,“400 API key not valid. Please pass a valid API key.”"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,S,issue,router-for-me/CLIProxyAPI,issue#2,https://github.com/router-for-me/CLIProxyAPI/issues/2,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0962,docs-quickstarts,"Harden ""Normalize Codex schema handling"" with clearer validation, safer defaults, and defensive fallbacks.",P3,M,pr,router-for-me/CLIProxyAPIPlus,pr#259,https://github.com/router-for-me/CLIProxyAPIPlus/pull/259,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0963,provider-model-registry,"Operationalize ""fix: add default copilot claude model aliases for oauth routing"" with observability, alerting thresholds, and runbook updates.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#256,https://github.com/router-for-me/CLIProxyAPIPlus/pull/256,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0964,thinking-and-reasoning,"Convert ""feat(registry): add GPT-4o model variants for GitHub Copilot"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#255,https://github.com/router-for-me/CLIProxyAPIPlus/pull/255,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0965,thinking-and-reasoning,"Add DX polish around ""fix(kiro): stop duplicated thinking on OpenAI and preserve Claude multi-turn thinking"" through improved command ergonomics and faster feedback loops.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#252,https://github.com/router-for-me/CLIProxyAPIPlus/pull/252,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0966,integration-api-bindings,"Define non-subprocess integration path related to ""feat(registry): add Gemini 3.1 Pro to GitHub Copilot provider"" (Go bindings surface + HTTP fallback contract + version negotiation).",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#250,https://github.com/router-for-me/CLIProxyAPIPlus/pull/250,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0967,general-polish,"Add QA scenarios for ""v6.8.22"" including stream/non-stream parity and edge-case payloads.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#249,https://github.com/router-for-me/CLIProxyAPIPlus/pull/249,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0968,general-polish,"Refactor implementation behind ""v6.8.21"" to reduce complexity and isolate transformation boundaries.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#248,https://github.com/router-for-me/CLIProxyAPIPlus/pull/248,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0969,docs-quickstarts,"Create/refresh provider quickstart derived from ""fix(cline): add grantType to token refresh and extension headers"" including setup, auth, model select, and sanity-check commands.",P3,M,pr,router-for-me/CLIProxyAPIPlus,pr#247,https://github.com/router-for-me/CLIProxyAPIPlus/pull/247,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0970,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""feat: add Claude Sonnet 4.6 model support for Kiro provider"" across both repos.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#244,https://github.com/router-for-me/CLIProxyAPIPlus/pull/244,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0971,thinking-and-reasoning,"Follow up on ""feat(registry): add Claude Sonnet 4.6 model definitions"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#243,https://github.com/router-for-me/CLIProxyAPIPlus/pull/243,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0972,thinking-and-reasoning,"Harden ""Improve Copilot provider based on ericc-ch/copilot-api comparison"" with clearer validation, safer defaults, and defensive fallbacks.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#242,https://github.com/router-for-me/CLIProxyAPIPlus/pull/242,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0973,provider-model-registry,"Operationalize ""feat(registry): add Sonnet 4.6 to GitHub Copilot provider"" with observability, alerting thresholds, and runbook updates.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#240,https://github.com/router-for-me/CLIProxyAPIPlus/pull/240,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0974,provider-model-registry,"Convert ""feat(registry): add GPT-5.3 Codex to GitHub Copilot provider"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#239,https://github.com/router-for-me/CLIProxyAPIPlus/pull/239,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0975,provider-model-registry,"Add DX polish around ""Fix Copilot 0x model incorrectly consuming premium requests"" through improved command ergonomics and faster feedback loops.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#238,https://github.com/router-for-me/CLIProxyAPIPlus/pull/238,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0976,general-polish,"Expand docs and examples for ""v6.8.18"" with copy-paste quickstart and troubleshooting section.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#237,https://github.com/router-for-me/CLIProxyAPIPlus/pull/237,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0977,thinking-and-reasoning,"Add QA scenarios for ""fix: add proxy_ prefix handling for tool_reference content blocks"" including stream/non-stream parity and edge-case payloads.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#236,https://github.com/router-for-me/CLIProxyAPIPlus/pull/236,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0978,thinking-and-reasoning,"Refactor implementation behind ""fix(codex): handle function_call_arguments streaming for both spark and non-spark models"" to reduce complexity and isolate transformation boundaries.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#235,https://github.com/router-for-me/CLIProxyAPIPlus/pull/235,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0979,responses-and-chat-compat,"Ensure rollout safety for ""Add Kilo Code provider with dynamic model fetching"" via feature flags, staged defaults, and migration notes.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#234,https://github.com/router-for-me/CLIProxyAPIPlus/pull/234,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0980,thinking-and-reasoning,"Standardize metadata and naming conventions touched by ""Fix Copilot codex model Responses API translation for Claude Code"" across both repos.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#233,https://github.com/router-for-me/CLIProxyAPIPlus/pull/233,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0981,thinking-and-reasoning,"Follow up on ""feat(models): add Thinking support to GitHub Copilot models"" by closing compatibility gaps and preventing regressions in adjacent providers.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#231,https://github.com/router-for-me/CLIProxyAPIPlus/pull/231,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0982,responses-and-chat-compat,"Harden ""fix(copilot): forward Claude-format tools to Copilot Responses API"" with clearer validation, safer defaults, and defensive fallbacks.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#230,https://github.com/router-for-me/CLIProxyAPIPlus/pull/230,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0983,provider-model-registry,"Operationalize ""fix: preserve explicitly deleted kiro aliases across config reload"" with observability, alerting thresholds, and runbook updates.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#229,https://github.com/router-for-me/CLIProxyAPIPlus/pull/229,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0984,thinking-and-reasoning,"Convert ""fix(antigravity): add warn-level logging to silent failure paths in FetchAntigravityModels"" into a provider-agnostic pattern and codify in shared translation utilities.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#228,https://github.com/router-for-me/CLIProxyAPIPlus/pull/228,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0985,general-polish,"Add DX polish around ""v6.8.15"" through improved command ergonomics and faster feedback loops.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#227,https://github.com/router-for-me/CLIProxyAPIPlus/pull/227,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0986,docs-quickstarts,"Create/refresh provider quickstart derived from ""refactor(kiro): Kiro Web Search Logic & Executor Alignment"" including setup, auth, model select, and sanity-check commands.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#226,https://github.com/router-for-me/CLIProxyAPIPlus/pull/226,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0987,general-polish,"Add QA scenarios for ""v6.8.13"" including stream/non-stream parity and edge-case payloads.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#225,https://github.com/router-for-me/CLIProxyAPIPlus/pull/225,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0988,go-cli-extraction,"Port relevant thegent-managed flow implied by ""fix(kiro): prepend placeholder user message when conversation starts with assistant role"" into first-class cliproxy Go CLI command(s) with interactive setup support.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#224,https://github.com/router-for-me/CLIProxyAPIPlus/pull/224,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0989,integration-api-bindings,"Define non-subprocess integration path related to ""fix(kiro): prepend placeholder user message when conversation starts with assistant role"" (Go bindings surface + HTTP fallback contract + version negotiation).",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#223,https://github.com/router-for-me/CLIProxyAPIPlus/pull/223,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-0990,general-polish,"Standardize metadata and naming conventions touched by ""fix(kiro): 修复之前提交的错误的application/cbor请求处理逻辑"" across both repos.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#220,https://github.com/router-for-me/CLIProxyAPIPlus/pull/220,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+CPB-0991,responses-and-chat-compat,"Follow up on ""fix: prevent merging assistant messages with tool_calls"" by closing compatibility gaps and preventing regressions in adjacent providers.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#218,https://github.com/router-for-me/CLIProxyAPIPlus/pull/218,proposed,Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+CPB-0992,thinking-and-reasoning,"Harden ""增加kiro新模型并根据其他提供商同模型配置Thinking"" with clearer validation, safer defaults, and defensive fallbacks.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#216,https://github.com/router-for-me/CLIProxyAPIPlus/pull/216,proposed,Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+CPB-0993,thinking-and-reasoning,"Operationalize ""fix(auth): strip model suffix in GitHub Copilot executor before upstream call"" with observability, alerting thresholds, and runbook updates.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#214,https://github.com/router-for-me/CLIProxyAPIPlus/pull/214,proposed,Improve user-facing error messages and add deterministic remediation text with command examples.
+CPB-0994,responses-and-chat-compat,"Convert ""fix(kiro): filter orphaned tool_results from compacted conversations"" into a provider-agnostic pattern and codify in shared translation utilities.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#212,https://github.com/router-for-me/CLIProxyAPIPlus/pull/212,proposed,Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+CPB-0995,responses-and-chat-compat,"Add DX polish around ""fix(kiro): fully implement Kiro web search tool via MCP integration"" through improved command ergonomics and faster feedback loops.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#211,https://github.com/router-for-me/CLIProxyAPIPlus/pull/211,proposed,Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+CPB-0996,provider-model-registry,"Expand docs and examples for ""feat(config): add default Kiro model aliases for standard Claude model names"" with copy-paste quickstart and troubleshooting section.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#209,https://github.com/router-for-me/CLIProxyAPIPlus/pull/209,proposed,"Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."
+CPB-0997,general-polish,"Add QA scenarios for ""v6.8.9"" including stream/non-stream parity and edge-case payloads.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#207,https://github.com/router-for-me/CLIProxyAPIPlus/pull/207,proposed,Add config toggles for safe rollout and default them to preserve existing deployments.
+CPB-0998,responses-and-chat-compat,"Refactor implementation behind ""fix(translator): fix nullable type arrays breaking Gemini/Antigravity API"" to reduce complexity and isolate transformation boundaries.",P1,M,pr,router-for-me/CLIProxyAPIPlus,pr#205,https://github.com/router-for-me/CLIProxyAPIPlus/pull/205,proposed,Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+CPB-0999,general-polish,"Ensure rollout safety for ""v6.8.7"" via feature flags, staged defaults, and migration notes.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#204,https://github.com/router-for-me/CLIProxyAPIPlus/pull/204,proposed,"Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."
+CPB-1000,responses-and-chat-compat,"Standardize metadata and naming conventions touched by ""fix(copilot): prevent premium request count inflation for Claude models"" across both repos.",P2,M,pr,router-for-me/CLIProxyAPIPlus,pr#203,https://github.com/router-for-me/CLIProxyAPIPlus/pull/203,proposed,Create migration note and changelog entry with explicit compatibility guarantees and caveats.
diff --git a/docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.json b/docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.json
new file mode 100644
index 0000000000..4a0dff89aa
--- /dev/null
+++ b/docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.json
@@ -0,0 +1 @@
+{"stats": {"sources_total_unique": 1865, "issues_plus": 81, "issues_core": 880, "prs_plus": 169, "prs_core": 577, "discussions_plus": 3, "discussions_core": 155}, "theme_counts": {"platform-architecture": 2, "install-and-ops": 16, "docs-quickstarts": 65, "cli-ux-dx": 34, "testing-and-quality": 5, "project-frontmatter": 1, "general-polish": 111, "thinking-and-reasoning": 228, "responses-and-chat-compat": 163, "provider-model-registry": 110, "go-cli-extraction": 49, "oauth-and-authentication": 58, "integration-api-bindings": 39, "dev-runtime-refresh": 30, "websocket-and-streaming": 72, "error-handling-retries": 17}, "items": [{"id": "CPB-0001", "theme": "platform-architecture", "title": "Extract a standalone Go mgmt CLI from thegent-owned cliproxy flows (`install`, `doctor`, `login`, `models`, `watch`, `reload`).", "priority": "P1", "effort": "L", "source_kind": "strategy", "source_repo": "cross-repo", "source_ref": "synthesis", "source_url": "", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0002", "theme": "platform-architecture", "title": "Define non-subprocess integration surface for thegent: local Go bindings (preferred) and HTTP API fallback with capability negotiation.", "priority": "P1", "effort": "L", "source_kind": "strategy", "source_repo": "cross-repo", "source_ref": "synthesis", "source_url": "", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0003", "theme": "install-and-ops", "title": "Add `cliproxy dev` process-compose profile with hot reload, config regeneration watch, and explicit `refresh` command.", "priority": "P1", "effort": "M", "source_kind": "strategy", "source_repo": "cross-repo", "source_ref": "synthesis", "source_url": "", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0004", "theme": "docs-quickstarts", "title": "Ship provider-specific quickstarts (Codex, Claude, Gemini, Copilot, Kiro, MiniMax, OpenAI-compat) with 5-minute success path.", "priority": "P1", "effort": "M", "source_kind": "strategy", "source_repo": "cross-repo", "source_ref": "synthesis", "source_url": "", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0005", "theme": "docs-quickstarts", "title": "Create troubleshooting matrix: auth failures, model not found, reasoning mismatch, stream parse faults, timeout classes.", "priority": "P1", "effort": "M", "source_kind": "strategy", "source_repo": "cross-repo", "source_ref": "synthesis", "source_url": "", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0006", "theme": "cli-ux-dx", "title": "Introduce interactive first-run setup wizard in Go CLI with profile detection, auth choice, and post-check summary.", "priority": "P1", "effort": "M", "source_kind": "strategy", "source_repo": "cross-repo", "source_ref": "synthesis", "source_url": "", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0007", "theme": "cli-ux-dx", "title": "Add `cliproxy doctor --fix` with deterministic remediation steps and machine-readable JSON report mode.", "priority": "P1", "effort": "M", "source_kind": "strategy", "source_repo": "cross-repo", "source_ref": "synthesis", "source_url": "", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0008", "theme": "testing-and-quality", "title": "Establish conformance suite for OpenAI Responses + Chat Completions translation across all providers.", "priority": "P1", "effort": "L", "source_kind": "strategy", "source_repo": "cross-repo", "source_ref": "synthesis", "source_url": "", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0009", "theme": "testing-and-quality", "title": "Add golden fixture tests for reasoning controls (`variant`, `reasoning_effort`, `reasoning.effort`, model suffix).", "priority": "P1", "effort": "M", "source_kind": "strategy", "source_repo": "cross-repo", "source_ref": "synthesis", "source_url": "", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0010", "theme": "project-frontmatter", "title": "Rewrite repo frontmatter: mission, architecture, support policy, compatibility matrix, release channels, contribution path.", "priority": "P2", "effort": "M", "source_kind": "strategy", "source_repo": "cross-repo", "source_ref": "synthesis", "source_url": "", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0011", "theme": "general-polish", "title": "Follow up on \"kiro账号被封\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#221", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/221", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0012", "theme": "thinking-and-reasoning", "title": "Harden \"Opus 4.6\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#219", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/219", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0013", "theme": "responses-and-chat-compat", "title": "Operationalize \"Bug: MergeAdjacentMessages drops tool_calls from assistant messages\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#217", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/217", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0014", "theme": "thinking-and-reasoning", "title": "Convert \"Add support for proxying models from kilocode CLI\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#213", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/213", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0015", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"[Bug] Kiro 与 Ampcode 的 Bash 工具参数不兼容\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#210", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/210", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0016", "theme": "provider-model-registry", "title": "Expand docs and examples for \"[Feature Request] Add default oauth-model-alias for Kiro channel (like Antigravity)\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#208", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/208", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0017", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#206", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/206", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0018", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"GitHub Copilot CLI 使用方法\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#202", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/202", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0019", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"failed to save config: open /CLIProxyAPI/config.yaml: read-only file system\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#201", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/201", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0020", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"gemini能不能设置配额,自动禁用 ,自动启用?\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#200", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/200", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0021", "theme": "provider-model-registry", "title": "Follow up on \"Cursor CLI \\ Auth Support\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#198", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/198", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0022", "theme": "oauth-and-authentication", "title": "Harden \"Why no opus 4.6 on github copilot auth\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#196", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/196", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0023", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"why no kiro in dashboard\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#183", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/183", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0024", "theme": "general-polish", "title": "Convert \"OpenAI-MLX-Server and vLLM-MLX Support?\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#179", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/179", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0025", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"Claude thought_signature forwarded to Gemini causes Base64 decode error\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#178", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/178", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0026", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"Kiro Token 导入失败: Refresh token is required\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#177", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/177", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0027", "theme": "general-polish", "title": "Add QA scenarios for \"Kimi Code support\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#169", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/169", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0028", "theme": "general-polish", "title": "Refactor implementation behind \"kiro如何看配额?\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#165", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/165", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0029", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"kiro反代的Write工具json截断问题,返回的文件路径经常是错误的\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#164", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/164", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0030", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"fix(kiro): handle empty content in messages to prevent Bad Request errors\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#163", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/163", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0031", "theme": "responses-and-chat-compat", "title": "Follow up on \"在配置文件中支持为所有 OAuth 渠道自定义上游 URL\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#158", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/158", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0032", "theme": "general-polish", "title": "Harden \"kiro反代出现重复输出的情况\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#160", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/160", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0033", "theme": "thinking-and-reasoning", "title": "Operationalize \"kiro IDC 刷新 token 失败\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#149", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/149", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0034", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"请求docker部署支持arm架构的机器!感谢。\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#147", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/147", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0035", "theme": "websocket-and-streaming", "title": "Add DX polish around \"[Feature Request] 请求增加 Kiro 配额的展示功能\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#146", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/146", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0036", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"[Bug]进一步完善 openai兼容模式对 claude 模型的支持(完善 协议格式转换 )\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#145", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/145", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0037", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"完善 claude openai兼容渠道的格式转换\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#142", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/142", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0038", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Kimi For Coding Support / 请求为 Kimi 添加编程支持\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#141", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/141", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0039", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"kiro idc登录需要手动刷新状态\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#136", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/136", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0040", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"[Bug Fix] 修复 Kiro 的Claude模型非流式请求 output_tokens 为 0 导致的用量统计缺失\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#134", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/134", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0041", "theme": "general-polish", "title": "Follow up on \"Routing strategy \"fill-first\" is not working as expected\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#133", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/133", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0042", "theme": "responses-and-chat-compat", "title": "Harden \"WARN kiro_executor.go:1189 kiro: received 400 error (attempt 1/3), body: {\"message\":\"Improperly formed request.\",\"reason\":null}\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#131", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/131", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0043", "theme": "cli-ux-dx", "title": "Operationalize \"CLIProxyApiPlus不支持像CLIProxyApi一样使用ClawCloud云部署吗?\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#129", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/129", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0044", "theme": "cli-ux-dx", "title": "Convert \"kiro的social凭证无法刷新过期时间。\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#128", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/128", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0045", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"Error 403\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#125", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/125", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0046", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"Gemini3无法生图\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#122", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/122", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0047", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"enterprise 账号 Kiro不是很稳定,很容易就403不可用了\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#118", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/118", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0048", "theme": "oauth-and-authentication", "title": "Refactor implementation behind \"-kiro-aws-login 登录后一直封号\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#115", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/115", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0049", "theme": "provider-model-registry", "title": "Ensure rollout safety for \"[Bug]Copilot Premium usage significantly amplified when using amp\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#113", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/113", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0050", "theme": "oauth-and-authentication", "title": "Standardize metadata and naming conventions touched by \"Antigravity authentication failed\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#111", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/111", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0051", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"大佬,什么时候搞个多账号管理呀\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#108", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/108", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0052", "theme": "oauth-and-authentication", "title": "Harden \"日志中,一直打印auth file changed (WRITE)\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#105", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/105", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0053", "theme": "oauth-and-authentication", "title": "Operationalize \"登录incognito参数无效\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#102", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/102", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0054", "theme": "thinking-and-reasoning", "title": "Convert \"OpenAI-compat provider hardcodes /v1/models (breaks Z.ai v4: /api/coding/paas/v4/models)\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#101", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/101", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0055", "theme": "general-polish", "title": "Add DX polish around \"ADD TRAE IDE support\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#97", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/97", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0056", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"Kiro currently has no authentication available\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#96", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/96", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0057", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"GitHub Copilot Model Call Failure\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#99", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/99", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0058", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Feature: Add Veo Video Generation Support (Similar to Image Generation)\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#94", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/94", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0059", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Bug: Kiro/BuilderId tokens can collide when email/profile_arn are empty; refresh token lifecycle not handled\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#90", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/90", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0060", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"[Bug] Amazon Q endpoint returns HTTP 400 ValidationException (wrong CLI/KIRO_CLI origin)\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#89", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/89", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0061", "theme": "provider-model-registry", "title": "Follow up on \"UI 上没有 Kiro 配置的入口,或者说想添加 Kiro 支持,具体该怎么做\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#87", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/87", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0062", "theme": "responses-and-chat-compat", "title": "Harden \"Cursor Issue\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#86", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/86", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0063", "theme": "thinking-and-reasoning", "title": "Operationalize \"Feature request: Configurable HTTP request timeout for Extended Thinking models\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#84", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/84", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0064", "theme": "responses-and-chat-compat", "title": "Convert \"kiro请求偶尔报错event stream fatal\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#83", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/83", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0065", "theme": "error-handling-retries", "title": "Add DX polish around \"failed to load config: failed to read config file: read /CLIProxyAPI/config.yaml: is a directory\" through improved command ergonomics and faster feedback loops.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#81", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/81", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0066", "theme": "oauth-and-authentication", "title": "Expand docs and examples for \"[建议] 技术大佬考虑可以有机会新增一堆逆向平台\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#79", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/79", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0067", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"Issue with removed parameters - Sequential Thinking Tool Failure (nextThoughtNeeded undefined)\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#78", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/78", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0068", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"kiro请求的数据好像一大就会出错,导致cc写入文件失败\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#77", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/77", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0069", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"[Bug] Kiro multi-account support broken - auth file overwritten on re-login\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#76", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/76", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0070", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Claude Code WebSearch fails with 400 error when using Kiro/Amazon Q backend\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#72", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/72", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0071", "theme": "responses-and-chat-compat", "title": "Follow up on \"[BUG] Vision requests fail for ZAI (glm) and Copilot models with missing header / invalid parameter errors\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#69", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/69", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0072", "theme": "general-polish", "title": "Harden \"怎么更新iflow的模型列表。\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#66", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/66", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0073", "theme": "oauth-and-authentication", "title": "Operationalize \"How to use KIRO with IAM?\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#56", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/56", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0074", "theme": "provider-model-registry", "title": "Convert \"[Bug] Models from Codex (openai) are not accessible when Copilot is added\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#43", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/43", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0075", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"model gpt-5.1-codex-mini is not accessible via the /chat/completions endpoint\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#41", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/41", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0076", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"GitHub Copilot models seem to be hardcoded\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#37", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/37", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0077", "theme": "general-polish", "title": "Add QA scenarios for \"plus版本只能自己构建吗?\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#34", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/34", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0078", "theme": "install-and-ops", "title": "Refactor implementation behind \"kiro命令登录没有端口\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#30", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/30", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0079", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"lack of thinking signature in kiro's non-stream response cause incompatibility with some ai clients (specifically cherry studio)\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#27", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/27", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0080", "theme": "oauth-and-authentication", "title": "Standardize metadata and naming conventions touched by \"I did not find the Kiro entry in the Web UI\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#26", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/26", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0081", "theme": "thinking-and-reasoning", "title": "Follow up on \"Kiro (AWS CodeWhisperer) - Stream error, status: 400\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "issue#7", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/7", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0082", "theme": "provider-model-registry", "title": "Harden \"BUG: Cannot use Claude Models in Codex CLI\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1671", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1671", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0083", "theme": "responses-and-chat-compat", "title": "Operationalize \"feat: support image content in tool result messages (OpenAI ↔ Claude translation)\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1670", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1670", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0084", "theme": "docs-quickstarts", "title": "Convert \"docker镜像及docker相关其它优化建议\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1669", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1669", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0085", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Need maintainer-handled codex translator compatibility for Responses compaction fields\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1667", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1667", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0086", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"codex: usage_limit_reached (429) should honor resets_at/resets_in_seconds as next_retry_after\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1666", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1666", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0087", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Concerns regarding the removal of Gemini Web support in the early stages of the project\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1665", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1665", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0088", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"fix(claude): token exchange blocked by Cloudflare managed challenge on console.anthropic.com\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1659", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1659", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0089", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"Qwen Oauth fails\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1658", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1658", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0090", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"logs-max-total-size-mb does not account for per-day subdirectories\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1657", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1657", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0091", "theme": "responses-and-chat-compat", "title": "Follow up on \"All credentials for model claude-sonnet-4-6 are cooling down\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1655", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1655", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0092", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"\"Please add claude-sonnet-4-6 to registered Claude models. Released 2026-02-15.\"\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1653", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1653", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0093", "theme": "thinking-and-reasoning", "title": "Operationalize \"Claude Sonnet 4.5 models are deprecated - please remove from panel\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1651", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1651", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0094", "theme": "responses-and-chat-compat", "title": "Convert \"Gemini API integration: incorrect renaming of 'parameters' to 'parametersJsonSchema'\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1649", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1649", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0095", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"codex 返回 Unsupported parameter: response_format\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1647", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1647", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0096", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"Bug: Invalid JSON payload when tool_result has no content field (antigravity translator)\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1646", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1646", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0097", "theme": "error-handling-retries", "title": "Add QA scenarios for \"Docker Image Error\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1641", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1641", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0098", "theme": "error-handling-retries", "title": "Refactor implementation behind \"Google blocked my 3 email id at once\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1637", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1637", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0099", "theme": "general-polish", "title": "Ensure rollout safety for \"不同思路的 Antigravity 代理\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1633", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1633", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0100", "theme": "cli-ux-dx", "title": "Standardize metadata and naming conventions touched by \"是否支持微软账号的反代?\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1632", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1632", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0101", "theme": "provider-model-registry", "title": "Follow up on \"Google官方好像已经有检测并稳定封禁CPA反代Antigravity的方案了?\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1631", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1631", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0102", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Claude Sonnet 4.5 is no longer available. Please switch to Claude Sonnet 4.6.\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1630", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1630", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0103", "theme": "provider-model-registry", "title": "Operationalize \"codex 中 plus/team错误支持gpt-5.3-codex-spark 但实际上不支持\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1623", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1623", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0104", "theme": "general-polish", "title": "Convert \"Please add support for Claude Sonnet 4.6\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1622", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1622", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0105", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"Question: applyClaudeHeaders() — how were these defaults chosen?\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1621", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1621", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0106", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"[BUG] claude code 接入 cliproxyapi 使用时,模型的输出没有呈现流式,而是一下子蹦出来回答结果\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1620", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1620", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0107", "theme": "oauth-and-authentication", "title": "Add QA scenarios for \"[Feature Request] Session-Aware Hybrid Routing Strategy\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1617", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1617", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0108", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"Any Plans to support Jetbrains IDE?\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1615", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1615", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0109", "theme": "provider-model-registry", "title": "Ensure rollout safety for \"[bug] codex oauth登录流程失败\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1612", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1612", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0110", "theme": "oauth-and-authentication", "title": "Standardize metadata and naming conventions touched by \"qwen auth 里获取到了 qwen3.5,但是 ai 客户端获取不到这个模型\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1611", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1611", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0111", "theme": "responses-and-chat-compat", "title": "Follow up on \"fix: handle response.function_call_arguments.done in codex→claude streaming translator\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1609", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1609", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0112", "theme": "thinking-and-reasoning", "title": "Harden \"不能正确统计minimax-m2.5/kimi-k2.5的Token\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1607", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1607", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0113", "theme": "general-polish", "title": "Operationalize \"速速支持qwen code的qwen3.5\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1603", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1603", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0114", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"[Feature Request] Antigravity channel should support routing claude-haiku-4-5-20251001 model (used by Claude Code pre-flight checks)\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1596", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1596", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0115", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"希望为提供商添加请求优先级功能,最好是以模型为基础来进行请求\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1594", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1594", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0116", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"gpt-5.3-codex-spark error\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1593", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1593", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0117", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"[Bug] Claude Code 2.1.37 random cch in x-anthropic-billing-header causes severe prompt-cache miss on third-party upstreams\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1592", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1592", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0118", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"()强制思考会在2m左右时返回500错误\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1591", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1591", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0119", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"配额管理可以刷出额度,但是调用的时候提示额度不足\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1590", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1590", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0120", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"每次更新或者重启 使用统计数据都会清空\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1589", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1589", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0121", "theme": "thinking-and-reasoning", "title": "Follow up on \"iflow GLM 5 时不时会返回 406\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1588", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1588", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0122", "theme": "general-polish", "title": "Harden \"封号了,pro号没了,又找了个免费认证bot分享出来\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1587", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1587", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0123", "theme": "cli-ux-dx", "title": "Operationalize \"gemini-cli 不能自定请求头吗?\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1586", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1586", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0124", "theme": "thinking-and-reasoning", "title": "Convert \"bug: Invalid thinking block signature when switching from Gemini CLI to Claude OAuth mid-conversation\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1584", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1584", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0125", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"I saved 10M tokens (89%) on my Claude Code sessions with a CLI proxy\" through improved command ergonomics and faster feedback loops.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1583", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1583", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0126", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"[bug]? gpt-5.3-codex-spark 在 team 账户上报错 400\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1582", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1582", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0127", "theme": "general-polish", "title": "Add QA scenarios for \"希望能加一个一键清理失效的认证文件功能\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1580", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1580", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0128", "theme": "websocket-and-streaming", "title": "Refactor implementation behind \"GPT Team认证似乎获取不到5.3 Codex\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1577", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1577", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0129", "theme": "general-polish", "title": "Ensure rollout safety for \"iflow渠道调用会一直返回406状态码\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1576", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1576", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0130", "theme": "oauth-and-authentication", "title": "Standardize metadata and naming conventions touched by \"Port 8317 becomes unreachable after running for some time, recovers immediately after SSH login\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1575", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1575", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0131", "theme": "thinking-and-reasoning", "title": "Follow up on \"Support for gpt-5.3-codex-spark\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1573", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1573", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0132", "theme": "thinking-and-reasoning", "title": "Harden \"Reasoning Error\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1572", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1572", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0133", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"iflow MiniMax-2.5 is online,please add\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1567", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1567", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0134", "theme": "provider-model-registry", "title": "Convert \"能否再难用一点?!\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1564", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1564", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0135", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"Cache usage through Claude oAuth always 0\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1562", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1562", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0136", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"antigravity 无法使用\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1561", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1561", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0137", "theme": "provider-model-registry", "title": "Add QA scenarios for \"GLM-5 return empty\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1560", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1560", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0138", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"Claude Code 调用 nvidia 发现 无法正常使用bash grep类似的工具\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1557", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1557", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0139", "theme": "oauth-and-authentication", "title": "Ensure rollout safety for \"Gemini CLI: 额度获取失败:请检查凭证状态\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1556", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1556", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0140", "theme": "websocket-and-streaming", "title": "Standardize metadata and naming conventions touched by \"403 error\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1555", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1555", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0141", "theme": "websocket-and-streaming", "title": "Follow up on \"iflow glm-5 is online,please add\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1554", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1554", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0142", "theme": "oauth-and-authentication", "title": "Harden \"Kimi的OAuth无法使用\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1553", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1553", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0143", "theme": "oauth-and-authentication", "title": "Operationalize \"grok的OAuth登录认证可以支持下吗? 谢谢!\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1552", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1552", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0144", "theme": "thinking-and-reasoning", "title": "Convert \"iflow executor: token refresh failed\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1551", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1551", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0145", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"为什么gemini3会报错\" so local config and runtime can be reloaded deterministically.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1549", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1549", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0146", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"cursor报错根源\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1548", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1548", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0147", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"[Claude code] ENABLE_TOOL_SEARCH - MCP not in available tools 400\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1547", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1547", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0148", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"自定义别名在调用的时候404\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1546", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1546", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0149", "theme": "provider-model-registry", "title": "Ensure rollout safety for \"删除iflow提供商的过时模型\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1545", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1545", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0150", "theme": "provider-model-registry", "title": "Standardize metadata and naming conventions touched by \"删除iflow提供商的过时模型\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1544", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1544", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0151", "theme": "websocket-and-streaming", "title": "Follow up on \"佬们,隔壁很多账号403啦,这里一切正常吗?\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1541", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1541", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0152", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"feat(thinking): support Claude output_config.effort parameter (Opus 4.6)\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1540", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1540", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0153", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Gemini-3-pro-high Corrupted thought signature\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1538", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1538", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0154", "theme": "thinking-and-reasoning", "title": "Convert \"bug: \"status\": \"INVALID_ARGUMENT\" when using antigravity claude-opus-4-6\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1535", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1535", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0155", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"[Bug] Persistent 400 \"Invalid Argument\" error with claude-opus-4-6-thinking model (with and without thinking budget)\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1533", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1533", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0156", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"Invalid JSON payload received: Unknown name \\\"deprecated\\\"\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1531", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1531", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0157", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"bug: proxy_ prefix applied to tool_choice.name but not tools[].name causes 400 errors on OAuth requests\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1530", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1530", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0158", "theme": "general-polish", "title": "Refactor implementation behind \"请求为Windows添加启动自动更新命令\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1528", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1528", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0159", "theme": "websocket-and-streaming", "title": "Ensure rollout safety for \"反重力逻辑加载失效\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1526", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1526", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0160", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"support openai image generations api(/v1/images/generations)\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1525", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1525", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0161", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"The account has available credit, but a 503 or 429 error is occurring.\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1521", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1521", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0162", "theme": "thinking-and-reasoning", "title": "Harden \"openclaw调用CPA 中的codex5.2 报错。\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1517", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1517", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0163", "theme": "general-polish", "title": "Operationalize \"opus4.6都支持1m的上下文了,请求体什么时候从280K调整下,现在也太小了,动不动就报错\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1515", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1515", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0164", "theme": "thinking-and-reasoning", "title": "Convert \"Token refresh logic fails with generic 500 error (\"server busy\") from iflow provider\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1514", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1514", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0165", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1513", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1513", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0166", "theme": "general-polish", "title": "Expand docs and examples for \"请求体过大280KB限制和opus 4.6无法调用的问题,啥时候可以修复\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1512", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1512", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0167", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"502 unknown provider for model gemini-claude-opus-4-6-thinking\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1510", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1510", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0168", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"反重力 claude-opus-4-6-thinking 模型如何通过 () 实现强行思考\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1509", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1509", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0169", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Feature: Per-OAuth-Account Outbound Proxy Enforcement for Google (Gemini/Antigravity) + OpenAI Codex – incl. Token Refresh and optional Strict/Fail-Closed Mode\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1508", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1508", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0170", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"[BUG] 反重力 Opus-4.5 在 OpenCode 上搭配 DCP 插件使用时会报错\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1507", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1507", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0171", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Antigravity使用时,设计额度最小阈值,超过停止使用或者切换账号,因为额度多次用尽,会触发 5 天刷新\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1505", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1505", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0172", "theme": "websocket-and-streaming", "title": "Harden \"iflow的glm-4.7会返回406\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1504", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1504", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0173", "theme": "provider-model-registry", "title": "Operationalize \"[BUG] sdkaccess.RegisterProvider 逻辑被 syncInlineAccessProvider 破坏\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1503", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1503", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0174", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"iflow部分模型增加了签名\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1501", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1501", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0175", "theme": "general-polish", "title": "Add DX polish around \"Qwen Free allocated quota exceeded\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1500", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1500", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0176", "theme": "provider-model-registry", "title": "Expand docs and examples for \"After logging in with iFlowOAuth, most models cannot be used, only non-CLI models can be used.\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1499", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1499", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0177", "theme": "websocket-and-streaming", "title": "Add QA scenarios for \"为什么我请求了很多次,但是使用统计里仍然显示使用为0呢?\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1497", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1497", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0178", "theme": "general-polish", "title": "Refactor implementation behind \"为什么配额管理里没有claude pro账号的额度?\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1496", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1496", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0179", "theme": "websocket-and-streaming", "title": "Ensure rollout safety for \"最近几个版本,好像轮询失效了\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1495", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1495", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0180", "theme": "error-handling-retries", "title": "Standardize metadata and naming conventions touched by \"iFlow error\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1494", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1494", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0181", "theme": "provider-model-registry", "title": "Follow up on \"Feature request [allow to configure RPM, TPM, RPD, TPD]\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1493", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1493", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0182", "theme": "thinking-and-reasoning", "title": "Harden \"Antigravity using Ultra plan: Opus 4.6 gets 429 on CLIProxy but runs with Opencode-Auth\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1486", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1486", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0183", "theme": "thinking-and-reasoning", "title": "Operationalize \"gemini在cherry studio的openai接口无法控制思考长度\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1484", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1484", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0184", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"codex5.3什么时候能获取到啊\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1482", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1482", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0185", "theme": "provider-model-registry", "title": "Add DX polish around \"Amp code doesn't route through CLIProxyAPI\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1481", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1481", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0186", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"导入kiro账户,过一段时间就失效了\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1480", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1480", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0187", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"openai-compatibility: streaming response empty when translating Codex protocol (/v1/responses) to OpenAI chat/completions\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1478", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1478", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0188", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"bug: request-level metadata fields injected into contents[] causing Gemini API rejection (v6.8.4)\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1477", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1477", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0189", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"Roo Code v3.47.0 cannot make Gemini API calls anymore\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1476", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1476", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0190", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"[feat]更新很频繁,可以内置软件更新功能吗\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1475", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1475", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0191", "theme": "provider-model-registry", "title": "Follow up on \"Cannot alias multiple models to single model only on Antigravity\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1472", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1472", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0192", "theme": "general-polish", "title": "Harden \"无法识别图片\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1469", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1469", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0193", "theme": "thinking-and-reasoning", "title": "Operationalize \"Support for Antigravity Opus 4.6\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1468", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1468", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0194", "theme": "thinking-and-reasoning", "title": "Convert \"model not found for gpt-5.3-codex\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1463", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1463", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0195", "theme": "websocket-and-streaming", "title": "Add DX polish around \"antigravity用不了\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1461", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1461", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0196", "theme": "general-polish", "title": "Expand docs and examples for \"为啥openai的端点可以添加多个密钥,但是a社的端点不能添加\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1457", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1457", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0197", "theme": "websocket-and-streaming", "title": "Add QA scenarios for \"轮询会无差别轮询即便某个账号在很久前已经空配额\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1456", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1456", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0198", "theme": "provider-model-registry", "title": "Refactor implementation behind \"When I don’t add the authentication file, opening Claude Code keeps throwing a 500 error, instead of directly using the AI provider I’ve configured.\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1455", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1455", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0199", "theme": "oauth-and-authentication", "title": "Ensure rollout safety for \"6.7.53版本反重力无法看到opus-4.6模型\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1453", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1453", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0200", "theme": "oauth-and-authentication", "title": "Standardize metadata and naming conventions touched by \"Codex OAuth failed\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1451", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1451", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0201", "theme": "responses-and-chat-compat", "title": "Follow up on \"Google asking to Verify account\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1447", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1447", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0202", "theme": "responses-and-chat-compat", "title": "Harden \"API Error\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1445", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1445", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0203", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Unable to use GPT 5.3 codex (model_not_found)\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1443", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1443", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0204", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"gpt-5.3-codex 请求400 显示不存在该模型\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1442", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1442", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0205", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"The requested model 'gpt-5.3-codex' does not exist.\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1441", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1441", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0206", "theme": "install-and-ops", "title": "Expand docs and examples for \"Feature request: Add support for claude opus 4.6\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1439", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1439", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0207", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"Feature request: Add support for perplexity\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1438", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1438", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0208", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"iflow kimi-k2.5 无法正常统计消耗的token数,一直是0\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1437", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1437", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0209", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"[BUG] Invalid JSON payload with large requests (~290KB) - truncated body\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1433", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1433", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0210", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"希望支持国产模型如glm kimi minimax 的 proxy\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1432", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1432", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0211", "theme": "general-polish", "title": "Follow up on \"关闭某个认证文件后没有持久化处理\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1431", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1431", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0212", "theme": "responses-and-chat-compat", "title": "Harden \"[v6.7.47] 接入智谱 Plan 计划后请求报错\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1430", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1430", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0213", "theme": "general-polish", "title": "Operationalize \"大佬能不能把使用统计数据持久化?\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1427", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1427", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0214", "theme": "thinking-and-reasoning", "title": "Convert \"[BUG] 使用 Google 官方 Python SDK时思考设置无法生效\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1426", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1426", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0215", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"bug: Claude → Gemini translation fails due to unsupported JSON Schema fields ($id, patternProperties)\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1424", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1424", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0216", "theme": "provider-model-registry", "title": "Expand docs and examples for \"Add Container Tags / Project Scoping for Memory Organization\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1420", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1420", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0217", "theme": "error-handling-retries", "title": "Add QA scenarios for \"Add LangChain/LangGraph Integration for Memory System\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1419", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1419", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0218", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"Security Review: Apply Lessons from Supermemory Security Findings\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1418", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1418", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0219", "theme": "install-and-ops", "title": "Ensure rollout safety for \"Add Webhook Support for Document Lifecycle Events\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1417", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1417", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0220", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"Create OpenAI-Compatible Memory Tools Wrapper\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1416", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1416", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0221", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Add Google Drive Connector for Memory Ingestion\" including setup, auth, model select, and sanity-check commands.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1415", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1415", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0222", "theme": "provider-model-registry", "title": "Harden \"Add Document Processor for PDF and URL Content Extraction\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1414", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1414", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0223", "theme": "error-handling-retries", "title": "Operationalize \"Add Notion Connector for Memory Ingestion\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1413", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1413", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0224", "theme": "error-handling-retries", "title": "Convert \"Add Strict Schema Mode for OpenAI Function Calling\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1412", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1412", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0225", "theme": "provider-model-registry", "title": "Add DX polish around \"Add Conversation Tracking Support for Chat History\" through improved command ergonomics and faster feedback loops.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1411", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1411", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0226", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"Implement MCP Server for Memory Operations\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1410", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1410", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0227", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"■ stream disconnected before completion: stream closed before response.completed\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1407", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1407", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0228", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Bug: /v1/responses returns 400 \"Input must be a list\" when input is string (regression 6.7.42, Droid auto-compress broken)\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1403", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1403", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0229", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Factory Droid CLI got 404\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1401", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1401", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0230", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"反代反重力的 claude 在 opencode 中使用出现 unexpected EOF 错误\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1400", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1400", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0231", "theme": "oauth-and-authentication", "title": "Follow up on \"Feature request: Cursor CLI support\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1399", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1399", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0232", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"bug: Invalid signature in thinking block (API 400) on follow-up requests\" so local config and runtime can be reloaded deterministically.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1398", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1398", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0233", "theme": "error-handling-retries", "title": "Operationalize \"在 Visual Studio Code无法使用过工具\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1405", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1405", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0234", "theme": "general-polish", "title": "Convert \"Vertex AI global 区域端点 URL 格式错误,导致无法访问 Gemini 3 Preview 模型\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1395", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1395", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0235", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"Session title generation fails for Claude models via Antigravity provider (OpenCode)\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1394", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1394", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0236", "theme": "provider-model-registry", "title": "Expand docs and examples for \"反代反重力请求gemini-3-pro-image-preview接口报错\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1393", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1393", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0237", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"[Feature Request] Implement automatic account rotation on VALIDATION_REQUIRED errors\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1392", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1392", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0238", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"[antigravity] 500 Internal error and 403 Verification Required for multiple accounts\" including setup, auth, model select, and sanity-check commands.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1389", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1389", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0239", "theme": "general-polish", "title": "Ensure rollout safety for \"Antigravity的配额管理,账号没有订阅资格了,还是在显示模型额度\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1388", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1388", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0240", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"大佬,可以加一个apikey的过期时间不\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1387", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1387", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0241", "theme": "responses-and-chat-compat", "title": "Follow up on \"在codex运行报错\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1406", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1406", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0242", "theme": "thinking-and-reasoning", "title": "Harden \"[Feature request] Support nested object parameter mapping in payload config\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1384", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1384", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0243", "theme": "oauth-and-authentication", "title": "Operationalize \"Claude authentication failed in v6.7.41 (works in v6.7.25)\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1383", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1383", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0244", "theme": "responses-and-chat-compat", "title": "Convert \"Question: Does load balancing work with 2 Codex accounts for the Responses API?\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1382", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1382", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0245", "theme": "oauth-and-authentication", "title": "Add DX polish around \"登陆提示“登录失败: 访问被拒绝,权限不足”\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1381", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1381", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0246", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"Gemini 3 Flash includeThoughts参数不生效了\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1378", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1378", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0247", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"antigravity无法登录\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1376", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1376", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0248", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"[Bug] Gemini 400 Error: \"defer_loading\" field in ToolSearch is not supported by Gemini API\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1375", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1375", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0249", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"API Error: 403\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1374", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1374", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0250", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"Feature Request: 有没有可能支持Trea中国版?\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1373", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1373", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0251", "theme": "responses-and-chat-compat", "title": "Follow up on \"Bug: Auto-injected cache_control exceeds Anthropic API's 4-block limit\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1372", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1372", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0252", "theme": "responses-and-chat-compat", "title": "Harden \"Bad processing of Claude prompt caching that is already implemented by client app\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1366", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1366", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0253", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"[Bug] OpenAI-compatible provider: message_start.usage always returns 0 tokens (kimi-for-coding)\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1365", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1365", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0254", "theme": "oauth-and-authentication", "title": "Convert \"iflow Cli官方针对terminal有Oauth 登录方式\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1364", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1364", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0255", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Kimi For Coding 好像被 ban 了\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1327", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1327", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0256", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"“Error 404: Requested entity was not found\" for gemini 3 by gemini-cli\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1325", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1325", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0257", "theme": "websocket-and-streaming", "title": "Add QA scenarios for \"nvidia openai接口连接失败\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1324", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1324", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0258", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"Feature Request: Add generateImages endpoint support for Gemini API\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1322", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1322", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0259", "theme": "oauth-and-authentication", "title": "Ensure rollout safety for \"iFlow Error: LLM returned 200 OK but response body was empty (possible rate limit)\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1321", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1321", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0260", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"feat: add code_execution and url_context tool passthrough for Gemini\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1318", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1318", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0261", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"This version of Antigravity is no longer supported. Please update to receive the latest features!\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1316", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1316", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0262", "theme": "websocket-and-streaming", "title": "Harden \"无法轮询请求反重力和gemini cli\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1315", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1315", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0263", "theme": "thinking-and-reasoning", "title": "Operationalize \"400 Bad Request when reasoning_effort=\"xhigh\" with kimi k2.5 (OpenAI-compatible API)\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1307", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1307", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0264", "theme": "thinking-and-reasoning", "title": "Convert \"Claude Opus 4.5 returns \"Internal server error\" in response body via Anthropic OAuth (Sonnet works)\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1306", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1306", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0265", "theme": "oauth-and-authentication", "title": "Add DX polish around \"CLI Proxy API 版本: v6.7.28,OAuth 模型别名里的antigravity项目无法被删除。\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1305", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1305", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0266", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Feature Request: Add \"Sequential\" routing strategy to optimize account quota usage\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1304", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1304", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0267", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"版本: v6.7.27 添加openai-compatibility的时候出现 malformed HTTP response 错误\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1301", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1301", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0268", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"fix(logging): request and API response timestamps are inaccurate in error logs\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1299", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1299", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0269", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"cpaUsageMetadata leaks to Gemini API responses when using Antigravity backend\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1297", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1297", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0270", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Gemini API error: empty text content causes 'required oneof field data must have one initialized field'\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1293", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1293", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0271", "theme": "responses-and-chat-compat", "title": "Follow up on \"Gemini API error: empty text content causes 'required oneof field data must have one initialized field'\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1292", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1292", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0272", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"gemini-3-pro-image-preview api 返回500 我看log中报500的都基本在1分钟左右\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1291", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1291", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0273", "theme": "general-polish", "title": "Operationalize \"希望代理设置 能为多个不同的认证文件分别配置不同的代理 URL\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1290", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1290", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0274", "theme": "responses-and-chat-compat", "title": "Convert \"Request takes over a minute to get sent with Antigravity\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1289", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1289", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0275", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"Antigravity auth requires daily re-login - sessions expire unexpectedly\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1288", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1288", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0276", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"cpa长时间运行会oom\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1287", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1287", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0277", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"429 RESOURCE_EXHAUSTED for Claude Opus 4.5 Thinking with Google AI Pro Account\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1284", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1284", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0278", "theme": "general-polish", "title": "Refactor implementation behind \"[功能建议] 建议实现统计数据持久化,免去更新时的手动导出导入\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1282", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1282", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0279", "theme": "websocket-and-streaming", "title": "Ensure rollout safety for \"反重力的banana pro额度一直无法恢复\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1281", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1281", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0280", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Support request: Kimi For Coding (Kimi Code / K2.5) behind CLIProxyAPI\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1280", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1280", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0281", "theme": "websocket-and-streaming", "title": "Follow up on \"TPM/RPM过载,但是等待半小时后依旧不行\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1278", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1278", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0282", "theme": "provider-model-registry", "title": "Harden \"支持codex的 /personality\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1273", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1273", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0283", "theme": "websocket-and-streaming", "title": "Operationalize \"Antigravity 可用模型数为 0\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1270", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1270", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0284", "theme": "provider-model-registry", "title": "Convert \"Tool Error on Antigravity Gemini 3 Flash\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1269", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1269", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0285", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"[Improvement] Persist Management UI assets in a dedicated volume\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1268", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1268", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0286", "theme": "websocket-and-streaming", "title": "Expand docs and examples for \"[Feature Request] Provide optional standalone UI service in docker-compose\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1267", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1267", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0287", "theme": "websocket-and-streaming", "title": "Add QA scenarios for \"[Improvement] Pre-bundle Management UI in Docker Image\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1266", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1266", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0288", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"AMP CLI not working\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1264", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1264", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0289", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"建议增加根据额度阈值跳过轮询凭证功能\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1263", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1263", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0290", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"[Bug] Antigravity Gemini API 报错:enum 仅允许用于 STRING 类型\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1260", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1260", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0291", "theme": "general-polish", "title": "Follow up on \"好像codebuddy也能有命令行也能用,能加进去吗\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1259", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1259", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0292", "theme": "thinking-and-reasoning", "title": "Harden \"Anthropic via OAuth can not callback URL\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1256", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1256", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0293", "theme": "thinking-and-reasoning", "title": "Operationalize \"[Bug] 反重力banana pro 4k 图片生成输出为空,仅思考过程可见\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1255", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1255", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0294", "theme": "websocket-and-streaming", "title": "Convert \"iflow Cookies 登陆好像不能用\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1254", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1254", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0295", "theme": "oauth-and-authentication", "title": "Add DX polish around \"CLIProxyAPI goes down after some time, only recovers when SSH into server\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1253", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1253", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0296", "theme": "oauth-and-authentication", "title": "Expand docs and examples for \"kiro hope\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1252", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1252", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0297", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"\"Requested entity was not found\" for all antigravity models\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1251", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1251", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0298", "theme": "provider-model-registry", "title": "Refactor implementation behind \"[BUG] Why does it repeat twice? 为什么他重复了两次?\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1247", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1247", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0299", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"6.6.109之前的版本都可以开启iflow的deepseek3.2,qwen3-max-preview思考,6.7.xx就不能了\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1245", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1245", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0300", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"Bug: Anthropic API 400 Error - Missing 'thinking' block before 'tool_use'\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1244", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1244", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0301", "theme": "responses-and-chat-compat", "title": "Follow up on \"v6.7.24,反重力的gemini-3,调用API有bug\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1243", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1243", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0302", "theme": "provider-model-registry", "title": "Harden \"How to reset /models\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1240", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1240", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0303", "theme": "oauth-and-authentication", "title": "Operationalize \"Feature Request:Add support for separate proxy configuration with credentials\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1236", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1236", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0304", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"GLM Coding Plan\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1226", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1226", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0305", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"更新到最新版本之后,出现了503的报错\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1224", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1224", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0306", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"能不能增加一个配额保护\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1223", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1223", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0307", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"auth_unavailable: no auth available in claude code cli, 使用途中经常500\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1222", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1222", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0308", "theme": "websocket-and-streaming", "title": "Refactor implementation behind \"无法关闭谷歌的某个具体的账号的使用权限\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1219", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1219", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0309", "theme": "websocket-and-streaming", "title": "Ensure rollout safety for \"docker中的最新版本不是lastest\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1218", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1218", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0310", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"openai codex 认证失败: Failed to exchange authorization code for tokens\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1217", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1217", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0311", "theme": "thinking-and-reasoning", "title": "Follow up on \"tool_use_error InputValidationError: EnterPlanMode failed due to the following issue: An unexpected parameter `reason` was provided\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1215", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1215", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0312", "theme": "responses-and-chat-compat", "title": "Harden \"Error 403\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1214", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1214", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0313", "theme": "oauth-and-authentication", "title": "Operationalize \"Gemini CLI OAuth 认证失败: failed to start callback server\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1213", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1213", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0314", "theme": "thinking-and-reasoning", "title": "Convert \"bug: Thinking budget ignored in cross-provider conversations (Antigravity)\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1199", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1199", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0315", "theme": "websocket-and-streaming", "title": "Add DX polish around \"[功能需求] 认证文件增加屏蔽模型跳过轮询\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1197", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1197", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0316", "theme": "general-polish", "title": "Expand docs and examples for \"可以出个检查更新吗,不然每次都要拉下载然后重启\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1195", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1195", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0317", "theme": "general-polish", "title": "Add QA scenarios for \"antigravity可以增加配额保护吗 剩余额度多少的时候不在使用\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1194", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1194", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0318", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"codex总是有失败\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1193", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1193", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0319", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"建议在使用Antigravity 额度时,设计额度阈值自定义功能\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1192", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1192", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0320", "theme": "provider-model-registry", "title": "Standardize metadata and naming conventions touched by \"Antigravity: rev19-uic3-1p (Alias: gemini-2.5-computer-use-preview-10-2025) nolonger useable\" across both repos.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1190", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1190", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0321", "theme": "provider-model-registry", "title": "Follow up on \"🚨🔥 CRITICAL BUG REPORT: Invalid Function Declaration Schema in API Request 🔥🚨\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1189", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1189", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0322", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"认证失败: Failed to exchange token\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1186", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1186", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0323", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Model combo support\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1184", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1184", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0324", "theme": "oauth-and-authentication", "title": "Convert \"使用 Antigravity OAuth 使用openai格式调用opencode问题\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1173", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1173", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0325", "theme": "error-handling-retries", "title": "Add DX polish around \"今天中午开始一直429\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1172", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1172", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0326", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"gemini api 使用openai 兼容的url 使用时 tool_call 有问题\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1168", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1168", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0327", "theme": "install-and-ops", "title": "Add QA scenarios for \"linux一键安装的如何更新\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1167", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1167", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0328", "theme": "general-polish", "title": "Refactor implementation behind \"新增微软copilot GPT5.2codex模型\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1166", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1166", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0329", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"Tool Calling Not Working in Cursor When Using Claude via CLIPROXYAPI + Antigravity Proxy\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1165", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1165", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0330", "theme": "provider-model-registry", "title": "Standardize metadata and naming conventions touched by \"[Improvement] Allow multiple model mappings to have the same Alias\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1163", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1163", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0331", "theme": "websocket-and-streaming", "title": "Follow up on \"Antigravity模型在Cursor无法使用工具\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1162", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1162", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0332", "theme": "responses-and-chat-compat", "title": "Harden \"Gemini\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1161", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1161", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0333", "theme": "cli-ux-dx", "title": "Operationalize \"Add support proxy per account\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1160", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1160", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0334", "theme": "oauth-and-authentication", "title": "Convert \"[Feature] 添加Github Copilot 的OAuth\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1159", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1159", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0335", "theme": "general-polish", "title": "Add DX polish around \"希望支持claude api\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1157", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1157", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0336", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"[Bug] v6.7.x Regression: thinking parameter not recognized, causing Cherry Studio and similar clients to fail displaying extended thinking content\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1155", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1155", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0337", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"nvidia今天开始超时了,昨天刚配置还好好的\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1154", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1154", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0338", "theme": "provider-model-registry", "title": "Refactor implementation behind \"Antigravity OAuth认证失败\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1153", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1153", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0339", "theme": "websocket-and-streaming", "title": "Ensure rollout safety for \"日志怎么不记录了\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1152", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1152", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0340", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"v6.7.16无法反重力的gemini-3-pro-preview\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1150", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1150", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0341", "theme": "provider-model-registry", "title": "Follow up on \"OpenAI 兼容模型请求失败问题\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1149", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1149", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0342", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"没有单个凭证 启用/禁用 的切换开关吗\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1148", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1148", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0343", "theme": "error-handling-retries", "title": "Operationalize \"[Bug] Internal restart loop causes continuous \"address already in use\" errors in logs\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1146", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1146", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0344", "theme": "thinking-and-reasoning", "title": "Convert \"cc 使用 zai-glm-4.7 报错 body.reasoning\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1143", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1143", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0345", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"NVIDIA不支持,转发成claude和gpt都用不了\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1139", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1139", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0346", "theme": "provider-model-registry", "title": "Expand docs and examples for \"Feature Request: Add support for Cursor IDE as a backend/provider\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1138", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1138", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0347", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"Claude to OpenAI Translation Generates Empty System Message\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1136", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1136", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0348", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"tool_choice not working for Gemini models via Claude API endpoint\" so local config and runtime can be reloaded deterministically.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1135", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1135", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0349", "theme": "provider-model-registry", "title": "Ensure rollout safety for \"model stops by itself does not proceed to the next step\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1134", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1134", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0350", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"API Error: 400是怎么回事,之前一直能用\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1133", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1133", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0351", "theme": "general-polish", "title": "Follow up on \"希望供应商能够加上微软365\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1128", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1128", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0352", "theme": "cli-ux-dx", "title": "Harden \"codex的config.toml文件在哪里修改?\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1127", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1127", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0353", "theme": "thinking-and-reasoning", "title": "Operationalize \"[Bug] Antigravity provider intermittently strips `thinking` blocks in multi-turn conversations with extended thinking enabled\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1124", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1124", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0354", "theme": "websocket-and-streaming", "title": "Convert \"使用Amp CLI的Painter工具画图显示prompt is too long\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1123", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1123", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0355", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"gpt-5.2-codex \"System messages are not allowed\"\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1122", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1122", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0356", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"kiro使用orchestrator 模式调用的时候会报错400\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1120", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1120", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0357", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Error code: 400 - {'detail': 'Unsupported parameter: user'}\" including setup, auth, model select, and sanity-check commands.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1119", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1119", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0358", "theme": "websocket-and-streaming", "title": "Refactor implementation behind \"添加智谱OpenAI兼容提供商获取模型和测试会失败\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1118", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1118", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0359", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"gemini-3-pro-high (Antigravity): malformed_function_call error with tools\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1113", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1113", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0360", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"该凭证暂无可用模型,这是被封号了的意思吗\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1111", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1111", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0361", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"香蕉pro 图片一下将所有图片额度都消耗没了\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1110", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1110", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0362", "theme": "thinking-and-reasoning", "title": "Harden \"Error 'Expected thinking or redacted_thinking' after upgrade to v6.7.12\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1109", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1109", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0363", "theme": "provider-model-registry", "title": "Operationalize \"[Feature Request] whitelist models for specific API KEY\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1107", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1107", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0364", "theme": "responses-and-chat-compat", "title": "Convert \"gemini-3-pro-high returns empty response when subagent uses tools\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1106", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1106", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0365", "theme": "provider-model-registry", "title": "Add DX polish around \"GitStore local repo fills tmpfs due to accumulating loose git objects (no GC/repack)\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1104", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1104", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0366", "theme": "websocket-and-streaming", "title": "Expand docs and examples for \"ℹ ⚠️ Response stopped due to malformed function call. 在 Gemini CLI 中 频繁出现这个提示,对话中断\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1100", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1100", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0367", "theme": "general-polish", "title": "Add QA scenarios for \"【功能请求】添加禁用项目按键(或优先级逻辑)\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1098", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1098", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0368", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"有支持豆包的反代吗\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1097", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1097", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0369", "theme": "provider-model-registry", "title": "Ensure rollout safety for \"Wrong workspace selected for OpenAI accounts\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1095", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1095", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0370", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Anthropic web_search fails in v6.7.x - invalid tool name web_search_20250305\" across both repos.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1094", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1094", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0371", "theme": "thinking-and-reasoning", "title": "Follow up on \"Antigravity 生图无法指定分辨率\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1093", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1093", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0372", "theme": "oauth-and-authentication", "title": "Harden \"文件写方式在docker下容易出现Inode变更问题\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1092", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1092", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0373", "theme": "websocket-and-streaming", "title": "Operationalize \"命令行中返回结果一切正常,但是在cherry studio中找不到模型\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1090", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1090", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0374", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"[Feedback #1044] 尝试通过 Payload 设置 Gemini 3 宽高比失败 (Google API 400 Error)\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1089", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1089", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0375", "theme": "websocket-and-streaming", "title": "Add DX polish around \"反重力2API opus模型 Error searching files\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1086", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1086", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0376", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"Streaming Response Translation Fails to Emit Completion Events on `[DONE]` Marker\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1085", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1085", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0377", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Feature Request: Add support for Text Embedding API (/v1/embeddings)\" so local config and runtime can be reloaded deterministically.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1084", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1084", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0378", "theme": "websocket-and-streaming", "title": "Refactor implementation behind \"大香蕉生图无图片返回\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1083", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1083", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0379", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"修改报错HTTP Status Code\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1082", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1082", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0380", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"反重力2api无法使用工具\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1080", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1080", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0381", "theme": "oauth-and-authentication", "title": "Follow up on \"配额管理中可否新增Claude OAuth认证方式号池的配额信息\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1079", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1079", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0382", "theme": "thinking-and-reasoning", "title": "Harden \"Extended thinking model fails with \"Expected thinking or redacted_thinking, but found tool_use\" on multi-turn conversations\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1078", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1078", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0383", "theme": "responses-and-chat-compat", "title": "Operationalize \"functionDeclarations 和 googleSearch 合并到同一个 tool 对象导致 Gemini API 报错\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1077", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1077", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0384", "theme": "responses-and-chat-compat", "title": "Convert \"Antigravity: MCP 工具的数字类型 enum 值导致 INVALID_ARGUMENT 错误\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1075", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1075", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0385", "theme": "websocket-and-streaming", "title": "Add DX polish around \"认证文件管理可否添加一键导出所有凭证的按钮\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1074", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1074", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0386", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"image generation 429\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1073", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1073", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0387", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"No Auth Available\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1072", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1072", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0388", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"配置OpenAI兼容格式的API,用Anthropic接口 OpenAI接口都调用不成功\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1066", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1066", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0389", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"\"Think Mode\" Reasoning models are not visible in GitHub Copilot interface\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1065", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1065", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0390", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Gemini 和 Claude 多条 system 提示词时,只有最后一条生效 / When Gemini and Claude have multiple system prompt words, only the last one takes effect\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1064", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1064", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0391", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"OAuth issue with Qwen using Google Social Login\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1063", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1063", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0392", "theme": "oauth-and-authentication", "title": "Harden \"[Feature] allow to disable auth files from UI (management)\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1062", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1062", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0393", "theme": "general-polish", "title": "Operationalize \"最新版claude 2.1.9调用后,会在后台刷出大量warn;持续输出\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1061", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1061", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0394", "theme": "websocket-and-streaming", "title": "Convert \"Antigravity 针对Pro账号的 Claude/GPT 模型有周限额了吗?\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1060", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1060", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0395", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"OpenAI 兼容提供商 由于客户端没有兼容OpenAI接口,导致调用失败\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1059", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1059", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0396", "theme": "general-polish", "title": "Expand docs and examples for \"希望可以增加antigravity授权的配额保护功能\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1058", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1058", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0397", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"[bug]在 opencode 多次正常请求后出现 500 Unknown Error 后紧接着 No Auth Available\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1057", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1057", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0398", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"6.7.3报错 claude和cherry 都报错,是配置问题吗?还是模型换名了unknown provider for model gemini-claude-opus-4-\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1056", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1056", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0399", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"codex-instructions-enabled为true时,在codex-cli中使用是否会重复注入instructions?\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1055", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1055", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0400", "theme": "websocket-and-streaming", "title": "Standardize metadata and naming conventions touched by \"cliproxyapi多个账户切换(因限流/账号问题), 导致客户端直接报错\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1053", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1053", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0401", "theme": "provider-model-registry", "title": "Follow up on \"Codex authentication cannot be detected\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1052", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1052", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0402", "theme": "oauth-and-authentication", "title": "Harden \"v6.7.3 OAuth 模型映射 新增或修改存在问题\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1051", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1051", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0403", "theme": "general-polish", "title": "Operationalize \"【建议】持久化储存使用统计\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1050", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1050", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0404", "theme": "oauth-and-authentication", "title": "Convert \"最新版本CPA,OAuths模型映射功能失败?\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1048", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1048", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0405", "theme": "oauth-and-authentication", "title": "Add DX polish around \"新增的Antigravity文件会报错429\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1047", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1047", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0406", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Docker部署缺失gemini-web-auth功能\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1045", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1045", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0407", "theme": "cli-ux-dx", "title": "Add QA scenarios for \"image模型能否在cliproxyapi中直接区分2k,4k\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1044", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1044", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0408", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"OpenAI-compatible assistant content arrays dropped in conversion, causing repeated replies\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1043", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1043", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0409", "theme": "websocket-and-streaming", "title": "Ensure rollout safety for \"qwen进行模型映射时提示 更新模型映射失败: channel not found\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1042", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1042", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0410", "theme": "websocket-and-streaming", "title": "Standardize metadata and naming conventions touched by \"升级到最新版本后,认证文件页面提示请升级CPA版本\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1041", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1041", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0411", "theme": "websocket-and-streaming", "title": "Follow up on \"服务启动后,终端连续不断打印相同内容\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1040", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1040", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0412", "theme": "websocket-and-streaming", "title": "Harden \"Issue\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1039", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1039", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0413", "theme": "websocket-and-streaming", "title": "Operationalize \"Antigravity error to get quota limit\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1038", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1038", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0414", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"macos webui Codex OAuth error\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1037", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1037", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0415", "theme": "oauth-and-authentication", "title": "Add DX polish around \"antigravity 无法获取登录链接\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1035", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1035", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0416", "theme": "error-handling-retries", "title": "Expand docs and examples for \"UltraAI Workspace account error: project_id cannot be retrieved\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1034", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1034", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0417", "theme": "websocket-and-streaming", "title": "Add QA scenarios for \"额度获取失败:Gemini CLI 凭证缺少 Project ID\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1032", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1032", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0418", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Antigravity auth causes infinite refresh loop when project_id cannot be fetched\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1030", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1030", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0419", "theme": "error-handling-retries", "title": "Ensure rollout safety for \"希望能够通过配置文件设定API调用超时时间\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1029", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1029", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0420", "theme": "provider-model-registry", "title": "Standardize metadata and naming conventions touched by \"Calling gpt-codex-5.2 returns 400 error: “Unsupported parameter: safety_identifier”\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1028", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1028", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0421", "theme": "general-polish", "title": "Follow up on \"【建议】能否加一下模型配额优先级?\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1027", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1027", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0422", "theme": "websocket-and-streaming", "title": "Harden \"求问,配额显示并不准确\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1026", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1026", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0423", "theme": "provider-model-registry", "title": "Operationalize \"Vertex Credential Doesn't Work with gemini-3-pro-image-preview\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1024", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1024", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0424", "theme": "install-and-ops", "title": "Convert \"[Feature] 提供更新命令\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1023", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1023", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0425", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"授权文件可以拷贝使用\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1022", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1022", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0426", "theme": "provider-model-registry", "title": "Expand docs and examples for \"额度的消耗怎么做到平均分配和限制最多使用量呢?\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1021", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1021", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0427", "theme": "websocket-and-streaming", "title": "Add QA scenarios for \"【建议】就算开了日志也无法区别为什么新加的这个账号错误的原因\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1020", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1020", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0428", "theme": "provider-model-registry", "title": "Refactor implementation behind \"每天早上都报错 错误: Failed to call gemini-3-pro-preview model: unknown provider for model gemini-3-pro-preview 要重新删除账号重新登录,\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1019", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1019", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0429", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Antigravity Accounts Rate Limited (HTTP 429) Despite Available Quota\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1015", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1015", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0430", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Bug: CLIproxyAPI returns Prompt is too long (need trim history)\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1014", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1014", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0431", "theme": "provider-model-registry", "title": "Follow up on \"Management Usage report resets at restart\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1013", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1013", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0432", "theme": "websocket-and-streaming", "title": "Harden \"使用gemini-3-pro-image-preview 模型,生成不了图片\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1012", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1012", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0433", "theme": "oauth-and-authentication", "title": "Operationalize \"「建议」希望能添加一个手动控制某 oauth 认证是否参与反代的功能\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1010", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1010", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0434", "theme": "thinking-and-reasoning", "title": "Convert \"[Bug] Missing mandatory tool_use.id in request payload causing failure on subsequent tool calls\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1009", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1009", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0435", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"添加openai v1 chat接口,使用responses调用,出现截断,最后几个字不显示\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1008", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1008", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0436", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"iFlow token刷新失败\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1007", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1007", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0437", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"fix(codex): Codex 流错误格式不符合 OpenAI Responses API 规范导致客户端解析失败\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1006", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1006", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0438", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"Feature: Add Veo 3.1 Video Generation Support\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1005", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1005", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0439", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"Bug: Streaming response.output_item.done missing function name\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1004", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1004", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0440", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"Close\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1003", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1003", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0441", "theme": "provider-model-registry", "title": "Follow up on \"gemini 3 missing field\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#1002", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1002", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0442", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"[Bug] Codex Responses API: item_reference in `input` not cleaned, causing 404 errors and incorrect client suspension\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#999", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/999", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0443", "theme": "responses-and-chat-compat", "title": "Operationalize \"[Bug] Codex Responses API: `input` 中的 item_reference 未清理,导致 404 错误和客户端被误暂停\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#998", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/998", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0444", "theme": "responses-and-chat-compat", "title": "Convert \"【建议】保留Gemini格式请求的思考签名\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#997", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/997", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0445", "theme": "websocket-and-streaming", "title": "Add DX polish around \"Gemini CLI 认证api,不支持gemini 3\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#996", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/996", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0446", "theme": "general-polish", "title": "Expand docs and examples for \"配额管理显示不正常。\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#995", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/995", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0447", "theme": "general-polish", "title": "Add QA scenarios for \"使用oh my opencode的时候subagent调用不积极\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#992", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/992", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0448", "theme": "general-polish", "title": "Refactor implementation behind \"A tool for AmpCode agent to turn on off free mode to enjoy Oracle, Websearch by free credits without seeing ads to much\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#990", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/990", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0449", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"`tool_use` ids were found without `tool_result` blocks immediately\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#989", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/989", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0450", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"Codex callback URL仅显示:http://localhost:1455/success\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#988", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/988", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0451", "theme": "websocket-and-streaming", "title": "Follow up on \"【建议】在CPA webui中实现禁用某个特定的凭证\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#987", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/987", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0452", "theme": "responses-and-chat-compat", "title": "Harden \"New OpenAI API: /responses/compact\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#986", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/986", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0453", "theme": "responses-and-chat-compat", "title": "Operationalize \"Bug Report: OAuth Login Failure on Windows due to Port 51121 Conflict\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#985", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/985", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0454", "theme": "responses-and-chat-compat", "title": "Convert \"Claude model reports wrong/unknown model when accessed via API (Claude Code OAuth)\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#984", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/984", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0455", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"400 Error: Unsupported max_tokens Parameter When Using OpenAI Base URL\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#983", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/983", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0456", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"[建议]Codex渠道将System角色映射为Developer角色\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#982", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/982", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0457", "theme": "provider-model-registry", "title": "Add QA scenarios for \"No Image Generation Models Available After Gemini CLI Setup\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#978", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/978", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0458", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"When using the amp cli with gemini 3 pro, after thinking, nothing happens\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#977", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/977", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0459", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"GPT5.2模型异常报错 auth_unavailable: no auth available\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#976", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/976", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0460", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"fill-first strategy does not take effect (all accounts remain at 99%)\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#974", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/974", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0461", "theme": "responses-and-chat-compat", "title": "Follow up on \"Auth files permanently deleted from S3 on service restart due to race condition\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#973", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/973", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0462", "theme": "provider-model-registry", "title": "Harden \"feat: Enhanced Request Logging with Metadata and Management API for Observability\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#972", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/972", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0463", "theme": "provider-model-registry", "title": "Operationalize \"Antigravity with opus 4,5 keeps giving rate limits error for no reason.\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#970", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/970", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0464", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"exhausted没被重试or跳过,被传下来了\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#968", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/968", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0465", "theme": "oauth-and-authentication", "title": "Add DX polish around \"初次运行运行.exe文件报错\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#966", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/966", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0466", "theme": "error-handling-retries", "title": "Expand docs and examples for \"登陆后白屏\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#965", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/965", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0467", "theme": "provider-model-registry", "title": "Add QA scenarios for \"版本:6.6.98 症状:登录成功后白屏,React Error #300 复现:登录后立即崩溃白屏\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#964", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/964", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0468", "theme": "general-polish", "title": "Refactor implementation behind \"反重力反代在opencode不支持,问话回答一下就断\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#962", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/962", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0469", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Antigravity using Flash 2.0 Model for Sonet\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#960", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/960", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0470", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"建议优化轮询逻辑,同一账号额度用完刷新后作为第二优先级轮询\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#959", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/959", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0471", "theme": "responses-and-chat-compat", "title": "Follow up on \"macOS的webui无法登录\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#957", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/957", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0472", "theme": "websocket-and-streaming", "title": "Harden \"【bug】三方兼容open ai接口 测试会报这个,如何解决呢?\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#956", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/956", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0473", "theme": "oauth-and-authentication", "title": "Operationalize \"[Feature] Allow define log filepath in config\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#954", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/954", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0474", "theme": "general-polish", "title": "Convert \"[建议]希望OpenAI 兼容提供商支持启用停用功能\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#953", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/953", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0475", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Reasoning field missing for gpt-5.1-codex-max at xhigh reasoning level (while gpt-5.2-codex works as expected)\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#952", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/952", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0476", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"[Bug]反代 Antigravity 使用Claude Code 时,特定请求持续无响应导致 504 Gateway Timeout\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#951", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/951", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0477", "theme": "docs-quickstarts", "title": "Add QA scenarios for \"README has been replaced by the one from CLIProxyAPIPlus\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#950", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/950", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0478", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"Internal Server Error: {\"error\":{\"message\":\"auth_unavailable: no auth available\"... (click to expand) [retrying in 8s attempt #4]\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#949", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/949", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0479", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"[BUG] Multi-part Gemini response loses content - only last part preserved in OpenAI translation\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#948", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/948", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0480", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"内存占用太高,用了1.5g\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#944", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/944", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0481", "theme": "thinking-and-reasoning", "title": "Follow up on \"接入openroute成功,但是下游使用异常\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#942", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/942", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0482", "theme": "responses-and-chat-compat", "title": "Harden \"fix: use original request JSON for echoed fields in OpenAI Responses translator\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#941", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/941", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0483", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"现有指令会让 Gemini 产生误解,无法真正忽略前置系统提示\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#940", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/940", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0484", "theme": "provider-model-registry", "title": "Convert \"[Feature Request] Support Priority Failover Strategy (Priority Queue) Instead of all Round-Robin\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#937", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/937", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0485", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"[Feature Request] Support multiple aliases for a single model name in oauth-model-mappings\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#936", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/936", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0486", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"新手登陆认证问题\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#934", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/934", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0487", "theme": "general-polish", "title": "Add QA scenarios for \"能不能支持UA伪装?\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#933", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/933", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0488", "theme": "cli-ux-dx", "title": "Refactor implementation behind \"[features request] 恳请CPA团队能否增加KIRO的反代模式?Could you add a reverse proxy api to KIRO?\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#932", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/932", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0489", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Gemini 3 Pro cannot perform native tool calls in Roo Code\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#931", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/931", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0490", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Qwen OAuth Request Error\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#930", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/930", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0491", "theme": "thinking-and-reasoning", "title": "Follow up on \"无法在 api 代理中使用 Anthropic 模型,报错 429\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#929", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/929", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0492", "theme": "thinking-and-reasoning", "title": "Harden \"[Bug] 400 error on Claude Code internal requests when thinking is enabled - assistant message missing thinking block\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#928", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/928", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0493", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"配置自定义提供商的时候怎么给相同的baseurl一次配置多个API Token呢?\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#927", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/927", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0494", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"同一个chatgpt账号加入了多个工作空间,同时个人账户也有gptplus,他们的codex认证文件在cliproxyapi不能同时使用\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#926", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/926", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0495", "theme": "oauth-and-authentication", "title": "Add DX polish around \"iFlow 登录失败\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#923", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/923", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0496", "theme": "general-polish", "title": "Expand docs and examples for \"希望能自定义系统提示,比如自定义前缀\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#922", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/922", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0497", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"Help for setting mistral\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#920", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/920", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0498", "theme": "general-polish", "title": "Refactor implementation behind \"能不能添加功能,禁用某些配置文件\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#919", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/919", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0499", "theme": "oauth-and-authentication", "title": "Ensure rollout safety for \"How to run this?\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#917", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/917", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0500", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"API密钥→特定配额文件\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#915", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/915", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0501", "theme": "docs-quickstarts", "title": "Follow up on \"增加支持Gemini API v1版本\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#914", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/914", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0502", "theme": "responses-and-chat-compat", "title": "Harden \"error on claude code\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#913", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/913", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0503", "theme": "general-polish", "title": "Operationalize \"反重力Claude修好后,大香蕉不行了\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#912", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/912", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0504", "theme": "general-polish", "title": "Convert \"看到有人发了一个更短的提示词\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#911", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/911", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0505", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"Antigravity models return 429 RESOURCE_EXHAUSTED via cURL, but Antigravity IDE still works (started ~18:00 GMT+7)\" through improved command ergonomics and faster feedback loops.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#910", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/910", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0506", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"gemini3p报429,其他的都好好的\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#908", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/908", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0507", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"[BUG] 403 You are currently configured to use a Google Cloud Project but lack a Gemini Code Assist license\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#907", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/907", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0508", "theme": "websocket-and-streaming", "title": "Refactor implementation behind \"新版本运行闪退\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#906", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/906", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0509", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"更新到最新版本后,自定义 System Prompt 无效\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#905", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/905", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0510", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"⎿ 429 {\"error\":{\"code\":\"model_cooldown\",\"message\":\"All credentials for model gemini-claude-opus-4-5-thinking are cooling down via provider antigravity\",\"model\":\"gemini-claude-opus-4-5-thinking\",\"provider\":\"antigravity\",\"reset_seconds\" including setup, auth, model select, and sanity-check commands.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#904", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/904", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0511", "theme": "general-polish", "title": "Follow up on \"有人遇到相同问题么?Resource has been exhausted (e.g. check quota)\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#903", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/903", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0512", "theme": "oauth-and-authentication", "title": "Harden \"auth_unavailable: no auth available\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#902", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/902", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0513", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"OpenAI Codex returns 400: Unsupported parameter: prompt_cache_retention\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#897", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/897", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0514", "theme": "general-polish", "title": "Convert \"[feat]自动优化Antigravity的quota刷新时间选项\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#895", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/895", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0515", "theme": "oauth-and-authentication", "title": "Add DX polish around \"Apply Routing Strategy also to Auth Files\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#893", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/893", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0516", "theme": "provider-model-registry", "title": "Expand docs and examples for \"支持包含模型配置\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#892", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/892", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0517", "theme": "oauth-and-authentication", "title": "Add QA scenarios for \"Cursor subscription support\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#891", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/891", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0518", "theme": "cli-ux-dx", "title": "Refactor implementation behind \"增加qodercli\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#889", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/889", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0519", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"[Bug] Codex auth file overwritten when account has both Plus and Team plans\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#887", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/887", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0520", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"新版本有超时Bug,切换回老版本没问题\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#886", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/886", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0521", "theme": "thinking-and-reasoning", "title": "Follow up on \"can not work with mcp:ncp on antigravity auth\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#885", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/885", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0522", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Gemini Cli Oauth 认证失败\" so local config and runtime can be reloaded deterministically.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#884", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/884", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0523", "theme": "testing-and-quality", "title": "Operationalize \"Claude Code Web Search doesn’t work\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#883", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/883", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0524", "theme": "responses-and-chat-compat", "title": "Convert \"fix(antigravity): Streaming finish_reason 'tool_calls' overwritten by 'stop' - breaks Claude Code tool detection\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#876", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/876", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0525", "theme": "general-polish", "title": "Add DX polish around \"同时使用GPT账号个人空间和团队空间\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#875", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/875", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0526", "theme": "provider-model-registry", "title": "Expand docs and examples for \"antigravity and gemini cli duplicated model names\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#873", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/873", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0527", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"supports stakpak.dev\" including setup, auth, model select, and sanity-check commands.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#872", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/872", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0528", "theme": "provider-model-registry", "title": "Refactor implementation behind \"gemini 模型 tool_calls 问题\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#866", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/866", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0529", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"谷歌授权登录成功,但是额度刷新失败\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#864", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/864", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0530", "theme": "websocket-and-streaming", "title": "Standardize metadata and naming conventions touched by \"使用统计 每次重启服务就没了,能否重启不丢失,使用手动的方式去清理统计数据\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#863", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/863", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0531", "theme": "websocket-and-streaming", "title": "Follow up on \"代理 iflow 模型服务的时候频繁出现重复调用同一个请求的情况。一直循环\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#856", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/856", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0532", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"请增加对kiro的支持\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#855", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/855", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0533", "theme": "general-polish", "title": "Operationalize \"Reqest for supporting github copilot\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#854", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/854", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0534", "theme": "provider-model-registry", "title": "Convert \"请添加iflow最新模型iFlow-ROME-30BA3B\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#853", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/853", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0535", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"[Bug] Infinite hanging and quota surge with gemini-claude-opus-4-5-thinking in Claude Code\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#852", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/852", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0536", "theme": "general-polish", "title": "Expand docs and examples for \"Would the consumption be greater in Claude Code?\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#848", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/848", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0537", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"功能请求:为 OAuth 账户添加独立代理配置支持\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#847", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/847", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0538", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"Promt caching\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#845", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/845", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0539", "theme": "general-polish", "title": "Ensure rollout safety for \"Feature Request: API for fetching Quota stats (remaining, renew time, etc)\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#844", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/844", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0540", "theme": "cli-ux-dx", "title": "Standardize metadata and naming conventions touched by \"使用antigravity转为API在claude code中使用不支持web search\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#842", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/842", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0541", "theme": "thinking-and-reasoning", "title": "Follow up on \"[Bug] Antigravity countTokens ignores tools field - always returns content-only token count\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#840", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/840", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0542", "theme": "responses-and-chat-compat", "title": "Harden \"Image Generation 504 Timeout Investigation\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#839", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/839", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0543", "theme": "provider-model-registry", "title": "Operationalize \"[Feature Request] Schedule automated requests to AI models\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#838", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/838", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0544", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"\"Feature Request: Android Binary Support (Termux Build Guide)\"\" including setup, auth, model select, and sanity-check commands.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#836", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/836", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0545", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"[Bug] Antigravity token refresh loop caused by metadataEqualIgnoringTimestamps skipping critical field updates\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#833", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/833", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0546", "theme": "general-polish", "title": "Expand docs and examples for \"mac使用brew安装的cpa,请问配置文件在哪?\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#831", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/831", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0547", "theme": "testing-and-quality", "title": "Add QA scenarios for \"Feature request\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#828", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/828", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0548", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"长时间运行后会出现`internal_server_error`\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#827", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/827", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0549", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"windows环境下,认证文件显示重复的BUG\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#822", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/822", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0550", "theme": "provider-model-registry", "title": "Standardize metadata and naming conventions touched by \"[FQ]增加telegram bot集成和更多管理API命令刷新Providers周期额度\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#820", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/820", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0551", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"[Feature] 能否增加/v1/embeddings 端点\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#818", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/818", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0552", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"模型带前缀并开启force_model_prefix后,以gemini格式获取模型列表中没有带前缀的模型\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#816", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/816", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0553", "theme": "thinking-and-reasoning", "title": "Operationalize \"iFlow account error show on terminal\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#815", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/815", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0554", "theme": "thinking-and-reasoning", "title": "Convert \"代理的codex 404\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#812", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/812", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0555", "theme": "install-and-ops", "title": "Add DX polish around \"Set up Apprise on TrueNAS for notifications\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#808", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/808", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0556", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"Request for maintenance team intervention: Changes in internal/translator needed\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#806", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/806", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0557", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"feat(translator): integrate SanitizeFunctionName across Claude translators\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#804", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/804", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0558", "theme": "websocket-and-streaming", "title": "Refactor implementation behind \"win10无法安装没反应,cmd安装提示,failed to read config file\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#801", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/801", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0559", "theme": "websocket-and-streaming", "title": "Ensure rollout safety for \"在cherry-studio中的流失响应似乎未生效\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#798", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/798", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0560", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"Bug: ModelStates (BackoffLevel) lost when auth is reloaded or refreshed\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#797", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/797", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0561", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"[Bug] Stream usage data is merged with finish_reason: \"stop\", causing Letta AI to crash (OpenAI Stream Options incompatibility)\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#796", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/796", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0562", "theme": "provider-model-registry", "title": "Harden \"[BUG] Codex 默认回调端口 1455 位于 Hyper-v 保留端口段内\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#793", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/793", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0563", "theme": "thinking-and-reasoning", "title": "Operationalize \"【Bug】: High CPU usage when managing 50+ OAuth accounts\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#792", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/792", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0564", "theme": "websocket-and-streaming", "title": "Convert \"使用上游提供的 Gemini API 和 URL 获取到的模型名称不对应\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#791", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/791", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0565", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"当在codex exec 中使用gemini 或claude 模型时 codex 无输出结果\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#790", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/790", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0566", "theme": "general-polish", "title": "Expand docs and examples for \"Brew 版本更新延迟,能否在 github Actions 自动增加更新 brew 版本?\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#789", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/789", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0567", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"[Bug]: Gemini Models Output Truncated - Database Schema Exceeds Maximum Allowed Tokens (140k+ chars) in Claude Code\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#788", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/788", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0568", "theme": "websocket-and-streaming", "title": "Refactor implementation behind \"可否增加一个轮询方式的设置,某一个账户额度用尽时再使用下一个\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#784", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/784", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0569", "theme": "general-polish", "title": "Ensure rollout safety for \"[功能请求] 新增联网gemini 联网模型\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#779", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/779", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0570", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Support for parallel requests\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#778", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/778", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0571", "theme": "websocket-and-streaming", "title": "Follow up on \"当认证账户消耗完之后,不会自动切换到 AI 提供商账户\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#777", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/777", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0572", "theme": "websocket-and-streaming", "title": "Harden \"[功能请求] 假流式和非流式防超时\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#775", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/775", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0573", "theme": "general-polish", "title": "Operationalize \"[功能请求]可否增加 google genai 的兼容\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#771", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/771", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0574", "theme": "general-polish", "title": "Convert \"反重力账号额度同时消耗\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#768", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/768", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0575", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"iflow模型排除无效\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#762", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/762", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0576", "theme": "provider-model-registry", "title": "Expand docs and examples for \"support proxy for opencode\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#753", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/753", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0577", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"[BUG] thinking/思考链在 antigravity 反代下被截断/丢失(stream 分块处理过严)\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#752", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/752", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0578", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"api-keys 필드에 placeholder 값이 있으면 invalid api key 에러 발생\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#751", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/751", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0579", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"[Bug]Fix `invalid_request_error` (Field required) when assistant message has empty content with tool_calls\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#749", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/749", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0580", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"建议增加 kiro CLI\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#748", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/748", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0581", "theme": "thinking-and-reasoning", "title": "Follow up on \"[Bug] Streaming response 'message_start' event missing token counts (affects OpenCode/Vercel AI SDK)\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#747", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/747", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0582", "theme": "thinking-and-reasoning", "title": "Harden \"[Bug] Invalid request error when using thinking with multi-turn conversations\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#746", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/746", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0583", "theme": "thinking-and-reasoning", "title": "Operationalize \"Add output_tokens_details.reasoning_tokens for thinking models on /v1/messages\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#744", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/744", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0584", "theme": "responses-and-chat-compat", "title": "Convert \"qwen-code-plus not supoort guided-json Structured Output\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#743", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/743", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0585", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"Bash tool too slow\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#742", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/742", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0586", "theme": "websocket-and-streaming", "title": "Expand docs and examples for \"反代Antigravity,CC读图的时候似乎会触发bug?明明现在上下文还有很多,但是提示要compact了\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#741", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/741", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0587", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"Claude Code CLI's status line shows zero tokens\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#740", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/740", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0588", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"Tool calls not emitted after thinking blocks\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#739", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/739", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0589", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Pass through actual Anthropic token counts instead of estimating\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#738", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/738", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0590", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"多渠道同一模型映射成一个显示\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#737", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/737", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0591", "theme": "responses-and-chat-compat", "title": "Follow up on \"Feature Request: Complete OpenAI Tool Calling Format Support for Claude Models (Cursor MCP Compatibility)\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#735", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/735", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0592", "theme": "responses-and-chat-compat", "title": "Harden \"Bug: /v1/responses endpoint does not correctly convert message format for Anthropic API\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#736", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/736", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0593", "theme": "general-polish", "title": "Operationalize \"请问有计划支持显示目前剩余额度吗\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#734", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/734", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0594", "theme": "thinking-and-reasoning", "title": "Convert \"reasoning_content is null for extended thinking models (thinking goes to content instead)\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#732", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/732", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0595", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Use actual Anthropic token counts instead of estimation for reasoning_tokens\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#731", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/731", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0596", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"400 error: messages.X.content.0.text.text: Field required\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#730", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/730", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0597", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"[BUG] Antigravity Opus + Codex cannot read images\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#729", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/729", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0598", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"[Feature] Usage Statistics Persistence to JSON File - PR Proposal\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#726", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/726", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0599", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"反代的Antigravity的claude模型在opencode cli需要增强适配\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#725", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/725", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0600", "theme": "websocket-and-streaming", "title": "Standardize metadata and naming conventions touched by \"iflow日志提示:当前找我聊的人太多了,可以晚点再来问我哦。\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#724", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/724", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0601", "theme": "general-polish", "title": "Follow up on \"怎么加入多个反重力账号?\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#723", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/723", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0602", "theme": "oauth-and-authentication", "title": "Harden \"最新的版本无法构建成镜像\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#721", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/721", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0603", "theme": "responses-and-chat-compat", "title": "Operationalize \"API Error: 400\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#719", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/719", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0604", "theme": "responses-and-chat-compat", "title": "Convert \"是否可以支持/openai/v1/responses端点\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#718", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/718", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0605", "theme": "general-polish", "title": "Add DX polish around \"证书是否可以停用而非删除\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#717", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/717", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0606", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"thinking.cache_control error\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#714", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/714", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0607", "theme": "cli-ux-dx", "title": "Add QA scenarios for \"Feature: able to show the remaining quota of antigravity and gemini cli\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#713", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/713", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0608", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"/context show system tools 1 tokens, mcp tools 4 tokens\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#712", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/712", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0609", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"报错:failed to download management asset\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#711", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/711", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0610", "theme": "provider-model-registry", "title": "Standardize metadata and naming conventions touched by \"iFlow models don't work in CC anymore\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#710", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/710", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0611", "theme": "thinking-and-reasoning", "title": "Follow up on \"claude code 的指令/cotnext 裡token 計算不正確\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#709", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/709", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0612", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Behavior is not consistent with codex\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#708", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/708", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0613", "theme": "cli-ux-dx", "title": "Operationalize \"iflow cli更新 GLM4.7 & MiniMax M2.1 模型\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#707", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/707", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0614", "theme": "thinking-and-reasoning", "title": "Convert \"Antigravity provider returns 400 error when extended thinking is enabled after tool calls\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#702", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/702", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0615", "theme": "cli-ux-dx", "title": "Add DX polish around \"iflow-cli上线glm4.7和m2.1\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#701", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/701", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0616", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"[功能请求] 支持使用 Vertex AI的API Key 模式调用\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#699", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/699", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0617", "theme": "docs-quickstarts", "title": "Add QA scenarios for \"是否可以提供kiro的支持啊\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#698", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/698", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0618", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"6.6.49版本下Antigravity渠道的claude模型使用claude code缓存疑似失效\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#696", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/696", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0619", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"Translator: support first-class system prompt override for codex\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#694", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/694", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0620", "theme": "websocket-and-streaming", "title": "Standardize metadata and naming conventions touched by \"Add efficient scalar operations API (mul_scalar, add_scalar, etc.)\" across both repos.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#691", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/691", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0621", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"[功能请求] 能不能给每个号单独配置代理?\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#690", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/690", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0622", "theme": "general-polish", "title": "Harden \"[Feature request] Add support for checking remaining Antigravity quota\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#687", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/687", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0623", "theme": "provider-model-registry", "title": "Operationalize \"Feature Request: Priority-based Auth Selection for Specific Models\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#685", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/685", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0624", "theme": "provider-model-registry", "title": "Convert \"Update Gemini 3 model names: remove -preview suffix for gemini-3-pro and gemini-3-flash\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#683", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/683", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0625", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"Frequent Tool-Call Failures with Gemini-2.5-pro in OpenAI-Compatible Mode\" through improved command ergonomics and faster feedback loops.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#682", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/682", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0626", "theme": "install-and-ops", "title": "Expand docs and examples for \"Feature: Persist stats to disk (Docker-friendly) instead of in-memory only\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#681", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/681", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0627", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Support developer role\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#680", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/680", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0628", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"[Bug] Token counting endpoint /v1/messages/count_tokens significantly undercounts tokens\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#679", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/679", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0629", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"[Feature] Automatic Censoring Logs\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#678", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/678", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0630", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Translator: remove Copilot mention in OpenAI->Claude stream comment\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#677", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/677", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0631", "theme": "thinking-and-reasoning", "title": "Follow up on \"iflow渠道凭证报错\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#669", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/669", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0632", "theme": "provider-model-registry", "title": "Harden \"[Feature Request] Add timeout configuration\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#668", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/668", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0633", "theme": "general-polish", "title": "Operationalize \"Support Trae\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#666", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/666", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0634", "theme": "oauth-and-authentication", "title": "Convert \"Filter OTLP telemetry from Amp VS Code hitting /api/otel/v1/metrics\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#660", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/660", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0635", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"Handle OpenAI Responses-format payloads hitting /v1/chat/completions\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#659", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/659", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0636", "theme": "provider-model-registry", "title": "Expand docs and examples for \"[Feature Request] Support reverse proxy for 'mimo' to enable Codex CLI usage\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#656", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/656", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0637", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"[Bug] Gemini API Error: 'defer_loading' field in function declarations results in 400 Invalid JSON payload\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#655", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/655", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0638", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"System message (role: \"system\") completely dropped when converting to Antigravity API format\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#654", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/654", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0639", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"Antigravity Provider Broken\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#650", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/650", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0640", "theme": "oauth-and-authentication", "title": "Standardize metadata and naming conventions touched by \"希望能支持 GitHub Copilot\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#649", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/649", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0641", "theme": "provider-model-registry", "title": "Follow up on \"Request Wrap Cursor to use models as proxy\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#648", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/648", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0642", "theme": "responses-and-chat-compat", "title": "Harden \"[BUG] calude chrome中使用 antigravity模型 tool call错误\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#642", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/642", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0643", "theme": "responses-and-chat-compat", "title": "Operationalize \"get error when tools call in jetbrains ai assistant with openai BYOK\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#639", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/639", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0644", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"[Bug] OAuth tokens have insufficient scopes for Gemini/Antigravity API - 401 \"Invalid API key\"\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#637", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/637", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0645", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"Large prompt failures w/ Claude Code vs Codex routes (gpt-5.2): cloudcode 'Prompt is too long' + codex SSE missing response.completed\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#636", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/636", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0646", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Spam about server clients and configuration updated\" including setup, auth, model select, and sanity-check commands.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#635", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/635", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0647", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"Payload thinking overrides break requests with tool_choice (handoff fails)\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#630", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/630", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0648", "theme": "provider-model-registry", "title": "Refactor implementation behind \"我无法使用gpt5.2max而其他正常\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#629", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/629", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0649", "theme": "provider-model-registry", "title": "Ensure rollout safety for \"[Feature Request] Add support for AWS Bedrock API\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#626", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/626", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0650", "theme": "provider-model-registry", "title": "Standardize metadata and naming conventions touched by \"[Question] Mapping different keys to different accounts for same provider\" across both repos.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#625", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/625", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0651", "theme": "provider-model-registry", "title": "Follow up on \"\"Requested entity was not found\" for Gemini 3\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#620", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/620", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0652", "theme": "thinking-and-reasoning", "title": "Harden \"[Feature Request] Set hard limits for CLIProxyAPI API Keys\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#617", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/617", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0653", "theme": "thinking-and-reasoning", "title": "Operationalize \"Management routes (threads, user, auth) fail with 401/402 because proxy strips client auth and injects provider-only credentials\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#614", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/614", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0654", "theme": "responses-and-chat-compat", "title": "Convert \"Amp client fails with \"unexpected EOF\" when creating large files, while OpenAI-compatible clients succeed\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#613", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/613", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0655", "theme": "websocket-and-streaming", "title": "Add DX polish around \"Request support for codebuff access.\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#612", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/612", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0656", "theme": "provider-model-registry", "title": "Expand docs and examples for \"SDK Internal Package Dependency Issue\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#607", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/607", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0657", "theme": "provider-model-registry", "title": "Add QA scenarios for \"Can't use Oracle tool in AMP Code\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#606", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/606", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0658", "theme": "testing-and-quality", "title": "Refactor implementation behind \"Openai 5.2 Codex is launched\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#603", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/603", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0659", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Failing to do tool use from within Cursor\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#601", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/601", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0660", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"[Bug] gpt-5.1-codex models return 400 error (no body) while other OpenAI models succeed\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#600", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/600", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0661", "theme": "thinking-and-reasoning", "title": "Follow up on \"调用deepseek-chat报错\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#599", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/599", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0662", "theme": "general-polish", "title": "Harden \"\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#595", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/595", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0663", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"不能通过回调链接认证吗\" including setup, auth, model select, and sanity-check commands.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#594", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/594", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0664", "theme": "thinking-and-reasoning", "title": "Convert \"bug: Streaming not working for Gemini 3 models (Flash/Pro Preview) via Gemini CLI/Antigravity\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#593", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/593", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0665", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"[Bug] Antigravity prompt caching broken by random sessionId per request\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#592", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/592", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0666", "theme": "websocket-and-streaming", "title": "Expand docs and examples for \"Important Security & Integrity Alert regarding @Eric Tech\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#591", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/591", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0667", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"[Bug] Models from Codex (openai) are not accessible when Copilot is added\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#590", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/590", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0668", "theme": "provider-model-registry", "title": "Refactor implementation behind \"[Feature request] Add an enable switch for OpenAI-compatible providers and add model alias for antigravity\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#588", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/588", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0669", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"[Bug] Gemini API rejects \"optional\" field in tool parameters\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#583", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/583", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0670", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"github copilot problem\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#578", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/578", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0671", "theme": "responses-and-chat-compat", "title": "Follow up on \"amp使用时日志频繁出现下面报错\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#576", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/576", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0672", "theme": "responses-and-chat-compat", "title": "Harden \"Github Copilot Error\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#574", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/574", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0673", "theme": "provider-model-registry", "title": "Operationalize \"Cursor support\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#573", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/573", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0674", "theme": "responses-and-chat-compat", "title": "Convert \"Qwen CLI often stops working before finishing the task\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#567", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/567", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0675", "theme": "oauth-and-authentication", "title": "Add DX polish around \"gemini cli接入后,可以正常调用所属大模型;Antigravity通过OAuth成功认证接入后,无法调用所属的模型\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#566", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/566", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0676", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"Model ignores tool response and keeps repeating tool calls (Gemini 3 Pro / 2.5 Pro)\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#565", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/565", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0677", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"fix(translator): emit message_start on first chunk regardless of role field\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#563", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/563", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0678", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"Bug: OpenAI→Anthropic streaming translation fails with tool calls - missing message_start\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#561", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/561", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0679", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"stackTrace.format error in error response handling\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#559", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/559", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0680", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"docker运行的容器最近几个版本不会自动下载management.html了\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#557", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/557", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0681", "theme": "oauth-and-authentication", "title": "Follow up on \"Bug: AmpCode login routes incorrectly require API key authentication since v6.6.15\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#554", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/554", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0682", "theme": "responses-and-chat-compat", "title": "Harden \"Github Copilot\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#551", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/551", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0683", "theme": "thinking-and-reasoning", "title": "Operationalize \"Gemini3配置了thinkingConfig无效,模型调用名称被改为了gemini-3-pro-high\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#550", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/550", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0684", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Antigravity has no gemini-2.5-pro\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#548", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/548", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0685", "theme": "provider-model-registry", "title": "Add DX polish around \"Add General Request Queue with Windowed Concurrency for Reliable Pseudo-Concurrent Execution\" through improved command ergonomics and faster feedback loops.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#546", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/546", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0686", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"The token file was not generated.\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#544", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/544", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0687", "theme": "provider-model-registry", "title": "Add QA scenarios for \"Suggestion: Retain statistics after each update.\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#541", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/541", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0688", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"Bug: Codex→Claude SSE content_block.index collisions break Claude clients\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#539", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/539", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0689", "theme": "general-polish", "title": "Ensure rollout safety for \"[Feature Request] Add logs rotation\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#535", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/535", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0690", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"[Bug] AI Studio 渠道流式响应 JSON 格式异常导致客户端解析失败\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#534", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/534", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0691", "theme": "responses-and-chat-compat", "title": "Follow up on \"Feature: Add copilot-unlimited-mode config for copilot-api compatibility\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#532", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/532", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0692", "theme": "thinking-and-reasoning", "title": "Harden \"Bug: content_block_start sent before message_start in OpenAI→Anthropic translation\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#530", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/530", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0693", "theme": "websocket-and-streaming", "title": "Operationalize \"CLIProxyAPI,通过gemini cli来实现对gemini-2.5-pro的调用,如果遇到输出长度在上万字的情况,总是遇到429错误\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#518", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/518", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0694", "theme": "thinking-and-reasoning", "title": "Convert \"Antigravity Error 400\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#517", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/517", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0695", "theme": "websocket-and-streaming", "title": "Add DX polish around \"Add AiStudio error\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#513", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/513", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0696", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Claude Code with Antigravity gemini-claude-sonnet-4-5-thinking error: Extra inputs are not permitted\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#512", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/512", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0697", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Claude code results in errors with \"poor internet connection\"\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#510", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/510", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0698", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"[Feature Request] Global Alias\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#509", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/509", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0699", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"GET /v1/models does not expose model capabilities (e.g. gpt-5.2 supports (xhigh) but cannot be discovered)\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#508", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/508", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0700", "theme": "provider-model-registry", "title": "Standardize metadata and naming conventions touched by \"[Bug] Load balancing is uneven: Requests are not distributed equally among available accounts\" across both repos.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#506", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/506", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0701", "theme": "provider-model-registry", "title": "Follow up on \"openai兼容错误使用“alias”作为模型id请求\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#503", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/503", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0702", "theme": "responses-and-chat-compat", "title": "Harden \"bug: antigravity oauth callback fails on windows due to hard-coded port 51121\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#499", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/499", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0703", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"unexpected `tool_use_id` found in `tool_result` blocks\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#497", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/497", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0704", "theme": "thinking-and-reasoning", "title": "Convert \"gpt5.2 cherry 报错\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#496", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/496", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0705", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"antigravity中反代的接口在claude code中无法使用thinking模式\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#495", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/495", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0706", "theme": "general-polish", "title": "Expand docs and examples for \"Add support for gpt-5,2\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#493", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/493", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0707", "theme": "provider-model-registry", "title": "Add QA scenarios for \"OAI models not working.\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#492", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/492", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0708", "theme": "provider-model-registry", "title": "Refactor implementation behind \"Did the API change?\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#491", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/491", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0709", "theme": "provider-model-registry", "title": "Ensure rollout safety for \"5.2 missing. no automatic model discovery\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#490", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/490", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0710", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"Tool calling fails when using Claude Opus 4.5 Thinking (AntiGravity) model via Zed Agent\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#489", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/489", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0711", "theme": "websocket-and-streaming", "title": "Follow up on \"Issue with enabling logs in Mac settings.\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#484", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/484", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0712", "theme": "thinking-and-reasoning", "title": "Harden \"How to configure thinking for Claude and Codex?\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#483", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/483", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0713", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"gpt-5-codex-(low,medium,high) models not listed anymore\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#482", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/482", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0714", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"CLIProxyAPI配置 Gemini CLI最后一步失败:Google账号权限设置不够\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#480", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/480", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0715", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"Files and images not working with Antigravity\" through improved command ergonomics and faster feedback loops.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#478", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/478", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0716", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"antigravity渠道的claude模型在claude code中无法使用explore工具\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#477", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/477", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0717", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"Error with Antigravity\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#476", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/476", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0718", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"fix(translator): skip empty functionResponse in OpenAI-to-Antigravity path\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#475", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/475", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0719", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Antigravity API reports API Error: 400 with Claude Code\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#472", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/472", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0720", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"fix(translator): preserve tool_use blocks on args parse failure\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#471", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/471", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0721", "theme": "thinking-and-reasoning", "title": "Follow up on \"Antigravity API reports API Error: 400 with Claude Code\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#463", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/463", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0722", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"支持一下https://gemini.google.com/app\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#462", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/462", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0723", "theme": "thinking-and-reasoning", "title": "Operationalize \"Streaming fails for \"preview\" and \"thinking\" models (response is buffered)\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#460", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/460", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0724", "theme": "responses-and-chat-compat", "title": "Convert \"failed to unmarshal function response: invalid character 'm' looking for beginning of value on droid\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#451", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/451", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0725", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"iFlow Cookie 登录流程BUG\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#445", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/445", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0726", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"[Suggestion] Add ingress rate limiting and 403 circuit breaker for /v1/messages\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#443", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/443", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0727", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"AGY Claude models\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#442", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/442", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0728", "theme": "oauth-and-authentication", "title": "Refactor implementation behind \"【BUG】Infinite loop on startup if an auth file is removed (Windows)\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#440", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/440", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0729", "theme": "provider-model-registry", "title": "Ensure rollout safety for \"can I use models of droid in Claude Code?\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#438", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/438", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0730", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"`[Bug/Question]: Antigravity models looping in Plan Mode & 400 Invalid Argument errors`\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#437", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/437", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0731", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"[Bug] 400 Invalid Argument: 'thinking' block missing in ConvertClaudeRequestToAntigravity\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#436", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/436", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0732", "theme": "thinking-and-reasoning", "title": "Harden \"gemini等模型没有按openai api的格式返回呀\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#433", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/433", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0733", "theme": "install-and-ops", "title": "Operationalize \"[Feature Request] Persistent Storage for Usage Statistics\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#431", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/431", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0734", "theme": "thinking-and-reasoning", "title": "Convert \"Antigravity Claude *-thinking + tools only stream reasoning (no assistant content/tool_calls) via OpenAI-compatible API\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#425", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/425", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0735", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"Antigravity Claude by Claude Code `max_tokens` must be greater than `thinking.budget_tokens`\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#424", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/424", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0736", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"Antigravity: Permission denied on resource project [projectID]\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#421", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/421", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0737", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"Extended thinking blocks not preserved during tool use, causing API rejection\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#420", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/420", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0738", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"Antigravity Claude via CLIProxyAPI: browsing enabled in Cherry but no actual web requests\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#419", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/419", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0739", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"OpenAI Compatibility with OpenRouter results in invalid JSON response despite 200 OK\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#417", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/417", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0740", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"Bug: Claude proxy models fail with tools - `tools.0.custom.input_schema: Field required`\" across both repos.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#415", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/415", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0741", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Gemini-CLI,gemini-2.5-pro调用触发限流之后(You have exhausted your capacity on this model. Your quota will reset after 51s.),会自动切换请求gemini-2.5-pro-preview-06-05,但是这个模型貌似已经不存在了\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#414", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/414", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0742", "theme": "thinking-and-reasoning", "title": "Harden \"invalid_request_error\",\"message\":\"`max_tokens` must be greater than `thinking.budget_tokens`.\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#413", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/413", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0743", "theme": "cli-ux-dx", "title": "Operationalize \"Which CLIs that support Antigravity?\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#412", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/412", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0744", "theme": "thinking-and-reasoning", "title": "Convert \"[Feature Request] Dynamic Model Mapping & Custom Parameter Injection (e.g., iflow /tab)\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#411", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/411", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0745", "theme": "websocket-and-streaming", "title": "Add DX polish around \"iflow使用谷歌登录后,填入cookie无法正常使用\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#408", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/408", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0746", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"Antigravity not working\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#407", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/407", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0747", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"大佬能不能出个zeabur部署的教程\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#403", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/403", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0748", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Gemini responses contain non-standard OpenAI fields causing parser failures\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#400", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/400", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0749", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"HTTP Proxy Not Effective: Token Unobtainable After Google Account Authentication Success\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#397", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/397", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0750", "theme": "websocket-and-streaming", "title": "Standardize metadata and naming conventions touched by \"antigravity认证难以成功\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#396", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/396", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0751", "theme": "cli-ux-dx", "title": "Follow up on \"Could I use gemini-3-pro-preview by gmini cli?\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#391", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/391", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0752", "theme": "provider-model-registry", "title": "Harden \"Ports Reserved By Windows Hyper-V\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#387", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/387", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0753", "theme": "provider-model-registry", "title": "Operationalize \"Image gen not supported/enabled for gemini-3-pro-image-preview?\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#374", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/374", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0754", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Is it possible to support gemini native api for file upload?\" so local config and runtime can be reloaded deterministically.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#373", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/373", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0755", "theme": "provider-model-registry", "title": "Add DX polish around \"Web Search tool not working in AMP with cliproxyapi\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#370", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/370", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0756", "theme": "install-and-ops", "title": "Expand docs and examples for \"1006怎么处理\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#369", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/369", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0757", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"能否为kiro oauth提供支持?(附实现项目链接)\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#368", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/368", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0758", "theme": "oauth-and-authentication", "title": "Refactor implementation behind \"antigravity 无法配置?\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#367", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/367", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0759", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"Frequent 500 auth_unavailable and Codex CLI models disappearing from /v1/models\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#365", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/365", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0760", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Web Search tool not functioning in Claude Code\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#364", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/364", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0761", "theme": "thinking-and-reasoning", "title": "Follow up on \"claude code Auto compact not triggered even after reaching autocompact buffer threshold\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#363", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/363", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0762", "theme": "general-polish", "title": "Harden \"[Feature] 增加gemini business账号支持\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#361", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/361", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0763", "theme": "thinking-and-reasoning", "title": "Operationalize \"[Bug] Codex Reasponses Sometimes Omit Reasoning Tokens\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#356", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/356", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0764", "theme": "thinking-and-reasoning", "title": "Convert \"[Bug] Codex Max Does Not Utilize XHigh Reasoning Effort\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#354", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/354", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0765", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"[Bug] Gemini 3 Does Not Utilize Reasoning Effort\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#353", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/353", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0766", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"API for iflow-cli is not work anymore: iflow executor: token refresh failed: iflow token: missing access token in response\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#352", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/352", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0767", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"[Bug] Antigravity/Claude Code: \"tools.0.custom.input_schema: Field required\" error on all antigravity models\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#351", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/351", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0768", "theme": "general-polish", "title": "Refactor implementation behind \"[Feature Request] Amazonq Support\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#350", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/350", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0769", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Feature: Add tier-based provider prioritization\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#349", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/349", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0770", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Gemini 3 Pro + Codex CLI\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#346", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/346", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0771", "theme": "thinking-and-reasoning", "title": "Follow up on \"Add support for anthropic-beta header for Claude thinking models with tool use\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#344", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/344", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0772", "theme": "thinking-and-reasoning", "title": "Harden \"Anitigravity models are not working in opencode cli, has serveral bugs\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#342", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/342", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0773", "theme": "general-polish", "title": "Operationalize \"[Bug] Antigravity 渠道使用原生 Gemini 格式:模型列表缺失及 gemini-3-pro-preview 联网搜索不可用\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#341", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/341", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0774", "theme": "responses-and-chat-compat", "title": "Convert \"checkSystemInstructions adds cache_control block causing 'maximum of 4 blocks' error\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#339", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/339", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0775", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"OpenAI and Gemini API: thinking/chain-of-thought broken or 400 error (max_tokens vs thinking.budget_tokens) for thinking models\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#338", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/338", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0776", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"[Bug] Commit 52c17f0 breaks OAuth authentication for Anthropic models\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#337", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/337", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0777", "theme": "provider-model-registry", "title": "Add QA scenarios for \"Droid as provider\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#336", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/336", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0778", "theme": "provider-model-registry", "title": "Refactor implementation behind \"Support for JSON schema / structured output\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#335", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/335", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0779", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"gemini-claude-sonnet-4-5-thinking: Chain-of-Thought (thinking) does not work on any API (OpenAI/Gemini/Claude)\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#332", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/332", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0780", "theme": "install-and-ops", "title": "Standardize metadata and naming conventions touched by \"docker方式部署后,怎么登陆gemini账号呢?\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#328", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/328", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0781", "theme": "thinking-and-reasoning", "title": "Follow up on \"FR: Add support for beta headers for Claude models\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#324", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/324", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0782", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"FR: Add Opus 4.5 Support\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#321", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/321", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0783", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"`gemini-3-pro-preview` tool usage failures\" so local config and runtime can be reloaded deterministically.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#320", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/320", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0784", "theme": "cli-ux-dx", "title": "Convert \"RooCode compatibility\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#319", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/319", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0785", "theme": "provider-model-registry", "title": "Add DX polish around \"undefined is not an object (evaluating 'T.match')\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#317", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/317", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0786", "theme": "cli-ux-dx", "title": "Expand docs and examples for \"Nano Banana\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#316", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/316", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0787", "theme": "general-polish", "title": "Add QA scenarios for \"Feature: 渠道关闭/开启切换按钮、渠道测试按钮、指定渠道模型调用\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#314", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/314", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0788", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"Previous request seem to be concatenated into new ones with Antigravity\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#313", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/313", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0789", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Question: Is the Antigravity provider available and compatible with the sonnet 4.5 Thinking LLM model?\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#311", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/311", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0790", "theme": "websocket-and-streaming", "title": "Standardize metadata and naming conventions touched by \"cursor with gemini-claude-sonnet-4-5\" across both repos.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#310", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/310", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0791", "theme": "thinking-and-reasoning", "title": "Follow up on \"Gemini not stream thinking result\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#308", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/308", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0792", "theme": "provider-model-registry", "title": "Harden \"[Suggestion] Improve Prompt Caching for Gemini CLI / Antigravity - Don't do round-robin for all every request\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#307", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/307", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0793", "theme": "oauth-and-authentication", "title": "Operationalize \"docker-compose启动错误\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#305", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/305", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0794", "theme": "cli-ux-dx", "title": "Convert \"可以让不同的提供商分别设置代理吗?\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#304", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/304", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0795", "theme": "general-polish", "title": "Add DX polish around \"如果能控制aistudio的认证文件启用就好了\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#302", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/302", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0796", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"Dynamic model provider not work\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#301", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/301", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0797", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"token无计数\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#300", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/300", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0798", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"cursor with antigravity\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#298", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/298", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0799", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"认证未走代理\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#297", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/297", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0800", "theme": "oauth-and-authentication", "title": "Standardize metadata and naming conventions touched by \"[Feature Request] Add --manual-callback mode for headless/remote OAuth (especially for users behind proxy / Clash TUN in China)\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#295", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/295", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0801", "theme": "provider-model-registry", "title": "Follow up on \"Regression: gemini-3-pro-preview unusable due to removal of 429 retry logic in d50b0f7\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#293", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/293", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0802", "theme": "responses-and-chat-compat", "title": "Harden \"Gemini 3 Pro no response in Roo Code with AI Studio setup\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#291", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/291", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0803", "theme": "websocket-and-streaming", "title": "Operationalize \"CLIProxyAPI error in huggingface\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#290", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/290", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0804", "theme": "responses-and-chat-compat", "title": "Convert \"Post \"https://chatgpt.com/backend-api/codex/responses\": Not Found\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#286", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/286", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0805", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"Feature: Add Image Support for Gemini 3\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#283", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/283", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0806", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"Bug: Gemini 3 Thinking Budget requires normalization in CLI Translator\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#282", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/282", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0807", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"Feature Request: Support for Gemini 3 Pro Preview\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#278", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/278", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0808", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"[Suggestion] Improve Prompt Caching - Don't do round-robin for all every request\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#277", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/277", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0809", "theme": "provider-model-registry", "title": "Ensure rollout safety for \"Feature Request: Support Google Antigravity provider\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#273", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/273", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0810", "theme": "cli-ux-dx", "title": "Standardize metadata and naming conventions touched by \"Add copilot cli proxy\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#272", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/272", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0811", "theme": "provider-model-registry", "title": "Follow up on \"`gemini-3-pro-preview` is missing\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#271", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/271", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0812", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Adjust gemini-3-pro-preview`s doc\" so local config and runtime can be reloaded deterministically.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#269", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/269", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0813", "theme": "install-and-ops", "title": "Operationalize \"Account banned after using CLI Proxy API on VPS\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#266", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/266", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0814", "theme": "oauth-and-authentication", "title": "Convert \"Bug: config.example.yaml has incorrect auth-dir default, causes auth files to be saved in wrong location\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#265", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/265", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0815", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"Security: Auth directory created with overly permissive 0o755 instead of 0o700\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#264", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/264", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0816", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Gemini CLI Oauth with Claude Code\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#263", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/263", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0817", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Gemini cli使用不了\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#262", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/262", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0818", "theme": "cli-ux-dx", "title": "Refactor implementation behind \"麻烦大佬能不能更进模型id,比如gpt已经更新了小版本5.1了\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#261", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/261", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0819", "theme": "provider-model-registry", "title": "Ensure rollout safety for \"Factory Droid: /compress (session compact) fails on Gemini 2.5 via CLIProxyAPI\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#260", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/260", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0820", "theme": "provider-model-registry", "title": "Standardize metadata and naming conventions touched by \"Feat Request: Support gpt-5-pro\" across both repos.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#259", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/259", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0821", "theme": "provider-model-registry", "title": "Follow up on \"gemini oauth in droid cli: unknown provider\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#258", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/258", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0822", "theme": "general-polish", "title": "Harden \"认证文件管理 主动触发同步\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#255", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/255", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0823", "theme": "thinking-and-reasoning", "title": "Operationalize \"Kimi K2 Thinking\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#254", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/254", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0824", "theme": "cli-ux-dx", "title": "Convert \"nano banana 水印的能解决?我使用CLIProxyAPI 6.1\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#253", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/253", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0825", "theme": "install-and-ops", "title": "Add DX polish around \"ai studio 不能用\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#252", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/252", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0826", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"Feature: scoped `auto` model (provider + pattern)\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#251", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/251", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0827", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"wss 链接失败\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#250", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/250", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0828", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"应该给GPT-5.1添加-none后缀适配以保持一致性\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#248", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/248", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0829", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"不支持 candidate_count 功能,设置需要多版本回复的时候,只会输出1条\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#247", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/247", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0830", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"gpt-5.1模型添加\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#246", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/246", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0831", "theme": "oauth-and-authentication", "title": "Follow up on \"cli-proxy-api --gemini-web-auth\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#244", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/244", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0832", "theme": "thinking-and-reasoning", "title": "Harden \"支持为模型设定默认请求参数\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#242", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/242", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0833", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"ClawCloud 如何结合NanoBanana 使用?\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#241", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/241", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0834", "theme": "websocket-and-streaming", "title": "Convert \"gemini cli 无法画图是不是必须要使用低版本了\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#240", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/240", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0835", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"[error] [iflow_executor.go:273] iflow executor: token refresh failed: iflow token: missing access token in response\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#239", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/239", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0836", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Codex API 配置中Base URL需要加v1嘛?\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#238", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/238", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0837", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"Feature Request: Support \"auto\" Model Selection for Seamless Provider Updates\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#236", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/236", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0838", "theme": "general-polish", "title": "Refactor implementation behind \"AI Studio途径,是否支持imagen图片生成模型?\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#235", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/235", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0839", "theme": "general-polish", "title": "Ensure rollout safety for \"现在对话很容易就结束\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#234", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/234", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0840", "theme": "websocket-and-streaming", "title": "Standardize metadata and naming conventions touched by \"添加文件时重复添加\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#233", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/233", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0841", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Feature Request : Token Caching for Codex\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#231", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/231", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0842", "theme": "responses-and-chat-compat", "title": "Harden \"agentrouter problem\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#228", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/228", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0843", "theme": "provider-model-registry", "title": "Operationalize \"[Suggestion] Add suport iFlow CLI MiniMax-M2\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#223", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/223", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0844", "theme": "responses-and-chat-compat", "title": "Convert \"Feature: Prevent infinite loop to allow direct access to Gemini-native features\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#220", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/220", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0845", "theme": "provider-model-registry", "title": "Add DX polish around \"Feature request: Support amazon-q-developer-cli\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#219", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/219", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0846", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"Gemini Cli 400 Error\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#218", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/218", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0847", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"/v1/responese connection error for version 0.55.0 of codex\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#216", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/216", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0848", "theme": "provider-model-registry", "title": "Refactor implementation behind \"https://huggingface.co/chat\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#212", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/212", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0849", "theme": "websocket-and-streaming", "title": "Ensure rollout safety for \"Codex trying to read from non-existant Bashes in Claude\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#211", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/211", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0850", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Feature Request: Git-backed Configuration and Token Store for sync\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#210", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/210", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0851", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"CLIProxyAPI中的Gemini cli的图片生成,是不是无法使用了?\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#208", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/208", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0852", "theme": "responses-and-chat-compat", "title": "Harden \"Model gemini-2.5-flash-image not work any more\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#203", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/203", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0853", "theme": "general-polish", "title": "Operationalize \"qwen code和iflow的模型重复了\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#202", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/202", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0854", "theme": "install-and-ops", "title": "Convert \"docker compose还会继续维护吗\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#201", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/201", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0855", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Wrong Claude Model Recognized\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#200", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/200", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0856", "theme": "provider-model-registry", "title": "Expand docs and examples for \"Unable to Select Specific Model\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#197", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/197", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0857", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"claude code with copilot\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#193", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/193", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0858", "theme": "provider-model-registry", "title": "Refactor implementation behind \"Feature Request: OAuth Aliases & Multiple Aliases\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#192", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/192", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0859", "theme": "error-handling-retries", "title": "Ensure rollout safety for \"[feature request] enable host or bind ip option / 添加 host 配置选项以允许外部网络访问\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#190", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/190", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0860", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"Feature request: Add token cost statistics\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#189", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/189", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0861", "theme": "responses-and-chat-compat", "title": "Follow up on \"internal/translator下的翻译器对外暴露了吗?\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#188", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/188", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0862", "theme": "responses-and-chat-compat", "title": "Harden \"API Key issue\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#181", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/181", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0863", "theme": "thinking-and-reasoning", "title": "Operationalize \"[Request] Add support for Gemini Embeddings (AI Studio API key) and optional multi-key rotation\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#179", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/179", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0864", "theme": "cli-ux-dx", "title": "Convert \"希望增加渠道分类\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#178", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/178", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0865", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"gemini-cli `Request Failed: 400` exception\" through improved command ergonomics and faster feedback loops.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#176", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/176", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0866", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"Possible JSON Marshal issue: Some Chars transformed to unicode while transforming Anthropic request to OpenAI compatible request\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#175", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/175", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0867", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"question about subagents:\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#174", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/174", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0868", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"MiniMax-M2 API error\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#172", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/172", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0869", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"[feature request] pass model names without defining them [HAS PR]\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#171", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/171", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0870", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"MiniMax-M2 and other Anthropic compatible models\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#170", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/170", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0871", "theme": "responses-and-chat-compat", "title": "Follow up on \"Troublesome First Instruction\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#169", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/169", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0872", "theme": "oauth-and-authentication", "title": "Harden \"No Auth Status\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#168", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/168", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0873", "theme": "responses-and-chat-compat", "title": "Operationalize \"Major Bug in transforming anthropic request to openai compatible request\" with observability, alerting thresholds, and runbook updates.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#167", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/167", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0874", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Created an install script for linux\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#166", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/166", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0875", "theme": "provider-model-registry", "title": "Add DX polish around \"Feature Request: Add support for vision-model for Qwen-CLI\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#164", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/164", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0876", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"[Suggestion] Intelligent Model Routing\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#162", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/162", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0877", "theme": "error-handling-retries", "title": "Add QA scenarios for \"Clarification Needed: Is 'timeout' a Supported Config Parameter?\" including stream/non-stream parity and edge-case payloads.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#160", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/160", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0878", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"GeminiCLI的模型,总是会把历史问题全部回答一遍\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#159", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/159", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0879", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Gemini Cli With github copilot\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#158", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/158", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0880", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"Enhancement: _FILE env vars for docker compose\" across both repos.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#156", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/156", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0881", "theme": "thinking-and-reasoning", "title": "Follow up on \"All-in-WSL2: Claude Code (sub-agents + MCP) via CLIProxyAPI — token-only Codex, gpt-5-high / gpt-5-low mapping, multi-account\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#154", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/154", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0882", "theme": "responses-and-chat-compat", "title": "Harden \"OpenAI-compatible API not working properly with certain models (e.g. glm-4.6, kimi-k2, DeepSeek-V3.2)\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#153", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/153", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0883", "theme": "websocket-and-streaming", "title": "Operationalize \"OpenRouter Grok 4 Fast Bug\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#152", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/152", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0884", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Question about models:\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#150", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/150", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0885", "theme": "provider-model-registry", "title": "Add DX polish around \"Feature Request: Add rovodev CLI Support\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#149", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/149", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0886", "theme": "provider-model-registry", "title": "Expand docs and examples for \"CC 使用 gpt-5-codex 模型几乎没有走缓存\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#148", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/148", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0887", "theme": "oauth-and-authentication", "title": "Add QA scenarios for \"Cannot create Auth files in docker container webui management page\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#144", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/144", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0888", "theme": "general-polish", "title": "Refactor implementation behind \"关于openai兼容供应商\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#143", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/143", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0889", "theme": "general-polish", "title": "Ensure rollout safety for \"No System Prompt maybe possible?\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#142", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/142", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0890", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"Claude Code tokens counter\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#140", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/140", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0891", "theme": "responses-and-chat-compat", "title": "Follow up on \"API Error\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#137", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/137", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0892", "theme": "responses-and-chat-compat", "title": "Harden \"代理在生成函数调用请求时使用了 Gemini API 不支持的 \"const\" 字段\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#136", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/136", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0893", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"droid cli with CLIProxyAPI [codex,zai]\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#135", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/135", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0894", "theme": "thinking-and-reasoning", "title": "Convert \"Claude Code ``/context`` command\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#133", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/133", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0895", "theme": "provider-model-registry", "title": "Add DX polish around \"Any interest in adding AmpCode support?\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#132", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/132", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0896", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"Agentrouter.org Support\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#131", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/131", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0897", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"Geminicli api proxy error\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#129", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/129", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0898", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"Github Copilot Subscription\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#128", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/128", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0899", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"Add Z.ai / GLM API Configuration\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#124", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/124", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0900", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Gemini + Droid = Bug\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#123", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/123", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0901", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Custom models for AI Proviers\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#122", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/122", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0902", "theme": "responses-and-chat-compat", "title": "Harden \"Web Search and other network tools\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#121", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/121", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0903", "theme": "general-polish", "title": "Operationalize \"recommend using bufio to improve terminal visuals(reduce flickering)\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#120", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/120", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0904", "theme": "cli-ux-dx", "title": "Convert \"视觉以及PDF适配\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#119", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/119", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0905", "theme": "cli-ux-dx", "title": "Add DX polish around \"claude code接入gemini cli模型问题\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#115", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/115", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0906", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"Feat Request: Usage Limit Notifications + Timers + Per-Auth Usage\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#112", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/112", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0907", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"Thinking toggle with GPT-5-Codex model\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#109", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/109", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0908", "theme": "general-polish", "title": "Refactor implementation behind \"可否增加 请求 api-key = 渠道密钥模式\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#108", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/108", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0909", "theme": "cli-ux-dx", "title": "Ensure rollout safety for \"Homebrew 安装的 CLIProxyAPI 如何设置配置文件?\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#106", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/106", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0910", "theme": "cli-ux-dx", "title": "Standardize metadata and naming conventions touched by \"支持Gemini CLI 的全部模型\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#105", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/105", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0911", "theme": "thinking-and-reasoning", "title": "Follow up on \"gemini能否适配思考预算后缀?\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#103", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/103", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0912", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"Bug: function calling error in the request on OpenAI completion for gemini-cli\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#102", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/102", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0913", "theme": "general-polish", "title": "Operationalize \"增加 IFlow 支持模型\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#101", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/101", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0914", "theme": "general-polish", "title": "Convert \"Feature Request: Grok usage\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#100", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/100", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0915", "theme": "websocket-and-streaming", "title": "Add DX polish around \"新版本的claude code2.0.X搭配本项目的使用问题\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#98", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/98", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0916", "theme": "responses-and-chat-compat", "title": "Expand docs and examples for \"Huge error message when connecting to Gemini via Opencode, SanitizeSchemaForGemini not being used?\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#97", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/97", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0917", "theme": "general-polish", "title": "Add QA scenarios for \"可以支持z.ai 吗\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#96", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/96", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0918", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Gemini and Qwen doesn't work with Opencode\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#93", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/93", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0919", "theme": "cli-ux-dx", "title": "Ensure rollout safety for \"Agent Client Protocol (ACP)?\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#92", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/92", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0920", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"Auto compress - Error: B is not an Object. (evaluating '\"object\"in B')\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#91", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/91", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0921", "theme": "thinking-and-reasoning", "title": "Follow up on \"Gemini Web Auto Refresh Token\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#89", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/89", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0922", "theme": "general-polish", "title": "Harden \"Gemini API 能否添加设置Base URL 的选项\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#88", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/88", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0923", "theme": "provider-model-registry", "title": "Operationalize \"Some third-party claude code will return null when used with this project\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#87", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/87", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0924", "theme": "provider-model-registry", "title": "Convert \"Auto compress - Error: 500 status code (no body)\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#86", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/86", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0925", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"Add more model selection options\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#84", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/84", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0926", "theme": "thinking-and-reasoning", "title": "Expand docs and examples for \"Error on switching models in Droid after hitting Usage Limit\" with copy-paste quickstart and troubleshooting section.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#81", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/81", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0927", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"Command /context dont work in claude code\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#80", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/80", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0928", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"MacOS brew installation support?\" so local config and runtime can be reloaded deterministically.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#79", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/79", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0929", "theme": "oauth-and-authentication", "title": "Ensure rollout safety for \"[Feature Request] - Adding OAuth support of Z.AI and Kimi\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#76", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/76", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0930", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"Bug: 500 Invalid resource field value in the request on OpenAI completion for gemini-cli\" across both repos.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#75", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/75", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0931", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"添加 Factor CLI 2api 选项\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#74", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/74", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0932", "theme": "cli-ux-dx", "title": "Harden \"Support audio for gemini-cli\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#73", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/73", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0933", "theme": "install-and-ops", "title": "Operationalize \"添加回调链接输入认证\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#56", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/56", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0934", "theme": "cli-ux-dx", "title": "Convert \"如果配置了gemini cli,再配置aistudio api key,会怎样?\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#48", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/48", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0935", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"Error walking auth directory: open C:\\Users\\xiaohu\\AppData\\Local\\ElevatedDiagnostics: Access is denied\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#42", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/42", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0936", "theme": "provider-model-registry", "title": "Expand docs and examples for \"#38 Lobechat问题的可能性 暨 Get Models返回JSON规整化的建议\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#40", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/40", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0937", "theme": "websocket-and-streaming", "title": "Add QA scenarios for \"lobechat 添加自定义API服务商后无法使用\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#38", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/38", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0938", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"Missing API key\" to reduce complexity and isolate transformation boundaries.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#37", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/37", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0939", "theme": "general-polish", "title": "Ensure rollout safety for \"登录默认跳转浏览器 没有url\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#35", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/35", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0940", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"Qwen3-Max-Preview可以使用了吗\" across both repos.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#34", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/34", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0941", "theme": "install-and-ops", "title": "Follow up on \"使用docker-compose.yml搭建失败\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#32", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/32", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0942", "theme": "error-handling-retries", "title": "Harden \"Claude Code 报错 API Error: Cannot read properties of undefined (reading 'filter')\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#25", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/25", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0943", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"QQ group search not found, can we open a TG group?\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#24", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/24", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0944", "theme": "cli-ux-dx", "title": "Convert \"Codex CLI 能中转到Claude Code吗?\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#22", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/22", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0945", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"客户端/终端可以正常访问该代理,但无法输出回复\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#21", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/21", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0946", "theme": "cli-ux-dx", "title": "Expand docs and examples for \"希望支持iflow\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#20", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/20", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0947", "theme": "responses-and-chat-compat", "title": "Add QA scenarios for \"希望可以加入对responses的支持。\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#19", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/19", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0948", "theme": "error-handling-retries", "title": "Refactor implementation behind \"关于gpt5\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#18", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/18", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0949", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"v1beta接口报错Please use a valid role: user, model.\" via feature flags, staged defaults, and migration notes.", "priority": "P3", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#17", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/17", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0950", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"gemini使用project_id登录,会无限要求跳转链接,使用配置更改auth_dir无效\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#14", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/14", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0951", "theme": "thinking-and-reasoning", "title": "Follow up on \"新认证生成的auth文件,使用的时候提示:400 API key not valid.\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#13", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/13", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0952", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"500就一直卡死了\" including setup, auth, model select, and sanity-check commands.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#12", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/12", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0953", "theme": "responses-and-chat-compat", "title": "Operationalize \"无法使用/v1/messages端口\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#11", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/11", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0954", "theme": "general-polish", "title": "Convert \"可用正常接入new-api这种api站吗?\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#10", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/10", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0955", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"Unexpected API Response: The language model did not provide any assistant messages. This may indicate an issue with the API or the model's output.\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#9", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/9", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0956", "theme": "cli-ux-dx", "title": "Expand docs and examples for \"cli有办法像别的gemini一样关闭安全审查吗?\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#7", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/7", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0957", "theme": "dev-runtime-refresh", "title": "Add process-compose/HMR refresh workflow tied to \"如果一个项目需要指定ID认证,则指定后一定也会失败\" so local config and runtime can be reloaded deterministically.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#6", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/6", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0958", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"指定project_id登录,无限跳转登陆页面\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#5", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/5", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0959", "theme": "thinking-and-reasoning", "title": "Ensure rollout safety for \"Error walking auth directory\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#4", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/4", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0960", "theme": "oauth-and-authentication", "title": "Standardize metadata and naming conventions touched by \"Login error.win11\" across both repos.", "priority": "P1", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#3", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/3", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0961", "theme": "responses-and-chat-compat", "title": "Follow up on \"偶尔会弹出无效API key提示,“400 API key not valid. Please pass a valid API key.”\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "S", "source_kind": "issue", "source_repo": "router-for-me/CLIProxyAPI", "source_ref": "issue#2", "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/2", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0962", "theme": "docs-quickstarts", "title": "Harden \"Normalize Codex schema handling\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P3", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#259", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/259", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0963", "theme": "provider-model-registry", "title": "Operationalize \"fix: add default copilot claude model aliases for oauth routing\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#256", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/256", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0964", "theme": "thinking-and-reasoning", "title": "Convert \"feat(registry): add GPT-4o model variants for GitHub Copilot\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#255", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/255", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0965", "theme": "thinking-and-reasoning", "title": "Add DX polish around \"fix(kiro): stop duplicated thinking on OpenAI and preserve Claude multi-turn thinking\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#252", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/252", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0966", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"feat(registry): add Gemini 3.1 Pro to GitHub Copilot provider\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#250", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/250", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0967", "theme": "general-polish", "title": "Add QA scenarios for \"v6.8.22\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#249", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/249", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0968", "theme": "general-polish", "title": "Refactor implementation behind \"v6.8.21\" to reduce complexity and isolate transformation boundaries.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#248", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/248", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0969", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"fix(cline): add grantType to token refresh and extension headers\" including setup, auth, model select, and sanity-check commands.", "priority": "P3", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#247", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/247", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0970", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"feat: add Claude Sonnet 4.6 model support for Kiro provider\" across both repos.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#244", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/244", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0971", "theme": "thinking-and-reasoning", "title": "Follow up on \"feat(registry): add Claude Sonnet 4.6 model definitions\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#243", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/243", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0972", "theme": "thinking-and-reasoning", "title": "Harden \"Improve Copilot provider based on ericc-ch/copilot-api comparison\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#242", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/242", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0973", "theme": "provider-model-registry", "title": "Operationalize \"feat(registry): add Sonnet 4.6 to GitHub Copilot provider\" with observability, alerting thresholds, and runbook updates.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#240", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/240", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0974", "theme": "provider-model-registry", "title": "Convert \"feat(registry): add GPT-5.3 Codex to GitHub Copilot provider\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#239", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/239", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0975", "theme": "provider-model-registry", "title": "Add DX polish around \"Fix Copilot 0x model incorrectly consuming premium requests\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#238", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/238", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0976", "theme": "general-polish", "title": "Expand docs and examples for \"v6.8.18\" with copy-paste quickstart and troubleshooting section.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#237", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/237", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0977", "theme": "thinking-and-reasoning", "title": "Add QA scenarios for \"fix: add proxy_ prefix handling for tool_reference content blocks\" including stream/non-stream parity and edge-case payloads.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#236", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/236", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0978", "theme": "thinking-and-reasoning", "title": "Refactor implementation behind \"fix(codex): handle function_call_arguments streaming for both spark and non-spark models\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#235", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/235", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0979", "theme": "responses-and-chat-compat", "title": "Ensure rollout safety for \"Add Kilo Code provider with dynamic model fetching\" via feature flags, staged defaults, and migration notes.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#234", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/234", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0980", "theme": "thinking-and-reasoning", "title": "Standardize metadata and naming conventions touched by \"Fix Copilot codex model Responses API translation for Claude Code\" across both repos.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#233", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/233", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0981", "theme": "thinking-and-reasoning", "title": "Follow up on \"feat(models): add Thinking support to GitHub Copilot models\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#231", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/231", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0982", "theme": "responses-and-chat-compat", "title": "Harden \"fix(copilot): forward Claude-format tools to Copilot Responses API\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#230", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/230", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0983", "theme": "provider-model-registry", "title": "Operationalize \"fix: preserve explicitly deleted kiro aliases across config reload\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#229", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/229", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0984", "theme": "thinking-and-reasoning", "title": "Convert \"fix(antigravity): add warn-level logging to silent failure paths in FetchAntigravityModels\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#228", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/228", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0985", "theme": "general-polish", "title": "Add DX polish around \"v6.8.15\" through improved command ergonomics and faster feedback loops.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#227", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/227", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0986", "theme": "docs-quickstarts", "title": "Create/refresh provider quickstart derived from \"refactor(kiro): Kiro Web Search Logic & Executor Alignment\" including setup, auth, model select, and sanity-check commands.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#226", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/226", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0987", "theme": "general-polish", "title": "Add QA scenarios for \"v6.8.13\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#225", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/225", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0988", "theme": "go-cli-extraction", "title": "Port relevant thegent-managed flow implied by \"fix(kiro): prepend placeholder user message when conversation starts with assistant role\" into first-class cliproxy Go CLI command(s) with interactive setup support.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#224", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/224", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0989", "theme": "integration-api-bindings", "title": "Define non-subprocess integration path related to \"fix(kiro): prepend placeholder user message when conversation starts with assistant role\" (Go bindings surface + HTTP fallback contract + version negotiation).", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#223", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/223", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-0990", "theme": "general-polish", "title": "Standardize metadata and naming conventions touched by \"fix(kiro): 修复之前提交的错误的application/cbor请求处理逻辑\" across both repos.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#220", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/220", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}, {"id": "CPB-0991", "theme": "responses-and-chat-compat", "title": "Follow up on \"fix: prevent merging assistant messages with tool_calls\" by closing compatibility gaps and preventing regressions in adjacent providers.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#218", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/218", "status": "proposed", "action": "Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters."}, {"id": "CPB-0992", "theme": "thinking-and-reasoning", "title": "Harden \"增加kiro新模型并根据其他提供商同模型配置Thinking\" with clearer validation, safer defaults, and defensive fallbacks.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#216", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/216", "status": "proposed", "action": "Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping."}, {"id": "CPB-0993", "theme": "thinking-and-reasoning", "title": "Operationalize \"fix(auth): strip model suffix in GitHub Copilot executor before upstream call\" with observability, alerting thresholds, and runbook updates.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#214", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/214", "status": "proposed", "action": "Improve user-facing error messages and add deterministic remediation text with command examples."}, {"id": "CPB-0994", "theme": "responses-and-chat-compat", "title": "Convert \"fix(kiro): filter orphaned tool_results from compacted conversations\" into a provider-agnostic pattern and codify in shared translation utilities.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#212", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/212", "status": "proposed", "action": "Document behavior in provider quickstart and compatibility matrix with concrete request/response examples."}, {"id": "CPB-0995", "theme": "responses-and-chat-compat", "title": "Add DX polish around \"fix(kiro): fully implement Kiro web search tool via MCP integration\" through improved command ergonomics and faster feedback loops.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#211", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/211", "status": "proposed", "action": "Refactor handler to isolate transformation logic from transport concerns and reduce side effects."}, {"id": "CPB-0996", "theme": "provider-model-registry", "title": "Expand docs and examples for \"feat(config): add default Kiro model aliases for standard Claude model names\" with copy-paste quickstart and troubleshooting section.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#209", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/209", "status": "proposed", "action": "Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted)."}, {"id": "CPB-0997", "theme": "general-polish", "title": "Add QA scenarios for \"v6.8.9\" including stream/non-stream parity and edge-case payloads.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#207", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/207", "status": "proposed", "action": "Add config toggles for safe rollout and default them to preserve existing deployments."}, {"id": "CPB-0998", "theme": "responses-and-chat-compat", "title": "Refactor implementation behind \"fix(translator): fix nullable type arrays breaking Gemini/Antigravity API\" to reduce complexity and isolate transformation boundaries.", "priority": "P1", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#205", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/205", "status": "proposed", "action": "Benchmark latency and memory before/after; gate merge on no regression for p50/p95."}, {"id": "CPB-0999", "theme": "general-polish", "title": "Ensure rollout safety for \"v6.8.7\" via feature flags, staged defaults, and migration notes.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#204", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/204", "status": "proposed", "action": "Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names."}, {"id": "CPB-1000", "theme": "responses-and-chat-compat", "title": "Standardize metadata and naming conventions touched by \"fix(copilot): prevent premium request count inflation for Claude models\" across both repos.", "priority": "P2", "effort": "M", "source_kind": "pr", "source_repo": "router-for-me/CLIProxyAPIPlus", "source_ref": "pr#203", "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/203", "status": "proposed", "action": "Create migration note and changelog entry with explicit compatibility guarantees and caveats."}]}
\ No newline at end of file
diff --git a/docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md b/docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md
new file mode 100644
index 0000000000..78a0f3caa5
--- /dev/null
+++ b/docs/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md
@@ -0,0 +1,9030 @@
+# CLIProxyAPI Ecosystem 1000-Item Board
+
+- Generated: 2026-02-22
+- Scope: `router-for-me/CLIProxyAPIPlus` issues/PRs/discussions + `router-for-me/CLIProxyAPI` issues/PRs/discussions
+- Goal: prioritized quality, compatibility, docs, CLI extraction, integration, dev-runtime, and UX/DX polish workboard
+
+## Source Coverage
+- sources_total_unique: 1865
+- issues_plus: 81
+- issues_core: 880
+- prs_plus: 169
+- prs_core: 577
+- discussions_plus: 3
+- discussions_core: 155
+
+## Theme Distribution (Board)
+- thinking-and-reasoning: 228
+- responses-and-chat-compat: 163
+- general-polish: 111
+- provider-model-registry: 110
+- websocket-and-streaming: 72
+- docs-quickstarts: 65
+- oauth-and-authentication: 58
+- go-cli-extraction: 49
+- integration-api-bindings: 39
+- cli-ux-dx: 34
+- dev-runtime-refresh: 30
+- error-handling-retries: 17
+- install-and-ops: 16
+- testing-and-quality: 5
+- platform-architecture: 2
+- project-frontmatter: 1
+
+## Priority Bands
+- `P1`: interoperability, auth, translation correctness, stream stability, install/setup, migration safety
+- `P2`: maintainability, test depth, runtime ergonomics, model metadata consistency
+- `P3`: polish, docs expansion, optional ergonomics, non-critical UX improvements
+
+## 1000 Items
+
+### [CPB-0001] Extract a standalone Go mgmt CLI from thegent-owned cliproxy flows (`install`, `doctor`, `login`, `models`, `watch`, `reload`).
+- Priority: P1
+- Effort: L
+- Theme: platform-architecture
+- Status: proposed
+- Source: cross-repo synthesis
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0002] Define non-subprocess integration surface for thegent: local Go bindings (preferred) and HTTP API fallback with capability negotiation.
+- Priority: P1
+- Effort: L
+- Theme: platform-architecture
+- Status: proposed
+- Source: cross-repo synthesis
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0003] Add `cliproxy dev` process-compose profile with hot reload, config regeneration watch, and explicit `refresh` command.
+- Priority: P1
+- Effort: M
+- Theme: install-and-ops
+- Status: proposed
+- Source: cross-repo synthesis
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0004] Ship provider-specific quickstarts (Codex, Claude, Gemini, Copilot, Kiro, MiniMax, OpenAI-compat) with 5-minute success path.
+- Priority: P1
+- Effort: M
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: cross-repo synthesis
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0005] Create troubleshooting matrix: auth failures, model not found, reasoning mismatch, stream parse faults, timeout classes.
+- Priority: P1
+- Effort: M
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: cross-repo synthesis
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0006] Introduce interactive first-run setup wizard in Go CLI with profile detection, auth choice, and post-check summary.
+- Priority: P1
+- Effort: M
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: cross-repo synthesis
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0007] Add `cliproxy doctor --fix` with deterministic remediation steps and machine-readable JSON report mode.
+- Priority: P1
+- Effort: M
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: cross-repo synthesis
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0008] Establish conformance suite for OpenAI Responses + Chat Completions translation across all providers.
+- Priority: P1
+- Effort: L
+- Theme: testing-and-quality
+- Status: proposed
+- Source: cross-repo synthesis
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0009] Add golden fixture tests for reasoning controls (`variant`, `reasoning_effort`, `reasoning.effort`, model suffix).
+- Priority: P1
+- Effort: M
+- Theme: testing-and-quality
+- Status: proposed
+- Source: cross-repo synthesis
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0010] Rewrite repo frontmatter: mission, architecture, support policy, compatibility matrix, release channels, contribution path.
+- Priority: P2
+- Effort: M
+- Theme: project-frontmatter
+- Status: proposed
+- Source: cross-repo synthesis
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0011] Follow up on "kiro账号被封" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#221
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/221
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0012] Harden "Opus 4.6" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#219
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/219
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0013] Operationalize "Bug: MergeAdjacentMessages drops tool_calls from assistant messages" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#217
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/217
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0014] Convert "Add support for proxying models from kilocode CLI" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#213
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/213
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0015] Add DX polish around "[Bug] Kiro 与 Ampcode 的 Bash 工具参数不兼容" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#210
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/210
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0016] Expand docs and examples for "[Feature Request] Add default oauth-model-alias for Kiro channel (like Antigravity)" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#208
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/208
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0017] Create/refresh provider quickstart derived from "bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#206
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/206
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0018] Refactor implementation behind "GitHub Copilot CLI 使用方法" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#202
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/202
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0019] Port relevant thegent-managed flow implied by "failed to save config: open /CLIProxyAPI/config.yaml: read-only file system" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#201
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/201
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0020] Standardize metadata and naming conventions touched by "gemini能不能设置配额,自动禁用 ,自动启用?" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#200
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/200
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0021] Follow up on "Cursor CLI \ Auth Support" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#198
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/198
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0022] Harden "Why no opus 4.6 on github copilot auth" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#196
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/196
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0023] Define non-subprocess integration path related to "why no kiro in dashboard" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#183
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/183
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0024] Convert "OpenAI-MLX-Server and vLLM-MLX Support?" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#179
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/179
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0025] Add DX polish around "Claude thought_signature forwarded to Gemini causes Base64 decode error" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#178
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/178
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0026] Expand docs and examples for "Kiro Token 导入失败: Refresh token is required" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#177
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/177
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0027] Add QA scenarios for "Kimi Code support" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#169
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/169
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0028] Refactor implementation behind "kiro如何看配额?" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#165
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/165
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0029] Add process-compose/HMR refresh workflow tied to "kiro反代的Write工具json截断问题,返回的文件路径经常是错误的" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#164
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/164
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0030] Standardize metadata and naming conventions touched by "fix(kiro): handle empty content in messages to prevent Bad Request errors" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#163
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/163
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0031] Follow up on "在配置文件中支持为所有 OAuth 渠道自定义上游 URL" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#158
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/158
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0032] Harden "kiro反代出现重复输出的情况" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#160
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/160
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0033] Operationalize "kiro IDC 刷新 token 失败" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#149
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/149
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0034] Create/refresh provider quickstart derived from "请求docker部署支持arm架构的机器!感谢。" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#147
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/147
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0035] Add DX polish around "[Feature Request] 请求增加 Kiro 配额的展示功能" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#146
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/146
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0036] Expand docs and examples for "[Bug]进一步完善 openai兼容模式对 claude 模型的支持(完善 协议格式转换 )" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#145
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/145
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0037] Add QA scenarios for "完善 claude openai兼容渠道的格式转换" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#142
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/142
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0038] Port relevant thegent-managed flow implied by "Kimi For Coding Support / 请求为 Kimi 添加编程支持" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#141
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/141
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0039] Ensure rollout safety for "kiro idc登录需要手动刷新状态" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#136
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/136
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0040] Standardize metadata and naming conventions touched by "[Bug Fix] 修复 Kiro 的Claude模型非流式请求 output_tokens 为 0 导致的用量统计缺失" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#134
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/134
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0041] Follow up on "Routing strategy "fill-first" is not working as expected" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#133
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/133
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0042] Harden "WARN kiro_executor.go:1189 kiro: received 400 error (attempt 1/3), body: {"message":"Improperly formed request.","reason":null}" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#131
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/131
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0043] Operationalize "CLIProxyApiPlus不支持像CLIProxyApi一样使用ClawCloud云部署吗?" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#129
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/129
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0044] Convert "kiro的social凭证无法刷新过期时间。" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#128
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/128
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0045] Add DX polish around "Error 403" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#125
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/125
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0046] Define non-subprocess integration path related to "Gemini3无法生图" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#122
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/122
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0047] Add QA scenarios for "enterprise 账号 Kiro不是很稳定,很容易就403不可用了" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#118
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/118
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0048] Refactor implementation behind "-kiro-aws-login 登录后一直封号" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#115
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/115
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0049] Ensure rollout safety for "[Bug]Copilot Premium usage significantly amplified when using amp" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#113
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/113
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0050] Standardize metadata and naming conventions touched by "Antigravity authentication failed" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#111
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/111
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0051] Create/refresh provider quickstart derived from "大佬,什么时候搞个多账号管理呀" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#108
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/108
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0052] Harden "日志中,一直打印auth file changed (WRITE)" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#105
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/105
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0053] Operationalize "登录incognito参数无效" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#102
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/102
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0054] Convert "OpenAI-compat provider hardcodes /v1/models (breaks Z.ai v4: /api/coding/paas/v4/models)" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#101
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/101
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0055] Add DX polish around "ADD TRAE IDE support" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#97
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/97
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0056] Expand docs and examples for "Kiro currently has no authentication available" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#96
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/96
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0057] Port relevant thegent-managed flow implied by "GitHub Copilot Model Call Failure" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#99
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/99
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0058] Add process-compose/HMR refresh workflow tied to "Feature: Add Veo Video Generation Support (Similar to Image Generation)" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#94
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/94
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0059] Ensure rollout safety for "Bug: Kiro/BuilderId tokens can collide when email/profile_arn are empty; refresh token lifecycle not handled" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#90
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/90
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0060] Standardize metadata and naming conventions touched by "[Bug] Amazon Q endpoint returns HTTP 400 ValidationException (wrong CLI/KIRO_CLI origin)" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#89
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/89
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0061] Follow up on "UI 上没有 Kiro 配置的入口,或者说想添加 Kiro 支持,具体该怎么做" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#87
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/87
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0062] Harden "Cursor Issue" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#86
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/86
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0063] Operationalize "Feature request: Configurable HTTP request timeout for Extended Thinking models" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#84
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/84
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0064] Convert "kiro请求偶尔报错event stream fatal" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#83
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/83
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0065] Add DX polish around "failed to load config: failed to read config file: read /CLIProxyAPI/config.yaml: is a directory" through improved command ergonomics and faster feedback loops.
+- Priority: P3
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#81
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/81
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0066] Expand docs and examples for "[建议] 技术大佬考虑可以有机会新增一堆逆向平台" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#79
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/79
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0067] Add QA scenarios for "Issue with removed parameters - Sequential Thinking Tool Failure (nextThoughtNeeded undefined)" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#78
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/78
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0068] Create/refresh provider quickstart derived from "kiro请求的数据好像一大就会出错,导致cc写入文件失败" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#77
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/77
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0069] Define non-subprocess integration path related to "[Bug] Kiro multi-account support broken - auth file overwritten on re-login" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P1
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#76
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/76
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0070] Standardize metadata and naming conventions touched by "Claude Code WebSearch fails with 400 error when using Kiro/Amazon Q backend" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#72
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/72
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0071] Follow up on "[BUG] Vision requests fail for ZAI (glm) and Copilot models with missing header / invalid parameter errors" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#69
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/69
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0072] Harden "怎么更新iflow的模型列表。" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#66
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/66
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0073] Operationalize "How to use KIRO with IAM?" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#56
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/56
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0074] Convert "[Bug] Models from Codex (openai) are not accessible when Copilot is added" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#43
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/43
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0075] Add DX polish around "model gpt-5.1-codex-mini is not accessible via the /chat/completions endpoint" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#41
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/41
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0076] Port relevant thegent-managed flow implied by "GitHub Copilot models seem to be hardcoded" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#37
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/37
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0077] Add QA scenarios for "plus版本只能自己构建吗?" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#34
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/34
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0078] Refactor implementation behind "kiro命令登录没有端口" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#30
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/30
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0079] Ensure rollout safety for "lack of thinking signature in kiro's non-stream response cause incompatibility with some ai clients (specifically cherry studio)" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#27
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/27
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0080] Standardize metadata and naming conventions touched by "I did not find the Kiro entry in the Web UI" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#26
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/26
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0081] Follow up on "Kiro (AWS CodeWhisperer) - Stream error, status: 400" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus issue#7
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/7
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0082] Harden "BUG: Cannot use Claude Models in Codex CLI" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1671
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1671
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0083] Operationalize "feat: support image content in tool result messages (OpenAI ↔ Claude translation)" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1670
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1670
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0084] Convert "docker镜像及docker相关其它优化建议" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1669
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1669
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0085] Create/refresh provider quickstart derived from "Need maintainer-handled codex translator compatibility for Responses compaction fields" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1667
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1667
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0086] Expand docs and examples for "codex: usage_limit_reached (429) should honor resets_at/resets_in_seconds as next_retry_after" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1666
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1666
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0087] Add process-compose/HMR refresh workflow tied to "Concerns regarding the removal of Gemini Web support in the early stages of the project" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1665
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1665
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0088] Refactor implementation behind "fix(claude): token exchange blocked by Cloudflare managed challenge on console.anthropic.com" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1659
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1659
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0089] Ensure rollout safety for "Qwen Oauth fails" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1658
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1658
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0090] Standardize metadata and naming conventions touched by "logs-max-total-size-mb does not account for per-day subdirectories" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1657
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1657
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0091] Follow up on "All credentials for model claude-sonnet-4-6 are cooling down" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1655
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1655
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0092] Define non-subprocess integration path related to ""Please add claude-sonnet-4-6 to registered Claude models. Released 2026-02-15."" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1653
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1653
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0093] Operationalize "Claude Sonnet 4.5 models are deprecated - please remove from panel" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1651
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1651
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0094] Convert "Gemini API integration: incorrect renaming of 'parameters' to 'parametersJsonSchema'" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1649
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1649
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0095] Port relevant thegent-managed flow implied by "codex 返回 Unsupported parameter: response_format" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1647
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1647
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0096] Expand docs and examples for "Bug: Invalid JSON payload when tool_result has no content field (antigravity translator)" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1646
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1646
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0097] Add QA scenarios for "Docker Image Error" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1641
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1641
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0098] Refactor implementation behind "Google blocked my 3 email id at once" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1637
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1637
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0099] Ensure rollout safety for "不同思路的 Antigravity 代理" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1633
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1633
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0100] Standardize metadata and naming conventions touched by "是否支持微软账号的反代?" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1632
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1632
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0101] Follow up on "Google官方好像已经有检测并稳定封禁CPA反代Antigravity的方案了?" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1631
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1631
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0102] Create/refresh provider quickstart derived from "Claude Sonnet 4.5 is no longer available. Please switch to Claude Sonnet 4.6." including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1630
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1630
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0103] Operationalize "codex 中 plus/team错误支持gpt-5.3-codex-spark 但实际上不支持" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1623
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1623
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0104] Convert "Please add support for Claude Sonnet 4.6" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1622
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1622
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0105] Add DX polish around "Question: applyClaudeHeaders() — how were these defaults chosen?" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1621
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1621
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0106] Expand docs and examples for "[BUG] claude code 接入 cliproxyapi 使用时,模型的输出没有呈现流式,而是一下子蹦出来回答结果" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1620
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1620
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0107] Add QA scenarios for "[Feature Request] Session-Aware Hybrid Routing Strategy" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1617
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1617
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0108] Refactor implementation behind "Any Plans to support Jetbrains IDE?" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1615
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1615
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0109] Ensure rollout safety for "[bug] codex oauth登录流程失败" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1612
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1612
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0110] Standardize metadata and naming conventions touched by "qwen auth 里获取到了 qwen3.5,但是 ai 客户端获取不到这个模型" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1611
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1611
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0111] Follow up on "fix: handle response.function_call_arguments.done in codex→claude streaming translator" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1609
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1609
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0112] Harden "不能正确统计minimax-m2.5/kimi-k2.5的Token" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1607
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1607
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0113] Operationalize "速速支持qwen code的qwen3.5" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1603
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1603
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0114] Port relevant thegent-managed flow implied by "[Feature Request] Antigravity channel should support routing claude-haiku-4-5-20251001 model (used by Claude Code pre-flight checks)" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1596
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1596
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0115] Define non-subprocess integration path related to "希望为提供商添加请求优先级功能,最好是以模型为基础来进行请求" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1594
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1594
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0116] Add process-compose/HMR refresh workflow tied to "gpt-5.3-codex-spark error" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1593
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1593
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0117] Add QA scenarios for "[Bug] Claude Code 2.1.37 random cch in x-anthropic-billing-header causes severe prompt-cache miss on third-party upstreams" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1592
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1592
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0118] Refactor implementation behind "()强制思考会在2m左右时返回500错误" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1591
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1591
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0119] Create/refresh provider quickstart derived from "配额管理可以刷出额度,但是调用的时候提示额度不足" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1590
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1590
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0120] Standardize metadata and naming conventions touched by "每次更新或者重启 使用统计数据都会清空" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1589
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1589
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0121] Follow up on "iflow GLM 5 时不时会返回 406" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1588
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1588
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0122] Harden "封号了,pro号没了,又找了个免费认证bot分享出来" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1587
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1587
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0123] Operationalize "gemini-cli 不能自定请求头吗?" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1586
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1586
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0124] Convert "bug: Invalid thinking block signature when switching from Gemini CLI to Claude OAuth mid-conversation" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1584
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1584
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0125] Add DX polish around "I saved 10M tokens (89%) on my Claude Code sessions with a CLI proxy" through improved command ergonomics and faster feedback loops.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1583
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1583
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0126] Expand docs and examples for "[bug]? gpt-5.3-codex-spark 在 team 账户上报错 400" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1582
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1582
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0127] Add QA scenarios for "希望能加一个一键清理失效的认证文件功能" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1580
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1580
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0128] Refactor implementation behind "GPT Team认证似乎获取不到5.3 Codex" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1577
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1577
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0129] Ensure rollout safety for "iflow渠道调用会一直返回406状态码" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1576
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1576
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0130] Standardize metadata and naming conventions touched by "Port 8317 becomes unreachable after running for some time, recovers immediately after SSH login" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1575
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1575
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0131] Follow up on "Support for gpt-5.3-codex-spark" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1573
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1573
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0132] Harden "Reasoning Error" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1572
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1572
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0133] Port relevant thegent-managed flow implied by "iflow MiniMax-2.5 is online,please add" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1567
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1567
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0134] Convert "能否再难用一点?!" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1564
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1564
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0135] Add DX polish around "Cache usage through Claude oAuth always 0" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1562
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1562
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0136] Create/refresh provider quickstart derived from "antigravity 无法使用" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1561
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1561
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0137] Add QA scenarios for "GLM-5 return empty" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1560
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1560
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0138] Define non-subprocess integration path related to "Claude Code 调用 nvidia 发现 无法正常使用bash grep类似的工具" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1557
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1557
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0139] Ensure rollout safety for "Gemini CLI: 额度获取失败:请检查凭证状态" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1556
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1556
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0140] Standardize metadata and naming conventions touched by "403 error" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1555
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1555
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0141] Follow up on "iflow glm-5 is online,please add" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1554
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1554
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0142] Harden "Kimi的OAuth无法使用" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1553
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1553
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0143] Operationalize "grok的OAuth登录认证可以支持下吗? 谢谢!" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1552
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1552
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0144] Convert "iflow executor: token refresh failed" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1551
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1551
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0145] Add process-compose/HMR refresh workflow tied to "为什么gemini3会报错" so local config and runtime can be reloaded deterministically.
+- Priority: P1
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1549
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1549
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0146] Expand docs and examples for "cursor报错根源" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1548
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1548
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0147] Add QA scenarios for "[Claude code] ENABLE_TOOL_SEARCH - MCP not in available tools 400" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1547
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1547
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0148] Refactor implementation behind "自定义别名在调用的时候404" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1546
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1546
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0149] Ensure rollout safety for "删除iflow提供商的过时模型" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1545
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1545
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0150] Standardize metadata and naming conventions touched by "删除iflow提供商的过时模型" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1544
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1544
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0151] Follow up on "佬们,隔壁很多账号403啦,这里一切正常吗?" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1541
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1541
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0152] Port relevant thegent-managed flow implied by "feat(thinking): support Claude output_config.effort parameter (Opus 4.6)" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1540
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1540
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0153] Create/refresh provider quickstart derived from "Gemini-3-pro-high Corrupted thought signature" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1538
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1538
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0154] Convert "bug: "status": "INVALID_ARGUMENT" when using antigravity claude-opus-4-6" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1535
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1535
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0155] Add DX polish around "[Bug] Persistent 400 "Invalid Argument" error with claude-opus-4-6-thinking model (with and without thinking budget)" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1533
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1533
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0156] Expand docs and examples for "Invalid JSON payload received: Unknown name \"deprecated\"" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1531
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1531
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0157] Add QA scenarios for "bug: proxy_ prefix applied to tool_choice.name but not tools[].name causes 400 errors on OAuth requests" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1530
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1530
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0158] Refactor implementation behind "请求为Windows添加启动自动更新命令" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1528
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1528
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0159] Ensure rollout safety for "反重力逻辑加载失效" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1526
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1526
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0160] Standardize metadata and naming conventions touched by "support openai image generations api(/v1/images/generations)" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1525
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1525
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0161] Define non-subprocess integration path related to "The account has available credit, but a 503 or 429 error is occurring." (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1521
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1521
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0162] Harden "openclaw调用CPA 中的codex5.2 报错。" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1517
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1517
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0163] Operationalize "opus4.6都支持1m的上下文了,请求体什么时候从280K调整下,现在也太小了,动不动就报错" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1515
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1515
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0164] Convert "Token refresh logic fails with generic 500 error ("server busy") from iflow provider" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1514
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1514
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0165] Add DX polish around "bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1513
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1513
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0166] Expand docs and examples for "请求体过大280KB限制和opus 4.6无法调用的问题,啥时候可以修复" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1512
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1512
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0167] Add QA scenarios for "502 unknown provider for model gemini-claude-opus-4-6-thinking" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1510
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1510
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0168] Refactor implementation behind "反重力 claude-opus-4-6-thinking 模型如何通过 () 实现强行思考" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1509
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1509
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0169] Ensure rollout safety for "Feature: Per-OAuth-Account Outbound Proxy Enforcement for Google (Gemini/Antigravity) + OpenAI Codex – incl. Token Refresh and optional Strict/Fail-Closed Mode" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1508
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1508
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0170] Create/refresh provider quickstart derived from "[BUG] 反重力 Opus-4.5 在 OpenCode 上搭配 DCP 插件使用时会报错" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1507
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1507
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0171] Port relevant thegent-managed flow implied by "Antigravity使用时,设计额度最小阈值,超过停止使用或者切换账号,因为额度多次用尽,会触发 5 天刷新" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1505
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1505
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0172] Harden "iflow的glm-4.7会返回406" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1504
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1504
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0173] Operationalize "[BUG] sdkaccess.RegisterProvider 逻辑被 syncInlineAccessProvider 破坏" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1503
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1503
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0174] Add process-compose/HMR refresh workflow tied to "iflow部分模型增加了签名" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1501
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1501
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0175] Add DX polish around "Qwen Free allocated quota exceeded" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1500
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1500
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0176] Expand docs and examples for "After logging in with iFlowOAuth, most models cannot be used, only non-CLI models can be used." with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1499
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1499
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0177] Add QA scenarios for "为什么我请求了很多次,但是使用统计里仍然显示使用为0呢?" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1497
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1497
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0178] Refactor implementation behind "为什么配额管理里没有claude pro账号的额度?" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1496
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1496
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0179] Ensure rollout safety for "最近几个版本,好像轮询失效了" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1495
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1495
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0180] Standardize metadata and naming conventions touched by "iFlow error" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1494
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1494
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0181] Follow up on "Feature request [allow to configure RPM, TPM, RPD, TPD]" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1493
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1493
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0182] Harden "Antigravity using Ultra plan: Opus 4.6 gets 429 on CLIProxy but runs with Opencode-Auth" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1486
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1486
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0183] Operationalize "gemini在cherry studio的openai接口无法控制思考长度" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1484
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1484
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0184] Define non-subprocess integration path related to "codex5.3什么时候能获取到啊" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1482
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1482
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0185] Add DX polish around "Amp code doesn't route through CLIProxyAPI" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1481
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1481
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0186] Expand docs and examples for "导入kiro账户,过一段时间就失效了" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1480
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1480
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0187] Create/refresh provider quickstart derived from "openai-compatibility: streaming response empty when translating Codex protocol (/v1/responses) to OpenAI chat/completions" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1478
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1478
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0188] Refactor implementation behind "bug: request-level metadata fields injected into contents[] causing Gemini API rejection (v6.8.4)" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1477
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1477
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0189] Ensure rollout safety for "Roo Code v3.47.0 cannot make Gemini API calls anymore" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1476
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1476
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0190] Port relevant thegent-managed flow implied by "[feat]更新很频繁,可以内置软件更新功能吗" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1475
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1475
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0191] Follow up on "Cannot alias multiple models to single model only on Antigravity" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1472
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1472
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0192] Harden "无法识别图片" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1469
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1469
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0193] Operationalize "Support for Antigravity Opus 4.6" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1468
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1468
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0194] Convert "model not found for gpt-5.3-codex" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1463
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1463
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0195] Add DX polish around "antigravity用不了" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1461
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1461
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0196] Expand docs and examples for "为啥openai的端点可以添加多个密钥,但是a社的端点不能添加" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1457
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1457
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0197] Add QA scenarios for "轮询会无差别轮询即便某个账号在很久前已经空配额" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1456
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1456
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0198] Refactor implementation behind "When I don’t add the authentication file, opening Claude Code keeps throwing a 500 error, instead of directly using the AI provider I’ve configured." to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1455
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1455
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0199] Ensure rollout safety for "6.7.53版本反重力无法看到opus-4.6模型" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1453
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1453
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0200] Standardize metadata and naming conventions touched by "Codex OAuth failed" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1451
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1451
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0201] Follow up on "Google asking to Verify account" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1447
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1447
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0202] Harden "API Error" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1445
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1445
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0203] Add process-compose/HMR refresh workflow tied to "Unable to use GPT 5.3 codex (model_not_found)" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1443
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1443
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0204] Create/refresh provider quickstart derived from "gpt-5.3-codex 请求400 显示不存在该模型" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1442
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1442
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0205] Add DX polish around "The requested model 'gpt-5.3-codex' does not exist." through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1441
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1441
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0206] Expand docs and examples for "Feature request: Add support for claude opus 4.6" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1439
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1439
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0207] Define non-subprocess integration path related to "Feature request: Add support for perplexity" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1438
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1438
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0208] Refactor implementation behind "iflow kimi-k2.5 无法正常统计消耗的token数,一直是0" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1437
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1437
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0209] Port relevant thegent-managed flow implied by "[BUG] Invalid JSON payload with large requests (~290KB) - truncated body" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P3
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1433
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1433
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0210] Standardize metadata and naming conventions touched by "希望支持国产模型如glm kimi minimax 的 proxy" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1432
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1432
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0211] Follow up on "关闭某个认证文件后没有持久化处理" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1431
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1431
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0212] Harden "[v6.7.47] 接入智谱 Plan 计划后请求报错" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1430
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1430
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0213] Operationalize "大佬能不能把使用统计数据持久化?" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1427
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1427
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0214] Convert "[BUG] 使用 Google 官方 Python SDK时思考设置无法生效" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1426
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1426
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0215] Add DX polish around "bug: Claude → Gemini translation fails due to unsupported JSON Schema fields ($id, patternProperties)" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1424
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1424
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0216] Expand docs and examples for "Add Container Tags / Project Scoping for Memory Organization" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1420
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1420
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0217] Add QA scenarios for "Add LangChain/LangGraph Integration for Memory System" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1419
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1419
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0218] Refactor implementation behind "Security Review: Apply Lessons from Supermemory Security Findings" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1418
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1418
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0219] Ensure rollout safety for "Add Webhook Support for Document Lifecycle Events" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1417
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1417
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0220] Standardize metadata and naming conventions touched by "Create OpenAI-Compatible Memory Tools Wrapper" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1416
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1416
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0221] Create/refresh provider quickstart derived from "Add Google Drive Connector for Memory Ingestion" including setup, auth, model select, and sanity-check commands.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1415
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1415
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0222] Harden "Add Document Processor for PDF and URL Content Extraction" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1414
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1414
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0223] Operationalize "Add Notion Connector for Memory Ingestion" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1413
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1413
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0224] Convert "Add Strict Schema Mode for OpenAI Function Calling" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1412
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1412
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0225] Add DX polish around "Add Conversation Tracking Support for Chat History" through improved command ergonomics and faster feedback loops.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1411
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1411
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0226] Expand docs and examples for "Implement MCP Server for Memory Operations" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1410
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1410
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0227] Add QA scenarios for "■ stream disconnected before completion: stream closed before response.completed" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1407
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1407
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0228] Port relevant thegent-managed flow implied by "Bug: /v1/responses returns 400 "Input must be a list" when input is string (regression 6.7.42, Droid auto-compress broken)" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1403
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1403
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0229] Ensure rollout safety for "Factory Droid CLI got 404" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1401
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1401
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0230] Define non-subprocess integration path related to "反代反重力的 claude 在 opencode 中使用出现 unexpected EOF 错误" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1400
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1400
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0231] Follow up on "Feature request: Cursor CLI support" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1399
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1399
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0232] Add process-compose/HMR refresh workflow tied to "bug: Invalid signature in thinking block (API 400) on follow-up requests" so local config and runtime can be reloaded deterministically.
+- Priority: P1
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1398
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1398
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0233] Operationalize "在 Visual Studio Code无法使用过工具" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1405
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1405
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0234] Convert "Vertex AI global 区域端点 URL 格式错误,导致无法访问 Gemini 3 Preview 模型" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1395
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1395
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0235] Add DX polish around "Session title generation fails for Claude models via Antigravity provider (OpenCode)" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1394
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1394
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0236] Expand docs and examples for "反代反重力请求gemini-3-pro-image-preview接口报错" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1393
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1393
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0237] Add QA scenarios for "[Feature Request] Implement automatic account rotation on VALIDATION_REQUIRED errors" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1392
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1392
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0238] Create/refresh provider quickstart derived from "[antigravity] 500 Internal error and 403 Verification Required for multiple accounts" including setup, auth, model select, and sanity-check commands.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1389
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1389
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0239] Ensure rollout safety for "Antigravity的配额管理,账号没有订阅资格了,还是在显示模型额度" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1388
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1388
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0240] Standardize metadata and naming conventions touched by "大佬,可以加一个apikey的过期时间不" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1387
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1387
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0241] Follow up on "在codex运行报错" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1406
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1406
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0242] Harden "[Feature request] Support nested object parameter mapping in payload config" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1384
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1384
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0243] Operationalize "Claude authentication failed in v6.7.41 (works in v6.7.25)" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1383
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1383
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0244] Convert "Question: Does load balancing work with 2 Codex accounts for the Responses API?" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1382
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1382
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0245] Add DX polish around "登陆提示“登录失败: 访问被拒绝,权限不足”" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1381
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1381
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0246] Expand docs and examples for "Gemini 3 Flash includeThoughts参数不生效了" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1378
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1378
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0247] Port relevant thegent-managed flow implied by "antigravity无法登录" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1376
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1376
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0248] Refactor implementation behind "[Bug] Gemini 400 Error: "defer_loading" field in ToolSearch is not supported by Gemini API" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1375
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1375
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0249] Ensure rollout safety for "API Error: 403" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1374
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1374
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0250] Standardize metadata and naming conventions touched by "Feature Request: 有没有可能支持Trea中国版?" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1373
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1373
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0251] Follow up on "Bug: Auto-injected cache_control exceeds Anthropic API's 4-block limit" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1372
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1372
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0252] Harden "Bad processing of Claude prompt caching that is already implemented by client app" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1366
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1366
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0253] Define non-subprocess integration path related to "[Bug] OpenAI-compatible provider: message_start.usage always returns 0 tokens (kimi-for-coding)" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P1
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1365
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1365
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0254] Convert "iflow Cli官方针对terminal有Oauth 登录方式" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1364
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1364
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0255] Create/refresh provider quickstart derived from "Kimi For Coding 好像被 ban 了" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1327
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1327
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0256] Expand docs and examples for "“Error 404: Requested entity was not found" for gemini 3 by gemini-cli" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1325
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1325
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0257] Add QA scenarios for "nvidia openai接口连接失败" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1324
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1324
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0258] Refactor implementation behind "Feature Request: Add generateImages endpoint support for Gemini API" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1322
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1322
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0259] Ensure rollout safety for "iFlow Error: LLM returned 200 OK but response body was empty (possible rate limit)" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1321
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1321
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0260] Standardize metadata and naming conventions touched by "feat: add code_execution and url_context tool passthrough for Gemini" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1318
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1318
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0261] Add process-compose/HMR refresh workflow tied to "This version of Antigravity is no longer supported. Please update to receive the latest features!" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1316
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1316
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0262] Harden "无法轮询请求反重力和gemini cli" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1315
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1315
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0263] Operationalize "400 Bad Request when reasoning_effort="xhigh" with kimi k2.5 (OpenAI-compatible API)" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1307
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1307
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0264] Convert "Claude Opus 4.5 returns "Internal server error" in response body via Anthropic OAuth (Sonnet works)" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1306
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1306
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0265] Add DX polish around "CLI Proxy API 版本: v6.7.28,OAuth 模型别名里的antigravity项目无法被删除。" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1305
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1305
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0266] Port relevant thegent-managed flow implied by "Feature Request: Add "Sequential" routing strategy to optimize account quota usage" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1304
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1304
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0267] Add QA scenarios for "版本: v6.7.27 添加openai-compatibility的时候出现 malformed HTTP response 错误" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1301
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1301
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0268] Refactor implementation behind "fix(logging): request and API response timestamps are inaccurate in error logs" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1299
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1299
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0269] Ensure rollout safety for "cpaUsageMetadata leaks to Gemini API responses when using Antigravity backend" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1297
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1297
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0270] Standardize metadata and naming conventions touched by "Gemini API error: empty text content causes 'required oneof field data must have one initialized field'" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1293
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1293
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0271] Follow up on "Gemini API error: empty text content causes 'required oneof field data must have one initialized field'" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1292
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1292
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0272] Create/refresh provider quickstart derived from "gemini-3-pro-image-preview api 返回500 我看log中报500的都基本在1分钟左右" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1291
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1291
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0273] Operationalize "希望代理设置 能为多个不同的认证文件分别配置不同的代理 URL" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1290
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1290
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0274] Convert "Request takes over a minute to get sent with Antigravity" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1289
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1289
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0275] Add DX polish around "Antigravity auth requires daily re-login - sessions expire unexpectedly" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1288
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1288
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0276] Define non-subprocess integration path related to "cpa长时间运行会oom" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P3
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1287
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1287
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0277] Add QA scenarios for "429 RESOURCE_EXHAUSTED for Claude Opus 4.5 Thinking with Google AI Pro Account" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1284
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1284
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0278] Refactor implementation behind "[功能建议] 建议实现统计数据持久化,免去更新时的手动导出导入" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1282
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1282
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0279] Ensure rollout safety for "反重力的banana pro额度一直无法恢复" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1281
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1281
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0280] Standardize metadata and naming conventions touched by "Support request: Kimi For Coding (Kimi Code / K2.5) behind CLIProxyAPI" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1280
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1280
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0281] Follow up on "TPM/RPM过载,但是等待半小时后依旧不行" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1278
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1278
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0282] Harden "支持codex的 /personality" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1273
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1273
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0283] Operationalize "Antigravity 可用模型数为 0" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1270
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1270
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0284] Convert "Tool Error on Antigravity Gemini 3 Flash" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1269
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1269
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0285] Port relevant thegent-managed flow implied by "[Improvement] Persist Management UI assets in a dedicated volume" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P3
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1268
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1268
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0286] Expand docs and examples for "[Feature Request] Provide optional standalone UI service in docker-compose" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1267
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1267
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0287] Add QA scenarios for "[Improvement] Pre-bundle Management UI in Docker Image" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1266
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1266
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0288] Refactor implementation behind "AMP CLI not working" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1264
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1264
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0289] Create/refresh provider quickstart derived from "建议增加根据额度阈值跳过轮询凭证功能" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1263
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1263
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0290] Add process-compose/HMR refresh workflow tied to "[Bug] Antigravity Gemini API 报错:enum 仅允许用于 STRING 类型" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1260
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1260
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0291] Follow up on "好像codebuddy也能有命令行也能用,能加进去吗" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1259
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1259
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0292] Harden "Anthropic via OAuth can not callback URL" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1256
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1256
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0293] Operationalize "[Bug] 反重力banana pro 4k 图片生成输出为空,仅思考过程可见" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1255
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1255
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0294] Convert "iflow Cookies 登陆好像不能用" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1254
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1254
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0295] Add DX polish around "CLIProxyAPI goes down after some time, only recovers when SSH into server" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1253
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1253
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0296] Expand docs and examples for "kiro hope" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1252
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1252
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0297] Add QA scenarios for ""Requested entity was not found" for all antigravity models" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1251
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1251
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0298] Refactor implementation behind "[BUG] Why does it repeat twice? 为什么他重复了两次?" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1247
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1247
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0299] Define non-subprocess integration path related to "6.6.109之前的版本都可以开启iflow的deepseek3.2,qwen3-max-preview思考,6.7.xx就不能了" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1245
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1245
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0300] Standardize metadata and naming conventions touched by "Bug: Anthropic API 400 Error - Missing 'thinking' block before 'tool_use'" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1244
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1244
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0301] Follow up on "v6.7.24,反重力的gemini-3,调用API有bug" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1243
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1243
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0302] Harden "How to reset /models" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1240
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1240
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0303] Operationalize "Feature Request:Add support for separate proxy configuration with credentials" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1236
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1236
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0304] Port relevant thegent-managed flow implied by "GLM Coding Plan" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1226
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1226
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0305] Add DX polish around "更新到最新版本之后,出现了503的报错" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1224
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1224
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0306] Create/refresh provider quickstart derived from "能不能增加一个配额保护" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1223
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1223
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0307] Add QA scenarios for "auth_unavailable: no auth available in claude code cli, 使用途中经常500" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1222
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1222
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0308] Refactor implementation behind "无法关闭谷歌的某个具体的账号的使用权限" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1219
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1219
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0309] Ensure rollout safety for "docker中的最新版本不是lastest" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1218
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1218
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0310] Standardize metadata and naming conventions touched by "openai codex 认证失败: Failed to exchange authorization code for tokens" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1217
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1217
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0311] Follow up on "tool_use_error InputValidationError: EnterPlanMode failed due to the following issue: An unexpected parameter `reason` was provided" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1215
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1215
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0312] Harden "Error 403" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1214
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1214
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0313] Operationalize "Gemini CLI OAuth 认证失败: failed to start callback server" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1213
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1213
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0314] Convert "bug: Thinking budget ignored in cross-provider conversations (Antigravity)" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1199
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1199
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0315] Add DX polish around "[功能需求] 认证文件增加屏蔽模型跳过轮询" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1197
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1197
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0316] Expand docs and examples for "可以出个检查更新吗,不然每次都要拉下载然后重启" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1195
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1195
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0317] Add QA scenarios for "antigravity可以增加配额保护吗 剩余额度多少的时候不在使用" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1194
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1194
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0318] Refactor implementation behind "codex总是有失败" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1193
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1193
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0319] Add process-compose/HMR refresh workflow tied to "建议在使用Antigravity 额度时,设计额度阈值自定义功能" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1192
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1192
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0320] Standardize metadata and naming conventions touched by "Antigravity: rev19-uic3-1p (Alias: gemini-2.5-computer-use-preview-10-2025) nolonger useable" across both repos.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1190
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1190
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0321] Follow up on "🚨🔥 CRITICAL BUG REPORT: Invalid Function Declaration Schema in API Request 🔥🚨" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1189
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1189
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0322] Define non-subprocess integration path related to "认证失败: Failed to exchange token" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1186
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1186
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0323] Create/refresh provider quickstart derived from "Model combo support" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1184
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1184
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0324] Convert "使用 Antigravity OAuth 使用openai格式调用opencode问题" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1173
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1173
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0325] Add DX polish around "今天中午开始一直429" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1172
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1172
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0326] Expand docs and examples for "gemini api 使用openai 兼容的url 使用时 tool_call 有问题" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1168
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1168
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0327] Add QA scenarios for "linux一键安装的如何更新" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1167
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1167
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0328] Refactor implementation behind "新增微软copilot GPT5.2codex模型" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1166
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1166
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0329] Ensure rollout safety for "Tool Calling Not Working in Cursor When Using Claude via CLIPROXYAPI + Antigravity Proxy" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1165
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1165
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0330] Standardize metadata and naming conventions touched by "[Improvement] Allow multiple model mappings to have the same Alias" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1163
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1163
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0331] Follow up on "Antigravity模型在Cursor无法使用工具" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1162
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1162
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0332] Harden "Gemini" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1161
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1161
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0333] Operationalize "Add support proxy per account" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1160
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1160
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0334] Convert "[Feature] 添加Github Copilot 的OAuth" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1159
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1159
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0335] Add DX polish around "希望支持claude api" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1157
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1157
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0336] Expand docs and examples for "[Bug] v6.7.x Regression: thinking parameter not recognized, causing Cherry Studio and similar clients to fail displaying extended thinking content" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1155
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1155
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0337] Add QA scenarios for "nvidia今天开始超时了,昨天刚配置还好好的" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1154
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1154
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0338] Refactor implementation behind "Antigravity OAuth认证失败" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1153
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1153
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0339] Ensure rollout safety for "日志怎么不记录了" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1152
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1152
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0340] Create/refresh provider quickstart derived from "v6.7.16无法反重力的gemini-3-pro-preview" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1150
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1150
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0341] Follow up on "OpenAI 兼容模型请求失败问题" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1149
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1149
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0342] Port relevant thegent-managed flow implied by "没有单个凭证 启用/禁用 的切换开关吗" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1148
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1148
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0343] Operationalize "[Bug] Internal restart loop causes continuous "address already in use" errors in logs" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1146
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1146
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0344] Convert "cc 使用 zai-glm-4.7 报错 body.reasoning" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1143
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1143
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0345] Define non-subprocess integration path related to "NVIDIA不支持,转发成claude和gpt都用不了" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P1
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1139
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1139
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0346] Expand docs and examples for "Feature Request: Add support for Cursor IDE as a backend/provider" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1138
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1138
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0347] Add QA scenarios for "Claude to OpenAI Translation Generates Empty System Message" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1136
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1136
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0348] Add process-compose/HMR refresh workflow tied to "tool_choice not working for Gemini models via Claude API endpoint" so local config and runtime can be reloaded deterministically.
+- Priority: P1
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1135
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1135
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0349] Ensure rollout safety for "model stops by itself does not proceed to the next step" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1134
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1134
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0350] Standardize metadata and naming conventions touched by "API Error: 400是怎么回事,之前一直能用" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1133
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1133
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0351] Follow up on "希望供应商能够加上微软365" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1128
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1128
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0352] Harden "codex的config.toml文件在哪里修改?" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1127
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1127
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0353] Operationalize "[Bug] Antigravity provider intermittently strips `thinking` blocks in multi-turn conversations with extended thinking enabled" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1124
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1124
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0354] Convert "使用Amp CLI的Painter工具画图显示prompt is too long" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1123
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1123
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0355] Add DX polish around "gpt-5.2-codex "System messages are not allowed"" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1122
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1122
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0356] Expand docs and examples for "kiro使用orchestrator 模式调用的时候会报错400" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1120
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1120
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0357] Create/refresh provider quickstart derived from "Error code: 400 - {'detail': 'Unsupported parameter: user'}" including setup, auth, model select, and sanity-check commands.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1119
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1119
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0358] Refactor implementation behind "添加智谱OpenAI兼容提供商获取模型和测试会失败" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1118
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1118
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0359] Ensure rollout safety for "gemini-3-pro-high (Antigravity): malformed_function_call error with tools" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1113
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1113
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0360] Standardize metadata and naming conventions touched by "该凭证暂无可用模型,这是被封号了的意思吗" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1111
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1111
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0361] Port relevant thegent-managed flow implied by "香蕉pro 图片一下将所有图片额度都消耗没了" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1110
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1110
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0362] Harden "Error 'Expected thinking or redacted_thinking' after upgrade to v6.7.12" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1109
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1109
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0363] Operationalize "[Feature Request] whitelist models for specific API KEY" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1107
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1107
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0364] Convert "gemini-3-pro-high returns empty response when subagent uses tools" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1106
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1106
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0365] Add DX polish around "GitStore local repo fills tmpfs due to accumulating loose git objects (no GC/repack)" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1104
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1104
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0366] Expand docs and examples for "ℹ ⚠️ Response stopped due to malformed function call. 在 Gemini CLI 中 频繁出现这个提示,对话中断" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1100
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1100
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0367] Add QA scenarios for "【功能请求】添加禁用项目按键(或优先级逻辑)" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1098
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1098
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0368] Define non-subprocess integration path related to "有支持豆包的反代吗" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1097
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1097
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0369] Ensure rollout safety for "Wrong workspace selected for OpenAI accounts" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1095
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1095
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0370] Standardize metadata and naming conventions touched by "Anthropic web_search fails in v6.7.x - invalid tool name web_search_20250305" across both repos.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1094
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1094
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0371] Follow up on "Antigravity 生图无法指定分辨率" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1093
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1093
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0372] Harden "文件写方式在docker下容易出现Inode变更问题" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P3
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1092
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1092
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0373] Operationalize "命令行中返回结果一切正常,但是在cherry studio中找不到模型" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1090
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1090
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0374] Create/refresh provider quickstart derived from "[Feedback #1044] 尝试通过 Payload 设置 Gemini 3 宽高比失败 (Google API 400 Error)" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1089
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1089
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0375] Add DX polish around "反重力2API opus模型 Error searching files" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1086
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1086
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0376] Expand docs and examples for "Streaming Response Translation Fails to Emit Completion Events on `[DONE]` Marker" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1085
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1085
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0377] Add process-compose/HMR refresh workflow tied to "Feature Request: Add support for Text Embedding API (/v1/embeddings)" so local config and runtime can be reloaded deterministically.
+- Priority: P1
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1084
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1084
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0378] Refactor implementation behind "大香蕉生图无图片返回" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1083
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1083
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0379] Ensure rollout safety for "修改报错HTTP Status Code" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1082
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1082
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0380] Port relevant thegent-managed flow implied by "反重力2api无法使用工具" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1080
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1080
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0381] Follow up on "配额管理中可否新增Claude OAuth认证方式号池的配额信息" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1079
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1079
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0382] Harden "Extended thinking model fails with "Expected thinking or redacted_thinking, but found tool_use" on multi-turn conversations" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1078
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1078
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0383] Operationalize "functionDeclarations 和 googleSearch 合并到同一个 tool 对象导致 Gemini API 报错" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1077
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1077
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0384] Convert "Antigravity: MCP 工具的数字类型 enum 值导致 INVALID_ARGUMENT 错误" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1075
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1075
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0385] Add DX polish around "认证文件管理可否添加一键导出所有凭证的按钮" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1074
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1074
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0386] Expand docs and examples for "image generation 429" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1073
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1073
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0387] Add QA scenarios for "No Auth Available" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1072
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1072
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0388] Refactor implementation behind "配置OpenAI兼容格式的API,用Anthropic接口 OpenAI接口都调用不成功" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1066
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1066
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0389] Ensure rollout safety for ""Think Mode" Reasoning models are not visible in GitHub Copilot interface" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1065
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1065
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0390] Standardize metadata and naming conventions touched by "Gemini 和 Claude 多条 system 提示词时,只有最后一条生效 / When Gemini and Claude have multiple system prompt words, only the last one takes effect" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1064
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1064
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0391] Create/refresh provider quickstart derived from "OAuth issue with Qwen using Google Social Login" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1063
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1063
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0392] Harden "[Feature] allow to disable auth files from UI (management)" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P3
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1062
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1062
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0393] Operationalize "最新版claude 2.1.9调用后,会在后台刷出大量warn;持续输出" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1061
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1061
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0394] Convert "Antigravity 针对Pro账号的 Claude/GPT 模型有周限额了吗?" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1060
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1060
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0395] Add DX polish around "OpenAI 兼容提供商 由于客户端没有兼容OpenAI接口,导致调用失败" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1059
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1059
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0396] Expand docs and examples for "希望可以增加antigravity授权的配额保护功能" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1058
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1058
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0397] Add QA scenarios for "[bug]在 opencode 多次正常请求后出现 500 Unknown Error 后紧接着 No Auth Available" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1057
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1057
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0398] Refactor implementation behind "6.7.3报错 claude和cherry 都报错,是配置问题吗?还是模型换名了unknown provider for model gemini-claude-opus-4-" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1056
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1056
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0399] Port relevant thegent-managed flow implied by "codex-instructions-enabled为true时,在codex-cli中使用是否会重复注入instructions?" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1055
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1055
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0400] Standardize metadata and naming conventions touched by "cliproxyapi多个账户切换(因限流/账号问题), 导致客户端直接报错" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1053
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1053
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0401] Follow up on "Codex authentication cannot be detected" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1052
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1052
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0402] Harden "v6.7.3 OAuth 模型映射 新增或修改存在问题" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1051
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1051
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0403] Operationalize "【建议】持久化储存使用统计" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1050
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1050
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0404] Convert "最新版本CPA,OAuths模型映射功能失败?" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1048
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1048
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0405] Add DX polish around "新增的Antigravity文件会报错429" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1047
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1047
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0406] Add process-compose/HMR refresh workflow tied to "Docker部署缺失gemini-web-auth功能" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1045
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1045
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0407] Add QA scenarios for "image模型能否在cliproxyapi中直接区分2k,4k" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1044
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1044
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0408] Create/refresh provider quickstart derived from "OpenAI-compatible assistant content arrays dropped in conversion, causing repeated replies" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1043
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1043
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0409] Ensure rollout safety for "qwen进行模型映射时提示 更新模型映射失败: channel not found" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1042
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1042
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0410] Standardize metadata and naming conventions touched by "升级到最新版本后,认证文件页面提示请升级CPA版本" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1041
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1041
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0411] Follow up on "服务启动后,终端连续不断打印相同内容" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1040
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1040
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0412] Harden "Issue" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1039
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1039
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0413] Operationalize "Antigravity error to get quota limit" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1038
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1038
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0414] Define non-subprocess integration path related to "macos webui Codex OAuth error" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P1
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1037
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1037
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0415] Add DX polish around "antigravity 无法获取登录链接" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1035
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1035
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0416] Expand docs and examples for "UltraAI Workspace account error: project_id cannot be retrieved" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1034
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1034
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0417] Add QA scenarios for "额度获取失败:Gemini CLI 凭证缺少 Project ID" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1032
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1032
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0418] Port relevant thegent-managed flow implied by "Antigravity auth causes infinite refresh loop when project_id cannot be fetched" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1030
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1030
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0419] Ensure rollout safety for "希望能够通过配置文件设定API调用超时时间" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1029
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1029
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0420] Standardize metadata and naming conventions touched by "Calling gpt-codex-5.2 returns 400 error: “Unsupported parameter: safety_identifier”" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1028
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1028
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0421] Follow up on "【建议】能否加一下模型配额优先级?" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1027
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1027
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0422] Harden "求问,配额显示并不准确" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1026
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1026
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0423] Operationalize "Vertex Credential Doesn't Work with gemini-3-pro-image-preview" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1024
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1024
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0424] Convert "[Feature] 提供更新命令" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1023
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1023
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0425] Create/refresh provider quickstart derived from "授权文件可以拷贝使用" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1022
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1022
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0426] Expand docs and examples for "额度的消耗怎么做到平均分配和限制最多使用量呢?" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1021
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1021
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0427] Add QA scenarios for "【建议】就算开了日志也无法区别为什么新加的这个账号错误的原因" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1020
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1020
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0428] Refactor implementation behind "每天早上都报错 错误: Failed to call gemini-3-pro-preview model: unknown provider for model gemini-3-pro-preview 要重新删除账号重新登录," to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1019
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1019
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0429] Ensure rollout safety for "Antigravity Accounts Rate Limited (HTTP 429) Despite Available Quota" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1015
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1015
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0430] Standardize metadata and naming conventions touched by "Bug: CLIproxyAPI returns Prompt is too long (need trim history)" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1014
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1014
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0431] Follow up on "Management Usage report resets at restart" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1013
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1013
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0432] Harden "使用gemini-3-pro-image-preview 模型,生成不了图片" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1012
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1012
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0433] Operationalize "「建议」希望能添加一个手动控制某 oauth 认证是否参与反代的功能" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1010
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1010
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0434] Convert "[Bug] Missing mandatory tool_use.id in request payload causing failure on subsequent tool calls" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1009
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1009
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0435] Add process-compose/HMR refresh workflow tied to "添加openai v1 chat接口,使用responses调用,出现截断,最后几个字不显示" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1008
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1008
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0436] Expand docs and examples for "iFlow token刷新失败" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1007
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1007
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0437] Port relevant thegent-managed flow implied by "fix(codex): Codex 流错误格式不符合 OpenAI Responses API 规范导致客户端解析失败" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1006
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1006
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0438] Refactor implementation behind "Feature: Add Veo 3.1 Video Generation Support" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1005
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1005
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0439] Ensure rollout safety for "Bug: Streaming response.output_item.done missing function name" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1004
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1004
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0440] Standardize metadata and naming conventions touched by "Close" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1003
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1003
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0441] Follow up on "gemini 3 missing field" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#1002
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1002
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0442] Create/refresh provider quickstart derived from "[Bug] Codex Responses API: item_reference in `input` not cleaned, causing 404 errors and incorrect client suspension" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#999
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/999
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0443] Operationalize "[Bug] Codex Responses API: `input` 中的 item_reference 未清理,导致 404 错误和客户端被误暂停" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#998
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/998
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0444] Convert "【建议】保留Gemini格式请求的思考签名" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#997
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/997
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0445] Add DX polish around "Gemini CLI 认证api,不支持gemini 3" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#996
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/996
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0446] Expand docs and examples for "配额管理显示不正常。" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#995
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/995
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0447] Add QA scenarios for "使用oh my opencode的时候subagent调用不积极" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#992
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/992
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0448] Refactor implementation behind "A tool for AmpCode agent to turn on off free mode to enjoy Oracle, Websearch by free credits without seeing ads to much" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#990
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/990
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0449] Ensure rollout safety for "`tool_use` ids were found without `tool_result` blocks immediately" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#989
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/989
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0450] Standardize metadata and naming conventions touched by "Codex callback URL仅显示:http://localhost:1455/success" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#988
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/988
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0451] Follow up on "【建议】在CPA webui中实现禁用某个特定的凭证" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#987
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/987
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0452] Harden "New OpenAI API: /responses/compact" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#986
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/986
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0453] Operationalize "Bug Report: OAuth Login Failure on Windows due to Port 51121 Conflict" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#985
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/985
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0454] Convert "Claude model reports wrong/unknown model when accessed via API (Claude Code OAuth)" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#984
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/984
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0455] Add DX polish around "400 Error: Unsupported max_tokens Parameter When Using OpenAI Base URL" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#983
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/983
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0456] Port relevant thegent-managed flow implied by "[建议]Codex渠道将System角色映射为Developer角色" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#982
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/982
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0457] Add QA scenarios for "No Image Generation Models Available After Gemini CLI Setup" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#978
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/978
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0458] Refactor implementation behind "When using the amp cli with gemini 3 pro, after thinking, nothing happens" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#977
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/977
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0459] Create/refresh provider quickstart derived from "GPT5.2模型异常报错 auth_unavailable: no auth available" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#976
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/976
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0460] Define non-subprocess integration path related to "fill-first strategy does not take effect (all accounts remain at 99%)" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#974
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/974
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0461] Follow up on "Auth files permanently deleted from S3 on service restart due to race condition" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#973
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/973
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0462] Harden "feat: Enhanced Request Logging with Metadata and Management API for Observability" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#972
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/972
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0463] Operationalize "Antigravity with opus 4,5 keeps giving rate limits error for no reason." with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#970
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/970
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0464] Add process-compose/HMR refresh workflow tied to "exhausted没被重试or跳过,被传下来了" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#968
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/968
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0465] Add DX polish around "初次运行运行.exe文件报错" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#966
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/966
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0466] Expand docs and examples for "登陆后白屏" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#965
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/965
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0467] Add QA scenarios for "版本:6.6.98 症状:登录成功后白屏,React Error #300 复现:登录后立即崩溃白屏" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#964
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/964
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0468] Refactor implementation behind "反重力反代在opencode不支持,问话回答一下就断" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#962
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/962
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0469] Ensure rollout safety for "Antigravity using Flash 2.0 Model for Sonet" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#960
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/960
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0470] Standardize metadata and naming conventions touched by "建议优化轮询逻辑,同一账号额度用完刷新后作为第二优先级轮询" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#959
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/959
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0471] Follow up on "macOS的webui无法登录" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#957
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/957
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0472] Harden "【bug】三方兼容open ai接口 测试会报这个,如何解决呢?" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#956
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/956
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0473] Operationalize "[Feature] Allow define log filepath in config" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#954
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/954
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0474] Convert "[建议]希望OpenAI 兼容提供商支持启用停用功能" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#953
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/953
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0475] Port relevant thegent-managed flow implied by "Reasoning field missing for gpt-5.1-codex-max at xhigh reasoning level (while gpt-5.2-codex works as expected)" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#952
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/952
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0476] Create/refresh provider quickstart derived from "[Bug]反代 Antigravity 使用Claude Code 时,特定请求持续无响应导致 504 Gateway Timeout" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#951
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/951
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0477] Add QA scenarios for "README has been replaced by the one from CLIProxyAPIPlus" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#950
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/950
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0478] Refactor implementation behind "Internal Server Error: {"error":{"message":"auth_unavailable: no auth available"... (click to expand) [retrying in 8s attempt #4]" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#949
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/949
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0479] Ensure rollout safety for "[BUG] Multi-part Gemini response loses content - only last part preserved in OpenAI translation" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#948
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/948
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0480] Standardize metadata and naming conventions touched by "内存占用太高,用了1.5g" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#944
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/944
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0481] Follow up on "接入openroute成功,但是下游使用异常" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#942
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/942
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0482] Harden "fix: use original request JSON for echoed fields in OpenAI Responses translator" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#941
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/941
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0483] Define non-subprocess integration path related to "现有指令会让 Gemini 产生误解,无法真正忽略前置系统提示" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#940
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/940
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0484] Convert "[Feature Request] Support Priority Failover Strategy (Priority Queue) Instead of all Round-Robin" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#937
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/937
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0485] Add DX polish around "[Feature Request] Support multiple aliases for a single model name in oauth-model-mappings" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#936
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/936
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0486] Expand docs and examples for "新手登陆认证问题" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#934
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/934
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0487] Add QA scenarios for "能不能支持UA伪装?" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#933
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/933
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0488] Refactor implementation behind "[features request] 恳请CPA团队能否增加KIRO的反代模式?Could you add a reverse proxy api to KIRO?" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#932
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/932
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0489] Ensure rollout safety for "Gemini 3 Pro cannot perform native tool calls in Roo Code" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#931
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/931
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0490] Standardize metadata and naming conventions touched by "Qwen OAuth Request Error" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#930
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/930
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0491] Follow up on "无法在 api 代理中使用 Anthropic 模型,报错 429" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#929
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/929
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0492] Harden "[Bug] 400 error on Claude Code internal requests when thinking is enabled - assistant message missing thinking block" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#928
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/928
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0493] Create/refresh provider quickstart derived from "配置自定义提供商的时候怎么给相同的baseurl一次配置多个API Token呢?" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#927
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/927
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0494] Port relevant thegent-managed flow implied by "同一个chatgpt账号加入了多个工作空间,同时个人账户也有gptplus,他们的codex认证文件在cliproxyapi不能同时使用" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#926
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/926
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0495] Add DX polish around "iFlow 登录失败" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#923
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/923
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0496] Expand docs and examples for "希望能自定义系统提示,比如自定义前缀" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#922
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/922
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0497] Add QA scenarios for "Help for setting mistral" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#920
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/920
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0498] Refactor implementation behind "能不能添加功能,禁用某些配置文件" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#919
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/919
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0499] Ensure rollout safety for "How to run this?" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#917
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/917
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0500] Standardize metadata and naming conventions touched by "API密钥→特定配额文件" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#915
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/915
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0501] Follow up on "增加支持Gemini API v1版本" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#914
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/914
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0502] Harden "error on claude code" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#913
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/913
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0503] Operationalize "反重力Claude修好后,大香蕉不行了" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#912
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/912
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0504] Convert "看到有人发了一个更短的提示词" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#911
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/911
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0505] Add DX polish around "Antigravity models return 429 RESOURCE_EXHAUSTED via cURL, but Antigravity IDE still works (started ~18:00 GMT+7)" through improved command ergonomics and faster feedback loops.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#910
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/910
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0506] Define non-subprocess integration path related to "gemini3p报429,其他的都好好的" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#908
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/908
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0507] Add QA scenarios for "[BUG] 403 You are currently configured to use a Google Cloud Project but lack a Gemini Code Assist license" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#907
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/907
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0508] Refactor implementation behind "新版本运行闪退" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#906
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/906
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0509] Ensure rollout safety for "更新到最新版本后,自定义 System Prompt 无效" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#905
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/905
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0510] Create/refresh provider quickstart derived from "⎿ 429 {"error":{"code":"model_cooldown","message":"All credentials for model gemini-claude-opus-4-5-thinking are cooling down via provider antigravity","model":"gemini-claude-opus-4-5-thinking","provider":"antigravity","reset_seconds" including setup, auth, model select, and sanity-check commands.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#904
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/904
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0511] Follow up on "有人遇到相同问题么?Resource has been exhausted (e.g. check quota)" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#903
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/903
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0512] Harden "auth_unavailable: no auth available" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#902
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/902
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0513] Port relevant thegent-managed flow implied by "OpenAI Codex returns 400: Unsupported parameter: prompt_cache_retention" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#897
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/897
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0514] Convert "[feat]自动优化Antigravity的quota刷新时间选项" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#895
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/895
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0515] Add DX polish around "Apply Routing Strategy also to Auth Files" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#893
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/893
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0516] Expand docs and examples for "支持包含模型配置" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#892
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/892
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0517] Add QA scenarios for "Cursor subscription support" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#891
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/891
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0518] Refactor implementation behind "增加qodercli" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#889
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/889
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0519] Ensure rollout safety for "[Bug] Codex auth file overwritten when account has both Plus and Team plans" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#887
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/887
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0520] Standardize metadata and naming conventions touched by "新版本有超时Bug,切换回老版本没问题" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#886
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/886
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0521] Follow up on "can not work with mcp:ncp on antigravity auth" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#885
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/885
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0522] Add process-compose/HMR refresh workflow tied to "Gemini Cli Oauth 认证失败" so local config and runtime can be reloaded deterministically.
+- Priority: P1
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#884
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/884
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0523] Operationalize "Claude Code Web Search doesn’t work" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: testing-and-quality
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#883
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/883
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0524] Convert "fix(antigravity): Streaming finish_reason 'tool_calls' overwritten by 'stop' - breaks Claude Code tool detection" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#876
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/876
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0525] Add DX polish around "同时使用GPT账号个人空间和团队空间" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#875
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/875
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0526] Expand docs and examples for "antigravity and gemini cli duplicated model names" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#873
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/873
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0527] Create/refresh provider quickstart derived from "supports stakpak.dev" including setup, auth, model select, and sanity-check commands.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#872
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/872
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0528] Refactor implementation behind "gemini 模型 tool_calls 问题" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#866
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/866
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0529] Define non-subprocess integration path related to "谷歌授权登录成功,但是额度刷新失败" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#864
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/864
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0530] Standardize metadata and naming conventions touched by "使用统计 每次重启服务就没了,能否重启不丢失,使用手动的方式去清理统计数据" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#863
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/863
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0531] Follow up on "代理 iflow 模型服务的时候频繁出现重复调用同一个请求的情况。一直循环" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#856
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/856
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0532] Port relevant thegent-managed flow implied by "请增加对kiro的支持" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#855
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/855
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0533] Operationalize "Reqest for supporting github copilot" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#854
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/854
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0534] Convert "请添加iflow最新模型iFlow-ROME-30BA3B" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#853
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/853
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0535] Add DX polish around "[Bug] Infinite hanging and quota surge with gemini-claude-opus-4-5-thinking in Claude Code" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#852
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/852
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0536] Expand docs and examples for "Would the consumption be greater in Claude Code?" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#848
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/848
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0537] Add QA scenarios for "功能请求:为 OAuth 账户添加独立代理配置支持" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#847
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/847
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0538] Refactor implementation behind "Promt caching" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#845
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/845
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0539] Ensure rollout safety for "Feature Request: API for fetching Quota stats (remaining, renew time, etc)" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#844
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/844
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0540] Standardize metadata and naming conventions touched by "使用antigravity转为API在claude code中使用不支持web search" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#842
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/842
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0541] Follow up on "[Bug] Antigravity countTokens ignores tools field - always returns content-only token count" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#840
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/840
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0542] Harden "Image Generation 504 Timeout Investigation" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#839
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/839
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0543] Operationalize "[Feature Request] Schedule automated requests to AI models" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#838
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/838
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0544] Create/refresh provider quickstart derived from ""Feature Request: Android Binary Support (Termux Build Guide)"" including setup, auth, model select, and sanity-check commands.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#836
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/836
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0545] Add DX polish around "[Bug] Antigravity token refresh loop caused by metadataEqualIgnoringTimestamps skipping critical field updates" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#833
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/833
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0546] Expand docs and examples for "mac使用brew安装的cpa,请问配置文件在哪?" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#831
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/831
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0547] Add QA scenarios for "Feature request" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: testing-and-quality
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#828
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/828
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0548] Refactor implementation behind "长时间运行后会出现`internal_server_error`" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#827
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/827
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0549] Ensure rollout safety for "windows环境下,认证文件显示重复的BUG" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#822
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/822
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0550] Standardize metadata and naming conventions touched by "[FQ]增加telegram bot集成和更多管理API命令刷新Providers周期额度" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#820
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/820
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0551] Port relevant thegent-managed flow implied by "[Feature] 能否增加/v1/embeddings 端点" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#818
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/818
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0552] Define non-subprocess integration path related to "模型带前缀并开启force_model_prefix后,以gemini格式获取模型列表中没有带前缀的模型" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#816
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/816
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0553] Operationalize "iFlow account error show on terminal" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#815
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/815
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0554] Convert "代理的codex 404" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#812
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/812
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0555] Add DX polish around "Set up Apprise on TrueNAS for notifications" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#808
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/808
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0556] Expand docs and examples for "Request for maintenance team intervention: Changes in internal/translator needed" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#806
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/806
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0557] Add QA scenarios for "feat(translator): integrate SanitizeFunctionName across Claude translators" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#804
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/804
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0558] Refactor implementation behind "win10无法安装没反应,cmd安装提示,failed to read config file" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#801
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/801
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0559] Ensure rollout safety for "在cherry-studio中的流失响应似乎未生效" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#798
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/798
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0560] Standardize metadata and naming conventions touched by "Bug: ModelStates (BackoffLevel) lost when auth is reloaded or refreshed" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#797
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/797
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0561] Create/refresh provider quickstart derived from "[Bug] Stream usage data is merged with finish_reason: "stop", causing Letta AI to crash (OpenAI Stream Options incompatibility)" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#796
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/796
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0562] Harden "[BUG] Codex 默认回调端口 1455 位于 Hyper-v 保留端口段内" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#793
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/793
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0563] Operationalize "【Bug】: High CPU usage when managing 50+ OAuth accounts" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#792
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/792
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0564] Convert "使用上游提供的 Gemini API 和 URL 获取到的模型名称不对应" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#791
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/791
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0565] Add DX polish around "当在codex exec 中使用gemini 或claude 模型时 codex 无输出结果" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#790
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/790
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0566] Expand docs and examples for "Brew 版本更新延迟,能否在 github Actions 自动增加更新 brew 版本?" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#789
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/789
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0567] Add QA scenarios for "[Bug]: Gemini Models Output Truncated - Database Schema Exceeds Maximum Allowed Tokens (140k+ chars) in Claude Code" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#788
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/788
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0568] Refactor implementation behind "可否增加一个轮询方式的设置,某一个账户额度用尽时再使用下一个" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#784
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/784
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0569] Ensure rollout safety for "[功能请求] 新增联网gemini 联网模型" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#779
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/779
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0570] Port relevant thegent-managed flow implied by "Support for parallel requests" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#778
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/778
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0571] Follow up on "当认证账户消耗完之后,不会自动切换到 AI 提供商账户" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#777
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/777
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0572] Harden "[功能请求] 假流式和非流式防超时" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#775
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/775
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0573] Operationalize "[功能请求]可否增加 google genai 的兼容" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#771
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/771
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0574] Convert "反重力账号额度同时消耗" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#768
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/768
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0575] Define non-subprocess integration path related to "iflow模型排除无效" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#762
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/762
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0576] Expand docs and examples for "support proxy for opencode" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#753
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/753
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0577] Add QA scenarios for "[BUG] thinking/思考链在 antigravity 反代下被截断/丢失(stream 分块处理过严)" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#752
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/752
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0578] Create/refresh provider quickstart derived from "api-keys 필드에 placeholder 값이 있으면 invalid api key 에러 발생" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#751
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/751
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0579] Ensure rollout safety for "[Bug]Fix `invalid_request_error` (Field required) when assistant message has empty content with tool_calls" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#749
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/749
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0580] Add process-compose/HMR refresh workflow tied to "建议增加 kiro CLI" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#748
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/748
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0581] Follow up on "[Bug] Streaming response 'message_start' event missing token counts (affects OpenCode/Vercel AI SDK)" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#747
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/747
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0582] Harden "[Bug] Invalid request error when using thinking with multi-turn conversations" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#746
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/746
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0583] Operationalize "Add output_tokens_details.reasoning_tokens for thinking models on /v1/messages" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#744
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/744
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0584] Convert "qwen-code-plus not supoort guided-json Structured Output" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#743
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/743
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0585] Add DX polish around "Bash tool too slow" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#742
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/742
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0586] Expand docs and examples for "反代Antigravity,CC读图的时候似乎会触发bug?明明现在上下文还有很多,但是提示要compact了" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#741
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/741
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0587] Add QA scenarios for "Claude Code CLI's status line shows zero tokens" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#740
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/740
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0588] Refactor implementation behind "Tool calls not emitted after thinking blocks" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#739
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/739
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0589] Port relevant thegent-managed flow implied by "Pass through actual Anthropic token counts instead of estimating" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#738
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/738
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0590] Standardize metadata and naming conventions touched by "多渠道同一模型映射成一个显示" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#737
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/737
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0591] Follow up on "Feature Request: Complete OpenAI Tool Calling Format Support for Claude Models (Cursor MCP Compatibility)" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#735
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/735
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0592] Harden "Bug: /v1/responses endpoint does not correctly convert message format for Anthropic API" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#736
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/736
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0593] Operationalize "请问有计划支持显示目前剩余额度吗" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#734
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/734
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0594] Convert "reasoning_content is null for extended thinking models (thinking goes to content instead)" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#732
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/732
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0595] Create/refresh provider quickstart derived from "Use actual Anthropic token counts instead of estimation for reasoning_tokens" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#731
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/731
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0596] Expand docs and examples for "400 error: messages.X.content.0.text.text: Field required" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#730
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/730
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0597] Add QA scenarios for "[BUG] Antigravity Opus + Codex cannot read images" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#729
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/729
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0598] Define non-subprocess integration path related to "[Feature] Usage Statistics Persistence to JSON File - PR Proposal" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#726
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/726
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0599] Ensure rollout safety for "反代的Antigravity的claude模型在opencode cli需要增强适配" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#725
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/725
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0600] Standardize metadata and naming conventions touched by "iflow日志提示:当前找我聊的人太多了,可以晚点再来问我哦。" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#724
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/724
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0601] Follow up on "怎么加入多个反重力账号?" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#723
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/723
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0602] Harden "最新的版本无法构建成镜像" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P3
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#721
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/721
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0603] Operationalize "API Error: 400" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#719
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/719
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0604] Convert "是否可以支持/openai/v1/responses端点" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#718
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/718
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0605] Add DX polish around "证书是否可以停用而非删除" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#717
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/717
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0606] Expand docs and examples for "thinking.cache_control error" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#714
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/714
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0607] Add QA scenarios for "Feature: able to show the remaining quota of antigravity and gemini cli" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#713
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/713
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0608] Port relevant thegent-managed flow implied by "/context show system tools 1 tokens, mcp tools 4 tokens" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P3
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#712
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/712
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0609] Add process-compose/HMR refresh workflow tied to "报错:failed to download management asset" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#711
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/711
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0610] Standardize metadata and naming conventions touched by "iFlow models don't work in CC anymore" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#710
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/710
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0611] Follow up on "claude code 的指令/cotnext 裡token 計算不正確" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#709
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/709
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0612] Create/refresh provider quickstart derived from "Behavior is not consistent with codex" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#708
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/708
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0613] Operationalize "iflow cli更新 GLM4.7 & MiniMax M2.1 模型" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#707
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/707
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0614] Convert "Antigravity provider returns 400 error when extended thinking is enabled after tool calls" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#702
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/702
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0615] Add DX polish around "iflow-cli上线glm4.7和m2.1" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#701
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/701
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0616] Expand docs and examples for "[功能请求] 支持使用 Vertex AI的API Key 模式调用" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#699
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/699
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0617] Add QA scenarios for "是否可以提供kiro的支持啊" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#698
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/698
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0618] Refactor implementation behind "6.6.49版本下Antigravity渠道的claude模型使用claude code缓存疑似失效" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#696
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/696
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0619] Ensure rollout safety for "Translator: support first-class system prompt override for codex" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#694
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/694
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0620] Standardize metadata and naming conventions touched by "Add efficient scalar operations API (mul_scalar, add_scalar, etc.)" across both repos.
+- Priority: P3
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#691
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/691
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0621] Define non-subprocess integration path related to "[功能请求] 能不能给每个号单独配置代理?" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#690
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/690
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0622] Harden "[Feature request] Add support for checking remaining Antigravity quota" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#687
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/687
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0623] Operationalize "Feature Request: Priority-based Auth Selection for Specific Models" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#685
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/685
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0624] Convert "Update Gemini 3 model names: remove -preview suffix for gemini-3-pro and gemini-3-flash" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#683
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/683
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0625] Add DX polish around "Frequent Tool-Call Failures with Gemini-2.5-pro in OpenAI-Compatible Mode" through improved command ergonomics and faster feedback loops.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#682
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/682
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0626] Expand docs and examples for "Feature: Persist stats to disk (Docker-friendly) instead of in-memory only" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#681
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/681
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0627] Port relevant thegent-managed flow implied by "Support developer role" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#680
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/680
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0628] Refactor implementation behind "[Bug] Token counting endpoint /v1/messages/count_tokens significantly undercounts tokens" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#679
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/679
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0629] Create/refresh provider quickstart derived from "[Feature] Automatic Censoring Logs" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#678
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/678
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0630] Standardize metadata and naming conventions touched by "Translator: remove Copilot mention in OpenAI->Claude stream comment" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#677
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/677
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0631] Follow up on "iflow渠道凭证报错" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#669
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/669
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0632] Harden "[Feature Request] Add timeout configuration" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#668
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/668
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0633] Operationalize "Support Trae" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#666
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/666
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0634] Convert "Filter OTLP telemetry from Amp VS Code hitting /api/otel/v1/metrics" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#660
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/660
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0635] Add DX polish around "Handle OpenAI Responses-format payloads hitting /v1/chat/completions" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#659
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/659
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0636] Expand docs and examples for "[Feature Request] Support reverse proxy for 'mimo' to enable Codex CLI usage" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#656
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/656
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0637] Add QA scenarios for "[Bug] Gemini API Error: 'defer_loading' field in function declarations results in 400 Invalid JSON payload" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#655
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/655
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0638] Add process-compose/HMR refresh workflow tied to "System message (role: "system") completely dropped when converting to Antigravity API format" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#654
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/654
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0639] Ensure rollout safety for "Antigravity Provider Broken" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#650
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/650
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0640] Standardize metadata and naming conventions touched by "希望能支持 GitHub Copilot" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#649
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/649
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0641] Follow up on "Request Wrap Cursor to use models as proxy" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#648
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/648
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0642] Harden "[BUG] calude chrome中使用 antigravity模型 tool call错误" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#642
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/642
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0643] Operationalize "get error when tools call in jetbrains ai assistant with openai BYOK" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#639
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/639
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0644] Define non-subprocess integration path related to "[Bug] OAuth tokens have insufficient scopes for Gemini/Antigravity API - 401 "Invalid API key"" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P1
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#637
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/637
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0645] Add DX polish around "Large prompt failures w/ Claude Code vs Codex routes (gpt-5.2): cloudcode 'Prompt is too long' + codex SSE missing response.completed" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#636
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/636
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0646] Create/refresh provider quickstart derived from "Spam about server clients and configuration updated" including setup, auth, model select, and sanity-check commands.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#635
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/635
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0647] Add QA scenarios for "Payload thinking overrides break requests with tool_choice (handoff fails)" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#630
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/630
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0648] Refactor implementation behind "我无法使用gpt5.2max而其他正常" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#629
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/629
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0649] Ensure rollout safety for "[Feature Request] Add support for AWS Bedrock API" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#626
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/626
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0650] Standardize metadata and naming conventions touched by "[Question] Mapping different keys to different accounts for same provider" across both repos.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#625
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/625
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0651] Follow up on ""Requested entity was not found" for Gemini 3" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#620
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/620
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0652] Harden "[Feature Request] Set hard limits for CLIProxyAPI API Keys" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#617
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/617
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0653] Operationalize "Management routes (threads, user, auth) fail with 401/402 because proxy strips client auth and injects provider-only credentials" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#614
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/614
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0654] Convert "Amp client fails with "unexpected EOF" when creating large files, while OpenAI-compatible clients succeed" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#613
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/613
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0655] Add DX polish around "Request support for codebuff access." through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#612
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/612
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0656] Expand docs and examples for "SDK Internal Package Dependency Issue" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#607
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/607
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0657] Add QA scenarios for "Can't use Oracle tool in AMP Code" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#606
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/606
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0658] Refactor implementation behind "Openai 5.2 Codex is launched" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: testing-and-quality
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#603
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/603
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0659] Ensure rollout safety for "Failing to do tool use from within Cursor" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#601
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/601
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0660] Standardize metadata and naming conventions touched by "[Bug] gpt-5.1-codex models return 400 error (no body) while other OpenAI models succeed" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#600
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/600
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0661] Follow up on "调用deepseek-chat报错" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#599
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/599
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0662] Harden "" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#595
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/595
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0663] Create/refresh provider quickstart derived from "不能通过回调链接认证吗" including setup, auth, model select, and sanity-check commands.
+- Priority: P3
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#594
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/594
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0664] Convert "bug: Streaming not working for Gemini 3 models (Flash/Pro Preview) via Gemini CLI/Antigravity" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#593
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/593
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0665] Port relevant thegent-managed flow implied by "[Bug] Antigravity prompt caching broken by random sessionId per request" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P3
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#592
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/592
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0666] Expand docs and examples for "Important Security & Integrity Alert regarding @Eric Tech" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#591
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/591
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0667] Define non-subprocess integration path related to "[Bug] Models from Codex (openai) are not accessible when Copilot is added" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#590
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/590
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0668] Refactor implementation behind "[Feature request] Add an enable switch for OpenAI-compatible providers and add model alias for antigravity" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#588
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/588
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0669] Ensure rollout safety for "[Bug] Gemini API rejects "optional" field in tool parameters" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#583
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/583
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0670] Standardize metadata and naming conventions touched by "github copilot problem" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#578
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/578
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0671] Follow up on "amp使用时日志频繁出现下面报错" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#576
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/576
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0672] Harden "Github Copilot Error" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#574
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/574
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0673] Operationalize "Cursor support" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#573
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/573
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0674] Convert "Qwen CLI often stops working before finishing the task" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#567
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/567
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0675] Add DX polish around "gemini cli接入后,可以正常调用所属大模型;Antigravity通过OAuth成功认证接入后,无法调用所属的模型" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#566
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/566
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0676] Expand docs and examples for "Model ignores tool response and keeps repeating tool calls (Gemini 3 Pro / 2.5 Pro)" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#565
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/565
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0677] Add QA scenarios for "fix(translator): emit message_start on first chunk regardless of role field" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#563
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/563
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0678] Refactor implementation behind "Bug: OpenAI→Anthropic streaming translation fails with tool calls - missing message_start" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#561
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/561
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0679] Ensure rollout safety for "stackTrace.format error in error response handling" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#559
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/559
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0680] Create/refresh provider quickstart derived from "docker运行的容器最近几个版本不会自动下载management.html了" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#557
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/557
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0681] Follow up on "Bug: AmpCode login routes incorrectly require API key authentication since v6.6.15" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#554
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/554
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0682] Harden "Github Copilot" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#551
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/551
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0683] Operationalize "Gemini3配置了thinkingConfig无效,模型调用名称被改为了gemini-3-pro-high" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#550
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/550
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0684] Port relevant thegent-managed flow implied by "Antigravity has no gemini-2.5-pro" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P3
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#548
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/548
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0685] Add DX polish around "Add General Request Queue with Windowed Concurrency for Reliable Pseudo-Concurrent Execution" through improved command ergonomics and faster feedback loops.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#546
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/546
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0686] Expand docs and examples for "The token file was not generated." with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#544
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/544
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0687] Add QA scenarios for "Suggestion: Retain statistics after each update." including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#541
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/541
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0688] Refactor implementation behind "Bug: Codex→Claude SSE content_block.index collisions break Claude clients" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#539
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/539
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0689] Ensure rollout safety for "[Feature Request] Add logs rotation" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#535
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/535
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0690] Define non-subprocess integration path related to "[Bug] AI Studio 渠道流式响应 JSON 格式异常导致客户端解析失败" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#534
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/534
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0691] Follow up on "Feature: Add copilot-unlimited-mode config for copilot-api compatibility" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#532
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/532
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0692] Harden "Bug: content_block_start sent before message_start in OpenAI→Anthropic translation" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#530
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/530
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0693] Operationalize "CLIProxyAPI,通过gemini cli来实现对gemini-2.5-pro的调用,如果遇到输出长度在上万字的情况,总是遇到429错误" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#518
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/518
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0694] Convert "Antigravity Error 400" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#517
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/517
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0695] Add DX polish around "Add AiStudio error" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#513
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/513
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0696] Add process-compose/HMR refresh workflow tied to "Claude Code with Antigravity gemini-claude-sonnet-4-5-thinking error: Extra inputs are not permitted" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#512
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/512
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0697] Create/refresh provider quickstart derived from "Claude code results in errors with "poor internet connection"" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#510
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/510
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0698] Refactor implementation behind "[Feature Request] Global Alias" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#509
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/509
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0699] Ensure rollout safety for "GET /v1/models does not expose model capabilities (e.g. gpt-5.2 supports (xhigh) but cannot be discovered)" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#508
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/508
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0700] Standardize metadata and naming conventions touched by "[Bug] Load balancing is uneven: Requests are not distributed equally among available accounts" across both repos.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#506
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/506
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0701] Follow up on "openai兼容错误使用“alias”作为模型id请求" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#503
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/503
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0702] Harden "bug: antigravity oauth callback fails on windows due to hard-coded port 51121" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#499
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/499
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0703] Port relevant thegent-managed flow implied by "unexpected `tool_use_id` found in `tool_result` blocks" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#497
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/497
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0704] Convert "gpt5.2 cherry 报错" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#496
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/496
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0705] Add DX polish around "antigravity中反代的接口在claude code中无法使用thinking模式" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#495
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/495
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0706] Expand docs and examples for "Add support for gpt-5,2" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#493
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/493
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0707] Add QA scenarios for "OAI models not working." including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#492
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/492
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0708] Refactor implementation behind "Did the API change?" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#491
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/491
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0709] Ensure rollout safety for "5.2 missing. no automatic model discovery" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#490
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/490
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0710] Standardize metadata and naming conventions touched by "Tool calling fails when using Claude Opus 4.5 Thinking (AntiGravity) model via Zed Agent" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#489
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/489
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0711] Follow up on "Issue with enabling logs in Mac settings." by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#484
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/484
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0712] Harden "How to configure thinking for Claude and Codex?" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#483
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/483
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0713] Define non-subprocess integration path related to "gpt-5-codex-(low,medium,high) models not listed anymore" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#482
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/482
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0714] Create/refresh provider quickstart derived from "CLIProxyAPI配置 Gemini CLI最后一步失败:Google账号权限设置不够" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#480
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/480
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0715] Add DX polish around "Files and images not working with Antigravity" through improved command ergonomics and faster feedback loops.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#478
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/478
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0716] Expand docs and examples for "antigravity渠道的claude模型在claude code中无法使用explore工具" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#477
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/477
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0717] Add QA scenarios for "Error with Antigravity" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#476
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/476
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0718] Refactor implementation behind "fix(translator): skip empty functionResponse in OpenAI-to-Antigravity path" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#475
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/475
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0719] Ensure rollout safety for "Antigravity API reports API Error: 400 with Claude Code" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#472
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/472
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0720] Standardize metadata and naming conventions touched by "fix(translator): preserve tool_use blocks on args parse failure" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#471
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/471
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0721] Follow up on "Antigravity API reports API Error: 400 with Claude Code" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#463
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/463
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0722] Port relevant thegent-managed flow implied by "支持一下https://gemini.google.com/app" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#462
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/462
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0723] Operationalize "Streaming fails for "preview" and "thinking" models (response is buffered)" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#460
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/460
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0724] Convert "failed to unmarshal function response: invalid character 'm' looking for beginning of value on droid" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#451
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/451
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0725] Add process-compose/HMR refresh workflow tied to "iFlow Cookie 登录流程BUG" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#445
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/445
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0726] Expand docs and examples for "[Suggestion] Add ingress rate limiting and 403 circuit breaker for /v1/messages" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#443
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/443
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0727] Add QA scenarios for "AGY Claude models" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#442
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/442
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0728] Refactor implementation behind "【BUG】Infinite loop on startup if an auth file is removed (Windows)" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#440
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/440
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0729] Ensure rollout safety for "can I use models of droid in Claude Code?" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#438
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/438
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0730] Standardize metadata and naming conventions touched by "`[Bug/Question]: Antigravity models looping in Plan Mode & 400 Invalid Argument errors`" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#437
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/437
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0731] Create/refresh provider quickstart derived from "[Bug] 400 Invalid Argument: 'thinking' block missing in ConvertClaudeRequestToAntigravity" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#436
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/436
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0732] Harden "gemini等模型没有按openai api的格式返回呀" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#433
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/433
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0733] Operationalize "[Feature Request] Persistent Storage for Usage Statistics" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#431
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/431
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0734] Convert "Antigravity Claude *-thinking + tools only stream reasoning (no assistant content/tool_calls) via OpenAI-compatible API" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#425
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/425
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0735] Add DX polish around "Antigravity Claude by Claude Code `max_tokens` must be greater than `thinking.budget_tokens`" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#424
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/424
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0736] Define non-subprocess integration path related to "Antigravity: Permission denied on resource project [projectID]" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#421
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/421
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0737] Add QA scenarios for "Extended thinking blocks not preserved during tool use, causing API rejection" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#420
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/420
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0738] Refactor implementation behind "Antigravity Claude via CLIProxyAPI: browsing enabled in Cherry but no actual web requests" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#419
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/419
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0739] Ensure rollout safety for "OpenAI Compatibility with OpenRouter results in invalid JSON response despite 200 OK" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#417
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/417
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0740] Standardize metadata and naming conventions touched by "Bug: Claude proxy models fail with tools - `tools.0.custom.input_schema: Field required`" across both repos.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#415
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/415
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0741] Port relevant thegent-managed flow implied by "Gemini-CLI,gemini-2.5-pro调用触发限流之后(You have exhausted your capacity on this model. Your quota will reset after 51s.),会自动切换请求gemini-2.5-pro-preview-06-05,但是这个模型貌似已经不存在了" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#414
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/414
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0742] Harden "invalid_request_error","message":"`max_tokens` must be greater than `thinking.budget_tokens`." with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#413
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/413
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0743] Operationalize "Which CLIs that support Antigravity?" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#412
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/412
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0744] Convert "[Feature Request] Dynamic Model Mapping & Custom Parameter Injection (e.g., iflow /tab)" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#411
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/411
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0745] Add DX polish around "iflow使用谷歌登录后,填入cookie无法正常使用" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#408
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/408
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0746] Expand docs and examples for "Antigravity not working" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#407
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/407
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0747] Add QA scenarios for "大佬能不能出个zeabur部署的教程" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#403
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/403
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0748] Create/refresh provider quickstart derived from "Gemini responses contain non-standard OpenAI fields causing parser failures" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#400
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/400
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0749] Ensure rollout safety for "HTTP Proxy Not Effective: Token Unobtainable After Google Account Authentication Success" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#397
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/397
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0750] Standardize metadata and naming conventions touched by "antigravity认证难以成功" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#396
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/396
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0751] Follow up on "Could I use gemini-3-pro-preview by gmini cli?" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#391
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/391
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0752] Harden "Ports Reserved By Windows Hyper-V" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#387
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/387
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0753] Operationalize "Image gen not supported/enabled for gemini-3-pro-image-preview?" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#374
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/374
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0754] Add process-compose/HMR refresh workflow tied to "Is it possible to support gemini native api for file upload?" so local config and runtime can be reloaded deterministically.
+- Priority: P3
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#373
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/373
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0755] Add DX polish around "Web Search tool not working in AMP with cliproxyapi" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#370
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/370
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0756] Expand docs and examples for "1006怎么处理" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#369
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/369
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0757] Add QA scenarios for "能否为kiro oauth提供支持?(附实现项目链接)" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#368
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/368
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0758] Refactor implementation behind "antigravity 无法配置?" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#367
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/367
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0759] Define non-subprocess integration path related to "Frequent 500 auth_unavailable and Codex CLI models disappearing from /v1/models" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P1
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#365
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/365
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0760] Port relevant thegent-managed flow implied by "Web Search tool not functioning in Claude Code" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#364
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/364
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0761] Follow up on "claude code Auto compact not triggered even after reaching autocompact buffer threshold" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#363
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/363
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0762] Harden "[Feature] 增加gemini business账号支持" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#361
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/361
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0763] Operationalize "[Bug] Codex Reasponses Sometimes Omit Reasoning Tokens" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#356
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/356
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0764] Convert "[Bug] Codex Max Does Not Utilize XHigh Reasoning Effort" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#354
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/354
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0765] Create/refresh provider quickstart derived from "[Bug] Gemini 3 Does Not Utilize Reasoning Effort" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#353
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/353
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0766] Expand docs and examples for "API for iflow-cli is not work anymore: iflow executor: token refresh failed: iflow token: missing access token in response" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#352
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/352
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0767] Add QA scenarios for "[Bug] Antigravity/Claude Code: "tools.0.custom.input_schema: Field required" error on all antigravity models" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#351
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/351
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0768] Refactor implementation behind "[Feature Request] Amazonq Support" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#350
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/350
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0769] Ensure rollout safety for "Feature: Add tier-based provider prioritization" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#349
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/349
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0770] Standardize metadata and naming conventions touched by "Gemini 3 Pro + Codex CLI" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#346
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/346
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0771] Follow up on "Add support for anthropic-beta header for Claude thinking models with tool use" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#344
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/344
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0772] Harden "Anitigravity models are not working in opencode cli, has serveral bugs" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#342
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/342
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0773] Operationalize "[Bug] Antigravity 渠道使用原生 Gemini 格式:模型列表缺失及 gemini-3-pro-preview 联网搜索不可用" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#341
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/341
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0774] Convert "checkSystemInstructions adds cache_control block causing 'maximum of 4 blocks' error" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#339
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/339
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0775] Add DX polish around "OpenAI and Gemini API: thinking/chain-of-thought broken or 400 error (max_tokens vs thinking.budget_tokens) for thinking models" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#338
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/338
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0776] Expand docs and examples for "[Bug] Commit 52c17f0 breaks OAuth authentication for Anthropic models" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#337
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/337
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0777] Add QA scenarios for "Droid as provider" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#336
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/336
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0778] Refactor implementation behind "Support for JSON schema / structured output" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#335
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/335
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0779] Port relevant thegent-managed flow implied by "gemini-claude-sonnet-4-5-thinking: Chain-of-Thought (thinking) does not work on any API (OpenAI/Gemini/Claude)" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#332
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/332
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0780] Standardize metadata and naming conventions touched by "docker方式部署后,怎么登陆gemini账号呢?" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#328
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/328
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0781] Follow up on "FR: Add support for beta headers for Claude models" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#324
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/324
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0782] Create/refresh provider quickstart derived from "FR: Add Opus 4.5 Support" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#321
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/321
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0783] Add process-compose/HMR refresh workflow tied to "`gemini-3-pro-preview` tool usage failures" so local config and runtime can be reloaded deterministically.
+- Priority: P3
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#320
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/320
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0784] Convert "RooCode compatibility" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#319
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/319
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0785] Add DX polish around "undefined is not an object (evaluating 'T.match')" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#317
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/317
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0786] Expand docs and examples for "Nano Banana" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#316
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/316
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0787] Add QA scenarios for "Feature: 渠道关闭/开启切换按钮、渠道测试按钮、指定渠道模型调用" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#314
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/314
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0788] Refactor implementation behind "Previous request seem to be concatenated into new ones with Antigravity" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#313
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/313
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0789] Ensure rollout safety for "Question: Is the Antigravity provider available and compatible with the sonnet 4.5 Thinking LLM model?" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#311
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/311
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0790] Standardize metadata and naming conventions touched by "cursor with gemini-claude-sonnet-4-5" across both repos.
+- Priority: P3
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#310
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/310
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0791] Follow up on "Gemini not stream thinking result" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#308
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/308
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0792] Harden "[Suggestion] Improve Prompt Caching for Gemini CLI / Antigravity - Don't do round-robin for all every request" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#307
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/307
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0793] Operationalize "docker-compose启动错误" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#305
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/305
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0794] Convert "可以让不同的提供商分别设置代理吗?" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#304
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/304
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0795] Add DX polish around "如果能控制aistudio的认证文件启用就好了" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#302
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/302
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0796] Expand docs and examples for "Dynamic model provider not work" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#301
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/301
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0797] Add QA scenarios for "token无计数" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#300
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/300
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0798] Port relevant thegent-managed flow implied by "cursor with antigravity" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#298
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/298
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0799] Create/refresh provider quickstart derived from "认证未走代理" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#297
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/297
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0800] Standardize metadata and naming conventions touched by "[Feature Request] Add --manual-callback mode for headless/remote OAuth (especially for users behind proxy / Clash TUN in China)" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#295
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/295
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0801] Follow up on "Regression: gemini-3-pro-preview unusable due to removal of 429 retry logic in d50b0f7" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#293
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/293
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0802] Harden "Gemini 3 Pro no response in Roo Code with AI Studio setup" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#291
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/291
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0803] Operationalize "CLIProxyAPI error in huggingface" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#290
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/290
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0804] Convert "Post "https://chatgpt.com/backend-api/codex/responses": Not Found" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#286
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/286
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0805] Define non-subprocess integration path related to "Feature: Add Image Support for Gemini 3" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#283
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/283
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0806] Expand docs and examples for "Bug: Gemini 3 Thinking Budget requires normalization in CLI Translator" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#282
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/282
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0807] Add QA scenarios for "Feature Request: Support for Gemini 3 Pro Preview" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#278
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/278
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0808] Refactor implementation behind "[Suggestion] Improve Prompt Caching - Don't do round-robin for all every request" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#277
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/277
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0809] Ensure rollout safety for "Feature Request: Support Google Antigravity provider" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#273
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/273
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0810] Standardize metadata and naming conventions touched by "Add copilot cli proxy" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#272
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/272
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0811] Follow up on "`gemini-3-pro-preview` is missing" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#271
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/271
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0812] Add process-compose/HMR refresh workflow tied to "Adjust gemini-3-pro-preview`s doc" so local config and runtime can be reloaded deterministically.
+- Priority: P1
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#269
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/269
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0813] Operationalize "Account banned after using CLI Proxy API on VPS" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#266
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/266
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0814] Convert "Bug: config.example.yaml has incorrect auth-dir default, causes auth files to be saved in wrong location" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#265
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/265
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0815] Add DX polish around "Security: Auth directory created with overly permissive 0o755 instead of 0o700" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#264
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/264
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0816] Create/refresh provider quickstart derived from "Gemini CLI Oauth with Claude Code" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#263
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/263
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0817] Port relevant thegent-managed flow implied by "Gemini cli使用不了" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#262
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/262
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0818] Refactor implementation behind "麻烦大佬能不能更进模型id,比如gpt已经更新了小版本5.1了" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#261
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/261
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0819] Ensure rollout safety for "Factory Droid: /compress (session compact) fails on Gemini 2.5 via CLIProxyAPI" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#260
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/260
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0820] Standardize metadata and naming conventions touched by "Feat Request: Support gpt-5-pro" across both repos.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#259
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/259
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0821] Follow up on "gemini oauth in droid cli: unknown provider" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#258
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/258
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0822] Harden "认证文件管理 主动触发同步" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#255
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/255
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0823] Operationalize "Kimi K2 Thinking" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#254
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/254
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0824] Convert "nano banana 水印的能解决?我使用CLIProxyAPI 6.1" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#253
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/253
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0825] Add DX polish around "ai studio 不能用" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#252
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/252
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0826] Expand docs and examples for "Feature: scoped `auto` model (provider + pattern)" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#251
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/251
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0827] Add QA scenarios for "wss 链接失败" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#250
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/250
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0828] Define non-subprocess integration path related to "应该给GPT-5.1添加-none后缀适配以保持一致性" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P3
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#248
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/248
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0829] Ensure rollout safety for "不支持 candidate_count 功能,设置需要多版本回复的时候,只会输出1条" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#247
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/247
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0830] Standardize metadata and naming conventions touched by "gpt-5.1模型添加" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#246
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/246
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0831] Follow up on "cli-proxy-api --gemini-web-auth" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#244
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/244
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0832] Harden "支持为模型设定默认请求参数" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#242
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/242
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0833] Create/refresh provider quickstart derived from "ClawCloud 如何结合NanoBanana 使用?" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#241
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/241
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0834] Convert "gemini cli 无法画图是不是必须要使用低版本了" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#240
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/240
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0835] Add DX polish around "[error] [iflow_executor.go:273] iflow executor: token refresh failed: iflow token: missing access token in response" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#239
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/239
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0836] Port relevant thegent-managed flow implied by "Codex API 配置中Base URL需要加v1嘛?" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#238
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/238
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0837] Add QA scenarios for "Feature Request: Support "auto" Model Selection for Seamless Provider Updates" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#236
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/236
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0838] Refactor implementation behind "AI Studio途径,是否支持imagen图片生成模型?" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#235
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/235
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0839] Ensure rollout safety for "现在对话很容易就结束" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#234
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/234
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0840] Standardize metadata and naming conventions touched by "添加文件时重复添加" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#233
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/233
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0841] Add process-compose/HMR refresh workflow tied to "Feature Request : Token Caching for Codex" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#231
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/231
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0842] Harden "agentrouter problem" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#228
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/228
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0843] Operationalize "[Suggestion] Add suport iFlow CLI MiniMax-M2" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#223
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/223
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0844] Convert "Feature: Prevent infinite loop to allow direct access to Gemini-native features" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#220
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/220
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0845] Add DX polish around "Feature request: Support amazon-q-developer-cli" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#219
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/219
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0846] Expand docs and examples for "Gemini Cli 400 Error" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#218
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/218
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0847] Add QA scenarios for "/v1/responese connection error for version 0.55.0 of codex" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#216
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/216
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0848] Refactor implementation behind "https://huggingface.co/chat" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#212
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/212
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0849] Ensure rollout safety for "Codex trying to read from non-existant Bashes in Claude" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#211
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/211
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0850] Create/refresh provider quickstart derived from "Feature Request: Git-backed Configuration and Token Store for sync" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#210
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/210
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0851] Define non-subprocess integration path related to "CLIProxyAPI中的Gemini cli的图片生成,是不是无法使用了?" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#208
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/208
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0852] Harden "Model gemini-2.5-flash-image not work any more" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#203
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/203
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0853] Operationalize "qwen code和iflow的模型重复了" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#202
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/202
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0854] Convert "docker compose还会继续维护吗" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#201
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/201
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0855] Port relevant thegent-managed flow implied by "Wrong Claude Model Recognized" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#200
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/200
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0856] Expand docs and examples for "Unable to Select Specific Model" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#197
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/197
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0857] Add QA scenarios for "claude code with copilot" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#193
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/193
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0858] Refactor implementation behind "Feature Request: OAuth Aliases & Multiple Aliases" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#192
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/192
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0859] Ensure rollout safety for "[feature request] enable host or bind ip option / 添加 host 配置选项以允许外部网络访问" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#190
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/190
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0860] Standardize metadata and naming conventions touched by "Feature request: Add token cost statistics" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#189
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/189
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0861] Follow up on "internal/translator下的翻译器对外暴露了吗?" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#188
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/188
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0862] Harden "API Key issue" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#181
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/181
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0863] Operationalize "[Request] Add support for Gemini Embeddings (AI Studio API key) and optional multi-key rotation" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#179
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/179
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0864] Convert "希望增加渠道分类" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#178
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/178
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0865] Add DX polish around "gemini-cli `Request Failed: 400` exception" through improved command ergonomics and faster feedback loops.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#176
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/176
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0866] Expand docs and examples for "Possible JSON Marshal issue: Some Chars transformed to unicode while transforming Anthropic request to OpenAI compatible request" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#175
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/175
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0867] Create/refresh provider quickstart derived from "question about subagents:" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#174
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/174
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0868] Refactor implementation behind "MiniMax-M2 API error" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#172
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/172
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0869] Ensure rollout safety for "[feature request] pass model names without defining them [HAS PR]" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#171
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/171
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0870] Add process-compose/HMR refresh workflow tied to "MiniMax-M2 and other Anthropic compatible models" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#170
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/170
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0871] Follow up on "Troublesome First Instruction" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#169
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/169
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0872] Harden "No Auth Status" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#168
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/168
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0873] Operationalize "Major Bug in transforming anthropic request to openai compatible request" with observability, alerting thresholds, and runbook updates.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#167
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/167
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0874] Port relevant thegent-managed flow implied by "Created an install script for linux" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P3
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#166
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/166
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0875] Add DX polish around "Feature Request: Add support for vision-model for Qwen-CLI" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#164
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/164
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0876] Expand docs and examples for "[Suggestion] Intelligent Model Routing" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#162
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/162
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0877] Add QA scenarios for "Clarification Needed: Is 'timeout' a Supported Config Parameter?" including stream/non-stream parity and edge-case payloads.
+- Priority: P3
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#160
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/160
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0878] Refactor implementation behind "GeminiCLI的模型,总是会把历史问题全部回答一遍" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#159
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/159
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0879] Ensure rollout safety for "Gemini Cli With github copilot" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#158
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/158
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0880] Standardize metadata and naming conventions touched by "Enhancement: _FILE env vars for docker compose" across both repos.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#156
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/156
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0881] Follow up on "All-in-WSL2: Claude Code (sub-agents + MCP) via CLIProxyAPI — token-only Codex, gpt-5-high / gpt-5-low mapping, multi-account" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#154
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/154
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0882] Harden "OpenAI-compatible API not working properly with certain models (e.g. glm-4.6, kimi-k2, DeepSeek-V3.2)" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#153
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/153
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0883] Operationalize "OpenRouter Grok 4 Fast Bug" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#152
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/152
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0884] Create/refresh provider quickstart derived from "Question about models:" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#150
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/150
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0885] Add DX polish around "Feature Request: Add rovodev CLI Support" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#149
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/149
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0886] Expand docs and examples for "CC 使用 gpt-5-codex 模型几乎没有走缓存" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#148
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/148
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0887] Add QA scenarios for "Cannot create Auth files in docker container webui management page" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#144
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/144
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0888] Refactor implementation behind "关于openai兼容供应商" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#143
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/143
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0889] Ensure rollout safety for "No System Prompt maybe possible?" via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#142
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/142
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0890] Standardize metadata and naming conventions touched by "Claude Code tokens counter" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#140
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/140
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0891] Follow up on "API Error" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#137
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/137
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0892] Harden "代理在生成函数调用请求时使用了 Gemini API 不支持的 "const" 字段" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#136
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/136
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0893] Port relevant thegent-managed flow implied by "droid cli with CLIProxyAPI [codex,zai]" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#135
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/135
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0894] Convert "Claude Code ``/context`` command" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#133
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/133
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0895] Add DX polish around "Any interest in adding AmpCode support?" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#132
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/132
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0896] Expand docs and examples for "Agentrouter.org Support" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#131
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/131
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0897] Define non-subprocess integration path related to "Geminicli api proxy error" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#129
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/129
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0898] Refactor implementation behind "Github Copilot Subscription" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#128
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/128
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0899] Add process-compose/HMR refresh workflow tied to "Add Z.ai / GLM API Configuration" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#124
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/124
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0900] Standardize metadata and naming conventions touched by "Gemini + Droid = Bug" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#123
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/123
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0901] Create/refresh provider quickstart derived from "Custom models for AI Proviers" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#122
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/122
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0902] Harden "Web Search and other network tools" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#121
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/121
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0903] Operationalize "recommend using bufio to improve terminal visuals(reduce flickering)" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#120
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/120
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0904] Convert "视觉以及PDF适配" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#119
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/119
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0905] Add DX polish around "claude code接入gemini cli模型问题" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#115
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/115
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0906] Expand docs and examples for "Feat Request: Usage Limit Notifications + Timers + Per-Auth Usage" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#112
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/112
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0907] Add QA scenarios for "Thinking toggle with GPT-5-Codex model" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#109
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/109
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0908] Refactor implementation behind "可否增加 请求 api-key = 渠道密钥模式" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#108
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/108
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0909] Ensure rollout safety for "Homebrew 安装的 CLIProxyAPI 如何设置配置文件?" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#106
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/106
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0910] Standardize metadata and naming conventions touched by "支持Gemini CLI 的全部模型" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#105
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/105
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0911] Follow up on "gemini能否适配思考预算后缀?" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#103
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/103
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0912] Port relevant thegent-managed flow implied by "Bug: function calling error in the request on OpenAI completion for gemini-cli" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P2
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#102
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/102
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0913] Operationalize "增加 IFlow 支持模型" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#101
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/101
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0914] Convert "Feature Request: Grok usage" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#100
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/100
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0915] Add DX polish around "新版本的claude code2.0.X搭配本项目的使用问题" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#98
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/98
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0916] Expand docs and examples for "Huge error message when connecting to Gemini via Opencode, SanitizeSchemaForGemini not being used?" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#97
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/97
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0917] Add QA scenarios for "可以支持z.ai 吗" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#96
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/96
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0918] Create/refresh provider quickstart derived from "Gemini and Qwen doesn't work with Opencode" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#93
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/93
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0919] Ensure rollout safety for "Agent Client Protocol (ACP)?" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#92
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/92
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0920] Define non-subprocess integration path related to "Auto compress - Error: B is not an Object. (evaluating '"object"in B')" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#91
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/91
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0921] Follow up on "Gemini Web Auto Refresh Token" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#89
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/89
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0922] Harden "Gemini API 能否添加设置Base URL 的选项" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#88
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/88
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0923] Operationalize "Some third-party claude code will return null when used with this project" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#87
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/87
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0924] Convert "Auto compress - Error: 500 status code (no body)" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#86
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/86
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0925] Add DX polish around "Add more model selection options" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#84
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/84
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0926] Expand docs and examples for "Error on switching models in Droid after hitting Usage Limit" with copy-paste quickstart and troubleshooting section.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#81
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/81
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0927] Add QA scenarios for "Command /context dont work in claude code" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#80
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/80
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0928] Add process-compose/HMR refresh workflow tied to "MacOS brew installation support?" so local config and runtime can be reloaded deterministically.
+- Priority: P2
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#79
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/79
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0929] Ensure rollout safety for "[Feature Request] - Adding OAuth support of Z.AI and Kimi" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#76
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/76
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0930] Standardize metadata and naming conventions touched by "Bug: 500 Invalid resource field value in the request on OpenAI completion for gemini-cli" across both repos.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#75
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/75
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0931] Port relevant thegent-managed flow implied by "添加 Factor CLI 2api 选项" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P3
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#74
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/74
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0932] Harden "Support audio for gemini-cli" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#73
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/73
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0933] Operationalize "添加回调链接输入认证" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#56
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/56
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0934] Convert "如果配置了gemini cli,再配置aistudio api key,会怎样?" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#48
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/48
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0935] Create/refresh provider quickstart derived from "Error walking auth directory: open C:\Users\xiaohu\AppData\Local\ElevatedDiagnostics: Access is denied" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#42
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/42
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0936] Expand docs and examples for "#38 Lobechat问题的可能性 暨 Get Models返回JSON规整化的建议" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#40
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/40
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0937] Add QA scenarios for "lobechat 添加自定义API服务商后无法使用" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: websocket-and-streaming
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#38
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/38
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0938] Refactor implementation behind "Missing API key" to reduce complexity and isolate transformation boundaries.
+- Priority: P3
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#37
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/37
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0939] Ensure rollout safety for "登录默认跳转浏览器 没有url" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#35
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/35
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0940] Standardize metadata and naming conventions touched by "Qwen3-Max-Preview可以使用了吗" across both repos.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#34
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/34
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0941] Follow up on "使用docker-compose.yml搭建失败" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: install-and-ops
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#32
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/32
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0942] Harden "Claude Code 报错 API Error: Cannot read properties of undefined (reading 'filter')" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#25
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/25
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0943] Define non-subprocess integration path related to "QQ group search not found, can we open a TG group?" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: S
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#24
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/24
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0944] Convert "Codex CLI 能中转到Claude Code吗?" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#22
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/22
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0945] Add DX polish around "客户端/终端可以正常访问该代理,但无法输出回复" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#21
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/21
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0946] Expand docs and examples for "希望支持iflow" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#20
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/20
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0947] Add QA scenarios for "希望可以加入对responses的支持。" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#19
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/19
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0948] Refactor implementation behind "关于gpt5" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: S
+- Theme: error-handling-retries
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#18
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/18
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0949] Ensure rollout safety for "v1beta接口报错Please use a valid role: user, model." via feature flags, staged defaults, and migration notes.
+- Priority: P3
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#17
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/17
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0950] Port relevant thegent-managed flow implied by "gemini使用project_id登录,会无限要求跳转链接,使用配置更改auth_dir无效" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: S
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#14
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/14
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0951] Follow up on "新认证生成的auth文件,使用的时候提示:400 API key not valid." by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#13
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/13
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0952] Create/refresh provider quickstart derived from "500就一直卡死了" including setup, auth, model select, and sanity-check commands.
+- Priority: P2
+- Effort: S
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#12
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/12
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0953] Operationalize "无法使用/v1/messages端口" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#11
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/11
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0954] Convert "可用正常接入new-api这种api站吗?" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: S
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#10
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/10
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0955] Add DX polish around "Unexpected API Response: The language model did not provide any assistant messages. This may indicate an issue with the API or the model's output." through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#9
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/9
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0956] Expand docs and examples for "cli有办法像别的gemini一样关闭安全审查吗?" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: S
+- Theme: cli-ux-dx
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#7
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/7
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0957] Add process-compose/HMR refresh workflow tied to "如果一个项目需要指定ID认证,则指定后一定也会失败" so local config and runtime can be reloaded deterministically.
+- Priority: P1
+- Effort: S
+- Theme: dev-runtime-refresh
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#6
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/6
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0958] Refactor implementation behind "指定project_id登录,无限跳转登陆页面" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#5
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/5
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0959] Ensure rollout safety for "Error walking auth directory" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#4
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/4
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0960] Standardize metadata and naming conventions touched by "Login error.win11" across both repos.
+- Priority: P1
+- Effort: S
+- Theme: oauth-and-authentication
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#3
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/3
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0961] Follow up on "偶尔会弹出无效API key提示,“400 API key not valid. Please pass a valid API key.”" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: S
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPI issue#2
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/2
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0962] Harden "Normalize Codex schema handling" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P3
+- Effort: M
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#259
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/259
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0963] Operationalize "fix: add default copilot claude model aliases for oauth routing" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: M
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#256
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/256
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0964] Convert "feat(registry): add GPT-4o model variants for GitHub Copilot" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#255
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/255
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0965] Add DX polish around "fix(kiro): stop duplicated thinking on OpenAI and preserve Claude multi-turn thinking" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#252
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/252
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0966] Define non-subprocess integration path related to "feat(registry): add Gemini 3.1 Pro to GitHub Copilot provider" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P2
+- Effort: M
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#250
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/250
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0967] Add QA scenarios for "v6.8.22" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: M
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#249
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/249
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0968] Refactor implementation behind "v6.8.21" to reduce complexity and isolate transformation boundaries.
+- Priority: P2
+- Effort: M
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#248
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/248
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0969] Create/refresh provider quickstart derived from "fix(cline): add grantType to token refresh and extension headers" including setup, auth, model select, and sanity-check commands.
+- Priority: P3
+- Effort: M
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#247
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/247
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0970] Standardize metadata and naming conventions touched by "feat: add Claude Sonnet 4.6 model support for Kiro provider" across both repos.
+- Priority: P2
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#244
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/244
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0971] Follow up on "feat(registry): add Claude Sonnet 4.6 model definitions" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#243
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/243
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0972] Harden "Improve Copilot provider based on ericc-ch/copilot-api comparison" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#242
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/242
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0973] Operationalize "feat(registry): add Sonnet 4.6 to GitHub Copilot provider" with observability, alerting thresholds, and runbook updates.
+- Priority: P2
+- Effort: M
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#240
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/240
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0974] Convert "feat(registry): add GPT-5.3 Codex to GitHub Copilot provider" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: M
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#239
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/239
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0975] Add DX polish around "Fix Copilot 0x model incorrectly consuming premium requests" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: M
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#238
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/238
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0976] Expand docs and examples for "v6.8.18" with copy-paste quickstart and troubleshooting section.
+- Priority: P2
+- Effort: M
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#237
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/237
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0977] Add QA scenarios for "fix: add proxy_ prefix handling for tool_reference content blocks" including stream/non-stream parity and edge-case payloads.
+- Priority: P1
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#236
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/236
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0978] Refactor implementation behind "fix(codex): handle function_call_arguments streaming for both spark and non-spark models" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#235
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/235
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0979] Ensure rollout safety for "Add Kilo Code provider with dynamic model fetching" via feature flags, staged defaults, and migration notes.
+- Priority: P1
+- Effort: M
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#234
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/234
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0980] Standardize metadata and naming conventions touched by "Fix Copilot codex model Responses API translation for Claude Code" across both repos.
+- Priority: P1
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#233
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/233
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0981] Follow up on "feat(models): add Thinking support to GitHub Copilot models" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P1
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#231
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/231
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0982] Harden "fix(copilot): forward Claude-format tools to Copilot Responses API" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P1
+- Effort: M
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#230
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/230
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0983] Operationalize "fix: preserve explicitly deleted kiro aliases across config reload" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: M
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#229
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/229
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0984] Convert "fix(antigravity): add warn-level logging to silent failure paths in FetchAntigravityModels" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P2
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#228
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/228
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0985] Add DX polish around "v6.8.15" through improved command ergonomics and faster feedback loops.
+- Priority: P2
+- Effort: M
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#227
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/227
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0986] Create/refresh provider quickstart derived from "refactor(kiro): Kiro Web Search Logic & Executor Alignment" including setup, auth, model select, and sanity-check commands.
+- Priority: P1
+- Effort: M
+- Theme: docs-quickstarts
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#226
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/226
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0987] Add QA scenarios for "v6.8.13" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: M
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#225
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/225
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0988] Port relevant thegent-managed flow implied by "fix(kiro): prepend placeholder user message when conversation starts with assistant role" into first-class cliproxy Go CLI command(s) with interactive setup support.
+- Priority: P1
+- Effort: M
+- Theme: go-cli-extraction
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#224
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/224
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0989] Define non-subprocess integration path related to "fix(kiro): prepend placeholder user message when conversation starts with assistant role" (Go bindings surface + HTTP fallback contract + version negotiation).
+- Priority: P1
+- Effort: M
+- Theme: integration-api-bindings
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#223
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/223
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-0990] Standardize metadata and naming conventions touched by "fix(kiro): 修复之前提交的错误的application/cbor请求处理逻辑" across both repos.
+- Priority: P2
+- Effort: M
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#220
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/220
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
+### [CPB-0991] Follow up on "fix: prevent merging assistant messages with tool_calls" by closing compatibility gaps and preventing regressions in adjacent providers.
+- Priority: P2
+- Effort: M
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#218
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/218
+- Implementation note: Implement normalized parameter ingestion with strict backward compatibility and explicit telemetry counters.
+
+### [CPB-0992] Harden "增加kiro新模型并根据其他提供商同模型配置Thinking" with clearer validation, safer defaults, and defensive fallbacks.
+- Priority: P2
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#216
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/216
+- Implementation note: Add regression tests that fail before fix and pass after patch; include fixture updates for cross-provider mapping.
+
+### [CPB-0993] Operationalize "fix(auth): strip model suffix in GitHub Copilot executor before upstream call" with observability, alerting thresholds, and runbook updates.
+- Priority: P1
+- Effort: M
+- Theme: thinking-and-reasoning
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#214
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/214
+- Implementation note: Improve user-facing error messages and add deterministic remediation text with command examples.
+
+### [CPB-0994] Convert "fix(kiro): filter orphaned tool_results from compacted conversations" into a provider-agnostic pattern and codify in shared translation utilities.
+- Priority: P1
+- Effort: M
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#212
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/212
+- Implementation note: Document behavior in provider quickstart and compatibility matrix with concrete request/response examples.
+
+### [CPB-0995] Add DX polish around "fix(kiro): fully implement Kiro web search tool via MCP integration" through improved command ergonomics and faster feedback loops.
+- Priority: P1
+- Effort: M
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#211
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/211
+- Implementation note: Refactor handler to isolate transformation logic from transport concerns and reduce side effects.
+
+### [CPB-0996] Expand docs and examples for "feat(config): add default Kiro model aliases for standard Claude model names" with copy-paste quickstart and troubleshooting section.
+- Priority: P1
+- Effort: M
+- Theme: provider-model-registry
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#209
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/209
+- Implementation note: Introduce structured logs for input config, normalized config, and outbound payload diff (sensitive fields redacted).
+
+### [CPB-0997] Add QA scenarios for "v6.8.9" including stream/non-stream parity and edge-case payloads.
+- Priority: P2
+- Effort: M
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#207
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/207
+- Implementation note: Add config toggles for safe rollout and default them to preserve existing deployments.
+
+### [CPB-0998] Refactor implementation behind "fix(translator): fix nullable type arrays breaking Gemini/Antigravity API" to reduce complexity and isolate transformation boundaries.
+- Priority: P1
+- Effort: M
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#205
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/205
+- Implementation note: Benchmark latency and memory before/after; gate merge on no regression for p50/p95.
+
+### [CPB-0999] Ensure rollout safety for "v6.8.7" via feature flags, staged defaults, and migration notes.
+- Priority: P2
+- Effort: M
+- Theme: general-polish
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#204
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/204
+- Implementation note: Add API contract tests covering malformed input, missing fields, and mixed legacy/new parameter names.
+
+### [CPB-1000] Standardize metadata and naming conventions touched by "fix(copilot): prevent premium request count inflation for Claude models" across both repos.
+- Priority: P2
+- Effort: M
+- Theme: responses-and-chat-compat
+- Status: proposed
+- Source: router-for-me/CLIProxyAPIPlus pr#203
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/203
+- Implementation note: Create migration note and changelog entry with explicit compatibility guarantees and caveats.
+
diff --git a/docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.csv b/docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.csv
new file mode 100644
index 0000000000..d85fecb65f
--- /dev/null
+++ b/docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.csv
@@ -0,0 +1,2001 @@
+id,theme,title,priority,effort,wave,status,implementation_ready,source_kind,source_repo,source_ref,source_url,implementation_note
+CP2K-0011,general-polish,"Follow up ""kiro账号被封"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#221,https://github.com/router-for-me/CLIProxyAPIPlus/issues/221,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0014,thinking-and-reasoning,"Generalize ""Add support for proxying models from kilocode CLI"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#213,https://github.com/router-for-me/CLIProxyAPIPlus/issues/213,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0015,responses-and-chat-compat,"Improve CLI UX around ""[Bug] Kiro 与 Ampcode 的 Bash 工具参数不兼容"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#210,https://github.com/router-for-me/CLIProxyAPIPlus/issues/210,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0016,provider-model-registry,"Extend docs for ""[Feature Request] Add default oauth-model-alias for Kiro channel (like Antigravity)"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#208,https://github.com/router-for-me/CLIProxyAPIPlus/issues/208,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0017,docs-quickstarts,"Create or refresh provider quickstart derived from ""bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#206,https://github.com/router-for-me/CLIProxyAPIPlus/issues/206,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0018,thinking-and-reasoning,"Refactor internals touched by ""GitHub Copilot CLI 使用方法"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#202,https://github.com/router-for-me/CLIProxyAPIPlus/issues/202,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0021,provider-model-registry,"Follow up ""Cursor CLI \ Auth Support"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#198,https://github.com/router-for-me/CLIProxyAPIPlus/issues/198,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0022,oauth-and-authentication,"Harden ""Why no opus 4.6 on github copilot auth"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#196,https://github.com/router-for-me/CLIProxyAPIPlus/issues/196,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0025,thinking-and-reasoning,"Improve CLI UX around ""Claude thought_signature forwarded to Gemini causes Base64 decode error"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#178,https://github.com/router-for-me/CLIProxyAPIPlus/issues/178,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0030,responses-and-chat-compat,"Standardize naming/metadata affected by ""fix(kiro): handle empty content in messages to prevent Bad Request errors"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#163,https://github.com/router-for-me/CLIProxyAPIPlus/issues/163,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0031,oauth-and-authentication,"Follow up ""在配置文件中支持为所有 OAuth 渠道自定义上游 URL"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#158,https://github.com/router-for-me/CLIProxyAPIPlus/issues/158,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0034,docs-quickstarts,"Create or refresh provider quickstart derived from ""请求docker部署支持arm架构的机器!感谢。"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#147,https://github.com/router-for-me/CLIProxyAPIPlus/issues/147,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0036,responses-and-chat-compat,"Extend docs for ""[Bug]进一步完善 openai兼容模式对 claude 模型的支持(完善 协议格式转换 )"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#145,https://github.com/router-for-me/CLIProxyAPIPlus/issues/145,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0037,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""完善 claude openai兼容渠道的格式转换"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#142,https://github.com/router-for-me/CLIProxyAPIPlus/issues/142,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0039,responses-and-chat-compat,"Prepare safe rollout for ""kiro idc登录需要手动刷新状态"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#136,https://github.com/router-for-me/CLIProxyAPIPlus/issues/136,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0040,thinking-and-reasoning,"Standardize naming/metadata affected by ""[Bug Fix] 修复 Kiro 的Claude模型非流式请求 output_tokens 为 0 导致的用量统计缺失"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#134,https://github.com/router-for-me/CLIProxyAPIPlus/issues/134,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0045,responses-and-chat-compat,"Improve CLI UX around ""Error 403"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#125,https://github.com/router-for-me/CLIProxyAPIPlus/issues/125,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0047,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""enterprise 账号 Kiro不是很稳定,很容易就403不可用了"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#118,https://github.com/router-for-me/CLIProxyAPIPlus/issues/118,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0048,oauth-and-authentication,"Refactor internals touched by ""-kiro-aws-login 登录后一直封号"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#115,https://github.com/router-for-me/CLIProxyAPIPlus/issues/115,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0050,oauth-and-authentication,"Standardize naming/metadata affected by ""Antigravity authentication failed"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#111,https://github.com/router-for-me/CLIProxyAPIPlus/issues/111,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0051,docs-quickstarts,"Create or refresh provider quickstart derived from ""大佬,什么时候搞个多账号管理呀"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#108,https://github.com/router-for-me/CLIProxyAPIPlus/issues/108,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0052,oauth-and-authentication,"Harden ""日志中,一直打印auth file changed (WRITE)"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#105,https://github.com/router-for-me/CLIProxyAPIPlus/issues/105,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0053,oauth-and-authentication,"Operationalize ""登录incognito参数无效"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#102,https://github.com/router-for-me/CLIProxyAPIPlus/issues/102,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0054,thinking-and-reasoning,"Generalize ""OpenAI-compat provider hardcodes /v1/models (breaks Z.ai v4: /api/coding/paas/v4/models)"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#101,https://github.com/router-for-me/CLIProxyAPIPlus/issues/101,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0056,responses-and-chat-compat,"Extend docs for ""Kiro currently has no authentication available"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#96,https://github.com/router-for-me/CLIProxyAPIPlus/issues/96,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0059,thinking-and-reasoning,"Prepare safe rollout for ""Bug: Kiro/BuilderId tokens can collide when email/profile_arn are empty; refresh token lifecycle not handled"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#90,https://github.com/router-for-me/CLIProxyAPIPlus/issues/90,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0060,responses-and-chat-compat,"Standardize naming/metadata affected by ""[Bug] Amazon Q endpoint returns HTTP 400 ValidationException (wrong CLI/KIRO_CLI origin)"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#89,https://github.com/router-for-me/CLIProxyAPIPlus/issues/89,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0062,responses-and-chat-compat,"Harden ""Cursor Issue"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#86,https://github.com/router-for-me/CLIProxyAPIPlus/issues/86,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0063,thinking-and-reasoning,"Operationalize ""Feature request: Configurable HTTP request timeout for Extended Thinking models"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#84,https://github.com/router-for-me/CLIProxyAPIPlus/issues/84,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0064,websocket-and-streaming,"Generalize ""kiro请求偶尔报错event stream fatal"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#83,https://github.com/router-for-me/CLIProxyAPIPlus/issues/83,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0066,oauth-and-authentication,"Extend docs for ""[建议] 技术大佬考虑可以有机会新增一堆逆向平台"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#79,https://github.com/router-for-me/CLIProxyAPIPlus/issues/79,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0068,docs-quickstarts,"Create or refresh provider quickstart derived from ""kiro请求的数据好像一大就会出错,导致cc写入文件失败"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#77,https://github.com/router-for-me/CLIProxyAPIPlus/issues/77,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0073,oauth-and-authentication,"Operationalize ""How to use KIRO with IAM?"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#56,https://github.com/router-for-me/CLIProxyAPIPlus/issues/56,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0074,provider-model-registry,"Generalize ""[Bug] Models from Codex (openai) are not accessible when Copilot is added"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#43,https://github.com/router-for-me/CLIProxyAPIPlus/issues/43,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0075,responses-and-chat-compat,"Improve CLI UX around ""model gpt-5.1-codex-mini is not accessible via the /chat/completions endpoint"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#41,https://github.com/router-for-me/CLIProxyAPIPlus/issues/41,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0079,thinking-and-reasoning,"Prepare safe rollout for ""lack of thinking signature in kiro's non-stream response cause incompatibility with some ai clients (specifically cherry studio)"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#27,https://github.com/router-for-me/CLIProxyAPIPlus/issues/27,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0080,oauth-and-authentication,"Standardize naming/metadata affected by ""I did not find the Kiro entry in the Web UI"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#26,https://github.com/router-for-me/CLIProxyAPIPlus/issues/26,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0081,thinking-and-reasoning,"Follow up ""Kiro (AWS CodeWhisperer) - Stream error, status: 400"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#7,https://github.com/router-for-me/CLIProxyAPIPlus/issues/7,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0251,oauth-and-authentication,"Follow up ""Why a separate repo?"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPIPlus,discussion#170,https://github.com/router-for-me/CLIProxyAPIPlus/discussions/170,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0252,oauth-and-authentication,"Harden ""How do I perform GitHub OAuth authentication? I can't find the entrance."" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPIPlus,discussion#215,https://github.com/router-for-me/CLIProxyAPIPlus/discussions/215,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0255,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat: support image content in tool result messages (OpenAI ↔ Claude translation)"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1670,https://github.com/router-for-me/CLIProxyAPI/issues/1670,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0257,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""Need maintainer-handled codex translator compatibility for Responses compaction fields"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1667,https://github.com/router-for-me/CLIProxyAPI/issues/1667,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0258,responses-and-chat-compat,"Refactor internals touched by ""codex: usage_limit_reached (429) should honor resets_at/resets_in_seconds as next_retry_after"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1666,https://github.com/router-for-me/CLIProxyAPI/issues/1666,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0260,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix(claude): token exchange blocked by Cloudflare managed challenge on console.anthropic.com"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1659,https://github.com/router-for-me/CLIProxyAPI/issues/1659,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0263,responses-and-chat-compat,"Operationalize ""All credentials for model claude-sonnet-4-6 are cooling down"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1655,https://github.com/router-for-me/CLIProxyAPI/issues/1655,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0265,thinking-and-reasoning,"Improve CLI UX around ""Claude Sonnet 4.5 models are deprecated - please remove from panel"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1651,https://github.com/router-for-me/CLIProxyAPI/issues/1651,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0267,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""codex 返回 Unsupported parameter: response_format"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1647,https://github.com/router-for-me/CLIProxyAPI/issues/1647,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0268,thinking-and-reasoning,"Refactor internals touched by ""Bug: Invalid JSON payload when tool_result has no content field (antigravity translator)"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1646,https://github.com/router-for-me/CLIProxyAPI/issues/1646,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0272,docs-quickstarts,"Create or refresh provider quickstart derived from ""是否支持微软账号的反代?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1632,https://github.com/router-for-me/CLIProxyAPI/issues/1632,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0274,thinking-and-reasoning,"Generalize ""Claude Sonnet 4.5 is no longer available. Please switch to Claude Sonnet 4.6."" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1630,https://github.com/router-for-me/CLIProxyAPI/issues/1630,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0277,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Question: applyClaudeHeaders() — how were these defaults chosen?"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1621,https://github.com/router-for-me/CLIProxyAPI/issues/1621,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0278,provider-model-registry,"Refactor internals touched by ""[BUG] claude code 接入 cliproxyapi 使用时,模型的输出没有呈现流式,而是一下子蹦出来回答结果"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1620,https://github.com/router-for-me/CLIProxyAPI/issues/1620,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0281,provider-model-registry,"Follow up ""[bug] codex oauth登录流程失败"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1612,https://github.com/router-for-me/CLIProxyAPI/issues/1612,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0282,oauth-and-authentication,"Harden ""qwen auth 里获取到了 qwen3.5,但是 ai 客户端获取不到这个模型"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1611,https://github.com/router-for-me/CLIProxyAPI/issues/1611,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0283,responses-and-chat-compat,"Operationalize ""fix: handle response.function_call_arguments.done in codex→claude streaming translator"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1609,https://github.com/router-for-me/CLIProxyAPI/issues/1609,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0286,thinking-and-reasoning,"Extend docs for ""[Feature Request] Antigravity channel should support routing claude-haiku-4-5-20251001 model (used by Claude Code pre-flight checks)"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1596,https://github.com/router-for-me/CLIProxyAPI/issues/1596,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0289,docs-quickstarts,"Create or refresh provider quickstart derived from ""[Bug] Claude Code 2.1.37 random cch in x-anthropic-billing-header causes severe prompt-cache miss on third-party upstreams"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1592,https://github.com/router-for-me/CLIProxyAPI/issues/1592,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0291,responses-and-chat-compat,"Follow up ""配额管理可以刷出额度,但是调用的时候提示额度不足"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1590,https://github.com/router-for-me/CLIProxyAPI/issues/1590,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0293,thinking-and-reasoning,"Operationalize ""iflow GLM 5 时不时会返回 406"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1588,https://github.com/router-for-me/CLIProxyAPI/issues/1588,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0296,thinking-and-reasoning,"Extend docs for ""bug: Invalid thinking block signature when switching from Gemini CLI to Claude OAuth mid-conversation"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1584,https://github.com/router-for-me/CLIProxyAPI/issues/1584,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0297,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""I saved 10M tokens (89%) on my Claude Code sessions with a CLI proxy"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1583,https://github.com/router-for-me/CLIProxyAPI/issues/1583,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0298,responses-and-chat-compat,"Refactor internals touched by ""[bug]? gpt-5.3-codex-spark 在 team 账户上报错 400"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1582,https://github.com/router-for-me/CLIProxyAPI/issues/1582,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0302,oauth-and-authentication,"Harden ""Port 8317 becomes unreachable after running for some time, recovers immediately after SSH login"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1575,https://github.com/router-for-me/CLIProxyAPI/issues/1575,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0303,thinking-and-reasoning,"Operationalize ""Support for gpt-5.3-codex-spark"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1573,https://github.com/router-for-me/CLIProxyAPI/issues/1573,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0306,docs-quickstarts,"Create or refresh provider quickstart derived from ""能否再难用一点?!"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1564,https://github.com/router-for-me/CLIProxyAPI/issues/1564,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0307,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Cache usage through Claude oAuth always 0"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1562,https://github.com/router-for-me/CLIProxyAPI/issues/1562,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0308,oauth-and-authentication,"Refactor internals touched by ""antigravity 无法使用"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1561,https://github.com/router-for-me/CLIProxyAPI/issues/1561,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0310,thinking-and-reasoning,"Standardize naming/metadata affected by ""Claude Code 调用 nvidia 发现 无法正常使用bash grep类似的工具"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1557,https://github.com/router-for-me/CLIProxyAPI/issues/1557,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0311,oauth-and-authentication,"Follow up ""Gemini CLI: 额度获取失败:请检查凭证状态"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1556,https://github.com/router-for-me/CLIProxyAPI/issues/1556,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0314,oauth-and-authentication,"Generalize ""Kimi的OAuth无法使用"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1553,https://github.com/router-for-me/CLIProxyAPI/issues/1553,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0315,oauth-and-authentication,"Improve CLI UX around ""grok的OAuth登录认证可以支持下吗? 谢谢!"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1552,https://github.com/router-for-me/CLIProxyAPI/issues/1552,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0316,thinking-and-reasoning,"Extend docs for ""iflow executor: token refresh failed"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1551,https://github.com/router-for-me/CLIProxyAPI/issues/1551,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0317,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""为什么gemini3会报错"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1549,https://github.com/router-for-me/CLIProxyAPI/issues/1549,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0323,docs-quickstarts,"Create or refresh provider quickstart derived from ""佬们,隔壁很多账号403啦,这里一切正常吗?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1541,https://github.com/router-for-me/CLIProxyAPI/issues/1541,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0324,thinking-and-reasoning,"Generalize ""feat(thinking): support Claude output_config.effort parameter (Opus 4.6)"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1540,https://github.com/router-for-me/CLIProxyAPI/issues/1540,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0327,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""[Bug] Persistent 400 ""Invalid Argument"" error with claude-opus-4-6-thinking model (with and without thinking budget)"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1533,https://github.com/router-for-me/CLIProxyAPI/issues/1533,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0329,thinking-and-reasoning,"Prepare safe rollout for ""bug: proxy_ prefix applied to tool_choice.name but not tools[].name causes 400 errors on OAuth requests"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1530,https://github.com/router-for-me/CLIProxyAPI/issues/1530,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0333,websocket-and-streaming,"Operationalize ""The account has available credit, but a 503 or 429 error is occurring."" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1521,https://github.com/router-for-me/CLIProxyAPI/issues/1521,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0334,thinking-and-reasoning,"Generalize ""openclaw调用CPA 中的codex5.2 报错。"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1517,https://github.com/router-for-me/CLIProxyAPI/issues/1517,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0336,thinking-and-reasoning,"Extend docs for ""Token refresh logic fails with generic 500 error (""server busy"") from iflow provider"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1514,https://github.com/router-for-me/CLIProxyAPI/issues/1514,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0337,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1513,https://github.com/router-for-me/CLIProxyAPI/issues/1513,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0340,docs-quickstarts,"Create or refresh provider quickstart derived from ""反重力 claude-opus-4-6-thinking 模型如何通过 () 实现强行思考"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1509,https://github.com/router-for-me/CLIProxyAPI/issues/1509,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0341,thinking-and-reasoning,"Follow up ""Feature: Per-OAuth-Account Outbound Proxy Enforcement for Google (Gemini/Antigravity) + OpenAI Codex – incl. Token Refresh and optional Strict/Fail-Closed Mode"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1508,https://github.com/router-for-me/CLIProxyAPI/issues/1508,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0353,provider-model-registry,"Operationalize ""Feature request [allow to configure RPM, TPM, RPD, TPD]"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1493,https://github.com/router-for-me/CLIProxyAPI/issues/1493,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0354,thinking-and-reasoning,"Generalize ""Antigravity using Ultra plan: Opus 4.6 gets 429 on CLIProxy but runs with Opencode-Auth"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1486,https://github.com/router-for-me/CLIProxyAPI/issues/1486,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0357,docs-quickstarts,"Create or refresh provider quickstart derived from ""Amp code doesn't route through CLIProxyAPI"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1481,https://github.com/router-for-me/CLIProxyAPI/issues/1481,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0358,responses-and-chat-compat,"Refactor internals touched by ""导入kiro账户,过一段时间就失效了"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1480,https://github.com/router-for-me/CLIProxyAPI/issues/1480,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0359,responses-and-chat-compat,"Prepare safe rollout for ""openai-compatibility: streaming response empty when translating Codex protocol (/v1/responses) to OpenAI chat/completions"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1478,https://github.com/router-for-me/CLIProxyAPI/issues/1478,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0360,thinking-and-reasoning,"Standardize naming/metadata affected by ""bug: request-level metadata fields injected into contents[] causing Gemini API rejection (v6.8.4)"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1477,https://github.com/router-for-me/CLIProxyAPI/issues/1477,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0366,thinking-and-reasoning,"Extend docs for ""model not found for gpt-5.3-codex"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1463,https://github.com/router-for-me/CLIProxyAPI/issues/1463,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0370,provider-model-registry,"Standardize naming/metadata affected by ""When I don’t add the authentication file, opening Claude Code keeps throwing a 500 error, instead of directly using the AI provider I’ve configured."" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1455,https://github.com/router-for-me/CLIProxyAPI/issues/1455,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0371,oauth-and-authentication,"Follow up ""6.7.53版本反重力无法看到opus-4.6模型"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1453,https://github.com/router-for-me/CLIProxyAPI/issues/1453,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0372,oauth-and-authentication,"Harden ""Codex OAuth failed"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1451,https://github.com/router-for-me/CLIProxyAPI/issues/1451,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0373,responses-and-chat-compat,"Operationalize ""Google asking to Verify account"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1447,https://github.com/router-for-me/CLIProxyAPI/issues/1447,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0374,docs-quickstarts,"Create or refresh provider quickstart derived from ""API Error"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1445,https://github.com/router-for-me/CLIProxyAPI/issues/1445,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0375,responses-and-chat-compat,"Improve CLI UX around ""Unable to use GPT 5.3 codex (model_not_found)"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1443,https://github.com/router-for-me/CLIProxyAPI/issues/1443,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0376,responses-and-chat-compat,"Extend docs for ""gpt-5.3-codex 请求400 显示不存在该模型"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1442,https://github.com/router-for-me/CLIProxyAPI/issues/1442,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0381,thinking-and-reasoning,"Follow up ""[BUG] Invalid JSON payload with large requests (~290KB) - truncated body"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1433,https://github.com/router-for-me/CLIProxyAPI/issues/1433,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0384,responses-and-chat-compat,"Generalize ""[v6.7.47] 接入智谱 Plan 计划后请求报错"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1430,https://github.com/router-for-me/CLIProxyAPI/issues/1430,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0387,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""bug: Claude → Gemini translation fails due to unsupported JSON Schema fields ($id, patternProperties)"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1424,https://github.com/router-for-me/CLIProxyAPI/issues/1424,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0390,thinking-and-reasoning,"Standardize naming/metadata affected by ""Security Review: Apply Lessons from Supermemory Security Findings"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1418,https://github.com/router-for-me/CLIProxyAPI/issues/1418,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0391,docs-quickstarts,"Create or refresh provider quickstart derived from ""Add Webhook Support for Document Lifecycle Events"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1417,https://github.com/router-for-me/CLIProxyAPI/issues/1417,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0394,provider-model-registry,"Generalize ""Add Document Processor for PDF and URL Content Extraction"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1414,https://github.com/router-for-me/CLIProxyAPI/issues/1414,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0398,thinking-and-reasoning,"Refactor internals touched by ""Implement MCP Server for Memory Operations"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1410,https://github.com/router-for-me/CLIProxyAPI/issues/1410,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0400,thinking-and-reasoning,"Standardize naming/metadata affected by ""Bug: /v1/responses returns 400 ""Input must be a list"" when input is string (regression 6.7.42, Droid auto-compress broken)"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1403,https://github.com/router-for-me/CLIProxyAPI/issues/1403,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0401,thinking-and-reasoning,"Follow up ""Factory Droid CLI got 404"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1401,https://github.com/router-for-me/CLIProxyAPI/issues/1401,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0403,oauth-and-authentication,"Operationalize ""Feature request: Cursor CLI support"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1399,https://github.com/router-for-me/CLIProxyAPI/issues/1399,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0404,thinking-and-reasoning,"Generalize ""bug: Invalid signature in thinking block (API 400) on follow-up requests"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1398,https://github.com/router-for-me/CLIProxyAPI/issues/1398,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0407,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""Session title generation fails for Claude models via Antigravity provider (OpenCode)"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1394,https://github.com/router-for-me/CLIProxyAPI/issues/1394,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0408,docs-quickstarts,"Create or refresh provider quickstart derived from ""反代反重力请求gemini-3-pro-image-preview接口报错"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1393,https://github.com/router-for-me/CLIProxyAPI/issues/1393,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0409,responses-and-chat-compat,"Prepare safe rollout for ""[Feature Request] Implement automatic account rotation on VALIDATION_REQUIRED errors"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1392,https://github.com/router-for-me/CLIProxyAPI/issues/1392,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0413,websocket-and-streaming,"Operationalize ""在codex运行报错"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1406,https://github.com/router-for-me/CLIProxyAPI/issues/1406,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0415,oauth-and-authentication,"Improve CLI UX around ""Claude authentication failed in v6.7.41 (works in v6.7.25)"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1383,https://github.com/router-for-me/CLIProxyAPI/issues/1383,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0416,responses-and-chat-compat,"Extend docs for ""Question: Does load balancing work with 2 Codex accounts for the Responses API?"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1382,https://github.com/router-for-me/CLIProxyAPI/issues/1382,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0417,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""登陆提示“登录失败: 访问被拒绝,权限不足”"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1381,https://github.com/router-for-me/CLIProxyAPI/issues/1381,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0419,thinking-and-reasoning,"Prepare safe rollout for ""antigravity无法登录"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1376,https://github.com/router-for-me/CLIProxyAPI/issues/1376,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0421,responses-and-chat-compat,"Follow up ""API Error: 403"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1374,https://github.com/router-for-me/CLIProxyAPI/issues/1374,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0424,responses-and-chat-compat,"Generalize ""Bad processing of Claude prompt caching that is already implemented by client app"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1366,https://github.com/router-for-me/CLIProxyAPI/issues/1366,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0425,docs-quickstarts,"Create or refresh provider quickstart derived from ""[Bug] OpenAI-compatible provider: message_start.usage always returns 0 tokens (kimi-for-coding)"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1365,https://github.com/router-for-me/CLIProxyAPI/issues/1365,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0426,oauth-and-authentication,"Extend docs for ""iflow Cli官方针对terminal有Oauth 登录方式"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1364,https://github.com/router-for-me/CLIProxyAPI/issues/1364,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0428,responses-and-chat-compat,"Refactor internals touched by ""“Error 404: Requested entity was not found"" for gemini 3 by gemini-cli"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1325,https://github.com/router-for-me/CLIProxyAPI/issues/1325,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0430,thinking-and-reasoning,"Standardize naming/metadata affected by ""Feature Request: Add generateImages endpoint support for Gemini API"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1322,https://github.com/router-for-me/CLIProxyAPI/issues/1322,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0431,oauth-and-authentication,"Follow up ""iFlow Error: LLM returned 200 OK but response body was empty (possible rate limit)"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1321,https://github.com/router-for-me/CLIProxyAPI/issues/1321,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0432,thinking-and-reasoning,"Harden ""feat: add code_execution and url_context tool passthrough for Gemini"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1318,https://github.com/router-for-me/CLIProxyAPI/issues/1318,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0436,thinking-and-reasoning,"Extend docs for ""Claude Opus 4.5 returns ""Internal server error"" in response body via Anthropic OAuth (Sonnet works)"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1306,https://github.com/router-for-me/CLIProxyAPI/issues/1306,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0439,thinking-and-reasoning,"Prepare safe rollout for ""版本: v6.7.27 添加openai-compatibility的时候出现 malformed HTTP response 错误"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1301,https://github.com/router-for-me/CLIProxyAPI/issues/1301,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0440,websocket-and-streaming,"Standardize naming/metadata affected by ""fix(logging): request and API response timestamps are inaccurate in error logs"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1299,https://github.com/router-for-me/CLIProxyAPI/issues/1299,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0441,thinking-and-reasoning,"Follow up ""cpaUsageMetadata leaks to Gemini API responses when using Antigravity backend"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1297,https://github.com/router-for-me/CLIProxyAPI/issues/1297,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0442,docs-quickstarts,"Create or refresh provider quickstart derived from ""Gemini API error: empty text content causes 'required oneof field data must have one initialized field'"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1293,https://github.com/router-for-me/CLIProxyAPI/issues/1293,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0443,responses-and-chat-compat,"Operationalize ""Gemini API error: empty text content causes 'required oneof field data must have one initialized field'"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1292,https://github.com/router-for-me/CLIProxyAPI/issues/1292,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0446,provider-model-registry,"Extend docs for ""Request takes over a minute to get sent with Antigravity"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1289,https://github.com/router-for-me/CLIProxyAPI/issues/1289,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0447,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Antigravity auth requires daily re-login - sessions expire unexpectedly"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1288,https://github.com/router-for-me/CLIProxyAPI/issues/1288,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0449,thinking-and-reasoning,"Prepare safe rollout for ""429 RESOURCE_EXHAUSTED for Claude Opus 4.5 Thinking with Google AI Pro Account"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1284,https://github.com/router-for-me/CLIProxyAPI/issues/1284,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0452,responses-and-chat-compat,"Harden ""Support request: Kimi For Coding (Kimi Code / K2.5) behind CLIProxyAPI"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1280,https://github.com/router-for-me/CLIProxyAPI/issues/1280,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0459,docs-quickstarts,"Create or refresh provider quickstart derived from ""[Improvement] Pre-bundle Management UI in Docker Image"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1266,https://github.com/router-for-me/CLIProxyAPI/issues/1266,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0467,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""CLIProxyAPI goes down after some time, only recovers when SSH into server"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1253,https://github.com/router-for-me/CLIProxyAPI/issues/1253,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0468,oauth-and-authentication,"Refactor internals touched by ""kiro hope"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1252,https://github.com/router-for-me/CLIProxyAPI/issues/1252,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0469,thinking-and-reasoning,"Prepare safe rollout for """"Requested entity was not found"" for all antigravity models"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1251,https://github.com/router-for-me/CLIProxyAPI/issues/1251,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0476,docs-quickstarts,"Create or refresh provider quickstart derived from ""GLM Coding Plan"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1226,https://github.com/router-for-me/CLIProxyAPI/issues/1226,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0479,thinking-and-reasoning,"Prepare safe rollout for ""auth_unavailable: no auth available in claude code cli, 使用途中经常500"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1222,https://github.com/router-for-me/CLIProxyAPI/issues/1222,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0482,thinking-and-reasoning,"Harden ""openai codex 认证失败: Failed to exchange authorization code for tokens"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1217,https://github.com/router-for-me/CLIProxyAPI/issues/1217,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0484,responses-and-chat-compat,"Generalize ""Error 403"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1214,https://github.com/router-for-me/CLIProxyAPI/issues/1214,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0485,oauth-and-authentication,"Improve CLI UX around ""Gemini CLI OAuth 认证失败: failed to start callback server"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1213,https://github.com/router-for-me/CLIProxyAPI/issues/1213,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0486,thinking-and-reasoning,"Extend docs for ""bug: Thinking budget ignored in cross-provider conversations (Antigravity)"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1199,https://github.com/router-for-me/CLIProxyAPI/issues/1199,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0490,responses-and-chat-compat,"Standardize naming/metadata affected by ""codex总是有失败"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1193,https://github.com/router-for-me/CLIProxyAPI/issues/1193,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0493,docs-quickstarts,"Create or refresh provider quickstart derived from ""🚨🔥 CRITICAL BUG REPORT: Invalid Function Declaration Schema in API Request 🔥🚨"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1189,https://github.com/router-for-me/CLIProxyAPI/issues/1189,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0496,oauth-and-authentication,"Extend docs for ""使用 Antigravity OAuth 使用openai格式调用opencode问题"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1173,https://github.com/router-for-me/CLIProxyAPI/issues/1173,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0497,error-handling-retries,"Add robust stream/non-stream parity tests for ""今天中午开始一直429"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1172,https://github.com/router-for-me/CLIProxyAPI/issues/1172,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0508,thinking-and-reasoning,"Refactor internals touched by ""[Bug] v6.7.x Regression: thinking parameter not recognized, causing Cherry Studio and similar clients to fail displaying extended thinking content"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1155,https://github.com/router-for-me/CLIProxyAPI/issues/1155,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0510,docs-quickstarts,"Create or refresh provider quickstart derived from ""Antigravity OAuth认证失败"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1153,https://github.com/router-for-me/CLIProxyAPI/issues/1153,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0516,thinking-and-reasoning,"Extend docs for ""cc 使用 zai-glm-4.7 报错 body.reasoning"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1143,https://github.com/router-for-me/CLIProxyAPI/issues/1143,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0517,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""NVIDIA不支持,转发成claude和gpt都用不了"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1139,https://github.com/router-for-me/CLIProxyAPI/issues/1139,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0520,thinking-and-reasoning,"Standardize naming/metadata affected by ""tool_choice not working for Gemini models via Claude API endpoint"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1135,https://github.com/router-for-me/CLIProxyAPI/issues/1135,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0527,docs-quickstarts,"Create or refresh provider quickstart derived from ""gpt-5.2-codex ""System messages are not allowed"""" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1122,https://github.com/router-for-me/CLIProxyAPI/issues/1122,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0531,responses-and-chat-compat,"Follow up ""gemini-3-pro-high (Antigravity): malformed_function_call error with tools"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1113,https://github.com/router-for-me/CLIProxyAPI/issues/1113,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0533,error-handling-retries,"Operationalize ""香蕉pro 图片一下将所有图片额度都消耗没了"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1110,https://github.com/router-for-me/CLIProxyAPI/issues/1110,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0536,responses-and-chat-compat,"Extend docs for ""gemini-3-pro-high returns empty response when subagent uses tools"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1106,https://github.com/router-for-me/CLIProxyAPI/issues/1106,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0537,provider-model-registry,"Add robust stream/non-stream parity tests for ""GitStore local repo fills tmpfs due to accumulating loose git objects (no GC/repack)"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1104,https://github.com/router-for-me/CLIProxyAPI/issues/1104,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0541,provider-model-registry,"Follow up ""Wrong workspace selected for OpenAI accounts"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1095,https://github.com/router-for-me/CLIProxyAPI/issues/1095,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0543,thinking-and-reasoning,"Operationalize ""Antigravity 生图无法指定分辨率"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1093,https://github.com/router-for-me/CLIProxyAPI/issues/1093,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0544,docs-quickstarts,"Create or refresh provider quickstart derived from ""文件写方式在docker下容易出现Inode变更问题"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1092,https://github.com/router-for-me/CLIProxyAPI/issues/1092,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0548,thinking-and-reasoning,"Refactor internals touched by ""Streaming Response Translation Fails to Emit Completion Events on `[DONE]` Marker"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1085,https://github.com/router-for-me/CLIProxyAPI/issues/1085,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0549,responses-and-chat-compat,"Prepare safe rollout for ""Feature Request: Add support for Text Embedding API (/v1/embeddings)"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1084,https://github.com/router-for-me/CLIProxyAPI/issues/1084,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0553,oauth-and-authentication,"Operationalize ""配额管理中可否新增Claude OAuth认证方式号池的配额信息"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1079,https://github.com/router-for-me/CLIProxyAPI/issues/1079,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0554,thinking-and-reasoning,"Generalize ""Extended thinking model fails with ""Expected thinking or redacted_thinking, but found tool_use"" on multi-turn conversations"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1078,https://github.com/router-for-me/CLIProxyAPI/issues/1078,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0555,responses-and-chat-compat,"Improve CLI UX around ""functionDeclarations 和 googleSearch 合并到同一个 tool 对象导致 Gemini API 报错"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1077,https://github.com/router-for-me/CLIProxyAPI/issues/1077,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0558,responses-and-chat-compat,"Refactor internals touched by ""image generation 429"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1073,https://github.com/router-for-me/CLIProxyAPI/issues/1073,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0559,thinking-and-reasoning,"Prepare safe rollout for ""No Auth Available"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1072,https://github.com/router-for-me/CLIProxyAPI/issues/1072,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0560,responses-and-chat-compat,"Standardize naming/metadata affected by ""配置OpenAI兼容格式的API,用Anthropic接口 OpenAI接口都调用不成功"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1066,https://github.com/router-for-me/CLIProxyAPI/issues/1066,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0561,docs-quickstarts,"Create or refresh provider quickstart derived from """"Think Mode"" Reasoning models are not visible in GitHub Copilot interface"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1065,https://github.com/router-for-me/CLIProxyAPI/issues/1065,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0562,responses-and-chat-compat,"Harden ""Gemini 和 Claude 多条 system 提示词时,只有最后一条生效 / When Gemini and Claude have multiple system prompt words, only the last one takes effect"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1064,https://github.com/router-for-me/CLIProxyAPI/issues/1064,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0563,thinking-and-reasoning,"Operationalize ""OAuth issue with Qwen using Google Social Login"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1063,https://github.com/router-for-me/CLIProxyAPI/issues/1063,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0564,oauth-and-authentication,"Generalize ""[Feature] allow to disable auth files from UI (management)"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1062,https://github.com/router-for-me/CLIProxyAPI/issues/1062,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0567,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""OpenAI 兼容提供商 由于客户端没有兼容OpenAI接口,导致调用失败"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1059,https://github.com/router-for-me/CLIProxyAPI/issues/1059,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0569,responses-and-chat-compat,"Prepare safe rollout for ""[bug]在 opencode 多次正常请求后出现 500 Unknown Error 后紧接着 No Auth Available"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1057,https://github.com/router-for-me/CLIProxyAPI/issues/1057,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0573,provider-model-registry,"Operationalize ""Codex authentication cannot be detected"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1052,https://github.com/router-for-me/CLIProxyAPI/issues/1052,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0574,oauth-and-authentication,"Generalize ""v6.7.3 OAuth 模型映射 新增或修改存在问题"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1051,https://github.com/router-for-me/CLIProxyAPI/issues/1051,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0576,oauth-and-authentication,"Extend docs for ""最新版本CPA,OAuths模型映射功能失败?"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1048,https://github.com/router-for-me/CLIProxyAPI/issues/1048,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0577,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""新增的Antigravity文件会报错429"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1047,https://github.com/router-for-me/CLIProxyAPI/issues/1047,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0578,docs-quickstarts,"Create or refresh provider quickstart derived from ""Docker部署缺失gemini-web-auth功能"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1045,https://github.com/router-for-me/CLIProxyAPI/issues/1045,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0586,responses-and-chat-compat,"Extend docs for ""macos webui Codex OAuth error"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1037,https://github.com/router-for-me/CLIProxyAPI/issues/1037,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0587,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""antigravity 无法获取登录链接"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1035,https://github.com/router-for-me/CLIProxyAPI/issues/1035,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0590,thinking-and-reasoning,"Standardize naming/metadata affected by ""Antigravity auth causes infinite refresh loop when project_id cannot be fetched"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1030,https://github.com/router-for-me/CLIProxyAPI/issues/1030,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0595,docs-quickstarts,"Create or refresh provider quickstart derived from ""Vertex Credential Doesn't Work with gemini-3-pro-image-preview"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1024,https://github.com/router-for-me/CLIProxyAPI/issues/1024,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0601,thinking-and-reasoning,"Follow up ""Antigravity Accounts Rate Limited (HTTP 429) Despite Available Quota"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1015,https://github.com/router-for-me/CLIProxyAPI/issues/1015,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0605,oauth-and-authentication,"Improve CLI UX around ""「建议」希望能添加一个手动控制某 oauth 认证是否参与反代的功能"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1010,https://github.com/router-for-me/CLIProxyAPI/issues/1010,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0607,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""添加openai v1 chat接口,使用responses调用,出现截断,最后几个字不显示"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1008,https://github.com/router-for-me/CLIProxyAPI/issues/1008,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0610,responses-and-chat-compat,"Standardize naming/metadata affected by ""Feature: Add Veo 3.1 Video Generation Support"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1005,https://github.com/router-for-me/CLIProxyAPI/issues/1005,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0611,responses-and-chat-compat,"Follow up ""Bug: Streaming response.output_item.done missing function name"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1004,https://github.com/router-for-me/CLIProxyAPI/issues/1004,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0612,docs-quickstarts,"Create or refresh provider quickstart derived from ""Close"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1003,https://github.com/router-for-me/CLIProxyAPI/issues/1003,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0614,responses-and-chat-compat,"Generalize ""[Bug] Codex Responses API: item_reference in `input` not cleaned, causing 404 errors and incorrect client suspension"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#999,https://github.com/router-for-me/CLIProxyAPI/issues/999,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0615,responses-and-chat-compat,"Improve CLI UX around ""[Bug] Codex Responses API: `input` 中的 item_reference 未清理,导致 404 错误和客户端被误暂停"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#998,https://github.com/router-for-me/CLIProxyAPI/issues/998,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0616,responses-and-chat-compat,"Extend docs for ""【建议】保留Gemini格式请求的思考签名"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#997,https://github.com/router-for-me/CLIProxyAPI/issues/997,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0624,responses-and-chat-compat,"Generalize ""New OpenAI API: /responses/compact"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#986,https://github.com/router-for-me/CLIProxyAPI/issues/986,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0625,responses-and-chat-compat,"Improve CLI UX around ""Bug Report: OAuth Login Failure on Windows due to Port 51121 Conflict"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#985,https://github.com/router-for-me/CLIProxyAPI/issues/985,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0626,responses-and-chat-compat,"Extend docs for ""Claude model reports wrong/unknown model when accessed via API (Claude Code OAuth)"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#984,https://github.com/router-for-me/CLIProxyAPI/issues/984,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0628,responses-and-chat-compat,"Refactor internals touched by ""[建议]Codex渠道将System角色映射为Developer角色"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#982,https://github.com/router-for-me/CLIProxyAPI/issues/982,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0629,docs-quickstarts,"Create or refresh provider quickstart derived from ""No Image Generation Models Available After Gemini CLI Setup"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#978,https://github.com/router-for-me/CLIProxyAPI/issues/978,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0631,thinking-and-reasoning,"Follow up ""GPT5.2模型异常报错 auth_unavailable: no auth available"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#976,https://github.com/router-for-me/CLIProxyAPI/issues/976,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0633,oauth-and-authentication,"Operationalize ""Auth files permanently deleted from S3 on service restart due to race condition"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#973,https://github.com/router-for-me/CLIProxyAPI/issues/973,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0637,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""初次运行运行.exe文件报错"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#966,https://github.com/router-for-me/CLIProxyAPI/issues/966,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0641,thinking-and-reasoning,"Follow up ""Antigravity using Flash 2.0 Model for Sonet"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#960,https://github.com/router-for-me/CLIProxyAPI/issues/960,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0645,oauth-and-authentication,"Improve CLI UX around ""[Feature] Allow define log filepath in config"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#954,https://github.com/router-for-me/CLIProxyAPI/issues/954,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0646,docs-quickstarts,"Create or refresh provider quickstart derived from ""[建议]希望OpenAI 兼容提供商支持启用停用功能"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#953,https://github.com/router-for-me/CLIProxyAPI/issues/953,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0647,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Reasoning field missing for gpt-5.1-codex-max at xhigh reasoning level (while gpt-5.2-codex works as expected)"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#952,https://github.com/router-for-me/CLIProxyAPI/issues/952,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0650,responses-and-chat-compat,"Standardize naming/metadata affected by ""Internal Server Error: {""error"":{""message"":""auth_unavailable: no auth available""... (click to expand) [retrying in 8s attempt #4]"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#949,https://github.com/router-for-me/CLIProxyAPI/issues/949,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0651,responses-and-chat-compat,"Follow up ""[BUG] Multi-part Gemini response loses content - only last part preserved in OpenAI translation"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#948,https://github.com/router-for-me/CLIProxyAPI/issues/948,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0653,thinking-and-reasoning,"Operationalize ""接入openroute成功,但是下游使用异常"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#942,https://github.com/router-for-me/CLIProxyAPI/issues/942,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0654,responses-and-chat-compat,"Generalize ""fix: use original request JSON for echoed fields in OpenAI Responses translator"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#941,https://github.com/router-for-me/CLIProxyAPI/issues/941,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0656,provider-model-registry,"Extend docs for ""[Feature Request] Support Priority Failover Strategy (Priority Queue) Instead of all Round-Robin"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#937,https://github.com/router-for-me/CLIProxyAPI/issues/937,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0657,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""[Feature Request] Support multiple aliases for a single model name in oauth-model-mappings"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#936,https://github.com/router-for-me/CLIProxyAPI/issues/936,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0658,thinking-and-reasoning,"Refactor internals touched by ""新手登陆认证问题"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#934,https://github.com/router-for-me/CLIProxyAPI/issues/934,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0661,thinking-and-reasoning,"Follow up ""Gemini 3 Pro cannot perform native tool calls in Roo Code"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#931,https://github.com/router-for-me/CLIProxyAPI/issues/931,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0662,responses-and-chat-compat,"Harden ""Qwen OAuth Request Error"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#930,https://github.com/router-for-me/CLIProxyAPI/issues/930,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0663,docs-quickstarts,"Create or refresh provider quickstart derived from ""无法在 api 代理中使用 Anthropic 模型,报错 429"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#929,https://github.com/router-for-me/CLIProxyAPI/issues/929,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0666,oauth-and-authentication,"Extend docs for ""同一个chatgpt账号加入了多个工作空间,同时个人账户也有gptplus,他们的codex认证文件在cliproxyapi不能同时使用"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#926,https://github.com/router-for-me/CLIProxyAPI/issues/926,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0669,thinking-and-reasoning,"Prepare safe rollout for ""Help for setting mistral"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#920,https://github.com/router-for-me/CLIProxyAPI/issues/920,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0671,oauth-and-authentication,"Follow up ""How to run this?"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#917,https://github.com/router-for-me/CLIProxyAPI/issues/917,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0677,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Antigravity models return 429 RESOURCE_EXHAUSTED via cURL, but Antigravity IDE still works (started ~18:00 GMT+7)"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#910,https://github.com/router-for-me/CLIProxyAPI/issues/910,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0678,thinking-and-reasoning,"Refactor internals touched by ""gemini3p报429,其他的都好好的"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#908,https://github.com/router-for-me/CLIProxyAPI/issues/908,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0680,docs-quickstarts,"Create or refresh provider quickstart derived from ""新版本运行闪退"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#906,https://github.com/router-for-me/CLIProxyAPI/issues/906,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0682,thinking-and-reasoning,"Harden ""⎿ 429 {""error"":{""code"":""model_cooldown"",""message"":""All credentials for model gemini-claude-opus-4-5-thinking are cooling down via provider antigravity"",""model"":""gemini-claude-opus-4-5-thinking"",""provider"":""antigravity"",""reset_seconds"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#904,https://github.com/router-for-me/CLIProxyAPI/issues/904,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0685,responses-and-chat-compat,"Improve CLI UX around ""OpenAI Codex returns 400: Unsupported parameter: prompt_cache_retention"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#897,https://github.com/router-for-me/CLIProxyAPI/issues/897,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0687,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""Apply Routing Strategy also to Auth Files"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#893,https://github.com/router-for-me/CLIProxyAPI/issues/893,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0689,oauth-and-authentication,"Prepare safe rollout for ""Cursor subscription support"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#891,https://github.com/router-for-me/CLIProxyAPI/issues/891,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0691,thinking-and-reasoning,"Follow up ""[Bug] Codex auth file overwritten when account has both Plus and Team plans"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#887,https://github.com/router-for-me/CLIProxyAPI/issues/887,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0693,thinking-and-reasoning,"Operationalize ""can not work with mcp:ncp on antigravity auth"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#885,https://github.com/router-for-me/CLIProxyAPI/issues/885,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0694,oauth-and-authentication,"Generalize ""Gemini Cli Oauth 认证失败"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#884,https://github.com/router-for-me/CLIProxyAPI/issues/884,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0697,docs-quickstarts,"Create or refresh provider quickstart derived from ""同时使用GPT账号个人空间和团队空间"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#875,https://github.com/router-for-me/CLIProxyAPI/issues/875,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0707,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""[Bug] Infinite hanging and quota surge with gemini-claude-opus-4-5-thinking in Claude Code"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#852,https://github.com/router-for-me/CLIProxyAPI/issues/852,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0709,oauth-and-authentication,"Prepare safe rollout for ""功能请求:为 OAuth 账户添加独立代理配置支持"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#847,https://github.com/router-for-me/CLIProxyAPI/issues/847,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0710,responses-and-chat-compat,"Standardize naming/metadata affected by ""Promt caching"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#845,https://github.com/router-for-me/CLIProxyAPI/issues/845,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0714,docs-quickstarts,"Create or refresh provider quickstart derived from ""Image Generation 504 Timeout Investigation"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#839,https://github.com/router-for-me/CLIProxyAPI/issues/839,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0717,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""[Bug] Antigravity token refresh loop caused by metadataEqualIgnoringTimestamps skipping critical field updates"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#833,https://github.com/router-for-me/CLIProxyAPI/issues/833,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0721,oauth-and-authentication,"Follow up ""windows环境下,认证文件显示重复的BUG"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#822,https://github.com/router-for-me/CLIProxyAPI/issues/822,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0724,provider-model-registry,"Generalize ""模型带前缀并开启force_model_prefix后,以gemini格式获取模型列表中没有带前缀的模型"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#816,https://github.com/router-for-me/CLIProxyAPI/issues/816,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0726,thinking-and-reasoning,"Extend docs for ""代理的codex 404"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#812,https://github.com/router-for-me/CLIProxyAPI/issues/812,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0728,responses-and-chat-compat,"Refactor internals touched by ""Request for maintenance team intervention: Changes in internal/translator needed"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#806,https://github.com/router-for-me/CLIProxyAPI/issues/806,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0729,responses-and-chat-compat,"Prepare safe rollout for ""feat(translator): integrate SanitizeFunctionName across Claude translators"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#804,https://github.com/router-for-me/CLIProxyAPI/issues/804,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0731,docs-quickstarts,"Create or refresh provider quickstart derived from ""在cherry-studio中的流失响应似乎未生效"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#798,https://github.com/router-for-me/CLIProxyAPI/issues/798,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0732,thinking-and-reasoning,"Harden ""Bug: ModelStates (BackoffLevel) lost when auth is reloaded or refreshed"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#797,https://github.com/router-for-me/CLIProxyAPI/issues/797,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0733,provider-model-registry,"Operationalize ""[Bug] Stream usage data is merged with finish_reason: ""stop"", causing Letta AI to crash (OpenAI Stream Options incompatibility)"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#796,https://github.com/router-for-me/CLIProxyAPI/issues/796,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0734,provider-model-registry,"Generalize ""[BUG] Codex 默认回调端口 1455 位于 Hyper-v 保留端口段内"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#793,https://github.com/router-for-me/CLIProxyAPI/issues/793,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0735,thinking-and-reasoning,"Improve CLI UX around ""【Bug】: High CPU usage when managing 50+ OAuth accounts"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#792,https://github.com/router-for-me/CLIProxyAPI/issues/792,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0737,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""当在codex exec 中使用gemini 或claude 模型时 codex 无输出结果"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#790,https://github.com/router-for-me/CLIProxyAPI/issues/790,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0739,thinking-and-reasoning,"Prepare safe rollout for ""[Bug]: Gemini Models Output Truncated - Database Schema Exceeds Maximum Allowed Tokens (140k+ chars) in Claude Code"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#788,https://github.com/router-for-me/CLIProxyAPI/issues/788,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0743,websocket-and-streaming,"Operationalize ""当认证账户消耗完之后,不会自动切换到 AI 提供商账户"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#777,https://github.com/router-for-me/CLIProxyAPI/issues/777,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0748,docs-quickstarts,"Create or refresh provider quickstart derived from ""support proxy for opencode"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#753,https://github.com/router-for-me/CLIProxyAPI/issues/753,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0749,thinking-and-reasoning,"Prepare safe rollout for ""[BUG] thinking/思考链在 antigravity 反代下被截断/丢失(stream 分块处理过严)"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#752,https://github.com/router-for-me/CLIProxyAPI/issues/752,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0750,oauth-and-authentication,"Standardize naming/metadata affected by ""api-keys 필드에 placeholder 값이 있으면 invalid api key 에러 발생"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#751,https://github.com/router-for-me/CLIProxyAPI/issues/751,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0751,thinking-and-reasoning,"Follow up ""[Bug]Fix `invalid_request_error` (Field required) when assistant message has empty content with tool_calls"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#749,https://github.com/router-for-me/CLIProxyAPI/issues/749,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0753,thinking-and-reasoning,"Operationalize ""[Bug] Streaming response 'message_start' event missing token counts (affects OpenCode/Vercel AI SDK)"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#747,https://github.com/router-for-me/CLIProxyAPI/issues/747,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0755,thinking-and-reasoning,"Improve CLI UX around ""Add output_tokens_details.reasoning_tokens for thinking models on /v1/messages"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#744,https://github.com/router-for-me/CLIProxyAPI/issues/744,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0756,responses-and-chat-compat,"Extend docs for ""qwen-code-plus not supoort guided-json Structured Output"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#743,https://github.com/router-for-me/CLIProxyAPI/issues/743,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0757,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Bash tool too slow"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#742,https://github.com/router-for-me/CLIProxyAPI/issues/742,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0764,responses-and-chat-compat,"Generalize ""Bug: /v1/responses endpoint does not correctly convert message format for Anthropic API"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#736,https://github.com/router-for-me/CLIProxyAPI/issues/736,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0765,docs-quickstarts,"Create or refresh provider quickstart derived from ""请问有计划支持显示目前剩余额度吗"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#734,https://github.com/router-for-me/CLIProxyAPI/issues/734,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0766,thinking-and-reasoning,"Extend docs for ""reasoning_content is null for extended thinking models (thinking goes to content instead)"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#732,https://github.com/router-for-me/CLIProxyAPI/issues/732,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0767,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Use actual Anthropic token counts instead of estimation for reasoning_tokens"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#731,https://github.com/router-for-me/CLIProxyAPI/issues/731,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0768,thinking-and-reasoning,"Refactor internals touched by ""400 error: messages.X.content.0.text.text: Field required"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#730,https://github.com/router-for-me/CLIProxyAPI/issues/730,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0774,oauth-and-authentication,"Generalize ""最新的版本无法构建成镜像"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#721,https://github.com/router-for-me/CLIProxyAPI/issues/721,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0776,responses-and-chat-compat,"Extend docs for ""是否可以支持/openai/v1/responses端点"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#718,https://github.com/router-for-me/CLIProxyAPI/issues/718,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0782,docs-quickstarts,"Create or refresh provider quickstart derived from ""iFlow models don't work in CC anymore"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#710,https://github.com/router-for-me/CLIProxyAPI/issues/710,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0788,thinking-and-reasoning,"Refactor internals touched by ""[功能请求] 支持使用 Vertex AI的API Key 模式调用"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#699,https://github.com/router-for-me/CLIProxyAPI/issues/699,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0791,responses-and-chat-compat,"Follow up ""Translator: support first-class system prompt override for codex"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#694,https://github.com/router-for-me/CLIProxyAPI/issues/694,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0795,provider-model-registry,"Improve CLI UX around ""Feature Request: Priority-based Auth Selection for Specific Models"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#685,https://github.com/router-for-me/CLIProxyAPI/issues/685,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0799,docs-quickstarts,"Create or refresh provider quickstart derived from ""Support developer role"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#680,https://github.com/router-for-me/CLIProxyAPI/issues/680,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0802,responses-and-chat-compat,"Harden ""Translator: remove Copilot mention in OpenAI->Claude stream comment"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#677,https://github.com/router-for-me/CLIProxyAPI/issues/677,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0803,thinking-and-reasoning,"Operationalize ""iflow渠道凭证报错"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#669,https://github.com/router-for-me/CLIProxyAPI/issues/669,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0806,oauth-and-authentication,"Extend docs for ""Filter OTLP telemetry from Amp VS Code hitting /api/otel/v1/metrics"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#660,https://github.com/router-for-me/CLIProxyAPI/issues/660,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0807,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""Handle OpenAI Responses-format payloads hitting /v1/chat/completions"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#659,https://github.com/router-for-me/CLIProxyAPI/issues/659,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0815,responses-and-chat-compat,"Improve CLI UX around ""get error when tools call in jetbrains ai assistant with openai BYOK"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#639,https://github.com/router-for-me/CLIProxyAPI/issues/639,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0816,docs-quickstarts,"Create or refresh provider quickstart derived from ""[Bug] OAuth tokens have insufficient scopes for Gemini/Antigravity API - 401 ""Invalid API key"""" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#637,https://github.com/router-for-me/CLIProxyAPI/issues/637,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0818,provider-model-registry,"Refactor internals touched by ""Spam about server clients and configuration updated"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#635,https://github.com/router-for-me/CLIProxyAPI/issues/635,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0821,provider-model-registry,"Follow up ""[Feature Request] Add support for AWS Bedrock API"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#626,https://github.com/router-for-me/CLIProxyAPI/issues/626,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0823,provider-model-registry,"Operationalize """"Requested entity was not found"" for Gemini 3"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#620,https://github.com/router-for-me/CLIProxyAPI/issues/620,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0825,thinking-and-reasoning,"Improve CLI UX around ""Management routes (threads, user, auth) fail with 401/402 because proxy strips client auth and injects provider-only credentials"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#614,https://github.com/router-for-me/CLIProxyAPI/issues/614,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0826,responses-and-chat-compat,"Extend docs for ""Amp client fails with ""unexpected EOF"" when creating large files, while OpenAI-compatible clients succeed"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#613,https://github.com/router-for-me/CLIProxyAPI/issues/613,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0832,responses-and-chat-compat,"Harden ""[Bug] gpt-5.1-codex models return 400 error (no body) while other OpenAI models succeed"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#600,https://github.com/router-for-me/CLIProxyAPI/issues/600,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0833,docs-quickstarts,"Create or refresh provider quickstart derived from ""调用deepseek-chat报错"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#599,https://github.com/router-for-me/CLIProxyAPI/issues/599,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0837,provider-model-registry,"Add robust stream/non-stream parity tests for ""[Bug] Antigravity prompt caching broken by random sessionId per request"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#592,https://github.com/router-for-me/CLIProxyAPI/issues/592,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0838,websocket-and-streaming,"Refactor internals touched by ""Important Security & Integrity Alert regarding @Eric Tech"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#591,https://github.com/router-for-me/CLIProxyAPI/issues/591,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0839,provider-model-registry,"Prepare safe rollout for ""[Bug] Models from Codex (openai) are not accessible when Copilot is added"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#590,https://github.com/router-for-me/CLIProxyAPI/issues/590,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0842,responses-and-chat-compat,"Harden ""github copilot problem"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#578,https://github.com/router-for-me/CLIProxyAPI/issues/578,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0843,websocket-and-streaming,"Operationalize ""amp使用时日志频繁出现下面报错"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#576,https://github.com/router-for-me/CLIProxyAPI/issues/576,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0846,responses-and-chat-compat,"Extend docs for ""Qwen CLI often stops working before finishing the task"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#567,https://github.com/router-for-me/CLIProxyAPI/issues/567,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0847,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""gemini cli接入后,可以正常调用所属大模型;Antigravity通过OAuth成功认证接入后,无法调用所属的模型"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#566,https://github.com/router-for-me/CLIProxyAPI/issues/566,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0849,responses-and-chat-compat,"Prepare safe rollout for ""fix(translator): emit message_start on first chunk regardless of role field"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#563,https://github.com/router-for-me/CLIProxyAPI/issues/563,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0850,docs-quickstarts,"Create or refresh provider quickstart derived from ""Bug: OpenAI→Anthropic streaming translation fails with tool calls - missing message_start"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#561,https://github.com/router-for-me/CLIProxyAPI/issues/561,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0853,oauth-and-authentication,"Operationalize ""Bug: AmpCode login routes incorrectly require API key authentication since v6.6.15"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#554,https://github.com/router-for-me/CLIProxyAPI/issues/554,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0854,responses-and-chat-compat,"Generalize ""Github Copilot"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#551,https://github.com/router-for-me/CLIProxyAPI/issues/551,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0856,responses-and-chat-compat,"Extend docs for ""Antigravity has no gemini-2.5-pro"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#548,https://github.com/router-for-me/CLIProxyAPI/issues/548,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0858,thinking-and-reasoning,"Refactor internals touched by ""The token file was not generated."" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#544,https://github.com/router-for-me/CLIProxyAPI/issues/544,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0860,thinking-and-reasoning,"Standardize naming/metadata affected by ""Bug: Codex→Claude SSE content_block.index collisions break Claude clients"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#539,https://github.com/router-for-me/CLIProxyAPI/issues/539,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0863,responses-and-chat-compat,"Operationalize ""Feature: Add copilot-unlimited-mode config for copilot-api compatibility"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#532,https://github.com/router-for-me/CLIProxyAPI/issues/532,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0864,thinking-and-reasoning,"Generalize ""Bug: content_block_start sent before message_start in OpenAI→Anthropic translation"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#530,https://github.com/router-for-me/CLIProxyAPI/issues/530,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0865,websocket-and-streaming,"Improve CLI UX around ""CLIProxyAPI,通过gemini cli来实现对gemini-2.5-pro的调用,如果遇到输出长度在上万字的情况,总是遇到429错误"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#518,https://github.com/router-for-me/CLIProxyAPI/issues/518,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0866,thinking-and-reasoning,"Extend docs for ""Antigravity Error 400"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#517,https://github.com/router-for-me/CLIProxyAPI/issues/517,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0867,docs-quickstarts,"Create or refresh provider quickstart derived from ""Add AiStudio error"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#513,https://github.com/router-for-me/CLIProxyAPI/issues/513,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0868,thinking-and-reasoning,"Refactor internals touched by ""Claude Code with Antigravity gemini-claude-sonnet-4-5-thinking error: Extra inputs are not permitted"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#512,https://github.com/router-for-me/CLIProxyAPI/issues/512,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0871,thinking-and-reasoning,"Follow up ""GET /v1/models does not expose model capabilities (e.g. gpt-5.2 supports (xhigh) but cannot be discovered)"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#508,https://github.com/router-for-me/CLIProxyAPI/issues/508,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0876,thinking-and-reasoning,"Extend docs for ""gpt5.2 cherry 报错"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#496,https://github.com/router-for-me/CLIProxyAPI/issues/496,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0884,docs-quickstarts,"Create or refresh provider quickstart derived from ""How to configure thinking for Claude and Codex?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#483,https://github.com/router-for-me/CLIProxyAPI/issues/483,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0886,thinking-and-reasoning,"Extend docs for ""CLIProxyAPI配置 Gemini CLI最后一步失败:Google账号权限设置不够"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#480,https://github.com/router-for-me/CLIProxyAPI/issues/480,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0890,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix(translator): skip empty functionResponse in OpenAI-to-Antigravity path"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#475,https://github.com/router-for-me/CLIProxyAPI/issues/475,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0892,responses-and-chat-compat,"Harden ""fix(translator): preserve tool_use blocks on args parse failure"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#471,https://github.com/router-for-me/CLIProxyAPI/issues/471,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0895,thinking-and-reasoning,"Improve CLI UX around ""Streaming fails for ""preview"" and ""thinking"" models (response is buffered)"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#460,https://github.com/router-for-me/CLIProxyAPI/issues/460,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0896,responses-and-chat-compat,"Extend docs for ""failed to unmarshal function response: invalid character 'm' looking for beginning of value on droid"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#451,https://github.com/router-for-me/CLIProxyAPI/issues/451,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0898,responses-and-chat-compat,"Refactor internals touched by ""[Suggestion] Add ingress rate limiting and 403 circuit breaker for /v1/messages"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#443,https://github.com/router-for-me/CLIProxyAPI/issues/443,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0900,oauth-and-authentication,"Standardize naming/metadata affected by ""【BUG】Infinite loop on startup if an auth file is removed (Windows)"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#440,https://github.com/router-for-me/CLIProxyAPI/issues/440,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0901,docs-quickstarts,"Create or refresh provider quickstart derived from ""can I use models of droid in Claude Code?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#438,https://github.com/router-for-me/CLIProxyAPI/issues/438,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0902,thinking-and-reasoning,"Harden ""`[Bug/Question]: Antigravity models looping in Plan Mode & 400 Invalid Argument errors`"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#437,https://github.com/router-for-me/CLIProxyAPI/issues/437,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0903,thinking-and-reasoning,"Operationalize ""[Bug] 400 Invalid Argument: 'thinking' block missing in ConvertClaudeRequestToAntigravity"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#436,https://github.com/router-for-me/CLIProxyAPI/issues/436,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0904,thinking-and-reasoning,"Generalize ""gemini等模型没有按openai api的格式返回呀"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#433,https://github.com/router-for-me/CLIProxyAPI/issues/433,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0906,thinking-and-reasoning,"Extend docs for ""Antigravity Claude *-thinking + tools only stream reasoning (no assistant content/tool_calls) via OpenAI-compatible API"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#425,https://github.com/router-for-me/CLIProxyAPI/issues/425,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0907,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Antigravity Claude by Claude Code `max_tokens` must be greater than `thinking.budget_tokens`"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#424,https://github.com/router-for-me/CLIProxyAPI/issues/424,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0909,thinking-and-reasoning,"Prepare safe rollout for ""Extended thinking blocks not preserved during tool use, causing API rejection"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#420,https://github.com/router-for-me/CLIProxyAPI/issues/420,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0910,thinking-and-reasoning,"Standardize naming/metadata affected by ""Antigravity Claude via CLIProxyAPI: browsing enabled in Cherry but no actual web requests"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#419,https://github.com/router-for-me/CLIProxyAPI/issues/419,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0913,responses-and-chat-compat,"Operationalize ""Gemini-CLI,gemini-2.5-pro调用触发限流之后(You have exhausted your capacity on this model. Your quota will reset after 51s.),会自动切换请求gemini-2.5-pro-preview-06-05,但是这个模型貌似已经不存在了"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#414,https://github.com/router-for-me/CLIProxyAPI/issues/414,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0916,thinking-and-reasoning,"Extend docs for ""[Feature Request] Dynamic Model Mapping & Custom Parameter Injection (e.g., iflow /tab)"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#411,https://github.com/router-for-me/CLIProxyAPI/issues/411,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0918,docs-quickstarts,"Create or refresh provider quickstart derived from ""Antigravity not working"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#407,https://github.com/router-for-me/CLIProxyAPI/issues/407,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0919,websocket-and-streaming,"Prepare safe rollout for ""大佬能不能出个zeabur部署的教程"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#403,https://github.com/router-for-me/CLIProxyAPI/issues/403,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0921,thinking-and-reasoning,"Follow up ""HTTP Proxy Not Effective: Token Unobtainable After Google Account Authentication Success"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#397,https://github.com/router-for-me/CLIProxyAPI/issues/397,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0929,thinking-and-reasoning,"Prepare safe rollout for ""能否为kiro oauth提供支持?(附实现项目链接)"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#368,https://github.com/router-for-me/CLIProxyAPI/issues/368,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0930,oauth-and-authentication,"Standardize naming/metadata affected by ""antigravity 无法配置?"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#367,https://github.com/router-for-me/CLIProxyAPI/issues/367,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0935,docs-quickstarts,"Create or refresh provider quickstart derived from ""[Bug] Codex Reasponses Sometimes Omit Reasoning Tokens"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#356,https://github.com/router-for-me/CLIProxyAPI/issues/356,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0936,thinking-and-reasoning,"Extend docs for ""[Bug] Codex Max Does Not Utilize XHigh Reasoning Effort"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#354,https://github.com/router-for-me/CLIProxyAPI/issues/354,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0937,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""[Bug] Gemini 3 Does Not Utilize Reasoning Effort"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#353,https://github.com/router-for-me/CLIProxyAPI/issues/353,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0938,thinking-and-reasoning,"Refactor internals touched by ""API for iflow-cli is not work anymore: iflow executor: token refresh failed: iflow token: missing access token in response"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#352,https://github.com/router-for-me/CLIProxyAPI/issues/352,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0939,responses-and-chat-compat,"Prepare safe rollout for ""[Bug] Antigravity/Claude Code: ""tools.0.custom.input_schema: Field required"" error on all antigravity models"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#351,https://github.com/router-for-me/CLIProxyAPI/issues/351,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0942,responses-and-chat-compat,"Harden ""Gemini 3 Pro + Codex CLI"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#346,https://github.com/router-for-me/CLIProxyAPI/issues/346,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0947,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""OpenAI and Gemini API: thinking/chain-of-thought broken or 400 error (max_tokens vs thinking.budget_tokens) for thinking models"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#338,https://github.com/router-for-me/CLIProxyAPI/issues/338,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0948,thinking-and-reasoning,"Refactor internals touched by ""[Bug] Commit 52c17f0 breaks OAuth authentication for Anthropic models"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#337,https://github.com/router-for-me/CLIProxyAPI/issues/337,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0951,thinking-and-reasoning,"Follow up ""gemini-claude-sonnet-4-5-thinking: Chain-of-Thought (thinking) does not work on any API (OpenAI/Gemini/Claude)"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#332,https://github.com/router-for-me/CLIProxyAPI/issues/332,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0952,docs-quickstarts,"Create or refresh provider quickstart derived from ""docker方式部署后,怎么登陆gemini账号呢?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#328,https://github.com/router-for-me/CLIProxyAPI/issues/328,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0963,thinking-and-reasoning,"Operationalize ""Gemini not stream thinking result"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#308,https://github.com/router-for-me/CLIProxyAPI/issues/308,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0965,oauth-and-authentication,"Improve CLI UX around ""docker-compose启动错误"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#305,https://github.com/router-for-me/CLIProxyAPI/issues/305,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0969,docs-quickstarts,"Create or refresh provider quickstart derived from ""token无计数"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#300,https://github.com/router-for-me/CLIProxyAPI/issues/300,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0972,oauth-and-authentication,"Harden ""[Feature Request] Add --manual-callback mode for headless/remote OAuth (especially for users behind proxy / Clash TUN in China)"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#295,https://github.com/router-for-me/CLIProxyAPI/issues/295,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0973,provider-model-registry,"Operationalize ""Regression: gemini-3-pro-preview unusable due to removal of 429 retry logic in d50b0f7"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#293,https://github.com/router-for-me/CLIProxyAPI/issues/293,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0974,responses-and-chat-compat,"Generalize ""Gemini 3 Pro no response in Roo Code with AI Studio setup"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#291,https://github.com/router-for-me/CLIProxyAPI/issues/291,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0976,responses-and-chat-compat,"Extend docs for ""Post ""https://chatgpt.com/backend-api/codex/responses"": Not Found"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#286,https://github.com/router-for-me/CLIProxyAPI/issues/286,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0978,thinking-and-reasoning,"Refactor internals touched by ""Bug: Gemini 3 Thinking Budget requires normalization in CLI Translator"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#282,https://github.com/router-for-me/CLIProxyAPI/issues/282,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0979,thinking-and-reasoning,"Prepare safe rollout for ""Feature Request: Support for Gemini 3 Pro Preview"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#278,https://github.com/router-for-me/CLIProxyAPI/issues/278,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0983,provider-model-registry,"Operationalize ""`gemini-3-pro-preview` is missing"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#271,https://github.com/router-for-me/CLIProxyAPI/issues/271,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0984,thinking-and-reasoning,"Generalize ""Adjust gemini-3-pro-preview`s doc"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#269,https://github.com/router-for-me/CLIProxyAPI/issues/269,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0986,docs-quickstarts,"Create or refresh provider quickstart derived from ""Bug: config.example.yaml has incorrect auth-dir default, causes auth files to be saved in wrong location"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#265,https://github.com/router-for-me/CLIProxyAPI/issues/265,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0987,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Security: Auth directory created with overly permissive 0o755 instead of 0o700"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#264,https://github.com/router-for-me/CLIProxyAPI/issues/264,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0991,provider-model-registry,"Follow up ""Factory Droid: /compress (session compact) fails on Gemini 2.5 via CLIProxyAPI"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#260,https://github.com/router-for-me/CLIProxyAPI/issues/260,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0993,provider-model-registry,"Operationalize ""gemini oauth in droid cli: unknown provider"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#258,https://github.com/router-for-me/CLIProxyAPI/issues/258,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0998,provider-model-registry,"Refactor internals touched by ""Feature: scoped `auto` model (provider + pattern)"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#251,https://github.com/router-for-me/CLIProxyAPI/issues/251,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0999,thinking-and-reasoning,"Prepare safe rollout for ""wss 链接失败"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#250,https://github.com/router-for-me/CLIProxyAPI/issues/250,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1001,thinking-and-reasoning,"Follow up ""不支持 candidate_count 功能,设置需要多版本回复的时候,只会输出1条"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#247,https://github.com/router-for-me/CLIProxyAPI/issues/247,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1003,docs-quickstarts,"Create or refresh provider quickstart derived from ""cli-proxy-api --gemini-web-auth"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#244,https://github.com/router-for-me/CLIProxyAPI/issues/244,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1009,provider-model-registry,"Prepare safe rollout for ""Feature Request: Support ""auto"" Model Selection for Seamless Provider Updates"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#236,https://github.com/router-for-me/CLIProxyAPI/issues/236,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1013,thinking-and-reasoning,"Operationalize ""Feature Request : Token Caching for Codex"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#231,https://github.com/router-for-me/CLIProxyAPI/issues/231,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1014,responses-and-chat-compat,"Generalize ""agentrouter problem"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#228,https://github.com/router-for-me/CLIProxyAPI/issues/228,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1019,responses-and-chat-compat,"Prepare safe rollout for ""/v1/responese connection error for version 0.55.0 of codex"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#216,https://github.com/router-for-me/CLIProxyAPI/issues/216,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1020,docs-quickstarts,"Create or refresh provider quickstart derived from ""https://huggingface.co/chat"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#212,https://github.com/router-for-me/CLIProxyAPI/issues/212,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1030,provider-model-registry,"Standardize naming/metadata affected by ""Feature Request: OAuth Aliases & Multiple Aliases"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#192,https://github.com/router-for-me/CLIProxyAPI/issues/192,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1033,responses-and-chat-compat,"Operationalize ""internal/translator下的翻译器对外暴露了吗?"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#188,https://github.com/router-for-me/CLIProxyAPI/issues/188,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1034,responses-and-chat-compat,"Generalize ""API Key issue"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#181,https://github.com/router-for-me/CLIProxyAPI/issues/181,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1037,docs-quickstarts,"Create or refresh provider quickstart derived from ""gemini-cli `Request Failed: 400` exception"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#176,https://github.com/router-for-me/CLIProxyAPI/issues/176,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1041,responses-and-chat-compat,"Follow up ""[feature request] pass model names without defining them [HAS PR]"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#171,https://github.com/router-for-me/CLIProxyAPI/issues/171,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1043,responses-and-chat-compat,"Operationalize ""Troublesome First Instruction"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#169,https://github.com/router-for-me/CLIProxyAPI/issues/169,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1053,thinking-and-reasoning,"Operationalize ""All-in-WSL2: Claude Code (sub-agents + MCP) via CLIProxyAPI — token-only Codex, gpt-5-high / gpt-5-low mapping, multi-account"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#154,https://github.com/router-for-me/CLIProxyAPI/issues/154,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1054,docs-quickstarts,"Create or refresh provider quickstart derived from ""OpenAI-compatible API not working properly with certain models (e.g. glm-4.6, kimi-k2, DeepSeek-V3.2)"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#153,https://github.com/router-for-me/CLIProxyAPI/issues/153,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1056,thinking-and-reasoning,"Extend docs for ""Question about models:"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#150,https://github.com/router-for-me/CLIProxyAPI/issues/150,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1057,provider-model-registry,"Add robust stream/non-stream parity tests for ""Feature Request: Add rovodev CLI Support"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#149,https://github.com/router-for-me/CLIProxyAPI/issues/149,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1059,oauth-and-authentication,"Prepare safe rollout for ""Cannot create Auth files in docker container webui management page"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#144,https://github.com/router-for-me/CLIProxyAPI/issues/144,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1063,responses-and-chat-compat,"Operationalize ""API Error"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#137,https://github.com/router-for-me/CLIProxyAPI/issues/137,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1065,provider-model-registry,"Improve CLI UX around ""droid cli with CLIProxyAPI [codex,zai]"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#135,https://github.com/router-for-me/CLIProxyAPI/issues/135,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1068,responses-and-chat-compat,"Refactor internals touched by ""Agentrouter.org Support"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#131,https://github.com/router-for-me/CLIProxyAPI/issues/131,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1071,docs-quickstarts,"Create or refresh provider quickstart derived from ""Add Z.ai / GLM API Configuration"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#124,https://github.com/router-for-me/CLIProxyAPI/issues/124,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1072,responses-and-chat-compat,"Harden ""Gemini + Droid = Bug"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#123,https://github.com/router-for-me/CLIProxyAPI/issues/123,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1074,websocket-and-streaming,"Generalize ""Web Search and other network tools"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#121,https://github.com/router-for-me/CLIProxyAPI/issues/121,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1078,thinking-and-reasoning,"Refactor internals touched by ""Feat Request: Usage Limit Notifications + Timers + Per-Auth Usage"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#112,https://github.com/router-for-me/CLIProxyAPI/issues/112,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1088,docs-quickstarts,"Create or refresh provider quickstart derived from ""Huge error message when connecting to Gemini via Opencode, SanitizeSchemaForGemini not being used?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#97,https://github.com/router-for-me/CLIProxyAPI/issues/97,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1093,thinking-and-reasoning,"Operationalize ""Gemini Web Auto Refresh Token"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#89,https://github.com/router-for-me/CLIProxyAPI/issues/89,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1097,provider-model-registry,"Add robust stream/non-stream parity tests for ""Add more model selection options"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#84,https://github.com/router-for-me/CLIProxyAPI/issues/84,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1098,thinking-and-reasoning,"Refactor internals touched by ""Error on switching models in Droid after hitting Usage Limit"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#81,https://github.com/router-for-me/CLIProxyAPI/issues/81,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1101,oauth-and-authentication,"Follow up ""[Feature Request] - Adding OAuth support of Z.AI and Kimi"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#76,https://github.com/router-for-me/CLIProxyAPI/issues/76,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1105,docs-quickstarts,"Create or refresh provider quickstart derived from ""添加回调链接输入认证"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#56,https://github.com/router-for-me/CLIProxyAPI/issues/56,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1107,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""Error walking auth directory: open C:\Users\xiaohu\AppData\Local\ElevatedDiagnostics: Access is denied"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#42,https://github.com/router-for-me/CLIProxyAPI/issues/42,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1109,websocket-and-streaming,"Prepare safe rollout for ""lobechat 添加自定义API服务商后无法使用"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#38,https://github.com/router-for-me/CLIProxyAPI/issues/38,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1110,thinking-and-reasoning,"Standardize naming/metadata affected by ""Missing API key"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#37,https://github.com/router-for-me/CLIProxyAPI/issues/37,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1117,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""客户端/终端可以正常访问该代理,但无法输出回复"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#21,https://github.com/router-for-me/CLIProxyAPI/issues/21,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1119,responses-and-chat-compat,"Prepare safe rollout for ""希望可以加入对responses的支持。"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#19,https://github.com/router-for-me/CLIProxyAPI/issues/19,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1120,error-handling-retries,"Standardize naming/metadata affected by ""关于gpt5"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#18,https://github.com/router-for-me/CLIProxyAPI/issues/18,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1122,docs-quickstarts,"Create or refresh provider quickstart derived from ""gemini使用project_id登录,会无限要求跳转链接,使用配置更改auth_dir无效"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#14,https://github.com/router-for-me/CLIProxyAPI/issues/14,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1123,thinking-and-reasoning,"Operationalize ""新认证生成的auth文件,使用的时候提示:400 API key not valid."" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#13,https://github.com/router-for-me/CLIProxyAPI/issues/13,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1129,responses-and-chat-compat,"Prepare safe rollout for ""如果一个项目需要指定ID认证,则指定后一定也会失败"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#6,https://github.com/router-for-me/CLIProxyAPI/issues/6,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1130,thinking-and-reasoning,"Standardize naming/metadata affected by ""指定project_id登录,无限跳转登陆页面"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#5,https://github.com/router-for-me/CLIProxyAPI/issues/5,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1132,oauth-and-authentication,"Harden ""Login error.win11"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#3,https://github.com/router-for-me/CLIProxyAPI/issues/3,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1714,thinking-and-reasoning,"Generalize ""429 RESOURCE_EXHAUSTED for Claude Opus 4.5 Thinking with Google AI Pro Account"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1471,https://github.com/router-for-me/CLIProxyAPI/discussions/1471,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1717,docs-quickstarts,"Create or refresh provider quickstart derived from ""是否支持微软账号的反代?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1636,https://github.com/router-for-me/CLIProxyAPI/discussions/1636,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1718,thinking-and-reasoning,"Refactor internals touched by ""[Feature Request] Antigravity channel should support routing claude-haiku-4-5-20251001 model (used by Claude Code pre-flight checks)"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1619,https://github.com/router-for-me/CLIProxyAPI/discussions/1619,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1719,oauth-and-authentication,"Prepare safe rollout for ""new project"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1602,https://github.com/router-for-me/CLIProxyAPI/discussions/1602,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1724,thinking-and-reasoning,"Generalize ""[功能请求] 支持使用 Vertex AI的API Key 模式调用"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1212,https://github.com/router-for-me/CLIProxyAPI/discussions/1212,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1726,oauth-and-authentication,"Extend docs for ""grok的OAuth登录认证可以支持下吗? 谢谢!"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1569,https://github.com/router-for-me/CLIProxyAPI/discussions/1569,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1727,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""400 Bad Request when reasoning_effort=""xhigh"" with kimi k2.5 (OpenAI-compatible API)"" across supported providers.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1309,https://github.com/router-for-me/CLIProxyAPI/discussions/1309,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1730,thinking-and-reasoning,"Standardize naming/metadata affected by ""为什么gemini3会报错"" across both repos and docs.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1550,https://github.com/router-for-me/CLIProxyAPI/discussions/1550,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1732,thinking-and-reasoning,"Harden ""Feat Request: Usage Limit Notifications + Timers + Per-Auth Usage"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#519,https://github.com/router-for-me/CLIProxyAPI/discussions/519,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1734,docs-quickstarts,"Create or refresh provider quickstart derived from ""Will using this claude code subscription lead to account suspension?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1520,https://github.com/router-for-me/CLIProxyAPI/discussions/1520,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1735,thinking-and-reasoning,"Improve CLI UX around ""After logging in with iFlowOAuth, most models cannot be used, only non-CLI models can be used."" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1498,https://github.com/router-for-me/CLIProxyAPI/discussions/1498,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1736,oauth-and-authentication,"Extend docs for ""CLIProxyAPI woth opencode and google, qwen, antigravity, amp - how to do it?"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1489,https://github.com/router-for-me/CLIProxyAPI/discussions/1489,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1739,thinking-and-reasoning,"Prepare safe rollout for ""NVIDIA不支持,转发成claude和gpt都用不了"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1145,https://github.com/router-for-me/CLIProxyAPI/discussions/1145,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1751,docs-quickstarts,"Create or refresh provider quickstart derived from ""mac使用brew安装的cpa,请问配置文件在哪?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#843,https://github.com/router-for-me/CLIProxyAPI/discussions/843,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1756,responses-and-chat-compat,"Extend docs for ""New OpenAI API: /responses/compact"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1202,https://github.com/router-for-me/CLIProxyAPI/discussions/1202,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1763,thinking-and-reasoning,"Operationalize ""openai codex 认证失败: Failed to exchange authorization code for tokens"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1221,https://github.com/router-for-me/CLIProxyAPI/discussions/1221,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1768,docs-quickstarts,"Create or refresh provider quickstart derived from ""询问 AI Studio Build Proxy 的 每日大概额度"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1158,https://github.com/router-for-me/CLIProxyAPI/discussions/1158,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1774,responses-and-chat-compat,"Generalize ""Feature: Add Veo 3.1 Video Generation Support"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1016,https://github.com/router-for-me/CLIProxyAPI/discussions/1016,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1775,oauth-and-authentication,"Improve CLI UX around ""Gemini Cli Oauth 认证失败"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#890,https://github.com/router-for-me/CLIProxyAPI/discussions/890,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1776,oauth-and-authentication,"Extend docs for ""配额管理中可否新增Claude OAuth认证方式号池的配额信息"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1178,https://github.com/router-for-me/CLIProxyAPI/discussions/1178,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1779,responses-and-chat-compat,"Prepare safe rollout for ""windmill-sse-support"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1046,https://github.com/router-for-me/CLIProxyAPI/discussions/1046,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1781,oauth-and-authentication,"Follow up ""antigravity 无法获取登录链接"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1036,https://github.com/router-for-me/CLIProxyAPI/discussions/1036,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1785,docs-quickstarts,"Create or refresh provider quickstart derived from ""主负责人们你们好!非常喜欢你们的作品,给我的日常工作带来了巨大的帮助!最近项目是被其他提交者们刷年底开源kpi了吗?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1000,https://github.com/router-for-me/CLIProxyAPI/discussions/1000,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1788,provider-model-registry,"Refactor internals touched by ""No Image Generation Models Available After Gemini CLI Setup"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1207,https://github.com/router-for-me/CLIProxyAPI/discussions/1207,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1791,oauth-and-authentication,"Follow up ""Does CLIProxyAPI support Google Antigravity OAuth?"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#979,https://github.com/router-for-me/CLIProxyAPI/discussions/979,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1797,error-handling-retries,"Add robust stream/non-stream parity tests for ""目前所有凭证完好,其他模型都能请求成功,除了Gemini3.0Pro,报429"" across supported providers.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#909,https://github.com/router-for-me/CLIProxyAPI/discussions/909,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1802,docs-quickstarts,"Create or refresh provider quickstart derived from ""antigravity and gemini cli duplicated model names"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#882,https://github.com/router-for-me/CLIProxyAPI/discussions/882,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1808,thinking-and-reasoning,"Refactor internals touched by ""代理的codex 404"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#813,https://github.com/router-for-me/CLIProxyAPI/discussions/813,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1809,provider-model-registry,"Prepare safe rollout for ""Feature Request: Priority-based Auth Selection for Specific Models"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#692,https://github.com/router-for-me/CLIProxyAPI/discussions/692,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1812,responses-and-chat-compat,"Harden ""github copilot problem"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#640,https://github.com/router-for-me/CLIProxyAPI/discussions/640,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1816,thinking-and-reasoning,"Extend docs for ""Antigravity"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#674,https://github.com/router-for-me/CLIProxyAPI/discussions/674,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1819,docs-quickstarts,"Create or refresh provider quickstart derived from ""Filter OTLP telemetry from Amp VS Code hitting /api/otel/v1/metrics"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#672,https://github.com/router-for-me/CLIProxyAPI/discussions/672,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1820,provider-model-registry,"Standardize naming/metadata affected by ""[Feature Request] Add support for AWS Bedrock API"" across both repos and docs.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#643,https://github.com/router-for-me/CLIProxyAPI/discussions/643,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1825,thinking-and-reasoning,"Improve CLI UX around ""The token file was not generated."" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#555,https://github.com/router-for-me/CLIProxyAPI/discussions/555,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1828,oauth-and-authentication,"Refactor internals touched by ""gemini cli接入后,可以正常调用所属大模型;Antigravity通过OAuth成功认证接入后,无法调用所属的模型"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#568,https://github.com/router-for-me/CLIProxyAPI/discussions/568,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1830,provider-model-registry,"Standardize naming/metadata affected by ""Where does it take my limits from when using ""gemini-3-pro-preview"" model?"" across both repos and docs.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#540,https://github.com/router-for-me/CLIProxyAPI/discussions/540,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1836,docs-quickstarts,"Create or refresh provider quickstart derived from ""支持一下https://gemini.google.com/app"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#469,https://github.com/router-for-me/CLIProxyAPI/discussions/469,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1839,responses-and-chat-compat,"Prepare safe rollout for ""[Suggestion] Add ingress rate limiting and 403 circuit breaker for /v1/messages"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#651,https://github.com/router-for-me/CLIProxyAPI/discussions/651,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1841,thinking-and-reasoning,"Follow up ""[Feature Request] Dynamic Model Mapping & Custom Parameter Injection (e.g., iflow /tab)"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#527,https://github.com/router-for-me/CLIProxyAPI/discussions/527,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1847,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Feature: Add tier-based provider prioritization"" across supported providers.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#526,https://github.com/router-for-me/CLIProxyAPI/discussions/526,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1853,docs-quickstarts,"Create or refresh provider quickstart derived from ""Questions About Accessing the New Model"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#267,https://github.com/router-for-me/CLIProxyAPI/discussions/267,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1855,provider-model-registry,"Improve CLI UX around ""Question about connecting to AI Studio"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#276,https://github.com/router-for-me/CLIProxyAPI/discussions/276,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1857,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""agentrouter problem"" across supported providers.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#229,https://github.com/router-for-me/CLIProxyAPI/discussions/229,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1864,provider-model-registry,"Generalize ""Feature Request: OAuth Aliases & Multiple Aliases"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#523,https://github.com/router-for-me/CLIProxyAPI/discussions/523,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1865,oauth-and-authentication,"Improve CLI UX around ""No Auth Status"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#521,https://github.com/router-for-me/CLIProxyAPI/discussions/521,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1866,thinking-and-reasoning,"Extend docs for ""Support `variant` parameter as fallback for `reasoning_effort` in codex models"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#258,https://github.com/router-for-me/CLIProxyAPIPlus/issues/258,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1869,responses-and-chat-compat,"Prepare safe rollout for ""Codex support"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#253,https://github.com/router-for-me/CLIProxyAPIPlus/issues/253,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1870,docs-quickstarts,"Create or refresh provider quickstart derived from ""Bug thinking"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#251,https://github.com/router-for-me/CLIProxyAPIPlus/issues/251,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1871,thinking-and-reasoning,"Follow up ""fix(cline): add grantType to token refresh and extension headers"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#246,https://github.com/router-for-me/CLIProxyAPIPlus/issues/246,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1872,thinking-and-reasoning,"Harden ""fix(cline): add grantType to token refresh and extension headers"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#245,https://github.com/router-for-me/CLIProxyAPIPlus/issues/245,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1874,oauth-and-authentication,"Generalize ""Add AMP auth as Kiro"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#232,https://github.com/router-for-me/CLIProxyAPIPlus/issues/232,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1875,provider-model-registry,"Improve CLI UX around ""[Bug] Unable to disable default kiro model aliases; configuration persists in memory after deletion"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#222,https://github.com/router-for-me/CLIProxyAPIPlus/issues/222,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1876,general-polish,"Extend docs for ""kiro账号被封"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#221,https://github.com/router-for-me/CLIProxyAPIPlus/issues/221,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1879,thinking-and-reasoning,"Prepare safe rollout for ""Add support for proxying models from kilocode CLI"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#213,https://github.com/router-for-me/CLIProxyAPIPlus/issues/213,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1880,responses-and-chat-compat,"Standardize naming/metadata affected by ""[Bug] Kiro 与 Ampcode 的 Bash 工具参数不兼容"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#210,https://github.com/router-for-me/CLIProxyAPIPlus/issues/210,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1882,responses-and-chat-compat,"Harden ""bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#206,https://github.com/router-for-me/CLIProxyAPIPlus/issues/206,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1883,thinking-and-reasoning,"Operationalize ""GitHub Copilot CLI 使用方法"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#202,https://github.com/router-for-me/CLIProxyAPIPlus/issues/202,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1887,docs-quickstarts,"Create or refresh provider quickstart derived from ""Why no opus 4.6 on github copilot auth"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#196,https://github.com/router-for-me/CLIProxyAPIPlus/issues/196,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1890,thinking-and-reasoning,"Standardize naming/metadata affected by ""Claude thought_signature forwarded to Gemini causes Base64 decode error"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#178,https://github.com/router-for-me/CLIProxyAPIPlus/issues/178,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1895,responses-and-chat-compat,"Improve CLI UX around ""fix(kiro): handle empty content in messages to prevent Bad Request errors"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#163,https://github.com/router-for-me/CLIProxyAPIPlus/issues/163,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1896,oauth-and-authentication,"Extend docs for ""在配置文件中支持为所有 OAuth 渠道自定义上游 URL"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#158,https://github.com/router-for-me/CLIProxyAPIPlus/issues/158,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1901,responses-and-chat-compat,"Follow up ""[Bug]进一步完善 openai兼容模式对 claude 模型的支持(完善 协议格式转换 )"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#145,https://github.com/router-for-me/CLIProxyAPIPlus/issues/145,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1902,responses-and-chat-compat,"Harden ""完善 claude openai兼容渠道的格式转换"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#142,https://github.com/router-for-me/CLIProxyAPIPlus/issues/142,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1904,docs-quickstarts,"Create or refresh provider quickstart derived from ""kiro idc登录需要手动刷新状态"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#136,https://github.com/router-for-me/CLIProxyAPIPlus/issues/136,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1905,thinking-and-reasoning,"Improve CLI UX around ""[Bug Fix] 修复 Kiro 的Claude模型非流式请求 output_tokens 为 0 导致的用量统计缺失"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#134,https://github.com/router-for-me/CLIProxyAPIPlus/issues/134,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1910,responses-and-chat-compat,"Standardize naming/metadata affected by ""Error 403"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#125,https://github.com/router-for-me/CLIProxyAPIPlus/issues/125,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1912,thinking-and-reasoning,"Harden ""enterprise 账号 Kiro不是很稳定,很容易就403不可用了"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#118,https://github.com/router-for-me/CLIProxyAPIPlus/issues/118,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1913,oauth-and-authentication,"Operationalize ""-kiro-aws-login 登录后一直封号"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#115,https://github.com/router-for-me/CLIProxyAPIPlus/issues/115,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1915,oauth-and-authentication,"Improve CLI UX around ""Antigravity authentication failed"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#111,https://github.com/router-for-me/CLIProxyAPIPlus/issues/111,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1917,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""日志中,一直打印auth file changed (WRITE)"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#105,https://github.com/router-for-me/CLIProxyAPIPlus/issues/105,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1918,oauth-and-authentication,"Refactor internals touched by ""登录incognito参数无效"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#102,https://github.com/router-for-me/CLIProxyAPIPlus/issues/102,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1921,docs-quickstarts,"Create or refresh provider quickstart derived from ""Kiro currently has no authentication available"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#96,https://github.com/router-for-me/CLIProxyAPIPlus/issues/96,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1923,responses-and-chat-compat,"Operationalize ""Feature: Add Veo Video Generation Support (Similar to Image Generation)"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#94,https://github.com/router-for-me/CLIProxyAPIPlus/issues/94,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1924,thinking-and-reasoning,"Generalize ""Bug: Kiro/BuilderId tokens can collide when email/profile_arn are empty; refresh token lifecycle not handled"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#90,https://github.com/router-for-me/CLIProxyAPIPlus/issues/90,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1925,responses-and-chat-compat,"Improve CLI UX around ""[Bug] Amazon Q endpoint returns HTTP 400 ValidationException (wrong CLI/KIRO_CLI origin)"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#89,https://github.com/router-for-me/CLIProxyAPIPlus/issues/89,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1927,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""Cursor Issue"" across supported providers.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#86,https://github.com/router-for-me/CLIProxyAPIPlus/issues/86,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1928,thinking-and-reasoning,"Refactor internals touched by ""Feature request: Configurable HTTP request timeout for Extended Thinking models"" to reduce coupling and improve maintainability.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#84,https://github.com/router-for-me/CLIProxyAPIPlus/issues/84,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1929,websocket-and-streaming,"Prepare safe rollout for ""kiro请求偶尔报错event stream fatal"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#83,https://github.com/router-for-me/CLIProxyAPIPlus/issues/83,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1931,oauth-and-authentication,"Follow up ""[建议] 技术大佬考虑可以有机会新增一堆逆向平台"" by closing compatibility gaps and locking in regression coverage.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#79,https://github.com/router-for-me/CLIProxyAPIPlus/issues/79,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1933,websocket-and-streaming,"Operationalize ""kiro请求的数据好像一大就会出错,导致cc写入文件失败"" with observability, runbook updates, and deployment safeguards.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#77,https://github.com/router-for-me/CLIProxyAPIPlus/issues/77,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1934,provider-model-registry,"Generalize ""[Bug] Kiro multi-account support broken - auth file overwritten on re-login"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#76,https://github.com/router-for-me/CLIProxyAPIPlus/issues/76,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1938,docs-quickstarts,"Create or refresh provider quickstart derived from ""How to use KIRO with IAM?"" with setup/auth/model/sanity-check flow.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#56,https://github.com/router-for-me/CLIProxyAPIPlus/issues/56,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1939,provider-model-registry,"Prepare safe rollout for ""[Bug] Models from Codex (openai) are not accessible when Copilot is added"" via flags, migration docs, and backward-compat tests.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#43,https://github.com/router-for-me/CLIProxyAPIPlus/issues/43,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1940,responses-and-chat-compat,"Standardize naming/metadata affected by ""model gpt-5.1-codex-mini is not accessible via the /chat/completions endpoint"" across both repos and docs.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#41,https://github.com/router-for-me/CLIProxyAPIPlus/issues/41,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1944,thinking-and-reasoning,"Generalize ""lack of thinking signature in kiro's non-stream response cause incompatibility with some ai clients (specifically cherry studio)"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#27,https://github.com/router-for-me/CLIProxyAPIPlus/issues/27,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1945,oauth-and-authentication,"Improve CLI UX around ""I did not find the Kiro entry in the Web UI"" with clearer commands, flags, and immediate validation feedback.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#26,https://github.com/router-for-me/CLIProxyAPIPlus/issues/26,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1946,thinking-and-reasoning,"Extend docs for ""Kiro (AWS CodeWhisperer) - Stream error, status: 400"" with quickstart snippets and troubleshooting decision trees.",P1,S,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#7,https://github.com/router-for-me/CLIProxyAPIPlus/issues/7,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0003,dev-runtime-refresh,"Add process-compose dev profile with HMR-style reload, config watcher, and explicit `cliproxy refresh` command.",P1,M,wave-1,proposed,yes,strategy,cross-repo,synthesis,,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0004,docs-quickstarts,Publish provider-specific 5-minute quickstarts with auth + model selection + sanity-check commands.,P1,M,wave-1,proposed,yes,strategy,cross-repo,synthesis,,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0005,docs-quickstarts,"Add troubleshooting matrix for auth, model mapping, thinking normalization, stream parsing, and retry semantics.",P1,M,wave-1,proposed,yes,strategy,cross-repo,synthesis,,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0006,cli-ux-dx,Ship interactive setup wizard and `doctor --fix` with machine-readable JSON output and deterministic remediation.,P1,M,wave-1,proposed,yes,strategy,cross-repo,synthesis,,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0008,testing-and-quality,"Add dedicated reasoning controls tests (`variant`, `reasoning_effort`, `reasoning.effort`, suffix forms).",P1,M,wave-1,proposed,yes,strategy,cross-repo,synthesis,,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0019,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""failed to save config: open /CLIProxyAPI/config.yaml: read-only file system"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#201,https://github.com/router-for-me/CLIProxyAPIPlus/issues/201,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0023,integration-api-bindings,"Design non-subprocess integration contract related to ""why no kiro in dashboard"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#183,https://github.com/router-for-me/CLIProxyAPIPlus/issues/183,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0029,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""kiro反代的Write工具json截断问题,返回的文件路径经常是错误的"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#164,https://github.com/router-for-me/CLIProxyAPIPlus/issues/164,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0038,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Kimi For Coding Support / 请求为 Kimi 添加编程支持"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#141,https://github.com/router-for-me/CLIProxyAPIPlus/issues/141,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0046,integration-api-bindings,"Design non-subprocess integration contract related to ""Gemini3无法生图"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#122,https://github.com/router-for-me/CLIProxyAPIPlus/issues/122,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0057,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""GitHub Copilot Model Call Failure"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#99,https://github.com/router-for-me/CLIProxyAPIPlus/issues/99,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0058,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Feature: Add Veo Video Generation Support (Similar to Image Generation)"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#94,https://github.com/router-for-me/CLIProxyAPIPlus/issues/94,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0069,integration-api-bindings,"Design non-subprocess integration contract related to ""[Bug] Kiro multi-account support broken - auth file overwritten on re-login"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#76,https://github.com/router-for-me/CLIProxyAPIPlus/issues/76,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0076,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""GitHub Copilot models seem to be hardcoded"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#37,https://github.com/router-for-me/CLIProxyAPIPlus/issues/37,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0083,provider-model-registry,"Operationalize ""fix: add default copilot claude model aliases for oauth routing"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#256,https://github.com/router-for-me/CLIProxyAPIPlus/pull/256,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0085,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(kiro): stop duplicated thinking on OpenAI and preserve Claude multi-turn thinking"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#252,https://github.com/router-for-me/CLIProxyAPIPlus/pull/252,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0087,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""v6.8.22"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#249,https://github.com/router-for-me/CLIProxyAPIPlus/pull/249,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0089,thinking-and-reasoning,"Prepare safe rollout for ""fix(cline): add grantType to token refresh and extension headers"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#247,https://github.com/router-for-me/CLIProxyAPIPlus/pull/247,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0091,thinking-and-reasoning,"Follow up ""feat(registry): add Claude Sonnet 4.6 model definitions"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#243,https://github.com/router-for-me/CLIProxyAPIPlus/pull/243,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0092,integration-api-bindings,"Design non-subprocess integration contract related to ""Improve Copilot provider based on ericc-ch/copilot-api comparison"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#242,https://github.com/router-for-me/CLIProxyAPIPlus/pull/242,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0095,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Fix Copilot 0x model incorrectly consuming premium requests"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#238,https://github.com/router-for-me/CLIProxyAPIPlus/pull/238,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0097,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""fix: add proxy_ prefix handling for tool_reference content blocks"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#236,https://github.com/router-for-me/CLIProxyAPIPlus/pull/236,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0098,thinking-and-reasoning,"Refactor internals touched by ""fix(codex): handle function_call_arguments streaming for both spark and non-spark models"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#235,https://github.com/router-for-me/CLIProxyAPIPlus/pull/235,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0099,provider-model-registry,"Prepare safe rollout for ""Add Kilo Code provider with dynamic model fetching"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#234,https://github.com/router-for-me/CLIProxyAPIPlus/pull/234,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0100,thinking-and-reasoning,"Standardize naming/metadata affected by ""Fix Copilot codex model Responses API translation for Claude Code"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#233,https://github.com/router-for-me/CLIProxyAPIPlus/pull/233,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0101,thinking-and-reasoning,"Follow up ""feat(models): add Thinking support to GitHub Copilot models"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#231,https://github.com/router-for-me/CLIProxyAPIPlus/pull/231,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0102,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(copilot): forward Claude-format tools to Copilot Responses API"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#230,https://github.com/router-for-me/CLIProxyAPIPlus/pull/230,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0103,provider-model-registry,"Operationalize ""fix: preserve explicitly deleted kiro aliases across config reload"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#229,https://github.com/router-for-me/CLIProxyAPIPlus/pull/229,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0104,thinking-and-reasoning,"Generalize ""fix(antigravity): add warn-level logging to silent failure paths in FetchAntigravityModels"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#228,https://github.com/router-for-me/CLIProxyAPIPlus/pull/228,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0106,responses-and-chat-compat,"Extend docs for ""refactor(kiro): Kiro Web Search Logic & Executor Alignment"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#226,https://github.com/router-for-me/CLIProxyAPIPlus/pull/226,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0108,responses-and-chat-compat,"Refactor internals touched by ""fix(kiro): prepend placeholder user message when conversation starts with assistant role"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#224,https://github.com/router-for-me/CLIProxyAPIPlus/pull/224,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0109,responses-and-chat-compat,"Prepare safe rollout for ""fix(kiro): prepend placeholder user message when conversation starts with assistant role"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#223,https://github.com/router-for-me/CLIProxyAPIPlus/pull/223,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0113,thinking-and-reasoning,"Operationalize ""fix(auth): strip model suffix in GitHub Copilot executor before upstream call"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#214,https://github.com/router-for-me/CLIProxyAPIPlus/pull/214,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0114,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix(kiro): filter orphaned tool_results from compacted conversations"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#212,https://github.com/router-for-me/CLIProxyAPIPlus/pull/212,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0115,integration-api-bindings,"Design non-subprocess integration contract related to ""fix(kiro): fully implement Kiro web search tool via MCP integration"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#211,https://github.com/router-for-me/CLIProxyAPIPlus/pull/211,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0116,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""feat(config): add default Kiro model aliases for standard Claude model names"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#209,https://github.com/router-for-me/CLIProxyAPIPlus/pull/209,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0118,responses-and-chat-compat,"Refactor internals touched by ""fix(translator): fix nullable type arrays breaking Gemini/Antigravity API"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#205,https://github.com/router-for-me/CLIProxyAPIPlus/pull/205,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0119,docs-quickstarts,"Create or refresh provider quickstart derived from ""v6.8.7"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#204,https://github.com/router-for-me/CLIProxyAPIPlus/pull/204,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0121,provider-model-registry,"Follow up ""feat: add Claude Opus 4.6 to GitHub Copilot models"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#199,https://github.com/router-for-me/CLIProxyAPIPlus/pull/199,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0124,responses-and-chat-compat,"Generalize ""fix: replace assistant placeholder text to prevent model parroting"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#194,https://github.com/router-for-me/CLIProxyAPIPlus/pull/194,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0125,oauth-and-authentication,"Improve CLI UX around ""Add management OAuth quota endpoints"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#193,https://github.com/router-for-me/CLIProxyAPIPlus/pull/193,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0127,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""feat(kiro): add contextUsageEvent handler"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#191,https://github.com/router-for-me/CLIProxyAPIPlus/pull/191,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0130,responses-and-chat-compat,"Standardize naming/metadata affected by ""Codex executor: bump client headers for GPT-5.3 compatibility"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#188,https://github.com/router-for-me/CLIProxyAPIPlus/pull/188,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0131,thinking-and-reasoning,"Follow up ""Fix Codex gpt-5.3-codex routing by normalizing backend model"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#187,https://github.com/router-for-me/CLIProxyAPIPlus/pull/187,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0133,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""v6.7.48"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#185,https://github.com/router-for-me/CLIProxyAPIPlus/pull/185,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0135,thinking-and-reasoning,"Improve CLI UX around ""Add Kimi (Moonshot AI) provider support"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#182,https://github.com/router-for-me/CLIProxyAPIPlus/pull/182,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0136,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(kiro): handle tool_use in content array for compaction requests"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#181,https://github.com/router-for-me/CLIProxyAPIPlus/pull/181,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0137,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Add Kimi (Moonshot AI) provider support"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#180,https://github.com/router-for-me/CLIProxyAPIPlus/pull/180,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0138,integration-api-bindings,"Design non-subprocess integration contract related to ""v6.7.45"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#176,https://github.com/router-for-me/CLIProxyAPIPlus/pull/176,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0139,responses-and-chat-compat,"Prepare safe rollout for ""fix(kiro): Rework JSON Truncation Handling with SOFT_LIMIT_REACHED"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#175,https://github.com/router-for-me/CLIProxyAPIPlus/pull/175,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0141,provider-model-registry,"Follow up ""修复:docker镜像上传时用户名使用变量并增加手动构建,修复OAuth 排除列表与OAuth 模型别名中kiro无法获取模型问题"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#173,https://github.com/router-for-me/CLIProxyAPIPlus/pull/173,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0142,thinking-and-reasoning,"Harden ""fix(kiro): prioritize email for filename to prevent collisions"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#172,https://github.com/router-for-me/CLIProxyAPIPlus/pull/172,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0144,oauth-and-authentication,"Generalize ""fix(logging): expand tilde in auth-dir path for log directory"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#168,https://github.com/router-for-me/CLIProxyAPIPlus/pull/168,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0145,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix: add copilot- prefix to GitHub Copilot model IDs to prevent naming collisions"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#167,https://github.com/router-for-me/CLIProxyAPIPlus/pull/167,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0146,provider-model-registry,"Extend docs for ""feat: add .air.toml configuration file and update .gitignore for build artifacts"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#166,https://github.com/router-for-me/CLIProxyAPIPlus/pull/166,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0149,responses-and-chat-compat,"Prepare safe rollout for ""fix(kiro): filter web search tool"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#159,https://github.com/router-for-me/CLIProxyAPIPlus/pull/159,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0150,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix(kiro): Support token extraction from Metadata for file-based authentication"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#157,https://github.com/router-for-me/CLIProxyAPIPlus/pull/157,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0151,thinking-and-reasoning,"Follow up ""fix(kiro): Do not use OIDC region for API endpoint"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#156,https://github.com/router-for-me/CLIProxyAPIPlus/pull/156,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0152,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat(kiro): switch to Amazon Q endpoint as primary"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#155,https://github.com/router-for-me/CLIProxyAPIPlus/pull/155,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0153,docs-quickstarts,"Create or refresh provider quickstart derived from ""v6.7.32"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#154,https://github.com/router-for-me/CLIProxyAPIPlus/pull/154,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0155,thinking-and-reasoning,"Improve CLI UX around ""feat(kiro): Add dynamic region support for API endpoints"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#152,https://github.com/router-for-me/CLIProxyAPIPlus/pull/152,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0156,thinking-and-reasoning,"Extend docs for ""fix: Use Firefox TLS fingerprint for Claude OAuth to bypass Cloudflare"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#151,https://github.com/router-for-me/CLIProxyAPIPlus/pull/151,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0157,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""fix: handle Write tool truncation when content exceeds API limits"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#150,https://github.com/router-for-me/CLIProxyAPIPlus/pull/150,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0158,thinking-and-reasoning,"Refactor internals touched by ""fix: explicitly check built-in tool types to prevent proxy_ prefix"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#148,https://github.com/router-for-me/CLIProxyAPIPlus/pull/148,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0159,thinking-and-reasoning,"Prepare safe rollout for ""fix: handle zero output_tokens for kiro non-streaming requests"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#144,https://github.com/router-for-me/CLIProxyAPIPlus/pull/144,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0161,integration-api-bindings,"Design non-subprocess integration contract related to ""fix: support github-copilot provider in AccountInfo logging"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#140,https://github.com/router-for-me/CLIProxyAPIPlus/pull/140,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0164,thinking-and-reasoning,"Generalize ""fix: case-insensitive auth_method comparison for IDC tokens"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#137,https://github.com/router-for-me/CLIProxyAPIPlus/pull/137,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0168,oauth-and-authentication,"Refactor internals touched by ""Bien/validate auth files"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#127,https://github.com/router-for-me/CLIProxyAPIPlus/pull/127,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0170,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(kiro): always attempt token refresh on 401 before checking retry …"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#124,https://github.com/router-for-me/CLIProxyAPIPlus/pull/124,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0171,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""v6.7.20"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#123,https://github.com/router-for-me/CLIProxyAPIPlus/pull/123,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0173,thinking-and-reasoning,"Operationalize ""fix(auth): normalize Kiro authMethod to lowercase on token import"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#120,https://github.com/router-for-me/CLIProxyAPIPlus/pull/120,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0174,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""支持Kiro sso idc"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#119,https://github.com/router-for-me/CLIProxyAPIPlus/pull/119,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0182,responses-and-chat-compat,"Harden ""fix(codex): drop unsupported responses metadata"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#106,https://github.com/router-for-me/CLIProxyAPIPlus/pull/106,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0184,integration-api-bindings,"Design non-subprocess integration contract related to ""feat(openai): responses API support for GitHub Copilot provider"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#103,https://github.com/router-for-me/CLIProxyAPIPlus/pull/103,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0187,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat(kiro): 实现动态工具压缩功能"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#95,https://github.com/router-for-me/CLIProxyAPIPlus/pull/95,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0188,provider-model-registry,"Refactor internals touched by ""feat(config): add github-copilot support to oauth-model-mappings and oauth-excluded-models"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#93,https://github.com/router-for-me/CLIProxyAPIPlus/pull/93,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0190,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""v6.6.93"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#91,https://github.com/router-for-me/CLIProxyAPIPlus/pull/91,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0192,thinking-and-reasoning,"Harden ""feat(config): add configurable request-timeout for upstream provider requests"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#85,https://github.com/router-for-me/CLIProxyAPIPlus/pull/85,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0193,provider-model-registry,"Operationalize ""feat(kiro): add OAuth model name mappings support for Kiro"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#82,https://github.com/router-for-me/CLIProxyAPIPlus/pull/82,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0196,provider-model-registry,"Extend docs for ""feat: Add provided_by field to /v1/models response"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#74,https://github.com/router-for-me/CLIProxyAPIPlus/pull/74,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0203,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix(openai): add index field to image response for LiteLLM compatibility"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#63,https://github.com/router-for-me/CLIProxyAPIPlus/pull/63,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0204,docs-quickstarts,"Create or refresh provider quickstart derived from ""v6.6.50"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#62,https://github.com/router-for-me/CLIProxyAPIPlus/pull/62,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0205,thinking-and-reasoning,"Improve CLI UX around ""fix(kiro): Handle tool results correctly in OpenAI format translation"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#61,https://github.com/router-for-me/CLIProxyAPIPlus/pull/61,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0207,integration-api-bindings,"Design non-subprocess integration contract related to ""v6.6.50"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#59,https://github.com/router-for-me/CLIProxyAPIPlus/pull/59,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0209,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat: add AWS Identity Center (IDC) authentication support"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#57,https://github.com/router-for-me/CLIProxyAPIPlus/pull/57,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0211,thinking-and-reasoning,"Follow up ""add missing Kiro config synthesis"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#54,https://github.com/router-for-me/CLIProxyAPIPlus/pull/54,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0212,responses-and-chat-compat,"Harden ""docs: operations guide + config examples"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#53,https://github.com/router-for-me/CLIProxyAPIPlus/pull/53,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0213,thinking-and-reasoning,"Operationalize ""fix(auth): secure token persistence + git-repo warning"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#52,https://github.com/router-for-me/CLIProxyAPIPlus/pull/52,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0214,responses-and-chat-compat,"Generalize ""fix(api): improve streaming bootstrap resilience"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#51,https://github.com/router-for-me/CLIProxyAPIPlus/pull/51,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0215,provider-model-registry,"Improve CLI UX around ""feat(routing): add fill-first credential selection strategy"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#50,https://github.com/router-for-me/CLIProxyAPIPlus/pull/50,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0216,thinking-and-reasoning,"Extend docs for ""feat(oauth): harden provider flows + oauthhttp + oauth proxy override"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#49,https://github.com/router-for-me/CLIProxyAPIPlus/pull/49,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0217,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""feat(kiro): 新增授权码登录流程,优化邮箱获取与官方 Thinking 模式解析 预支持"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#42,https://github.com/router-for-me/CLIProxyAPIPlus/pull/42,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0221,docs-quickstarts,"Create or refresh provider quickstart derived from ""Add GPT-5.2 model support for GitHub Copilot"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#36,https://github.com/router-for-me/CLIProxyAPIPlus/pull/36,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0224,thinking-and-reasoning,"Generalize ""feat: enhance thinking mode support for Kiro translator"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#32,https://github.com/router-for-me/CLIProxyAPIPlus/pull/32,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0227,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""fix(kiro): remove the extra quotation marks from the protocol handler"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#28,https://github.com/router-for-me/CLIProxyAPIPlus/pull/28,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0228,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix(kiro): Always parse thinking tags from Kiro API responses"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#25,https://github.com/router-for-me/CLIProxyAPIPlus/pull/25,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0229,responses-and-chat-compat,"Prepare safe rollout for ""feat(kiro): Major Refactoring + OpenAI Translator Implementation + Streaming Fixes"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#24,https://github.com/router-for-me/CLIProxyAPIPlus/pull/24,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0230,integration-api-bindings,"Design non-subprocess integration contract related to ""v6.6.9"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#23,https://github.com/router-for-me/CLIProxyAPIPlus/pull/23,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0231,thinking-and-reasoning,"Follow up ""feat(kiro): enhance thinking support and fix truncation issues"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#22,https://github.com/router-for-me/CLIProxyAPIPlus/pull/22,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0232,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""v6.6.6"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#21,https://github.com/router-for-me/CLIProxyAPIPlus/pull/21,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0233,thinking-and-reasoning,"Operationalize ""feat(kiro): 支持思考模型 (Thinking Mode) 并通过多配额故障转移增强稳定性"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#20,https://github.com/router-for-me/CLIProxyAPIPlus/pull/20,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0235,thinking-and-reasoning,"Improve CLI UX around ""Kiro Executor Stability and API Compatibility Improvements"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#18,https://github.com/router-for-me/CLIProxyAPIPlus/pull/18,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0238,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix kiro cannot refresh the token"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#15,https://github.com/router-for-me/CLIProxyAPIPlus/pull/15,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0242,thinking-and-reasoning,"Harden ""fix: handle unexpected 'content_block_start' event order (fixes #4)"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#11,https://github.com/router-for-me/CLIProxyAPIPlus/pull/11,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0246,oauth-and-authentication,"Extend docs for ""Feature/copilot oauth support"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#6,https://github.com/router-for-me/CLIProxyAPIPlus/pull/6,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0247,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Sync"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#5,https://github.com/router-for-me/CLIProxyAPIPlus/pull/5,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0253,integration-api-bindings,"Design non-subprocess integration contract related to ""Does CLIProxyAPIPlus support Kiro multi-account rotation with load balancing?"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPIPlus,discussion#73,https://github.com/router-for-me/CLIProxyAPIPlus/discussions/73,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0261,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Qwen Oauth fails"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1658,https://github.com/router-for-me/CLIProxyAPI/issues/1658,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0266,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Gemini API integration: incorrect renaming of 'parameters' to 'parametersJsonSchema'"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1649,https://github.com/router-for-me/CLIProxyAPI/issues/1649,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0276,integration-api-bindings,"Design non-subprocess integration contract related to ""Please add support for Claude Sonnet 4.6"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1622,https://github.com/router-for-me/CLIProxyAPI/issues/1622,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0285,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""速速支持qwen code的qwen3.5"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1603,https://github.com/router-for-me/CLIProxyAPI/issues/1603,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0290,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""()强制思考会在2m左右时返回500错误"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1591,https://github.com/router-for-me/CLIProxyAPI/issues/1591,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0299,integration-api-bindings,"Design non-subprocess integration contract related to ""希望能加一个一键清理失效的认证文件功能"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1580,https://github.com/router-for-me/CLIProxyAPI/issues/1580,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0304,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Reasoning Error"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1572,https://github.com/router-for-me/CLIProxyAPI/issues/1572,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0319,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""[Claude code] ENABLE_TOOL_SEARCH - MCP not in available tools 400"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1547,https://github.com/router-for-me/CLIProxyAPI/issues/1547,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0322,integration-api-bindings,"Design non-subprocess integration contract related to ""删除iflow提供商的过时模型"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1544,https://github.com/router-for-me/CLIProxyAPI/issues/1544,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0342,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""[BUG] 反重力 Opus-4.5 在 OpenCode 上搭配 DCP 插件使用时会报错"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1507,https://github.com/router-for-me/CLIProxyAPI/issues/1507,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0345,integration-api-bindings,"Design non-subprocess integration contract related to ""[BUG] sdkaccess.RegisterProvider 逻辑被 syncInlineAccessProvider 破坏"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1503,https://github.com/router-for-me/CLIProxyAPI/issues/1503,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0348,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""After logging in with iFlowOAuth, most models cannot be used, only non-CLI models can be used."" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1499,https://github.com/router-for-me/CLIProxyAPI/issues/1499,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0361,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Roo Code v3.47.0 cannot make Gemini API calls anymore"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1476,https://github.com/router-for-me/CLIProxyAPI/issues/1476,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0368,integration-api-bindings,"Design non-subprocess integration contract related to ""为啥openai的端点可以添加多个密钥,但是a社的端点不能添加"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1457,https://github.com/router-for-me/CLIProxyAPI/issues/1457,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0377,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""The requested model 'gpt-5.3-codex' does not exist."" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1441,https://github.com/router-for-me/CLIProxyAPI/issues/1441,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0380,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""iflow kimi-k2.5 无法正常统计消耗的token数,一直是0"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1437,https://github.com/router-for-me/CLIProxyAPI/issues/1437,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0399,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""■ stream disconnected before completion: stream closed before response.completed"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1407,https://github.com/router-for-me/CLIProxyAPI/issues/1407,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0406,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Vertex AI global 区域端点 URL 格式错误,导致无法访问 Gemini 3 Preview 模型"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1395,https://github.com/router-for-me/CLIProxyAPI/issues/1395,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0414,integration-api-bindings,"Design non-subprocess integration contract related to ""[Feature request] Support nested object parameter mapping in payload config"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1384,https://github.com/router-for-me/CLIProxyAPI/issues/1384,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0418,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Gemini 3 Flash includeThoughts参数不生效了"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1378,https://github.com/router-for-me/CLIProxyAPI/issues/1378,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0435,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""400 Bad Request when reasoning_effort=""xhigh"" with kimi k2.5 (OpenAI-compatible API)"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1307,https://github.com/router-for-me/CLIProxyAPI/issues/1307,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0437,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""CLI Proxy API 版本: v6.7.28,OAuth 模型别名里的antigravity项目无法被删除。"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1305,https://github.com/router-for-me/CLIProxyAPI/issues/1305,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0456,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Tool Error on Antigravity Gemini 3 Flash"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1269,https://github.com/router-for-me/CLIProxyAPI/issues/1269,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0460,integration-api-bindings,"Design non-subprocess integration contract related to ""AMP CLI not working"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1264,https://github.com/router-for-me/CLIProxyAPI/issues/1264,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0464,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Anthropic via OAuth can not callback URL"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1256,https://github.com/router-for-me/CLIProxyAPI/issues/1256,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0475,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Feature Request:Add support for separate proxy configuration with credentials"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1236,https://github.com/router-for-me/CLIProxyAPI/issues/1236,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0483,integration-api-bindings,"Design non-subprocess integration contract related to ""tool_use_error InputValidationError: EnterPlanMode failed due to the following issue: An unexpected parameter `reason` was provided"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1215,https://github.com/router-for-me/CLIProxyAPI/issues/1215,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0494,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""认证失败: Failed to exchange token"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1186,https://github.com/router-for-me/CLIProxyAPI/issues/1186,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0506,integration-api-bindings,"Design non-subprocess integration contract related to ""[Feature] 添加Github Copilot 的OAuth"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1159,https://github.com/router-for-me/CLIProxyAPI/issues/1159,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0513,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""OpenAI 兼容模型请求失败问题"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1149,https://github.com/router-for-me/CLIProxyAPI/issues/1149,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0522,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""API Error: 400是怎么回事,之前一直能用"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1133,https://github.com/router-for-me/CLIProxyAPI/issues/1133,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0529,integration-api-bindings,"Design non-subprocess integration contract related to ""Error code: 400 - {'detail': 'Unsupported parameter: user'}"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1119,https://github.com/router-for-me/CLIProxyAPI/issues/1119,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0532,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""该凭证暂无可用模型,这是被封号了的意思吗"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1111,https://github.com/router-for-me/CLIProxyAPI/issues/1111,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0551,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""修改报错HTTP Status Code"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1082,https://github.com/router-for-me/CLIProxyAPI/issues/1082,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0552,integration-api-bindings,"Design non-subprocess integration contract related to ""反重力2api无法使用工具"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1080,https://github.com/router-for-me/CLIProxyAPI/issues/1080,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0570,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""6.7.3报错 claude和cherry 都报错,是配置问题吗?还是模型换名了unknown provider for model gemini-claude-opus-4-"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1056,https://github.com/router-for-me/CLIProxyAPI/issues/1056,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0575,integration-api-bindings,"Design non-subprocess integration contract related to ""【建议】持久化储存使用统计"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1050,https://github.com/router-for-me/CLIProxyAPI/issues/1050,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0580,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""OpenAI-compatible assistant content arrays dropped in conversion, causing repeated replies"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1043,https://github.com/router-for-me/CLIProxyAPI/issues/1043,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0589,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""额度获取失败:Gemini CLI 凭证缺少 Project ID"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1032,https://github.com/router-for-me/CLIProxyAPI/issues/1032,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0598,integration-api-bindings,"Design non-subprocess integration contract related to ""额度的消耗怎么做到平均分配和限制最多使用量呢?"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1021,https://github.com/router-for-me/CLIProxyAPI/issues/1021,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0608,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""iFlow token刷新失败"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1007,https://github.com/router-for-me/CLIProxyAPI/issues/1007,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0609,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix(codex): Codex 流错误格式不符合 OpenAI Responses API 规范导致客户端解析失败"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1006,https://github.com/router-for-me/CLIProxyAPI/issues/1006,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0621,integration-api-bindings,"Design non-subprocess integration contract related to ""`tool_use` ids were found without `tool_result` blocks immediately"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#989,https://github.com/router-for-me/CLIProxyAPI/issues/989,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0627,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""400 Error: Unsupported max_tokens Parameter When Using OpenAI Base URL"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#983,https://github.com/router-for-me/CLIProxyAPI/issues/983,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0638,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""登陆后白屏"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#965,https://github.com/router-for-me/CLIProxyAPI/issues/965,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0644,integration-api-bindings,"Design non-subprocess integration contract related to ""【bug】三方兼容open ai接口 测试会报这个,如何解决呢?"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#956,https://github.com/router-for-me/CLIProxyAPI/issues/956,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0665,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""配置自定义提供商的时候怎么给相同的baseurl一次配置多个API Token呢?"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#927,https://github.com/router-for-me/CLIProxyAPI/issues/927,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0667,integration-api-bindings,"Design non-subprocess integration contract related to ""iFlow 登录失败"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#923,https://github.com/router-for-me/CLIProxyAPI/issues/923,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0684,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""auth_unavailable: no auth available"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#902,https://github.com/router-for-me/CLIProxyAPI/issues/902,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0690,integration-api-bindings,"Design non-subprocess integration contract related to ""增加qodercli"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#889,https://github.com/router-for-me/CLIProxyAPI/issues/889,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0696,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix(antigravity): Streaming finish_reason 'tool_calls' overwritten by 'stop' - breaks Claude Code tool detection"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#876,https://github.com/router-for-me/CLIProxyAPI/issues/876,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0703,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""代理 iflow 模型服务的时候频繁出现重复调用同一个请求的情况。一直循环"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#856,https://github.com/router-for-me/CLIProxyAPI/issues/856,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0713,integration-api-bindings,"Design non-subprocess integration contract related to ""[Bug] Antigravity countTokens ignores tools field - always returns content-only token count"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#840,https://github.com/router-for-me/CLIProxyAPI/issues/840,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0722,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""[FQ]增加telegram bot集成和更多管理API命令刷新Providers周期额度"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#820,https://github.com/router-for-me/CLIProxyAPI/issues/820,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0725,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""iFlow account error show on terminal"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#815,https://github.com/router-for-me/CLIProxyAPI/issues/815,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0736,integration-api-bindings,"Design non-subprocess integration contract related to ""使用上游提供的 Gemini API 和 URL 获取到的模型名称不对应"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#791,https://github.com/router-for-me/CLIProxyAPI/issues/791,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0741,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""[功能请求] 新增联网gemini 联网模型"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#779,https://github.com/router-for-me/CLIProxyAPI/issues/779,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0754,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""[Bug] Invalid request error when using thinking with multi-turn conversations"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#746,https://github.com/router-for-me/CLIProxyAPI/issues/746,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0759,integration-api-bindings,"Design non-subprocess integration contract related to ""Claude Code CLI's status line shows zero tokens"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#740,https://github.com/router-for-me/CLIProxyAPI/issues/740,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0760,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Tool calls not emitted after thinking blocks"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#739,https://github.com/router-for-me/CLIProxyAPI/issues/739,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0779,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Feature: able to show the remaining quota of antigravity and gemini cli"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#713,https://github.com/router-for-me/CLIProxyAPI/issues/713,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0783,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""claude code 的指令/cotnext 裡token 計算不正確"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#709,https://github.com/router-for-me/CLIProxyAPI/issues/709,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0798,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Feature: Persist stats to disk (Docker-friendly) instead of in-memory only"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#681,https://github.com/router-for-me/CLIProxyAPI/issues/681,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0805,integration-api-bindings,"Design non-subprocess integration contract related to ""Support Trae"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#666,https://github.com/router-for-me/CLIProxyAPI/issues/666,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0812,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""希望能支持 GitHub Copilot"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#649,https://github.com/router-for-me/CLIProxyAPI/issues/649,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0817,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Large prompt failures w/ Claude Code vs Codex routes (gpt-5.2): cloudcode 'Prompt is too long' + codex SSE missing response.completed"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#636,https://github.com/router-for-me/CLIProxyAPI/issues/636,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0828,integration-api-bindings,"Design non-subprocess integration contract related to ""SDK Internal Package Dependency Issue"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#607,https://github.com/router-for-me/CLIProxyAPI/issues/607,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0836,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""bug: Streaming not working for Gemini 3 models (Flash/Pro Preview) via Gemini CLI/Antigravity"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#593,https://github.com/router-for-me/CLIProxyAPI/issues/593,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0841,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""[Bug] Gemini API rejects ""optional"" field in tool parameters"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#583,https://github.com/router-for-me/CLIProxyAPI/issues/583,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0851,integration-api-bindings,"Design non-subprocess integration contract related to ""stackTrace.format error in error response handling"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#559,https://github.com/router-for-me/CLIProxyAPI/issues/559,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0855,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Gemini3配置了thinkingConfig无效,模型调用名称被改为了gemini-3-pro-high"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#550,https://github.com/router-for-me/CLIProxyAPI/issues/550,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0870,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""[Feature Request] Global Alias"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#509,https://github.com/router-for-me/CLIProxyAPI/issues/509,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0874,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""bug: antigravity oauth callback fails on windows due to hard-coded port 51121"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#499,https://github.com/router-for-me/CLIProxyAPI/issues/499,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0893,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Antigravity API reports API Error: 400 with Claude Code"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#463,https://github.com/router-for-me/CLIProxyAPI/issues/463,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0897,integration-api-bindings,"Design non-subprocess integration contract related to ""iFlow Cookie 登录流程BUG"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#445,https://github.com/router-for-me/CLIProxyAPI/issues/445,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0899,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""AGY Claude models"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#442,https://github.com/router-for-me/CLIProxyAPI/issues/442,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0912,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Bug: Claude proxy models fail with tools - `tools.0.custom.input_schema: Field required`"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#415,https://github.com/router-for-me/CLIProxyAPI/issues/415,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0920,integration-api-bindings,"Design non-subprocess integration contract related to ""Gemini responses contain non-standard OpenAI fields causing parser failures"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#400,https://github.com/router-for-me/CLIProxyAPI/issues/400,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0928,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""1006怎么处理"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#369,https://github.com/router-for-me/CLIProxyAPI/issues/369,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0931,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Frequent 500 auth_unavailable and Codex CLI models disappearing from /v1/models"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#365,https://github.com/router-for-me/CLIProxyAPI/issues/365,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0943,integration-api-bindings,"Design non-subprocess integration contract related to ""Add support for anthropic-beta header for Claude thinking models with tool use"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#344,https://github.com/router-for-me/CLIProxyAPI/issues/344,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0950,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Support for JSON schema / structured output"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#335,https://github.com/router-for-me/CLIProxyAPI/issues/335,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0957,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""undefined is not an object (evaluating 'T.match')"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#317,https://github.com/router-for-me/CLIProxyAPI/issues/317,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0966,integration-api-bindings,"Design non-subprocess integration contract related to ""可以让不同的提供商分别设置代理吗?"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#304,https://github.com/router-for-me/CLIProxyAPI/issues/304,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0988,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Gemini CLI Oauth with Claude Code"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#263,https://github.com/router-for-me/CLIProxyAPI/issues/263,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0989,integration-api-bindings,"Design non-subprocess integration contract related to ""Gemini cli使用不了"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#262,https://github.com/router-for-me/CLIProxyAPI/issues/262,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1007,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""[error] [iflow_executor.go:273] iflow executor: token refresh failed: iflow token: missing access token in response"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#239,https://github.com/router-for-me/CLIProxyAPI/issues/239,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1012,integration-api-bindings,"Design non-subprocess integration contract related to ""添加文件时重复添加"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#233,https://github.com/router-for-me/CLIProxyAPI/issues/233,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1015,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""[Suggestion] Add suport iFlow CLI MiniMax-M2"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#223,https://github.com/router-for-me/CLIProxyAPI/issues/223,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1026,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""docker compose还会继续维护吗"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#201,https://github.com/router-for-me/CLIProxyAPI/issues/201,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1035,integration-api-bindings,"Design non-subprocess integration contract related to ""[Request] Add support for Gemini Embeddings (AI Studio API key) and optional multi-key rotation"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#179,https://github.com/router-for-me/CLIProxyAPI/issues/179,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1044,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""No Auth Status"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#168,https://github.com/router-for-me/CLIProxyAPI/issues/168,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1045,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Major Bug in transforming anthropic request to openai compatible request"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#167,https://github.com/router-for-me/CLIProxyAPI/issues/167,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1058,integration-api-bindings,"Design non-subprocess integration contract related to ""CC 使用 gpt-5-codex 模型几乎没有走缓存"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#148,https://github.com/router-for-me/CLIProxyAPI/issues/148,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1064,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""代理在生成函数调用请求时使用了 Gemini API 不支持的 ""const"" 字段"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#136,https://github.com/router-for-me/CLIProxyAPI/issues/136,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1073,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Custom models for AI Proviers"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#122,https://github.com/router-for-me/CLIProxyAPI/issues/122,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1081,integration-api-bindings,"Design non-subprocess integration contract related to ""Homebrew 安装的 CLIProxyAPI 如何设置配置文件?"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#106,https://github.com/router-for-me/CLIProxyAPI/issues/106,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1083,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""gemini能否适配思考预算后缀?"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#103,https://github.com/router-for-me/CLIProxyAPI/issues/103,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1102,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Bug: 500 Invalid resource field value in the request on OpenAI completion for gemini-cli"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#75,https://github.com/router-for-me/CLIProxyAPI/issues/75,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1104,integration-api-bindings,"Design non-subprocess integration contract related to ""Support audio for gemini-cli"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#73,https://github.com/router-for-me/CLIProxyAPI/issues/73,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1121,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""v1beta接口报错Please use a valid role: user, model."" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#17,https://github.com/router-for-me/CLIProxyAPI/issues/17,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1127,integration-api-bindings,"Design non-subprocess integration contract related to ""Unexpected API Response: The language model did not provide any assistant messages. This may indicate an issue with the API or the model's output."" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#9,https://github.com/router-for-me/CLIProxyAPI/issues/9,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1131,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Error walking auth directory"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#4,https://github.com/router-for-me/CLIProxyAPI/issues/4,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1134,provider-model-registry,"Generalize ""feat: add sticky-round-robin routing strategy"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1673,https://github.com/router-for-me/CLIProxyAPI/pull/1673,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1135,responses-and-chat-compat,"Improve CLI UX around ""fix(responses): prevent JSON tree corruption from literal control chars in function output"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1672,https://github.com/router-for-me/CLIProxyAPI/pull/1672,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1136,oauth-and-authentication,"Extend docs for ""fix(codex): honor usage_limit_reached resets_at for retry_after"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1668,https://github.com/router-for-me/CLIProxyAPI/pull/1668,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1137,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""feat: add codex responses compatibility for compaction payloads"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1664,https://github.com/router-for-me/CLIProxyAPI/pull/1664,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1138,oauth-and-authentication,"Refactor internals touched by ""feat: implement credential-based round-robin for gemini-cli"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1663,https://github.com/router-for-me/CLIProxyAPI/pull/1663,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1139,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat: add cache-user-id toggle for Claude cloaking"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1662,https://github.com/router-for-me/CLIProxyAPI/pull/1662,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1140,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat(gemini): add gemini-3.1-pro-preview model definitions"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1661,https://github.com/router-for-me/CLIProxyAPI/pull/1661,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1141,thinking-and-reasoning,"Follow up ""fix(claude): use api.anthropic.com for OAuth token exchange"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1660,https://github.com/router-for-me/CLIProxyAPI/pull/1660,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1142,responses-and-chat-compat,"Harden ""Pass file input from /chat/completions and /responses to codex and claude"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1654,https://github.com/router-for-me/CLIProxyAPI/pull/1654,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1143,responses-and-chat-compat,"Operationalize ""fix(translator): handle tool call arguments in codex→claude streaming translator"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1652,https://github.com/router-for-me/CLIProxyAPI/pull/1652,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1144,oauth-and-authentication,"Generalize ""fix(iflow): improve 406 handling, stream stability, and auth availability"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1650,https://github.com/router-for-me/CLIProxyAPI/pull/1650,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1148,thinking-and-reasoning,"Refactor internals touched by ""Fix usage convertation from gemini response to openai format"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1643,https://github.com/router-for-me/CLIProxyAPI/pull/1643,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1149,responses-and-chat-compat,"Prepare safe rollout for ""Add strict structured-output mappings for Claude, Gemini, and Codex"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1642,https://github.com/router-for-me/CLIProxyAPI/pull/1642,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1150,integration-api-bindings,"Design non-subprocess integration contract related to ""fix(codex): only expose gpt-5.3-codex-spark for Pro OAuth"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1639,https://github.com/router-for-me/CLIProxyAPI/pull/1639,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1152,responses-and-chat-compat,"Harden ""fix: handle tool call argument streaming in Codex→OpenAI translator"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1635,https://github.com/router-for-me/CLIProxyAPI/pull/1635,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1155,thinking-and-reasoning,"Improve CLI UX around ""fix: clamp reasoning_effort to valid OpenAI-format values"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1627,https://github.com/router-for-me/CLIProxyAPI/pull/1627,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1156,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat: passthrough upstream response headers to clients"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1626,https://github.com/router-for-me/CLIProxyAPI/pull/1626,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1157,provider-model-registry,"Add robust stream/non-stream parity tests for ""feat: add per-auth tool_prefix_disabled option"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1625,https://github.com/router-for-me/CLIProxyAPI/pull/1625,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1159,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Fix empty usage in /v1/completions"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1618,https://github.com/router-for-me/CLIProxyAPI/pull/1618,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1160,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix(codex): normalize structured output schema for strict validation"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1616,https://github.com/router-for-me/CLIProxyAPI/pull/1616,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1162,provider-model-registry,"Harden ""fix: round-robin, fallback chains, cross-provider failover"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1613,https://github.com/router-for-me/CLIProxyAPI/pull/1613,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1164,thinking-and-reasoning,"Generalize ""fix: add proxy_ prefix handling for tool_reference content blocks"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1608,https://github.com/router-for-me/CLIProxyAPI/pull/1608,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1167,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""fix: model ID normalization and quota fallback logic"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1604,https://github.com/router-for-me/CLIProxyAPI/pull/1604,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1168,thinking-and-reasoning,"Refactor internals touched by ""feat(access): add wildcard prefix matching for API keys"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1601,https://github.com/router-for-me/CLIProxyAPI/pull/1601,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1169,oauth-and-authentication,"Prepare safe rollout for ""feat(tui): add a terminal-based management UI (TUI)"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1600,https://github.com/router-for-me/CLIProxyAPI/pull/1600,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1170,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix(auth): don't cool down keys on count_tokens 4xx"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1599,https://github.com/router-for-me/CLIProxyAPI/pull/1599,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1173,docs-quickstarts,"Create or refresh provider quickstart derived from ""feature(codex-spark): Adds GPT 5.3 Codex Spark model and updates Codex client version"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1581,https://github.com/router-for-me/CLIProxyAPI/pull/1581,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1174,responses-and-chat-compat,"Generalize ""Fix duplicate/empty tool_use blocks in OpenAI->Claude streaming translation"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1579,https://github.com/router-for-me/CLIProxyAPI/pull/1579,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1175,provider-model-registry,"Improve CLI UX around ""fix(antigravity): align Client-Metadata platform/identity with Antigravity requests"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1578,https://github.com/router-for-me/CLIProxyAPI/pull/1578,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1178,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Add CLIProxyAPI Dashboard to 'Who is with us?' section"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1568,https://github.com/router-for-me/CLIProxyAPI/pull/1568,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1180,responses-and-chat-compat,"Standardize naming/metadata affected by ""feat(antigravity/claude): add web search support"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1565,https://github.com/router-for-me/CLIProxyAPI/pull/1565,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1181,thinking-and-reasoning,"Follow up ""feat(gemini-cli): add Google One login and improve auto-discovery"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1543,https://github.com/router-for-me/CLIProxyAPI/pull/1543,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1183,responses-and-chat-compat,"Operationalize ""feat(translator): OpenAI web search annotations passthrough"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1539,https://github.com/router-for-me/CLIProxyAPI/pull/1539,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1184,thinking-and-reasoning,"Generalize ""feat: per-account excluded_models & priority support for OAuth auth files"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1537,https://github.com/router-for-me/CLIProxyAPI/pull/1537,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1185,thinking-and-reasoning,"Improve CLI UX around ""feat(thinking): unify Claude adaptive reasoning behavior"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1534,https://github.com/router-for-me/CLIProxyAPI/pull/1534,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1186,responses-and-chat-compat,"Extend docs for ""feat(translator): grounding metadata + Claude web_search citation passthrough"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1532,https://github.com/router-for-me/CLIProxyAPI/pull/1532,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1187,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""fix: handle plain string content in OpenAI Responses → Gemini translation"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1529,https://github.com/router-for-me/CLIProxyAPI/pull/1529,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1188,thinking-and-reasoning,"Refactor internals touched by ""feat(auth): add post-auth hook mechanism"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1527,https://github.com/router-for-me/CLIProxyAPI/pull/1527,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1189,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix(codex): remove unsupported 'user' field from /v1/responses payload"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1523,https://github.com/router-for-me/CLIProxyAPI/pull/1523,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1190,docs-quickstarts,"Create or refresh provider quickstart derived from ""feature(proxy): Adds special handling for client cancellations in proxy error handler"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1522,https://github.com/router-for-me/CLIProxyAPI/pull/1522,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1191,thinking-and-reasoning,"Follow up ""feat(translator): support Claude thinking type adaptive"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1519,https://github.com/router-for-me/CLIProxyAPI/pull/1519,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1193,thinking-and-reasoning,"Operationalize ""feat: add adaptive thinking type and output_config.effort support"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1516,https://github.com/router-for-me/CLIProxyAPI/pull/1516,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1194,responses-and-chat-compat,"Generalize ""fix(translator): fix nullable type arrays breaking Gemini/Antigravity API"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1511,https://github.com/router-for-me/CLIProxyAPI/pull/1511,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1195,responses-and-chat-compat,"Improve CLI UX around ""fix(amp): rewrite response.model in Responses API SSE events"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1506,https://github.com/router-for-me/CLIProxyAPI/pull/1506,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1196,integration-api-bindings,"Design non-subprocess integration contract related to ""feat(executor): add session ID and HMAC-SHA256 signature generation for iFlow API requests"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1502,https://github.com/router-for-me/CLIProxyAPI/pull/1502,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1197,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix(management): ensure management.html is available synchronously and improve asset sync handling"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1492,https://github.com/router-for-me/CLIProxyAPI/pull/1492,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1199,websocket-and-streaming,"Prepare safe rollout for ""refactor(management): streamline control panel management and implement sync throttling"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1479,https://github.com/router-for-me/CLIProxyAPI/pull/1479,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1201,thinking-and-reasoning,"Follow up ""fix: migrate claude-opus-4-5 to 4-6 aliases & strip thinking blocks from non-thinking responses"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1473,https://github.com/router-for-me/CLIProxyAPI/pull/1473,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1202,thinking-and-reasoning,"Harden ""Fix Kimi tool-call payload normalization for reasoning_content"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1467,https://github.com/router-for-me/CLIProxyAPI/pull/1467,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1203,provider-model-registry,"Operationalize ""fix(kimi): add OAuth model-alias channel support and cover OAuth excl…"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1465,https://github.com/router-for-me/CLIProxyAPI/pull/1465,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1205,provider-model-registry,"Improve CLI UX around ""fix(auth): return HTTP 429 instead of 500 for auth_unavailable error"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1460,https://github.com/router-for-me/CLIProxyAPI/pull/1460,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1206,oauth-and-authentication,"Extend docs for ""fix: custom antigravity proxy prompt & respect disable-cooling for all errors"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1454,https://github.com/router-for-me/CLIProxyAPI/pull/1454,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1207,docs-quickstarts,"Create or refresh provider quickstart derived from ""Add Kimi (Moonshot AI) provider support"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1450,https://github.com/router-for-me/CLIProxyAPI/pull/1450,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1208,thinking-and-reasoning,"Refactor internals touched by ""Add Kimi (Moonshot AI) provider support"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1449,https://github.com/router-for-me/CLIProxyAPI/pull/1449,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1212,thinking-and-reasoning,"Harden ""feat(antigravity): add optional web_search tool translation for Claude API"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1436,https://github.com/router-for-me/CLIProxyAPI/pull/1436,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1213,thinking-and-reasoning,"Operationalize ""fix: Enable extended thinking support for Claude Haiku 4.5"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1435,https://github.com/router-for-me/CLIProxyAPI/pull/1435,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1215,thinking-and-reasoning,"Improve CLI UX around ""fix(gemini): support snake_case thinking config fields from Python SDK"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1429,https://github.com/router-for-me/CLIProxyAPI/pull/1429,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1216,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Feature/rovo integration and repo consolidation"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1428,https://github.com/router-for-me/CLIProxyAPI/pull/1428,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1217,provider-model-registry,"Add robust stream/non-stream parity tests for ""fix(cliproxy): update auth before model registration"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1425,https://github.com/router-for-me/CLIProxyAPI/pull/1425,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1218,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""feat(watcher): log auth field changes on reload"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1423,https://github.com/router-for-me/CLIProxyAPI/pull/1423,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1219,integration-api-bindings,"Design non-subprocess integration contract related to ""feat(gemini-cli): support image content in Claude request conversion"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1422,https://github.com/router-for-me/CLIProxyAPI/pull/1422,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1220,provider-model-registry,"Standardize naming/metadata affected by ""feat(fallback): add model fallback support for automatic failover"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1421,https://github.com/router-for-me/CLIProxyAPI/pull/1421,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1223,thinking-and-reasoning,"Operationalize ""feat(logging): implement JSON structured logging with SSE content agg…"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1402,https://github.com/router-for-me/CLIProxyAPI/pull/1402,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1224,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(translator): compare model group instead of full model name for signature validation"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1397,https://github.com/router-for-me/CLIProxyAPI/pull/1397,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1225,oauth-and-authentication,"Improve CLI UX around ""fix(logging): expand tilde in auth-dir path for log directory"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1396,https://github.com/router-for-me/CLIProxyAPI/pull/1396,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1227,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""fix(auth): 400 invalid_request_error 立即返回不再重试"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1390,https://github.com/router-for-me/CLIProxyAPI/pull/1390,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1228,thinking-and-reasoning,"Refactor internals touched by ""fix(auth): normalize model key for thinking suffix in selectors"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1386,https://github.com/router-for-me/CLIProxyAPI/pull/1386,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1231,thinking-and-reasoning,"Follow up ""feat: enhanced error logging with response body limits and custom features"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1377,https://github.com/router-for-me/CLIProxyAPI/pull/1377,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1235,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat(logging): make error-logs-max-files configurable"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1368,https://github.com/router-for-me/CLIProxyAPI/pull/1368,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1237,provider-model-registry,"Add robust stream/non-stream parity tests for ""fix(config): enable gemini-3-pro-preview by removing forced alias"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1323,https://github.com/router-for-me/CLIProxyAPI/pull/1323,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1238,thinking-and-reasoning,"Refactor internals touched by ""feat(kiro): Add AWS Kiro provider support"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1320,https://github.com/router-for-me/CLIProxyAPI/pull/1320,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1239,thinking-and-reasoning,"Prepare safe rollout for ""feat(kiro): Add AWS Kiro provider support"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1319,https://github.com/router-for-me/CLIProxyAPI/pull/1319,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1240,thinking-and-reasoning,"Standardize naming/metadata affected by ""feat(translator): add code_execution and url_context tool passthrough"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1317,https://github.com/router-for-me/CLIProxyAPI/pull/1317,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1241,docs-quickstarts,"Create or refresh provider quickstart derived from ""feature(ampcode): Improves AMP model mapping with alias support"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1314,https://github.com/router-for-me/CLIProxyAPI/pull/1314,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1242,integration-api-bindings,"Design non-subprocess integration contract related to ""feat(registry): add GetAllStaticModels helper function"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1313,https://github.com/router-for-me/CLIProxyAPI/pull/1313,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1244,oauth-and-authentication,"Generalize ""fix(gemini): Removes unsupported extension fields"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1311,https://github.com/router-for-me/CLIProxyAPI/pull/1311,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1245,thinking-and-reasoning,"Improve CLI UX around ""feat: Kimi Code (kimi-for-coding) support for Droid CLI via Anthropic…"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1310,https://github.com/router-for-me/CLIProxyAPI/pull/1310,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1246,provider-model-registry,"Extend docs for ""fix(antigravity): resolve model aliases to support gemini-3-pro-preview"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1308,https://github.com/router-for-me/CLIProxyAPI/pull/1308,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1247,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""feat(quota): add automatic quota monitoring for Antigravity accounts"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1303,https://github.com/router-for-me/CLIProxyAPI/pull/1303,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1249,websocket-and-streaming,"Prepare safe rollout for ""fix(logging): add API response timestamp and fix request timestamp timing"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1300,https://github.com/router-for-me/CLIProxyAPI/pull/1300,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1250,responses-and-chat-compat,"Standardize naming/metadata affected by ""fix(translator): restore usageMetadata in Gemini responses from Antigravity"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1298,https://github.com/router-for-me/CLIProxyAPI/pull/1298,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1253,responses-and-chat-compat,"Operationalize ""fix: skip empty text parts and messages to avoid Gemini API error"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1294,https://github.com/router-for-me/CLIProxyAPI/pull/1294,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1254,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix: handle missing usage in streaming responses from OpenAI-compatible providers"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1279,https://github.com/router-for-me/CLIProxyAPI/pull/1279,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1258,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat(logging): add timestamp to API RESPONSE section in error logs"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1265,https://github.com/router-for-me/CLIProxyAPI/pull/1265,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1260,thinking-and-reasoning,"Standardize naming/metadata affected by ""feat(auth): add credential-master mode for follower nodes"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1258,https://github.com/router-for-me/CLIProxyAPI/pull/1258,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1262,provider-model-registry,"Harden ""feat: 凭证失效时自动禁用"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1250,https://github.com/router-for-me/CLIProxyAPI/pull/1250,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1263,thinking-and-reasoning,"Operationalize ""feat: add credential-peers broadcast for multi-instance token sync"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1249,https://github.com/router-for-me/CLIProxyAPI/pull/1249,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1264,responses-and-chat-compat,"Generalize ""feat(openai): add responses/compact support"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1248,https://github.com/router-for-me/CLIProxyAPI/pull/1248,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1265,integration-api-bindings,"Design non-subprocess integration contract related to ""feat: add OpenAI-compatible /v1/embeddings endpoint with API key load balancing"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1241,https://github.com/router-for-me/CLIProxyAPI/pull/1241,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1266,provider-model-registry,"Extend docs for ""feat: 管理 API 自动删除支持"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1237,https://github.com/router-for-me/CLIProxyAPI/pull/1237,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1267,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""feat: add usage statistics persistence"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1235,https://github.com/router-for-me/CLIProxyAPI/pull/1235,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1268,thinking-and-reasoning,"Refactor internals touched by ""fix: prevent Event Loop with ExpectedWriteTracker (Issue #833 Part 2)"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1234,https://github.com/router-for-me/CLIProxyAPI/pull/1234,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1270,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix: persist access_token for Google OAuth providers (fixes #833)"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1232,https://github.com/router-for-me/CLIProxyAPI/pull/1232,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1273,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat: add OpenAI-compatible /v1/embeddings endpoint"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1229,https://github.com/router-for-me/CLIProxyAPI/pull/1229,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1274,responses-and-chat-compat,"Generalize ""Add request_id to error logs and extract error messages"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1225,https://github.com/router-for-me/CLIProxyAPI/pull/1225,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1275,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat(routing): native provider priority with automatic fallback"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1220,https://github.com/router-for-me/CLIProxyAPI/pull/1220,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1276,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""docs: 新增 CPA-XXX 社区面板项目"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1216,https://github.com/router-for-me/CLIProxyAPI/pull/1216,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1277,provider-model-registry,"Add robust stream/non-stream parity tests for ""feat(auth): add health check endpoint for auth file models"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1208,https://github.com/router-for-me/CLIProxyAPI/pull/1208,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1278,thinking-and-reasoning,"Refactor internals touched by ""fix(antigravity): decouple thinking config translation from history validation"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1198,https://github.com/router-for-me/CLIProxyAPI/pull/1198,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1281,provider-model-registry,"Follow up ""feat: 实现多代理池支持以降低单IP请求频率限制"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1188,https://github.com/router-for-me/CLIProxyAPI/pull/1188,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1282,thinking-and-reasoning,"Harden ""Refactor authentication handling for Antigravity, Claude, Codex, and Gemini"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1185,https://github.com/router-for-me/CLIProxyAPI/pull/1185,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1284,thinking-and-reasoning,"Generalize ""fix(claude): skip built-in tools in OAuth tool prefix"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1179,https://github.com/router-for-me/CLIProxyAPI/pull/1179,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1285,provider-model-registry,"Improve CLI UX around ""fix: context cancellation check in conductor.go"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1175,https://github.com/router-for-me/CLIProxyAPI/pull/1175,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1287,provider-model-registry,"Add robust stream/non-stream parity tests for ""refactor(auth): remove unused provider execution helpers"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1171,https://github.com/router-for-me/CLIProxyAPI/pull/1171,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1288,integration-api-bindings,"Design non-subprocess integration contract related to ""feat: optimization enable/disable auth files"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1170,https://github.com/router-for-me/CLIProxyAPI/pull/1170,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1290,thinking-and-reasoning,"Standardize naming/metadata affected by ""feat(thinking): add config-based reasoning level overrides"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1156,https://github.com/router-for-me/CLIProxyAPI/pull/1156,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1291,thinking-and-reasoning,"Follow up ""fix(thinking): handle Cerebras GLM reasoning fields"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1151,https://github.com/router-for-me/CLIProxyAPI/pull/1151,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1292,docs-quickstarts,"Create or refresh provider quickstart derived from ""Add switch"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1147,https://github.com/router-for-me/CLIProxyAPI/pull/1147,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1293,provider-model-registry,"Operationalize ""fix(antigravity): add web search tool support for Claude/OpenAI format requests"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1142,https://github.com/router-for-me/CLIProxyAPI/pull/1142,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1294,responses-and-chat-compat,"Generalize ""fix(auth): handle quota cooldown in retry logic for transient errors"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1140,https://github.com/router-for-me/CLIProxyAPI/pull/1140,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1295,responses-and-chat-compat,"Improve CLI UX around ""fix(translator): ensure system message is only added if it contains c…"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1137,https://github.com/router-for-me/CLIProxyAPI/pull/1137,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1297,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""Fix Gemini tool calling for Antigravity (malformed_function_call)"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1131,https://github.com/router-for-me/CLIProxyAPI/pull/1131,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1302,responses-and-chat-compat,"Harden ""fix(translator): extract system messages from input in codex response…"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1121,https://github.com/router-for-me/CLIProxyAPI/pull/1121,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1303,responses-and-chat-compat,"Operationalize ""fix(translator): enhance signature cache clearing logic and update test cases with model name"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1117,https://github.com/router-for-me/CLIProxyAPI/pull/1117,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1305,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""feat(wakeup): add auto-wakeup scheduling system"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1114,https://github.com/router-for-me/CLIProxyAPI/pull/1114,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1307,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""fix(validate): enhance level clamping logic for provider family conversions"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1105,https://github.com/router-for-me/CLIProxyAPI/pull/1105,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1308,responses-and-chat-compat,"Refactor internals touched by ""feat(vertex): add Imagen image generation model support"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1103,https://github.com/router-for-me/CLIProxyAPI/pull/1103,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1309,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat(management): add PATCH endpoint to enable/disable auth files"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1102,https://github.com/router-for-me/CLIProxyAPI/pull/1102,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1311,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""refactor(claude): move max_tokens constraint enforcement to Apply method"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1099,https://github.com/router-for-me/CLIProxyAPI/pull/1099,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1312,thinking-and-reasoning,"Harden ""feat(translator): report cached token usage in Claude output"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1096,https://github.com/router-for-me/CLIProxyAPI/pull/1096,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1313,responses-and-chat-compat,"Operationalize ""feat: add self rate limiting for OAuth providers"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1091,https://github.com/router-for-me/CLIProxyAPI/pull/1091,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1315,responses-and-chat-compat,"Improve CLI UX around ""fix(responses): finalize stream on [DONE] without finish_reason"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1087,https://github.com/router-for-me/CLIProxyAPI/pull/1087,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1316,thinking-and-reasoning,"Extend docs for ""Refine thinking validation and cross‑provider payload conversion"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1081,https://github.com/router-for-me/CLIProxyAPI/pull/1081,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1318,provider-model-registry,"Refactor internals touched by ""feat: add SQLite-based usage statistics persistence"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1070,https://github.com/router-for-me/CLIProxyAPI/pull/1070,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1320,thinking-and-reasoning,"Standardize naming/metadata affected by ""refactor(auth): simplify filename prefixes for qwen and iflow tokens"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1067,https://github.com/router-for-me/CLIProxyAPI/pull/1067,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1325,oauth-and-authentication,"Improve CLI UX around ""feat(docker): use environment variables for volume paths"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1018,https://github.com/router-for-me/CLIProxyAPI/pull/1018,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1326,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(antigravity): prevent corrupted thought signature when switching models"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#994,https://github.com/router-for-me/CLIProxyAPI/pull/994,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1327,provider-model-registry,"Add robust stream/non-stream parity tests for ""feat: add control switches for api provider and auth files"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#993,https://github.com/router-for-me/CLIProxyAPI/pull/993,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1330,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat(config): add github-copilot to oauth-model-mappings supported channels"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#967,https://github.com/router-for-me/CLIProxyAPI/pull/967,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1331,provider-model-registry,"Follow up ""Add Candidate count (OpenAI 'n' parameter) support"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#961,https://github.com/router-for-me/CLIProxyAPI/pull/961,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1334,integration-api-bindings,"Design non-subprocess integration contract related to ""Resolve memory leaks causing OOM in k8s deployment"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#947,https://github.com/router-for-me/CLIProxyAPI/pull/947,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1335,responses-and-chat-compat,"Improve CLI UX around ""fix(executor): rename blocked tool names for Claude Code OAuth"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#946,https://github.com/router-for-me/CLIProxyAPI/pull/946,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1336,responses-and-chat-compat,"Extend docs for ""fix(executor): rename blocked tool names for Claude Code OAuth"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#945,https://github.com/router-for-me/CLIProxyAPI/pull/945,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1337,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""Fix Claude OAuth tool name mapping (proxy_)"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#943,https://github.com/router-for-me/CLIProxyAPI/pull/943,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1338,thinking-and-reasoning,"Refactor internals touched by ""fix: Claude OAuth by prefixing tool names and merging beta headers"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#939,https://github.com/router-for-me/CLIProxyAPI/pull/939,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1339,oauth-and-authentication,"Prepare safe rollout for ""refactor(logging): clean up oauth logs and debugs"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#938,https://github.com/router-for-me/CLIProxyAPI/pull/938,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1340,thinking-and-reasoning,"Standardize naming/metadata affected by ""feat: add Cursor Agent CLI provider integration"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#935,https://github.com/router-for-me/CLIProxyAPI/pull/935,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1343,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat(websearch): add web search support for Claude Code"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#918,https://github.com/router-for-me/CLIProxyAPI/pull/918,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1344,thinking-and-reasoning,"Generalize ""feat(websearch): add web search support for Claude Code"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#916,https://github.com/router-for-me/CLIProxyAPI/pull/916,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1346,thinking-and-reasoning,"Extend docs for ""feat: Add GitHub Copilot OAuth Integration"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#900,https://github.com/router-for-me/CLIProxyAPI/pull/900,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1349,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix(management): refresh antigravity token for api-call $TOKEN$"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#888,https://github.com/router-for-me/CLIProxyAPI/pull/888,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1352,oauth-and-authentication,"Harden ""feat(codex): include plan type in auth filename"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#877,https://github.com/router-for-me/CLIProxyAPI/pull/877,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1353,thinking-and-reasoning,"Operationalize ""fix(antigravity): preserve finish_reason tool_calls across streaming chunks"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#874,https://github.com/router-for-me/CLIProxyAPI/pull/874,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1355,thinking-and-reasoning,"Improve CLI UX around ""fix(auth): persist access_token on refresh to prevent token loss"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#869,https://github.com/router-for-me/CLIProxyAPI/pull/869,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1357,integration-api-bindings,"Design non-subprocess integration contract related to ""fix(translator): stabilize tool_call finish_reason"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#865,https://github.com/router-for-me/CLIProxyAPI/pull/865,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1359,provider-model-registry,"Prepare safe rollout for ""fix(auth): use backend project ID for free tier Gemini CLI OAuth users"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#861,https://github.com/router-for-me/CLIProxyAPI/pull/861,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1360,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat: add configurable request timeout for extended thinking models"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#860,https://github.com/router-for-me/CLIProxyAPI/pull/860,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1361,oauth-and-authentication,"Follow up ""fix: prevent race condition in objectstore auth sync"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#859,https://github.com/router-for-me/CLIProxyAPI/pull/859,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1362,provider-model-registry,"Harden ""docs: add ProxyPilot to community projects"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#858,https://github.com/router-for-me/CLIProxyAPI/pull/858,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1363,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Management update"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#857,https://github.com/router-for-me/CLIProxyAPI/pull/857,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1364,responses-and-chat-compat,"Generalize ""feat(translator): add developer role support for Gemini translators"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#850,https://github.com/router-for-me/CLIProxyAPI/pull/850,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1366,thinking-and-reasoning,"Extend docs for ""fix(antigravity): apply schema cleaning to Gemini 3 models"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#846,https://github.com/router-for-me/CLIProxyAPI/pull/846,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1368,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""docs: add CodMate to community projects"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#837,https://github.com/router-for-me/CLIProxyAPI/pull/837,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1369,thinking-and-reasoning,"Prepare safe rollout for ""fix(auth): resolve token refresh loop and preserve ModelStates on auth reload"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#835,https://github.com/router-for-me/CLIProxyAPI/pull/835,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1370,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix(auth): prevent infinite token refresh loop by persisting access_token"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#834,https://github.com/router-for-me/CLIProxyAPI/pull/834,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1373,provider-model-registry,"Operationalize ""feat: Add session management with conversation history and provider affinity"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#829,https://github.com/router-for-me/CLIProxyAPI/pull/829,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1375,thinking-and-reasoning,"Improve CLI UX around ""feat(translator): enhance Claude-to-OpenAI conversion with thinking block and tool result handling"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#823,https://github.com/router-for-me/CLIProxyAPI/pull/823,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1376,thinking-and-reasoning,"Extend docs for ""feat: Add Antigravity refresh token auth and api-call proxy endpoint"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#821,https://github.com/router-for-me/CLIProxyAPI/pull/821,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1377,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(translator): correctly map stop_reason in response translations"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#819,https://github.com/router-for-me/CLIProxyAPI/pull/819,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1380,integration-api-bindings,"Design non-subprocess integration contract related to ""feat(antigravity): add web_search support for Claude via Gemini googleSearch"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#811,https://github.com/router-for-me/CLIProxyAPI/pull/811,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1381,oauth-and-authentication,"Follow up ""Add Claude quota management endpoints"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#807,https://github.com/router-for-me/CLIProxyAPI/pull/807,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1382,thinking-and-reasoning,"Harden ""fix(translator): correctly map stop_reason in response translations"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#805,https://github.com/router-for-me/CLIProxyAPI/pull/805,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1383,responses-and-chat-compat,"Operationalize ""feat(translator): resolve invalid function name errors by sanitizing Claude tool names"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#803,https://github.com/router-for-me/CLIProxyAPI/pull/803,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1384,responses-and-chat-compat,"Generalize ""feat(translator): fix invalid function name errors by sanitizing Claude tool names"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#802,https://github.com/router-for-me/CLIProxyAPI/pull/802,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1386,thinking-and-reasoning,"Extend docs for ""fix: preserve ModelStates during auth reload/refresh and parse Antigravity retryDelay"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#799,https://github.com/router-for-me/CLIProxyAPI/pull/799,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1387,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""refactor(executor): resolve upstream model at conductor level before execution"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#795,https://github.com/router-for-me/CLIProxyAPI/pull/795,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1388,thinking-and-reasoning,"Refactor internals touched by ""fix(antigravity): parse retry-after delay from 429 response body"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#787,https://github.com/router-for-me/CLIProxyAPI/pull/787,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1389,responses-and-chat-compat,"Prepare safe rollout for ""feat(antigravity): add web_search support for Claude via Gemini googleSearch"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#786,https://github.com/router-for-me/CLIProxyAPI/pull/786,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1391,provider-model-registry,"Follow up ""refactor(config): rename model-name-mappings to oauth-model-mappings"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#782,https://github.com/router-for-me/CLIProxyAPI/pull/782,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1392,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix(antigravity): inject required placeholder when properties exist w…"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#776,https://github.com/router-for-me/CLIProxyAPI/pull/776,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1394,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat(api): add id token claims extraction for codex auth entries"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#770,https://github.com/router-for-me/CLIProxyAPI/pull/770,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1396,websocket-and-streaming,"Extend docs for ""feat(amp): add per-client upstream API key mapping support"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#767,https://github.com/router-for-me/CLIProxyAPI/pull/767,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1397,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Background Quota Refresh & Automated Token Management"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#766,https://github.com/router-for-me/CLIProxyAPI/pull/766,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1398,thinking-and-reasoning,"Refactor internals touched by ""feat: add global model aliases with cross-provider fallback"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#765,https://github.com/router-for-me/CLIProxyAPI/pull/765,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1399,thinking-and-reasoning,"Prepare safe rollout for ""feat: add global model aliases with cross-provider fallback"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#764,https://github.com/router-for-me/CLIProxyAPI/pull/764,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1400,provider-model-registry,"Standardize naming/metadata affected by ""feat(logging): disambiguate OAuth credential selection in debug logs"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#763,https://github.com/router-for-me/CLIProxyAPI/pull/763,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1402,websocket-and-streaming,"Harden ""Merge v6.6.62 + sticky routing + quota refresh"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#760,https://github.com/router-for-me/CLIProxyAPI/pull/760,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1403,integration-api-bindings,"Design non-subprocess integration contract related to ""docs: add ProxyPilot to community projects"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#759,https://github.com/router-for-me/CLIProxyAPI/pull/759,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1404,thinking-and-reasoning,"Generalize ""feat: expose antigravity models via Anthropic endpoint"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#758,https://github.com/router-for-me/CLIProxyAPI/pull/758,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1406,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat(iflow): add model-specific thinking configs for GLM-4.7 and Mini…"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#756,https://github.com/router-for-me/CLIProxyAPI/pull/756,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1407,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""feat(iflow): add model-specific thinking configs for GLM-4.7 and MiniMax-M2.1"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#755,https://github.com/router-for-me/CLIProxyAPI/pull/755,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1408,responses-and-chat-compat,"Refactor internals touched by ""feat(executor): 为 openai-compat 添加 wire-api 配置支持"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#754,https://github.com/router-for-me/CLIProxyAPI/pull/754,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1410,provider-model-registry,"Standardize naming/metadata affected by ""fix(auth): make provider rotation atomic"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#745,https://github.com/router-for-me/CLIProxyAPI/pull/745,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1411,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix: handle nested text format and reasoning_content field"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#733,https://github.com/router-for-me/CLIProxyAPI/pull/733,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1412,provider-model-registry,"Harden ""feat(ampcode): support per-request upstream key"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#728,https://github.com/router-for-me/CLIProxyAPI/pull/728,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1415,provider-model-registry,"Improve CLI UX around ""refactor: extract OAuth callback handler factory to reduce code duplication"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#720,https://github.com/router-for-me/CLIProxyAPI/pull/720,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1417,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""feat: implement automatic self-update via --update CLI flag"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#715,https://github.com/router-for-me/CLIProxyAPI/pull/715,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1419,responses-and-chat-compat,"Prepare safe rollout for ""fix(translator): Prevent duplicated text in assistant messages with tool_calls"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#705,https://github.com/router-for-me/CLIProxyAPI/pull/705,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1420,responses-and-chat-compat,"Standardize naming/metadata affected by ""fix(openai): add index field to image response for LiteLLM compatibility"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#704,https://github.com/router-for-me/CLIProxyAPI/pull/704,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1421,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix(openai): add index field to image response for LiteLLM compatibility"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#703,https://github.com/router-for-me/CLIProxyAPI/pull/703,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1422,oauth-and-authentication,"Harden ""refactor(sdk/auth): rename manager.go to conductor.go"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#700,https://github.com/router-for-me/CLIProxyAPI/pull/700,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1424,thinking-and-reasoning,"Generalize ""feat: add cached token parsing for Gemini , Antigravity API responses"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#695,https://github.com/router-for-me/CLIProxyAPI/pull/695,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1425,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Add support for OAuth model aliases for Claude"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#693,https://github.com/router-for-me/CLIProxyAPI/pull/693,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1426,integration-api-bindings,"Design non-subprocess integration contract related to ""docs(readme): add Cubence sponsor"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#689,https://github.com/router-for-me/CLIProxyAPI/pull/689,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1428,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat: regex support for model-mappings"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#686,https://github.com/router-for-me/CLIProxyAPI/pull/686,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1432,thinking-and-reasoning,"Harden ""fix: secure token persistence"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#673,https://github.com/router-for-me/CLIProxyAPI/pull/673,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1433,thinking-and-reasoning,"Operationalize ""feat: inject token warning when Antigravity usage exceeds threshold"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#667,https://github.com/router-for-me/CLIProxyAPI/pull/667,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1434,oauth-and-authentication,"Generalize ""docs: add operations guide and config updates"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#665,https://github.com/router-for-me/CLIProxyAPI/pull/665,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1435,thinking-and-reasoning,"Improve CLI UX around ""fix: secure token persistence"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#664,https://github.com/router-for-me/CLIProxyAPI/pull/664,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1437,provider-model-registry,"Add robust stream/non-stream parity tests for ""feat: harden oauth flows and providers"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#662,https://github.com/router-for-me/CLIProxyAPI/pull/662,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1438,oauth-and-authentication,"Refactor internals touched by ""fix: improve streaming bootstrap and forwarding"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#661,https://github.com/router-for-me/CLIProxyAPI/pull/661,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1439,thinking-and-reasoning,"Prepare safe rollout for ""Fix responses-format handling for chat completions(Support Cursor)"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#658,https://github.com/router-for-me/CLIProxyAPI/pull/658,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1441,oauth-and-authentication,"Follow up ""Fix: Use x-api-key header for Claude API instead of Authorization: Bearer"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#653,https://github.com/router-for-me/CLIProxyAPI/pull/653,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1443,oauth-and-authentication,"Operationalize ""OAuth and management"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#641,https://github.com/router-for-me/CLIProxyAPI/pull/641,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1444,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix: add gemini-3-flash-preview model definition in GetGeminiModels"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#638,https://github.com/router-for-me/CLIProxyAPI/pull/638,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1445,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(amp): add /docs routes to proxy"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#634,https://github.com/router-for-me/CLIProxyAPI/pull/634,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1446,thinking-and-reasoning,"Extend docs for ""feat(antigravity): add payload config support to Antigravity executor"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#633,https://github.com/router-for-me/CLIProxyAPI/pull/633,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1449,integration-api-bindings,"Design non-subprocess integration contract related to ""Fix/kiro config synthesis"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#624,https://github.com/router-for-me/CLIProxyAPI/pull/624,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1450,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Remote OAuth"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#623,https://github.com/router-for-me/CLIProxyAPI/pull/623,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1452,thinking-and-reasoning,"Harden ""Antigravity Prompt Caching Fix"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#621,https://github.com/router-for-me/CLIProxyAPI/pull/621,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1454,oauth-and-authentication,"Generalize ""fix(amp): add management auth skipper"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#618,https://github.com/router-for-me/CLIProxyAPI/pull/618,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1457,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""feat(antigravity): Improve Claude model compatibility"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#611,https://github.com/router-for-me/CLIProxyAPI/pull/611,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1462,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(amp): inject Amp token for management routes to fix thread reading and web search"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#604,https://github.com/router-for-me/CLIProxyAPI/pull/604,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1463,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix: remove propertyNames from JSON schema for Gemini compatibility"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#602,https://github.com/router-for-me/CLIProxyAPI/pull/602,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1464,thinking-and-reasoning,"Generalize ""fix(auth): prevent token refresh loop by ignoring timestamp fields"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#598,https://github.com/router-for-me/CLIProxyAPI/pull/598,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1465,responses-and-chat-compat,"Improve CLI UX around ""Fix/embedding features"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#596,https://github.com/router-for-me/CLIProxyAPI/pull/596,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1467,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""fix: handle non-standard 'optional' field in JSON Schema for Gemini API"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#587,https://github.com/router-for-me/CLIProxyAPI/pull/587,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1472,integration-api-bindings,"Design non-subprocess integration contract related to ""Refactor-watcher-phase3"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#577,https://github.com/router-for-me/CLIProxyAPI/pull/577,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1473,responses-and-chat-compat,"Operationalize ""feature: Improves Antigravity(gemini-claude) JSON schema compatibility"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#575,https://github.com/router-for-me/CLIProxyAPI/pull/575,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1474,provider-model-registry,"Generalize ""refactor(watcher): extract auth synthesizer to synthesizer package"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#572,https://github.com/router-for-me/CLIProxyAPI/pull/572,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1476,thinking-and-reasoning,"Extend docs for ""Fix invalid thinking signature when proxying Claude via Antigravity"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#570,https://github.com/router-for-me/CLIProxyAPI/pull/570,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1477,provider-model-registry,"Add robust stream/non-stream parity tests for ""Watcher Module Progressive Refactoring - Phase 1"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#569,https://github.com/router-for-me/CLIProxyAPI/pull/569,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1479,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(translator): emit message_start on first chunk regardless of role field"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#562,https://github.com/router-for-me/CLIProxyAPI/pull/562,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1481,thinking-and-reasoning,"Follow up ""fix: bypass KorProxy auth for Amp management routes"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#556,https://github.com/router-for-me/CLIProxyAPI/pull/556,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1482,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix(translator): preserve built-in tools (web_search) to Responses API"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#553,https://github.com/router-for-me/CLIProxyAPI/pull/553,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1483,responses-and-chat-compat,"Operationalize ""fix(translator): preserve built-in tools (web_search) to Responses API"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#552,https://github.com/router-for-me/CLIProxyAPI/pull/552,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1484,responses-and-chat-compat,"Generalize ""Improve Request Logging Efficiency and Standardize Error Responses"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#549,https://github.com/router-for-me/CLIProxyAPI/pull/549,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1485,oauth-and-authentication,"Improve CLI UX around ""feat(amp): require API key authentication for management routes"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#547,https://github.com/router-for-me/CLIProxyAPI/pull/547,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1486,websocket-and-streaming,"Extend docs for ""feat: add configurable transient-retry-interval for 408/5xx errors"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#545,https://github.com/router-for-me/CLIProxyAPI/pull/545,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1487,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""feat(auth): add proxy information to debug logs"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#543,https://github.com/router-for-me/CLIProxyAPI/pull/543,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1489,thinking-and-reasoning,"Prepare safe rollout for ""fix(claude): avoid reusing content_block indexes in Codex SSE"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#538,https://github.com/router-for-me/CLIProxyAPI/pull/538,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1490,responses-and-chat-compat,"Standardize naming/metadata affected by ""fix: handle malformed json in function response parsing"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#537,https://github.com/router-for-me/CLIProxyAPI/pull/537,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1492,thinking-and-reasoning,"Harden ""refactor(thinking): centralize reasoning effort mapping and normalize budget values"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#533,https://github.com/router-for-me/CLIProxyAPI/pull/533,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1493,provider-model-registry,"Operationalize ""feat: add API endpoint to query models for auth credentials"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#531,https://github.com/router-for-me/CLIProxyAPI/pull/531,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1494,thinking-and-reasoning,"Generalize ""fix: ensure message_start sent before content_block_start in OpenAI→Anthropic translation"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#529,https://github.com/router-for-me/CLIProxyAPI/pull/529,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1495,integration-api-bindings,"Design non-subprocess integration contract related to ""Feature/usage metrics"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#516,https://github.com/router-for-me/CLIProxyAPI/pull/516,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1496,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(amp): flush response buffer after each streaming chunk write"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#515,https://github.com/router-for-me/CLIProxyAPI/pull/515,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1497,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""feat(auth): add per-auth use_global_proxy configuration"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#514,https://github.com/router-for-me/CLIProxyAPI/pull/514,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1498,responses-and-chat-compat,"Refactor internals touched by ""fix(antigravity): sanitize tool JSON schemas (strip )"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#507,https://github.com/router-for-me/CLIProxyAPI/pull/507,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1499,thinking-and-reasoning,"Prepare safe rollout for ""fix(thinking): map budgets to effort levels"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#505,https://github.com/router-for-me/CLIProxyAPI/pull/505,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1500,oauth-and-authentication,"Standardize naming/metadata affected by ""feat(auth): add priority-based auth selection"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#504,https://github.com/router-for-me/CLIProxyAPI/pull/504,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1501,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix(auth): prevent duplicate iflow BXAuth tokens"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#502,https://github.com/router-for-me/CLIProxyAPI/pull/502,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1502,provider-model-registry,"Harden ""fix(openai-compat): prevent model alias from being overwritten"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#501,https://github.com/router-for-me/CLIProxyAPI/pull/501,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1503,thinking-and-reasoning,"Operationalize ""fix(codex): raise default reasoning effort to medium"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#500,https://github.com/router-for-me/CLIProxyAPI/pull/500,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1504,oauth-and-authentication,"Generalize ""fix(claude): flush Claude SSE chunks immediately"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#498,https://github.com/router-for-me/CLIProxyAPI/pull/498,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1505,thinking-and-reasoning,"Improve CLI UX around ""fix(models): add ""none"" reasoning effort level to gpt-5.2"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#494,https://github.com/router-for-me/CLIProxyAPI/pull/494,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1507,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""fix(amp): set status on claude stream errors"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#487,https://github.com/router-for-me/CLIProxyAPI/pull/487,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1508,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Think"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#485,https://github.com/router-for-me/CLIProxyAPI/pull/485,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1509,websocket-and-streaming,"Prepare safe rollout for ""fix: increase buffer size for stream scanners to 50MB across multiple executors"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#481,https://github.com/router-for-me/CLIProxyAPI/pull/481,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1510,websocket-and-streaming,"Standardize naming/metadata affected by ""fix(claude): prevent final events when no content streamed"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#479,https://github.com/router-for-me/CLIProxyAPI/pull/479,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1511,thinking-and-reasoning,"Follow up ""fix(translator): skip empty functionResponse in OpenAI-to-Antigravity path"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#474,https://github.com/router-for-me/CLIProxyAPI/pull/474,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1512,thinking-and-reasoning,"Harden ""feat: add rate limiting and circuit breaker for /v1/messages endpoint"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#473,https://github.com/router-for-me/CLIProxyAPI/pull/473,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1513,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(gemini): normalize model listing output"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#470,https://github.com/router-for-me/CLIProxyAPI/pull/470,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1516,responses-and-chat-compat,"Extend docs for ""fix(translator): preserve tool_use blocks on args parse failure"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#466,https://github.com/router-for-me/CLIProxyAPI/pull/466,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1517,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Move thinking budget normalization from translators to executor"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#465,https://github.com/router-for-me/CLIProxyAPI/pull/465,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1518,integration-api-bindings,"Design non-subprocess integration contract related to ""feat/amp-mapping-model-regex"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#464,https://github.com/router-for-me/CLIProxyAPI/pull/464,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1520,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat: add Sequential Mode, strictly follows priority order (prioritizes higher-priority Providers)."" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#459,https://github.com/router-for-me/CLIProxyAPI/pull/459,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1523,websocket-and-streaming,"Operationalize ""feat(logging): add upstream API request/response capture to streaming logs"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#455,https://github.com/router-for-me/CLIProxyAPI/pull/455,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1524,testing-and-quality,"Generalize ""feat(config): add configurable host binding for server"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#454,https://github.com/router-for-me/CLIProxyAPI/pull/454,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1528,responses-and-chat-compat,"Refactor internals touched by ""fix(gemini-cli): enhance 429 retry delay parsing"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#449,https://github.com/router-for-me/CLIProxyAPI/pull/449,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1530,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat: add model name to GIN request logs"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#447,https://github.com/router-for-me/CLIProxyAPI/pull/447,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1531,responses-and-chat-compat,"Follow up ""feat: add model name to GIN request logs"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#446,https://github.com/router-for-me/CLIProxyAPI/pull/446,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1535,thinking-and-reasoning,"Improve CLI UX around ""fix: prioritize model mappings over local providers for Amp CLI"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#435,https://github.com/router-for-me/CLIProxyAPI/pull/435,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1536,thinking-and-reasoning,"Extend docs for ""feat: preserve thinking config for Claude models via Antigravity/Vertex AI"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#434,https://github.com/router-for-me/CLIProxyAPI/pull/434,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1537,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix(amp): pass mapped model to gemini bridge via context"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#432,https://github.com/router-for-me/CLIProxyAPI/pull/432,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1539,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat(amp): add response rewriter for model name substitution in responses"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#428,https://github.com/router-for-me/CLIProxyAPI/pull/428,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1540,thinking-and-reasoning,"Standardize naming/metadata affected by ""feat(kiro): add complete Kiro (AWS CodeWhisperer) integration"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#427,https://github.com/router-for-me/CLIProxyAPI/pull/427,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1541,integration-api-bindings,"Design non-subprocess integration contract related to ""feat(kiro): add complete Kiro (AWS CodeWhisperer) integration"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#426,https://github.com/router-for-me/CLIProxyAPI/pull/426,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1547,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(amp): add missing /auth/* and /api/tab/* proxy routes for AMP CLI"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#405,https://github.com/router-for-me/CLIProxyAPI/pull/405,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1549,responses-and-chat-compat,"Prepare safe rollout for ""Support OpenAI responses wire API and provider query params for OpenAI-compatible upstreams"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#401,https://github.com/router-for-me/CLIProxyAPI/pull/401,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1554,thinking-and-reasoning,"Generalize ""refactor(executor): dedupe thinking metadata helpers across Gemini executors"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#386,https://github.com/router-for-me/CLIProxyAPI/pull/386,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1555,thinking-and-reasoning,"Improve CLI UX around ""feat: add Canonical IR translator with new providers (Kiro, Cline, Ollama)"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#385,https://github.com/router-for-me/CLIProxyAPI/pull/385,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1556,thinking-and-reasoning,"Extend docs for ""test(copilot): add comprehensive test coverage [5/5]"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#384,https://github.com/router-for-me/CLIProxyAPI/pull/384,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1557,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""feat(copilot): add Gemini 3 Pro reasoning support [4/5]"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#383,https://github.com/router-for-me/CLIProxyAPI/pull/383,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1558,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat(copilot): add Copilot request executor and model registry [3/5]"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#382,https://github.com/router-for-me/CLIProxyAPI/pull/382,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1559,thinking-and-reasoning,"Prepare safe rollout for ""feat(copilot): implement GitHub Copilot authentication flow [2/5]"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#381,https://github.com/router-for-me/CLIProxyAPI/pull/381,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1560,thinking-and-reasoning,"Standardize naming/metadata affected by ""feat(copilot): add shared infrastructure and config [1/5]"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#380,https://github.com/router-for-me/CLIProxyAPI/pull/380,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1561,provider-model-registry,"Follow up ""docs: add CCS (Claude Code Switch) to projects list"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#379,https://github.com/router-for-me/CLIProxyAPI/pull/379,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1563,thinking-and-reasoning,"Operationalize ""feat(util): add -reasoning suffix support for Gemini models"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#376,https://github.com/router-for-me/CLIProxyAPI/pull/376,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1564,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat: Add support for VertexAI compatible service"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#375,https://github.com/router-for-me/CLIProxyAPI/pull/375,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1565,thinking-and-reasoning,"Improve CLI UX around ""feat(copilot): add GitHub Copilot support and Gemini 3 Pro reasoning"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#372,https://github.com/router-for-me/CLIProxyAPI/pull/372,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1566,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix(amp): add /threads.rss root-level route for AMP CLI"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#371,https://github.com/router-for-me/CLIProxyAPI/pull/371,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1568,thinking-and-reasoning,"Refactor internals touched by ""feat(auth): add GitHub Copilot authentication and API integration"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#362,https://github.com/router-for-me/CLIProxyAPI/pull/362,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1569,responses-and-chat-compat,"Prepare safe rollout for ""fix(translator): handle non-JSON output gracefully in function call r…"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#360,https://github.com/router-for-me/CLIProxyAPI/pull/360,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1570,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix(gemini): use thinkingLevel instead of thinkingBudget for Gemini 3…"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#359,https://github.com/router-for-me/CLIProxyAPI/pull/359,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1571,thinking-and-reasoning,"Follow up ""feat(gemini): add Gemini 3 Pro Preview low/high reasoning effort mode…"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#358,https://github.com/router-for-me/CLIProxyAPI/pull/358,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1572,thinking-and-reasoning,"Harden ""fix(codex): estimate reasoning tokens from accumulated content when u…"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#357,https://github.com/router-for-me/CLIProxyAPI/pull/357,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1573,thinking-and-reasoning,"Operationalize ""fix(translator): add xhigh reasoning_effort support for Codex Max models"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#355,https://github.com/router-for-me/CLIProxyAPI/pull/355,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1574,thinking-and-reasoning,"Generalize ""fix(antigravity): ensure maxOutputTokens > thinkingBudget for Claude thinking models"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#348,https://github.com/router-for-me/CLIProxyAPI/pull/348,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1577,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix(thinking): resolve OpenAI/Gemini compatibility for thinking model…"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#340,https://github.com/router-for-me/CLIProxyAPI/pull/340,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1578,thinking-and-reasoning,"Refactor internals touched by ""feat(claude): add thinking model variants and beta headers support"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#334,https://github.com/router-for-me/CLIProxyAPI/pull/334,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1580,thinking-and-reasoning,"Standardize naming/metadata affected by ""Fix Antigravity Claude tools schema for Claude Code"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#327,https://github.com/router-for-me/CLIProxyAPI/pull/327,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1581,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat(registry): add Claude 4.5 Opus model definition"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#326,https://github.com/router-for-me/CLIProxyAPI/pull/326,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1587,integration-api-bindings,"Design non-subprocess integration contract related to ""fix some bugs"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#306,https://github.com/router-for-me/CLIProxyAPI/pull/306,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1588,responses-and-chat-compat,"Refactor internals touched by ""feat(translator): support image size and googleSearch tools"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#303,https://github.com/router-for-me/CLIProxyAPI/pull/303,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1589,oauth-and-authentication,"Prepare safe rollout for ""Zhizinan1997 test"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#299,https://github.com/router-for-me/CLIProxyAPI/pull/299,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1591,thinking-and-reasoning,"Follow up ""feat(translator): support xhigh thinking config level"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#294,https://github.com/router-for-me/CLIProxyAPI/pull/294,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1592,oauth-and-authentication,"Harden ""feat: add Google Antigravity support"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#289,https://github.com/router-for-me/CLIProxyAPI/pull/289,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1593,responses-and-chat-compat,"Operationalize ""Fix OpenAI responses 404"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#288,https://github.com/router-for-me/CLIProxyAPI/pull/288,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1594,responses-and-chat-compat,"Generalize ""Amp CLI Integration Module"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#287,https://github.com/router-for-me/CLIProxyAPI/pull/287,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1595,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""feat(iflow): add cookie-based authentication endpoint"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#285,https://github.com/router-for-me/CLIProxyAPI/pull/285,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1596,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""feat: Add Amp CLI integration with OAuth fallback support"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#284,https://github.com/router-for-me/CLIProxyAPI/pull/284,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1598,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat: enable Gemini 3 Pro Preview with OAuth support"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#280,https://github.com/router-for-me/CLIProxyAPI/pull/280,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1599,thinking-and-reasoning,"Prepare safe rollout for ""feat(gemini): add support for gemini-3-pro-preview"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#279,https://github.com/router-for-me/CLIProxyAPI/pull/279,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1602,oauth-and-authentication,"Harden ""feat(auth): add iFlow cookie-based authentication support"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#270,https://github.com/router-for-me/CLIProxyAPI/pull/270,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1603,responses-and-chat-compat,"Operationalize ""fix: use underscore suffix in short name mapping"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#268,https://github.com/router-for-me/CLIProxyAPI/pull/268,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1604,responses-and-chat-compat,"Generalize ""fix(claude translator): guard tool schema properties"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#257,https://github.com/router-for-me/CLIProxyAPI/pull/257,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1605,responses-and-chat-compat,"Improve CLI UX around ""Implement Claude Web Search Support with Proper Streaming Translation"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#256,https://github.com/router-for-me/CLIProxyAPI/pull/256,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1606,thinking-and-reasoning,"Extend docs for ""fix(runtime): remove gpt-5.1 minimal effort variant"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#249,https://github.com/router-for-me/CLIProxyAPI/pull/249,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1610,integration-api-bindings,"Design non-subprocess integration contract related to ""fix(management): exclude disabled runtime-only auths from file entries"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#230,https://github.com/router-for-me/CLIProxyAPI/pull/230,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1613,thinking-and-reasoning,"Operationalize ""feat(registry): add GPT-5 Codex Mini model variants"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#225,https://github.com/router-for-me/CLIProxyAPI/pull/225,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1614,oauth-and-authentication,"Generalize ""Return auth info from memory"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#222,https://github.com/router-for-me/CLIProxyAPI/pull/222,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1615,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix(translator): accept camelCase thinking config in OpenAI→Gemini"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#221,https://github.com/router-for-me/CLIProxyAPI/pull/221,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1616,thinking-and-reasoning,"Extend docs for ""fix(openai/chat-completions): preserve tool_result JSON, robust quoting, strip unsupported fields"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#217,https://github.com/router-for-me/CLIProxyAPI/pull/217,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1618,responses-and-chat-compat,"Refactor internals touched by ""ci: add GitHub Action to block changes under `internal/translator` di…"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#214,https://github.com/router-for-me/CLIProxyAPI/pull/214,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1619,thinking-and-reasoning,"Prepare safe rollout for ""fix: handle array format in tool_result content for Gemini API"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#209,https://github.com/router-for-me/CLIProxyAPI/pull/209,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1621,websocket-and-streaming,"Follow up ""fix: Correctly read and restore request body in logging middleware"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#206,https://github.com/router-for-me/CLIProxyAPI/pull/206,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1622,thinking-and-reasoning,"Harden ""OpenAI normalization + Responses ordering + multimodal routing/fallback (based on v6.3.4)"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#196,https://github.com/router-for-me/CLIProxyAPI/pull/196,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1624,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Add Gemini API key endpoints"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#194,https://github.com/router-for-me/CLIProxyAPI/pull/194,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1628,thinking-and-reasoning,"Refactor internals touched by ""Feat: Add reasoning effort support for Gemini models"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#185,https://github.com/router-for-me/CLIProxyAPI/pull/185,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1631,websocket-and-streaming,"Follow up ""Merge my-code into main: upstream sync + conflict resolution + openspec updates"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#182,https://github.com/router-for-me/CLIProxyAPI/pull/182,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1632,docs-quickstarts,"Create or refresh provider quickstart derived from ""docs/add-haiku-4.5"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#180,https://github.com/router-for-me/CLIProxyAPI/pull/180,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1633,integration-api-bindings,"Design non-subprocess integration contract related to ""feat(registry): unify Gemini models and add AI Studio set"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#177,https://github.com/router-for-me/CLIProxyAPI/pull/177,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1634,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Add support for dynamic model providers"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#173,https://github.com/router-for-me/CLIProxyAPI/pull/173,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1638,provider-model-registry,"Refactor internals touched by ""fix: preserve cooled-down models and return JSON 429 with reset time metadata"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#155,https://github.com/router-for-me/CLIProxyAPI/pull/155,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1639,responses-and-chat-compat,"Prepare safe rollout for ""docs: add Subtitle Translator to projects list"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#151,https://github.com/router-for-me/CLIProxyAPI/pull/151,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1645,responses-and-chat-compat,"Improve CLI UX around ""refactor(executor): unify error handling for resource cleanup and buffer constants"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#138,https://github.com/router-for-me/CLIProxyAPI/pull/138,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1649,docs-quickstarts,"Create or refresh provider quickstart derived from ""perf: optimize Claude streaming with bufio and fix SSE parsing errors"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#126,https://github.com/router-for-me/CLIProxyAPI/pull/126,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1653,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix(management,config,watcher): treat empty base-url as removal; improve config change logs"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#116,https://github.com/router-for-me/CLIProxyAPI/pull/116,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1654,oauth-and-authentication,"Generalize ""feat(managementasset): Authenticate GitHub API requests"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#114,https://github.com/router-for-me/CLIProxyAPI/pull/114,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1656,integration-api-bindings,"Design non-subprocess integration contract related to ""fix(server): Handle empty/invalid config in cloud deploy mode"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#111,https://github.com/router-for-me/CLIProxyAPI/pull/111,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1660,responses-and-chat-compat,"Standardize naming/metadata affected by ""feat(translator): Add support for openrouter image_config"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#99,https://github.com/router-for-me/CLIProxyAPI/pull/99,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1661,oauth-and-authentication,"Follow up ""feat(cliproxy): Rebind auth executors on config change"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#95,https://github.com/router-for-me/CLIProxyAPI/pull/95,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1666,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat: Implement hot-reloading for management endpoints"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#82,https://github.com/router-for-me/CLIProxyAPI/pull/82,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1670,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix(translator): remove unsupported token limit fields for Codex Responses API"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#71,https://github.com/router-for-me/CLIProxyAPI/pull/71,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1671,oauth-and-authentication,"Follow up ""Fix for the bug causing configuration to fail, and avoidance of invalid scanning of auth files."" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#70,https://github.com/router-for-me/CLIProxyAPI/pull/70,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1672,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Implement minimal incremental updates for models and keys"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#69,https://github.com/router-for-me/CLIProxyAPI/pull/69,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1674,oauth-and-authentication,"Generalize ""fix(auth): Make round-robin auth selection deterministic"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#67,https://github.com/router-for-me/CLIProxyAPI/pull/67,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1675,oauth-and-authentication,"Improve CLI UX around ""feat(auth): Enhance Gemini web auth with flexible input and UI"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#66,https://github.com/router-for-me/CLIProxyAPI/pull/66,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1676,oauth-and-authentication,"Extend docs for ""feat(auth): Improve Gemini web auth with email label detection"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#65,https://github.com/router-for-me/CLIProxyAPI/pull/65,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1677,provider-model-registry,"Add robust stream/non-stream parity tests for ""fix(auth): Scope unavailability checks to specific models"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#64,https://github.com/router-for-me/CLIProxyAPI/pull/64,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1679,integration-api-bindings,"Design non-subprocess integration contract related to ""feat(auth, docs): add SDK guides and local password support for manag…"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#62,https://github.com/router-for-me/CLIProxyAPI/pull/62,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1682,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""fix(gemini-web): Correct stream translation and reduce auth refresh lead"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#59,https://github.com/router-for-me/CLIProxyAPI/pull/59,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1683,docs-quickstarts,"Create or refresh provider quickstart derived from ""refactor(gemini-web): Remove auto-refresh, auto-close, and caching"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#58,https://github.com/router-for-me/CLIProxyAPI/pull/58,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1684,responses-and-chat-compat,"Generalize ""feat(gemini-web): Inject fallback text for image-only flash model responses"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#57,https://github.com/router-for-me/CLIProxyAPI/pull/57,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1686,oauth-and-authentication,"Extend docs for ""fix(auth): Improve file-based auth handling and consistency"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#54,https://github.com/router-for-me/CLIProxyAPI/pull/54,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1688,responses-and-chat-compat,"Refactor internals touched by ""Add support for image generation with Gemini models through the OpenAI chat completions translator."" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#52,https://github.com/router-for-me/CLIProxyAPI/pull/52,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1690,oauth-and-authentication,"Standardize naming/metadata affected by ""refactor(auth): Centralize auth file reading with snapshot preference"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#50,https://github.com/router-for-me/CLIProxyAPI/pull/50,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1691,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix(gemini-web): ensure colon spacing in JSON output for compatibility"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#49,https://github.com/router-for-me/CLIProxyAPI/pull/49,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1693,thinking-and-reasoning,"Operationalize ""Add Cookie Snapshot and fix some bugs"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#46,https://github.com/router-for-me/CLIProxyAPI/pull/46,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1696,responses-and-chat-compat,"Extend docs for ""fix: comprehensive JSON Schema sanitization for Claude to Gemini"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#43,https://github.com/router-for-me/CLIProxyAPI/pull/43,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1697,oauth-and-authentication,"Add robust stream/non-stream parity tests for ""Codex CLI - setting 'store = false' to prevent the request being rejected by OpenAI"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#41,https://github.com/router-for-me/CLIProxyAPI/pull/41,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1699,oauth-and-authentication,"Prepare safe rollout for ""Add SSH tunnel guidance for login fallback"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#36,https://github.com/router-for-me/CLIProxyAPI/pull/36,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1700,docs-quickstarts,"Create or refresh provider quickstart derived from ""Modify docker compose for remote image and local build"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#33,https://github.com/router-for-me/CLIProxyAPI/pull/33,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1702,integration-api-bindings,"Design non-subprocess integration contract related to ""Inject build metadata into binary during release and docker build"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#30,https://github.com/router-for-me/CLIProxyAPI/pull/30,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1704,oauth-and-authentication,"Generalize ""Optimize and fix bugs for hot reloading"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#28,https://github.com/router-for-me/CLIProxyAPI/pull/28,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1705,responses-and-chat-compat,"Improve CLI UX around ""fix(openai): add tool_calls.index and finish_reason to streaming chunks"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#27,https://github.com/router-for-me/CLIProxyAPI/pull/27,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1710,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Correct config in README.md"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1,https://github.com/router-for-me/CLIProxyAPI/pull/1,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1711,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Feature request: Cursor CLI support"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1466,https://github.com/router-for-me/CLIProxyAPI/discussions/1466,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1725,integration-api-bindings,"Design non-subprocess integration contract related to ""I saved 10M tokens (89%) on my Claude Code sessions with a CLI proxy"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1585,https://github.com/router-for-me/CLIProxyAPI/discussions/1585,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1729,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""403 error"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1563,https://github.com/router-for-me/CLIProxyAPI/discussions/1563,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1740,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""antigravity用不了"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1462,https://github.com/router-for-me/CLIProxyAPI/discussions/1462,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1748,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""登陆提示“登录失败: 访问被拒绝,权限不足”"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1385,https://github.com/router-for-me/CLIProxyAPI/discussions/1385,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1767,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""为什么我启动antigravity的时候CLIProxyAPI会自动启动?"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1164,https://github.com/router-for-me/CLIProxyAPI/discussions/1164,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1769,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""cc 使用 zai-glm-4.7 报错 body.reasoning"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1144,https://github.com/router-for-me/CLIProxyAPI/discussions/1144,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1771,integration-api-bindings,"Design non-subprocess integration contract related to ""antigravity 2 api 经常 429,有同样问题的吗"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1115,https://github.com/router-for-me/CLIProxyAPI/discussions/1115,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1786,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""【建议】保留Gemini格式请求的思考签名"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1181,https://github.com/router-for-me/CLIProxyAPI/discussions/1181,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1794,integration-api-bindings,"Design non-subprocess integration contract related to ""Feature Request: API for fetching Quota stats (remaining, renew time, etc)"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1211,https://github.com/router-for-me/CLIProxyAPI/discussions/1211,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1798,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Claude Code Web Search doesn’t work"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1210,https://github.com/router-for-me/CLIProxyAPI/discussions/1210,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1805,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""iFlow account error show on terminal"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1182,https://github.com/router-for-me/CLIProxyAPI/discussions/1182,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1817,integration-api-bindings,"Design non-subprocess integration contract related to ""[Feature Request] Add timeout configuration"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#670,https://github.com/router-for-me/CLIProxyAPI/discussions/670,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1824,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""不能通过回调链接认证吗"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#597,https://github.com/router-for-me/CLIProxyAPI/discussions/597,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1827,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""iflow 406 errors"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#579,https://github.com/router-for-me/CLIProxyAPI/discussions/579,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1840,integration-api-bindings,"Design non-subprocess integration contract related to ""Claude Code No Longer Supported?"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#329,https://github.com/router-for-me/CLIProxyAPI/discussions/329,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1843,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""大佬能不能出个zeabur部署的教程"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#410,https://github.com/router-for-me/CLIProxyAPI/discussions/410,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1856,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""Feature: scoped `auto` model (provider + pattern)"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#524,https://github.com/router-for-me/CLIProxyAPI/discussions/524,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1862,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""qwen code和iflow的模型重复了"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#204,https://github.com/router-for-me/CLIProxyAPI/discussions/204,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1863,integration-api-bindings,"Design non-subprocess integration contract related to ""docker compose还会继续维护吗"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#205,https://github.com/router-for-me/CLIProxyAPI/discussions/205,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1881,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""[Feature Request] Add default oauth-model-alias for Kiro channel (like Antigravity)"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#208,https://github.com/router-for-me/CLIProxyAPIPlus/issues/208,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1885,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""gemini能不能设置配额,自动禁用 ,自动启用?"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#200,https://github.com/router-for-me/CLIProxyAPIPlus/issues/200,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1886,integration-api-bindings,"Design non-subprocess integration contract related to ""Cursor CLI \ Auth Support"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#198,https://github.com/router-for-me/CLIProxyAPIPlus/issues/198,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1900,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""[Feature Request] 请求增加 Kiro 配额的展示功能"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#146,https://github.com/router-for-me/CLIProxyAPIPlus/issues/146,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1909,integration-api-bindings,"Design non-subprocess integration contract related to ""kiro的social凭证无法刷新过期时间。"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#128,https://github.com/router-for-me/CLIProxyAPIPlus/issues/128,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1914,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""[Bug]Copilot Premium usage significantly amplified when using amp"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#113,https://github.com/router-for-me/CLIProxyAPIPlus/issues/113,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1919,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""OpenAI-compat provider hardcodes /v1/models (breaks Z.ai v4: /api/coding/paas/v4/models)"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#101,https://github.com/router-for-me/CLIProxyAPIPlus/issues/101,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1932,integration-api-bindings,"Design non-subprocess integration contract related to ""Issue with removed parameters - Sequential Thinking Tool Failure (nextThoughtNeeded undefined)"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#78,https://github.com/router-for-me/CLIProxyAPIPlus/issues/78,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1943,dev-runtime-refresh,"Add process-compose/HMR refresh workflow linked to ""kiro命令登录没有端口"" for deterministic local runtime reload.",P1,M,wave-1,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#30,https://github.com/router-for-me/CLIProxyAPIPlus/issues/30,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1948,provider-model-registry,"Refactor internals touched by ""fix: add default copilot claude model aliases for oauth routing"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#256,https://github.com/router-for-me/CLIProxyAPIPlus/pull/256,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1950,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix(kiro): stop duplicated thinking on OpenAI and preserve Claude multi-turn thinking"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#252,https://github.com/router-for-me/CLIProxyAPIPlus/pull/252,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1954,thinking-and-reasoning,"Generalize ""fix(cline): add grantType to token refresh and extension headers"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#247,https://github.com/router-for-me/CLIProxyAPIPlus/pull/247,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1955,docs-quickstarts,"Create or refresh provider quickstart derived from ""feat: add Claude Sonnet 4.6 model support for Kiro provider"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#244,https://github.com/router-for-me/CLIProxyAPIPlus/pull/244,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1956,thinking-and-reasoning,"Extend docs for ""feat(registry): add Claude Sonnet 4.6 model definitions"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#243,https://github.com/router-for-me/CLIProxyAPIPlus/pull/243,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1957,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Improve Copilot provider based on ericc-ch/copilot-api comparison"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#242,https://github.com/router-for-me/CLIProxyAPIPlus/pull/242,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1962,thinking-and-reasoning,"Harden ""fix: add proxy_ prefix handling for tool_reference content blocks"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#236,https://github.com/router-for-me/CLIProxyAPIPlus/pull/236,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1963,thinking-and-reasoning,"Operationalize ""fix(codex): handle function_call_arguments streaming for both spark and non-spark models"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#235,https://github.com/router-for-me/CLIProxyAPIPlus/pull/235,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1964,provider-model-registry,"Generalize ""Add Kilo Code provider with dynamic model fetching"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#234,https://github.com/router-for-me/CLIProxyAPIPlus/pull/234,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1965,thinking-and-reasoning,"Improve CLI UX around ""Fix Copilot codex model Responses API translation for Claude Code"" with clearer commands, flags, and immediate validation feedback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#233,https://github.com/router-for-me/CLIProxyAPIPlus/pull/233,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1966,thinking-and-reasoning,"Extend docs for ""feat(models): add Thinking support to GitHub Copilot models"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#231,https://github.com/router-for-me/CLIProxyAPIPlus/pull/231,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1967,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""fix(copilot): forward Claude-format tools to Copilot Responses API"" across supported providers.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#230,https://github.com/router-for-me/CLIProxyAPIPlus/pull/230,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1968,provider-model-registry,"Refactor internals touched by ""fix: preserve explicitly deleted kiro aliases across config reload"" to reduce coupling and improve maintainability.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#229,https://github.com/router-for-me/CLIProxyAPIPlus/pull/229,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1969,thinking-and-reasoning,"Prepare safe rollout for ""fix(antigravity): add warn-level logging to silent failure paths in FetchAntigravityModels"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#228,https://github.com/router-for-me/CLIProxyAPIPlus/pull/228,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1971,responses-and-chat-compat,"Follow up ""refactor(kiro): Kiro Web Search Logic & Executor Alignment"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#226,https://github.com/router-for-me/CLIProxyAPIPlus/pull/226,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1972,docs-quickstarts,"Create or refresh provider quickstart derived from ""v6.8.13"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#225,https://github.com/router-for-me/CLIProxyAPIPlus/pull/225,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1973,responses-and-chat-compat,"Operationalize ""fix(kiro): prepend placeholder user message when conversation starts with assistant role"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#224,https://github.com/router-for-me/CLIProxyAPIPlus/pull/224,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1974,responses-and-chat-compat,"Generalize ""fix(kiro): prepend placeholder user message when conversation starts with assistant role"" into provider-agnostic translation/utilities to reduce duplicate logic.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#223,https://github.com/router-for-me/CLIProxyAPIPlus/pull/223,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1976,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""fix: prevent merging assistant messages with tool_calls"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#218,https://github.com/router-for-me/CLIProxyAPIPlus/pull/218,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1978,integration-api-bindings,"Design non-subprocess integration contract related to ""fix(auth): strip model suffix in GitHub Copilot executor before upstream call"" with Go bindings primary and API fallback.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#214,https://github.com/router-for-me/CLIProxyAPIPlus/pull/214,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1979,responses-and-chat-compat,"Prepare safe rollout for ""fix(kiro): filter orphaned tool_results from compacted conversations"" via flags, migration docs, and backward-compat tests.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#212,https://github.com/router-for-me/CLIProxyAPIPlus/pull/212,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1980,responses-and-chat-compat,"Standardize naming/metadata affected by ""fix(kiro): fully implement Kiro web search tool via MCP integration"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#211,https://github.com/router-for-me/CLIProxyAPIPlus/pull/211,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1981,provider-model-registry,"Follow up ""feat(config): add default Kiro model aliases for standard Claude model names"" by closing compatibility gaps and locking in regression coverage.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#209,https://github.com/router-for-me/CLIProxyAPIPlus/pull/209,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1983,responses-and-chat-compat,"Operationalize ""fix(translator): fix nullable type arrays breaking Gemini/Antigravity API"" with observability, runbook updates, and deployment safeguards.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#205,https://github.com/router-for-me/CLIProxyAPIPlus/pull/205,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1986,provider-model-registry,"Extend docs for ""feat: add Claude Opus 4.6 to GitHub Copilot models"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#199,https://github.com/router-for-me/CLIProxyAPIPlus/pull/199,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1989,docs-quickstarts,"Create or refresh provider quickstart derived from ""fix: replace assistant placeholder text to prevent model parroting"" with setup/auth/model/sanity-check flow.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#194,https://github.com/router-for-me/CLIProxyAPIPlus/pull/194,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1990,oauth-and-authentication,"Standardize naming/metadata affected by ""Add management OAuth quota endpoints"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#193,https://github.com/router-for-me/CLIProxyAPIPlus/pull/193,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1992,websocket-and-streaming,"Harden ""feat(kiro): add contextUsageEvent handler"" with stricter validation, safer defaults, and explicit fallback semantics.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#191,https://github.com/router-for-me/CLIProxyAPIPlus/pull/191,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1995,go-cli-extraction,"Port relevant thegent-managed behavior implied by ""Codex executor: bump client headers for GPT-5.3 compatibility"" into cliproxy Go CLI commands and interactive setup.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#188,https://github.com/router-for-me/CLIProxyAPIPlus/pull/188,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1996,thinking-and-reasoning,"Extend docs for ""Fix Codex gpt-5.3-codex routing by normalizing backend model"" with quickstart snippets and troubleshooting decision trees.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#187,https://github.com/router-for-me/CLIProxyAPIPlus/pull/187,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-2000,thinking-and-reasoning,"Standardize naming/metadata affected by ""Add Kimi (Moonshot AI) provider support"" across both repos and docs.",P1,M,wave-1,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#182,https://github.com/router-for-me/CLIProxyAPIPlus/pull/182,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0001,platform-architecture,Port thegent proxy lifecycle/install/login/model-management flows into first-class cliproxy Go CLI commands.,P1,L,wave-1,proposed,yes,strategy,cross-repo,synthesis,,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0002,integration-api-bindings,"Define a non-subprocess integration contract: Go bindings first, HTTP API fallback, versioned capability negotiation.",P1,L,wave-1,proposed,yes,strategy,cross-repo,synthesis,,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0007,testing-and-quality,Add cross-provider OpenAI Responses/Chat Completions conformance test suite with golden fixtures.,P1,L,wave-1,proposed,yes,strategy,cross-repo,synthesis,,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0009,project-frontmatter,"Rewrite project frontmatter/readme with architecture, compatibility matrix, provider guides, support policy, and release channels.",P2,M,wave-1,proposed,yes,strategy,cross-repo,synthesis,,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0010,install-and-ops,"Improve release and install UX with unified install flow, binary verification, and platform post-install checks.",P2,M,wave-1,proposed,yes,strategy,cross-repo,synthesis,,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0012,thinking-and-reasoning,"Harden ""Opus 4.6"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#219,https://github.com/router-for-me/CLIProxyAPIPlus/issues/219,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0020,general-polish,"Standardize naming/metadata affected by ""gemini能不能设置配额,自动禁用 ,自动启用?"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#200,https://github.com/router-for-me/CLIProxyAPIPlus/issues/200,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0024,general-polish,"Generalize ""OpenAI-MLX-Server and vLLM-MLX Support?"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#179,https://github.com/router-for-me/CLIProxyAPIPlus/issues/179,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0026,thinking-and-reasoning,"Extend docs for ""Kiro Token 导入失败: Refresh token is required"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#177,https://github.com/router-for-me/CLIProxyAPIPlus/issues/177,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0027,general-polish,"Add robust stream/non-stream parity tests for ""Kimi Code support"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#169,https://github.com/router-for-me/CLIProxyAPIPlus/issues/169,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0028,general-polish,"Refactor internals touched by ""kiro如何看配额?"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#165,https://github.com/router-for-me/CLIProxyAPIPlus/issues/165,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0032,general-polish,"Harden ""kiro反代出现重复输出的情况"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#160,https://github.com/router-for-me/CLIProxyAPIPlus/issues/160,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0033,thinking-and-reasoning,"Operationalize ""kiro IDC 刷新 token 失败"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#149,https://github.com/router-for-me/CLIProxyAPIPlus/issues/149,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0035,websocket-and-streaming,"Improve CLI UX around ""[Feature Request] 请求增加 Kiro 配额的展示功能"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#146,https://github.com/router-for-me/CLIProxyAPIPlus/issues/146,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0041,general-polish,"Follow up ""Routing strategy ""fill-first"" is not working as expected"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#133,https://github.com/router-for-me/CLIProxyAPIPlus/issues/133,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0042,responses-and-chat-compat,"Harden ""WARN kiro_executor.go:1189 kiro: received 400 error (attempt 1/3), body: {""message"":""Improperly formed request."",""reason"":null}"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#131,https://github.com/router-for-me/CLIProxyAPIPlus/issues/131,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0043,cli-ux-dx,"Operationalize ""CLIProxyApiPlus不支持像CLIProxyApi一样使用ClawCloud云部署吗?"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#129,https://github.com/router-for-me/CLIProxyAPIPlus/issues/129,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0044,cli-ux-dx,"Generalize ""kiro的social凭证无法刷新过期时间。"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#128,https://github.com/router-for-me/CLIProxyAPIPlus/issues/128,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0049,provider-model-registry,"Prepare safe rollout for ""[Bug]Copilot Premium usage significantly amplified when using amp"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#113,https://github.com/router-for-me/CLIProxyAPIPlus/issues/113,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0055,general-polish,"Improve CLI UX around ""ADD TRAE IDE support"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#97,https://github.com/router-for-me/CLIProxyAPIPlus/issues/97,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0065,error-handling-retries,"Improve CLI UX around ""failed to load config: failed to read config file: read /CLIProxyAPI/config.yaml: is a directory"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#81,https://github.com/router-for-me/CLIProxyAPIPlus/issues/81,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0067,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Issue with removed parameters - Sequential Thinking Tool Failure (nextThoughtNeeded undefined)"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#78,https://github.com/router-for-me/CLIProxyAPIPlus/issues/78,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0070,responses-and-chat-compat,"Standardize naming/metadata affected by ""Claude Code WebSearch fails with 400 error when using Kiro/Amazon Q backend"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#72,https://github.com/router-for-me/CLIProxyAPIPlus/issues/72,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0071,responses-and-chat-compat,"Follow up ""[BUG] Vision requests fail for ZAI (glm) and Copilot models with missing header / invalid parameter errors"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#69,https://github.com/router-for-me/CLIProxyAPIPlus/issues/69,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0072,general-polish,"Harden ""怎么更新iflow的模型列表。"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#66,https://github.com/router-for-me/CLIProxyAPIPlus/issues/66,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0077,general-polish,"Add robust stream/non-stream parity tests for ""plus版本只能自己构建吗?"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#34,https://github.com/router-for-me/CLIProxyAPIPlus/issues/34,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0078,install-and-ops,"Refactor internals touched by ""kiro命令登录没有端口"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#30,https://github.com/router-for-me/CLIProxyAPIPlus/issues/30,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0254,provider-model-registry,"Generalize ""BUG: Cannot use Claude Models in Codex CLI"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1671,https://github.com/router-for-me/CLIProxyAPI/issues/1671,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0259,provider-model-registry,"Prepare safe rollout for ""Concerns regarding the removal of Gemini Web support in the early stages of the project"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1665,https://github.com/router-for-me/CLIProxyAPI/issues/1665,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0262,responses-and-chat-compat,"Harden ""logs-max-total-size-mb does not account for per-day subdirectories"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1657,https://github.com/router-for-me/CLIProxyAPI/issues/1657,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0264,provider-model-registry,"Generalize """"Please add claude-sonnet-4-6 to registered Claude models. Released 2026-02-15."""" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1653,https://github.com/router-for-me/CLIProxyAPI/issues/1653,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0269,error-handling-retries,"Prepare safe rollout for ""Docker Image Error"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1641,https://github.com/router-for-me/CLIProxyAPI/issues/1641,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0270,error-handling-retries,"Standardize naming/metadata affected by ""Google blocked my 3 email id at once"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1637,https://github.com/router-for-me/CLIProxyAPI/issues/1637,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0271,general-polish,"Follow up ""不同思路的 Antigravity 代理"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1633,https://github.com/router-for-me/CLIProxyAPI/issues/1633,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0279,oauth-and-authentication,"Prepare safe rollout for ""[Feature Request] Session-Aware Hybrid Routing Strategy"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1617,https://github.com/router-for-me/CLIProxyAPI/issues/1617,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0284,thinking-and-reasoning,"Generalize ""不能正确统计minimax-m2.5/kimi-k2.5的Token"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1607,https://github.com/router-for-me/CLIProxyAPI/issues/1607,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0287,general-polish,"Add robust stream/non-stream parity tests for ""希望为提供商添加请求优先级功能,最好是以模型为基础来进行请求"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1594,https://github.com/router-for-me/CLIProxyAPI/issues/1594,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0288,responses-and-chat-compat,"Refactor internals touched by ""gpt-5.3-codex-spark error"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1593,https://github.com/router-for-me/CLIProxyAPI/issues/1593,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0292,general-polish,"Harden ""每次更新或者重启 使用统计数据都会清空"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1589,https://github.com/router-for-me/CLIProxyAPI/issues/1589,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0294,general-polish,"Generalize ""封号了,pro号没了,又找了个免费认证bot分享出来"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1587,https://github.com/router-for-me/CLIProxyAPI/issues/1587,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0295,cli-ux-dx,"Improve CLI UX around ""gemini-cli 不能自定请求头吗?"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1586,https://github.com/router-for-me/CLIProxyAPI/issues/1586,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0300,websocket-and-streaming,"Standardize naming/metadata affected by ""GPT Team认证似乎获取不到5.3 Codex"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1577,https://github.com/router-for-me/CLIProxyAPI/issues/1577,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0301,general-polish,"Follow up ""iflow渠道调用会一直返回406状态码"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1576,https://github.com/router-for-me/CLIProxyAPI/issues/1576,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0305,websocket-and-streaming,"Improve CLI UX around ""iflow MiniMax-2.5 is online,please add"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1567,https://github.com/router-for-me/CLIProxyAPI/issues/1567,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0309,provider-model-registry,"Prepare safe rollout for ""GLM-5 return empty"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1560,https://github.com/router-for-me/CLIProxyAPI/issues/1560,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0312,websocket-and-streaming,"Harden ""403 error"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1555,https://github.com/router-for-me/CLIProxyAPI/issues/1555,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0313,websocket-and-streaming,"Operationalize ""iflow glm-5 is online,please add"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1554,https://github.com/router-for-me/CLIProxyAPI/issues/1554,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0318,thinking-and-reasoning,"Refactor internals touched by ""cursor报错根源"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1548,https://github.com/router-for-me/CLIProxyAPI/issues/1548,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0320,thinking-and-reasoning,"Standardize naming/metadata affected by ""自定义别名在调用的时候404"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1546,https://github.com/router-for-me/CLIProxyAPI/issues/1546,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0321,provider-model-registry,"Follow up ""删除iflow提供商的过时模型"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1545,https://github.com/router-for-me/CLIProxyAPI/issues/1545,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0325,thinking-and-reasoning,"Improve CLI UX around ""Gemini-3-pro-high Corrupted thought signature"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1538,https://github.com/router-for-me/CLIProxyAPI/issues/1538,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0326,thinking-and-reasoning,"Extend docs for ""bug: ""status"": ""INVALID_ARGUMENT"" when using antigravity claude-opus-4-6"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1535,https://github.com/router-for-me/CLIProxyAPI/issues/1535,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0328,responses-and-chat-compat,"Refactor internals touched by ""Invalid JSON payload received: Unknown name \""deprecated\"""" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1531,https://github.com/router-for-me/CLIProxyAPI/issues/1531,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0330,general-polish,"Standardize naming/metadata affected by ""请求为Windows添加启动自动更新命令"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1528,https://github.com/router-for-me/CLIProxyAPI/issues/1528,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0331,websocket-and-streaming,"Follow up ""反重力逻辑加载失效"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1526,https://github.com/router-for-me/CLIProxyAPI/issues/1526,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0332,general-polish,"Harden ""support openai image generations api(/v1/images/generations)"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1525,https://github.com/router-for-me/CLIProxyAPI/issues/1525,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0335,general-polish,"Improve CLI UX around ""opus4.6都支持1m的上下文了,请求体什么时候从280K调整下,现在也太小了,动不动就报错"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1515,https://github.com/router-for-me/CLIProxyAPI/issues/1515,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0338,general-polish,"Refactor internals touched by ""请求体过大280KB限制和opus 4.6无法调用的问题,啥时候可以修复"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1512,https://github.com/router-for-me/CLIProxyAPI/issues/1512,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0339,thinking-and-reasoning,"Prepare safe rollout for ""502 unknown provider for model gemini-claude-opus-4-6-thinking"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1510,https://github.com/router-for-me/CLIProxyAPI/issues/1510,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0343,general-polish,"Operationalize ""Antigravity使用时,设计额度最小阈值,超过停止使用或者切换账号,因为额度多次用尽,会触发 5 天刷新"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1505,https://github.com/router-for-me/CLIProxyAPI/issues/1505,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0344,websocket-and-streaming,"Generalize ""iflow的glm-4.7会返回406"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1504,https://github.com/router-for-me/CLIProxyAPI/issues/1504,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0346,general-polish,"Extend docs for ""iflow部分模型增加了签名"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1501,https://github.com/router-for-me/CLIProxyAPI/issues/1501,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0347,general-polish,"Add robust stream/non-stream parity tests for ""Qwen Free allocated quota exceeded"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1500,https://github.com/router-for-me/CLIProxyAPI/issues/1500,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0349,websocket-and-streaming,"Prepare safe rollout for ""为什么我请求了很多次,但是使用统计里仍然显示使用为0呢?"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1497,https://github.com/router-for-me/CLIProxyAPI/issues/1497,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0350,general-polish,"Standardize naming/metadata affected by ""为什么配额管理里没有claude pro账号的额度?"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1496,https://github.com/router-for-me/CLIProxyAPI/issues/1496,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0351,websocket-and-streaming,"Follow up ""最近几个版本,好像轮询失效了"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1495,https://github.com/router-for-me/CLIProxyAPI/issues/1495,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0352,error-handling-retries,"Harden ""iFlow error"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1494,https://github.com/router-for-me/CLIProxyAPI/issues/1494,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0355,thinking-and-reasoning,"Improve CLI UX around ""gemini在cherry studio的openai接口无法控制思考长度"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1484,https://github.com/router-for-me/CLIProxyAPI/issues/1484,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0356,general-polish,"Extend docs for ""codex5.3什么时候能获取到啊"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1482,https://github.com/router-for-me/CLIProxyAPI/issues/1482,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0362,general-polish,"Harden ""[feat]更新很频繁,可以内置软件更新功能吗"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1475,https://github.com/router-for-me/CLIProxyAPI/issues/1475,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0363,provider-model-registry,"Operationalize ""Cannot alias multiple models to single model only on Antigravity"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1472,https://github.com/router-for-me/CLIProxyAPI/issues/1472,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0364,general-polish,"Generalize ""无法识别图片"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1469,https://github.com/router-for-me/CLIProxyAPI/issues/1469,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0365,thinking-and-reasoning,"Improve CLI UX around ""Support for Antigravity Opus 4.6"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1468,https://github.com/router-for-me/CLIProxyAPI/issues/1468,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0367,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""antigravity用不了"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1461,https://github.com/router-for-me/CLIProxyAPI/issues/1461,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0369,websocket-and-streaming,"Prepare safe rollout for ""轮询会无差别轮询即便某个账号在很久前已经空配额"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1456,https://github.com/router-for-me/CLIProxyAPI/issues/1456,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0378,install-and-ops,"Refactor internals touched by ""Feature request: Add support for claude opus 4.6"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1439,https://github.com/router-for-me/CLIProxyAPI/issues/1439,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0379,general-polish,"Prepare safe rollout for ""Feature request: Add support for perplexity"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1438,https://github.com/router-for-me/CLIProxyAPI/issues/1438,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0382,general-polish,"Harden ""希望支持国产模型如glm kimi minimax 的 proxy"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1432,https://github.com/router-for-me/CLIProxyAPI/issues/1432,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0383,general-polish,"Operationalize ""关闭某个认证文件后没有持久化处理"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1431,https://github.com/router-for-me/CLIProxyAPI/issues/1431,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0385,general-polish,"Improve CLI UX around ""大佬能不能把使用统计数据持久化?"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1427,https://github.com/router-for-me/CLIProxyAPI/issues/1427,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0386,thinking-and-reasoning,"Extend docs for ""[BUG] 使用 Google 官方 Python SDK时思考设置无法生效"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1426,https://github.com/router-for-me/CLIProxyAPI/issues/1426,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0388,provider-model-registry,"Refactor internals touched by ""Add Container Tags / Project Scoping for Memory Organization"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1420,https://github.com/router-for-me/CLIProxyAPI/issues/1420,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0392,general-polish,"Harden ""Create OpenAI-Compatible Memory Tools Wrapper"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1416,https://github.com/router-for-me/CLIProxyAPI/issues/1416,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0395,error-handling-retries,"Improve CLI UX around ""Add Notion Connector for Memory Ingestion"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1413,https://github.com/router-for-me/CLIProxyAPI/issues/1413,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0396,error-handling-retries,"Extend docs for ""Add Strict Schema Mode for OpenAI Function Calling"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1412,https://github.com/router-for-me/CLIProxyAPI/issues/1412,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0397,provider-model-registry,"Add robust stream/non-stream parity tests for ""Add Conversation Tracking Support for Chat History"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1411,https://github.com/router-for-me/CLIProxyAPI/issues/1411,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0402,thinking-and-reasoning,"Harden ""反代反重力的 claude 在 opencode 中使用出现 unexpected EOF 错误"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1400,https://github.com/router-for-me/CLIProxyAPI/issues/1400,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0405,error-handling-retries,"Improve CLI UX around ""在 Visual Studio Code无法使用过工具"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1405,https://github.com/router-for-me/CLIProxyAPI/issues/1405,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0410,responses-and-chat-compat,"Standardize naming/metadata affected by ""[antigravity] 500 Internal error and 403 Verification Required for multiple accounts"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1389,https://github.com/router-for-me/CLIProxyAPI/issues/1389,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0411,general-polish,"Follow up ""Antigravity的配额管理,账号没有订阅资格了,还是在显示模型额度"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1388,https://github.com/router-for-me/CLIProxyAPI/issues/1388,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0412,general-polish,"Harden ""大佬,可以加一个apikey的过期时间不"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1387,https://github.com/router-for-me/CLIProxyAPI/issues/1387,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0422,general-polish,"Harden ""Feature Request: 有没有可能支持Trea中国版?"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1373,https://github.com/router-for-me/CLIProxyAPI/issues/1373,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0423,responses-and-chat-compat,"Operationalize ""Bug: Auto-injected cache_control exceeds Anthropic API's 4-block limit"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1372,https://github.com/router-for-me/CLIProxyAPI/issues/1372,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0427,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""Kimi For Coding 好像被 ban 了"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1327,https://github.com/router-for-me/CLIProxyAPI/issues/1327,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0433,thinking-and-reasoning,"Operationalize ""This version of Antigravity is no longer supported. Please update to receive the latest features!"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1316,https://github.com/router-for-me/CLIProxyAPI/issues/1316,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0434,websocket-and-streaming,"Generalize ""无法轮询请求反重力和gemini cli"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1315,https://github.com/router-for-me/CLIProxyAPI/issues/1315,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0438,error-handling-retries,"Refactor internals touched by ""Feature Request: Add ""Sequential"" routing strategy to optimize account quota usage"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1304,https://github.com/router-for-me/CLIProxyAPI/issues/1304,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0444,general-polish,"Generalize ""gemini-3-pro-image-preview api 返回500 我看log中报500的都基本在1分钟左右"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1291,https://github.com/router-for-me/CLIProxyAPI/issues/1291,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0445,general-polish,"Improve CLI UX around ""希望代理设置 能为多个不同的认证文件分别配置不同的代理 URL"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1290,https://github.com/router-for-me/CLIProxyAPI/issues/1290,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0450,general-polish,"Standardize naming/metadata affected by ""[功能建议] 建议实现统计数据持久化,免去更新时的手动导出导入"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1282,https://github.com/router-for-me/CLIProxyAPI/issues/1282,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0451,websocket-and-streaming,"Follow up ""反重力的banana pro额度一直无法恢复"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1281,https://github.com/router-for-me/CLIProxyAPI/issues/1281,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0453,websocket-and-streaming,"Operationalize ""TPM/RPM过载,但是等待半小时后依旧不行"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1278,https://github.com/router-for-me/CLIProxyAPI/issues/1278,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0454,provider-model-registry,"Generalize ""支持codex的 /personality"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1273,https://github.com/router-for-me/CLIProxyAPI/issues/1273,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0455,websocket-and-streaming,"Improve CLI UX around ""Antigravity 可用模型数为 0"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1270,https://github.com/router-for-me/CLIProxyAPI/issues/1270,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0457,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""[Improvement] Persist Management UI assets in a dedicated volume"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1268,https://github.com/router-for-me/CLIProxyAPI/issues/1268,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0458,websocket-and-streaming,"Refactor internals touched by ""[Feature Request] Provide optional standalone UI service in docker-compose"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1267,https://github.com/router-for-me/CLIProxyAPI/issues/1267,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0461,general-polish,"Follow up ""建议增加根据额度阈值跳过轮询凭证功能"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1263,https://github.com/router-for-me/CLIProxyAPI/issues/1263,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0462,general-polish,"Harden ""[Bug] Antigravity Gemini API 报错:enum 仅允许用于 STRING 类型"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1260,https://github.com/router-for-me/CLIProxyAPI/issues/1260,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0463,general-polish,"Operationalize ""好像codebuddy也能有命令行也能用,能加进去吗"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1259,https://github.com/router-for-me/CLIProxyAPI/issues/1259,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0466,websocket-and-streaming,"Extend docs for ""iflow Cookies 登陆好像不能用"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1254,https://github.com/router-for-me/CLIProxyAPI/issues/1254,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0471,thinking-and-reasoning,"Follow up ""6.6.109之前的版本都可以开启iflow的deepseek3.2,qwen3-max-preview思考,6.7.xx就不能了"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1245,https://github.com/router-for-me/CLIProxyAPI/issues/1245,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0472,thinking-and-reasoning,"Harden ""Bug: Anthropic API 400 Error - Missing 'thinking' block before 'tool_use'"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1244,https://github.com/router-for-me/CLIProxyAPI/issues/1244,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0473,responses-and-chat-compat,"Operationalize ""v6.7.24,反重力的gemini-3,调用API有bug"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1243,https://github.com/router-for-me/CLIProxyAPI/issues/1243,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0474,provider-model-registry,"Generalize ""How to reset /models"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1240,https://github.com/router-for-me/CLIProxyAPI/issues/1240,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0477,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""更新到最新版本之后,出现了503的报错"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1224,https://github.com/router-for-me/CLIProxyAPI/issues/1224,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0478,general-polish,"Refactor internals touched by ""能不能增加一个配额保护"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1223,https://github.com/router-for-me/CLIProxyAPI/issues/1223,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0480,websocket-and-streaming,"Standardize naming/metadata affected by ""无法关闭谷歌的某个具体的账号的使用权限"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1219,https://github.com/router-for-me/CLIProxyAPI/issues/1219,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0481,websocket-and-streaming,"Follow up ""docker中的最新版本不是lastest"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1218,https://github.com/router-for-me/CLIProxyAPI/issues/1218,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0487,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""[功能需求] 认证文件增加屏蔽模型跳过轮询"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1197,https://github.com/router-for-me/CLIProxyAPI/issues/1197,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0488,general-polish,"Refactor internals touched by ""可以出个检查更新吗,不然每次都要拉下载然后重启"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1195,https://github.com/router-for-me/CLIProxyAPI/issues/1195,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0489,general-polish,"Prepare safe rollout for ""antigravity可以增加配额保护吗 剩余额度多少的时候不在使用"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1194,https://github.com/router-for-me/CLIProxyAPI/issues/1194,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0491,general-polish,"Follow up ""建议在使用Antigravity 额度时,设计额度阈值自定义功能"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1192,https://github.com/router-for-me/CLIProxyAPI/issues/1192,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0492,provider-model-registry,"Harden ""Antigravity: rev19-uic3-1p (Alias: gemini-2.5-computer-use-preview-10-2025) nolonger useable"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1190,https://github.com/router-for-me/CLIProxyAPI/issues/1190,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0495,provider-model-registry,"Improve CLI UX around ""Model combo support"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1184,https://github.com/router-for-me/CLIProxyAPI/issues/1184,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0498,thinking-and-reasoning,"Refactor internals touched by ""gemini api 使用openai 兼容的url 使用时 tool_call 有问题"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1168,https://github.com/router-for-me/CLIProxyAPI/issues/1168,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0500,general-polish,"Standardize naming/metadata affected by ""新增微软copilot GPT5.2codex模型"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1166,https://github.com/router-for-me/CLIProxyAPI/issues/1166,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0501,responses-and-chat-compat,"Follow up ""Tool Calling Not Working in Cursor When Using Claude via CLIPROXYAPI + Antigravity Proxy"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1165,https://github.com/router-for-me/CLIProxyAPI/issues/1165,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0502,provider-model-registry,"Harden ""[Improvement] Allow multiple model mappings to have the same Alias"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1163,https://github.com/router-for-me/CLIProxyAPI/issues/1163,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0503,websocket-and-streaming,"Operationalize ""Antigravity模型在Cursor无法使用工具"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1162,https://github.com/router-for-me/CLIProxyAPI/issues/1162,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0504,responses-and-chat-compat,"Generalize ""Gemini"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1161,https://github.com/router-for-me/CLIProxyAPI/issues/1161,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0505,cli-ux-dx,"Improve CLI UX around ""Add support proxy per account"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1160,https://github.com/router-for-me/CLIProxyAPI/issues/1160,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0507,general-polish,"Add robust stream/non-stream parity tests for ""希望支持claude api"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1157,https://github.com/router-for-me/CLIProxyAPI/issues/1157,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0509,thinking-and-reasoning,"Prepare safe rollout for ""nvidia今天开始超时了,昨天刚配置还好好的"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1154,https://github.com/router-for-me/CLIProxyAPI/issues/1154,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0511,websocket-and-streaming,"Follow up ""日志怎么不记录了"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1152,https://github.com/router-for-me/CLIProxyAPI/issues/1152,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0512,responses-and-chat-compat,"Harden ""v6.7.16无法反重力的gemini-3-pro-preview"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1150,https://github.com/router-for-me/CLIProxyAPI/issues/1150,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0514,general-polish,"Generalize ""没有单个凭证 启用/禁用 的切换开关吗"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1148,https://github.com/router-for-me/CLIProxyAPI/issues/1148,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0518,provider-model-registry,"Refactor internals touched by ""Feature Request: Add support for Cursor IDE as a backend/provider"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1138,https://github.com/router-for-me/CLIProxyAPI/issues/1138,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0521,provider-model-registry,"Follow up ""model stops by itself does not proceed to the next step"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1134,https://github.com/router-for-me/CLIProxyAPI/issues/1134,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0523,general-polish,"Operationalize ""希望供应商能够加上微软365"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1128,https://github.com/router-for-me/CLIProxyAPI/issues/1128,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0524,cli-ux-dx,"Generalize ""codex的config.toml文件在哪里修改?"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1127,https://github.com/router-for-me/CLIProxyAPI/issues/1127,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0526,websocket-and-streaming,"Extend docs for ""使用Amp CLI的Painter工具画图显示prompt is too long"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1123,https://github.com/router-for-me/CLIProxyAPI/issues/1123,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0528,thinking-and-reasoning,"Refactor internals touched by ""kiro使用orchestrator 模式调用的时候会报错400"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1120,https://github.com/router-for-me/CLIProxyAPI/issues/1120,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0530,websocket-and-streaming,"Standardize naming/metadata affected by ""添加智谱OpenAI兼容提供商获取模型和测试会失败"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1118,https://github.com/router-for-me/CLIProxyAPI/issues/1118,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0534,thinking-and-reasoning,"Generalize ""Error 'Expected thinking or redacted_thinking' after upgrade to v6.7.12"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1109,https://github.com/router-for-me/CLIProxyAPI/issues/1109,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0538,websocket-and-streaming,"Refactor internals touched by ""ℹ ⚠️ Response stopped due to malformed function call. 在 Gemini CLI 中 频繁出现这个提示,对话中断"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1100,https://github.com/router-for-me/CLIProxyAPI/issues/1100,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0539,general-polish,"Prepare safe rollout for ""【功能请求】添加禁用项目按键(或优先级逻辑)"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1098,https://github.com/router-for-me/CLIProxyAPI/issues/1098,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0540,general-polish,"Standardize naming/metadata affected by ""有支持豆包的反代吗"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1097,https://github.com/router-for-me/CLIProxyAPI/issues/1097,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0545,websocket-and-streaming,"Improve CLI UX around ""命令行中返回结果一切正常,但是在cherry studio中找不到模型"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1090,https://github.com/router-for-me/CLIProxyAPI/issues/1090,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0546,provider-model-registry,"Extend docs for ""[Feedback #1044] 尝试通过 Payload 设置 Gemini 3 宽高比失败 (Google API 400 Error)"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1089,https://github.com/router-for-me/CLIProxyAPI/issues/1089,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0547,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""反重力2API opus模型 Error searching files"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1086,https://github.com/router-for-me/CLIProxyAPI/issues/1086,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0550,websocket-and-streaming,"Standardize naming/metadata affected by ""大香蕉生图无图片返回"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1083,https://github.com/router-for-me/CLIProxyAPI/issues/1083,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0556,responses-and-chat-compat,"Extend docs for ""Antigravity: MCP 工具的数字类型 enum 值导致 INVALID_ARGUMENT 错误"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1075,https://github.com/router-for-me/CLIProxyAPI/issues/1075,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0557,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""认证文件管理可否添加一键导出所有凭证的按钮"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1074,https://github.com/router-for-me/CLIProxyAPI/issues/1074,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0565,general-polish,"Improve CLI UX around ""最新版claude 2.1.9调用后,会在后台刷出大量warn;持续输出"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1061,https://github.com/router-for-me/CLIProxyAPI/issues/1061,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0566,websocket-and-streaming,"Extend docs for ""Antigravity 针对Pro账号的 Claude/GPT 模型有周限额了吗?"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1060,https://github.com/router-for-me/CLIProxyAPI/issues/1060,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0568,general-polish,"Refactor internals touched by ""希望可以增加antigravity授权的配额保护功能"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1058,https://github.com/router-for-me/CLIProxyAPI/issues/1058,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0571,cli-ux-dx,"Follow up ""codex-instructions-enabled为true时,在codex-cli中使用是否会重复注入instructions?"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1055,https://github.com/router-for-me/CLIProxyAPI/issues/1055,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0572,websocket-and-streaming,"Harden ""cliproxyapi多个账户切换(因限流/账号问题), 导致客户端直接报错"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1053,https://github.com/router-for-me/CLIProxyAPI/issues/1053,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0579,cli-ux-dx,"Prepare safe rollout for ""image模型能否在cliproxyapi中直接区分2k,4k"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1044,https://github.com/router-for-me/CLIProxyAPI/issues/1044,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0581,websocket-and-streaming,"Follow up ""qwen进行模型映射时提示 更新模型映射失败: channel not found"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1042,https://github.com/router-for-me/CLIProxyAPI/issues/1042,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0582,websocket-and-streaming,"Harden ""升级到最新版本后,认证文件页面提示请升级CPA版本"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1041,https://github.com/router-for-me/CLIProxyAPI/issues/1041,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0583,websocket-and-streaming,"Operationalize ""服务启动后,终端连续不断打印相同内容"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1040,https://github.com/router-for-me/CLIProxyAPI/issues/1040,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0584,websocket-and-streaming,"Generalize ""Issue"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1039,https://github.com/router-for-me/CLIProxyAPI/issues/1039,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0585,websocket-and-streaming,"Improve CLI UX around ""Antigravity error to get quota limit"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1038,https://github.com/router-for-me/CLIProxyAPI/issues/1038,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0588,error-handling-retries,"Refactor internals touched by ""UltraAI Workspace account error: project_id cannot be retrieved"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1034,https://github.com/router-for-me/CLIProxyAPI/issues/1034,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0591,error-handling-retries,"Follow up ""希望能够通过配置文件设定API调用超时时间"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1029,https://github.com/router-for-me/CLIProxyAPI/issues/1029,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0592,provider-model-registry,"Harden ""Calling gpt-codex-5.2 returns 400 error: “Unsupported parameter: safety_identifier”"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1028,https://github.com/router-for-me/CLIProxyAPI/issues/1028,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0593,general-polish,"Operationalize ""【建议】能否加一下模型配额优先级?"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1027,https://github.com/router-for-me/CLIProxyAPI/issues/1027,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0594,websocket-and-streaming,"Generalize ""求问,配额显示并不准确"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1026,https://github.com/router-for-me/CLIProxyAPI/issues/1026,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0596,install-and-ops,"Extend docs for ""[Feature] 提供更新命令"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1023,https://github.com/router-for-me/CLIProxyAPI/issues/1023,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0597,general-polish,"Add robust stream/non-stream parity tests for ""授权文件可以拷贝使用"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1022,https://github.com/router-for-me/CLIProxyAPI/issues/1022,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0599,websocket-and-streaming,"Prepare safe rollout for ""【建议】就算开了日志也无法区别为什么新加的这个账号错误的原因"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1020,https://github.com/router-for-me/CLIProxyAPI/issues/1020,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0600,provider-model-registry,"Standardize naming/metadata affected by ""每天早上都报错 错误: Failed to call gemini-3-pro-preview model: unknown provider for model gemini-3-pro-preview 要重新删除账号重新登录,"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1019,https://github.com/router-for-me/CLIProxyAPI/issues/1019,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0602,responses-and-chat-compat,"Harden ""Bug: CLIproxyAPI returns Prompt is too long (need trim history)"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1014,https://github.com/router-for-me/CLIProxyAPI/issues/1014,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0604,websocket-and-streaming,"Generalize ""使用gemini-3-pro-image-preview 模型,生成不了图片"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1012,https://github.com/router-for-me/CLIProxyAPI/issues/1012,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0606,thinking-and-reasoning,"Extend docs for ""[Bug] Missing mandatory tool_use.id in request payload causing failure on subsequent tool calls"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1009,https://github.com/router-for-me/CLIProxyAPI/issues/1009,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0613,provider-model-registry,"Operationalize ""gemini 3 missing field"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1002,https://github.com/router-for-me/CLIProxyAPI/issues/1002,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0617,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""Gemini CLI 认证api,不支持gemini 3"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#996,https://github.com/router-for-me/CLIProxyAPI/issues/996,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0618,general-polish,"Refactor internals touched by ""配额管理显示不正常。"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#995,https://github.com/router-for-me/CLIProxyAPI/issues/995,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0619,general-polish,"Prepare safe rollout for ""使用oh my opencode的时候subagent调用不积极"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#992,https://github.com/router-for-me/CLIProxyAPI/issues/992,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0620,general-polish,"Standardize naming/metadata affected by ""A tool for AmpCode agent to turn on off free mode to enjoy Oracle, Websearch by free credits without seeing ads to much"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#990,https://github.com/router-for-me/CLIProxyAPI/issues/990,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0622,general-polish,"Harden ""Codex callback URL仅显示:http://localhost:1455/success"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#988,https://github.com/router-for-me/CLIProxyAPI/issues/988,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0623,websocket-and-streaming,"Operationalize ""【建议】在CPA webui中实现禁用某个特定的凭证"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#987,https://github.com/router-for-me/CLIProxyAPI/issues/987,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0630,thinking-and-reasoning,"Standardize naming/metadata affected by ""When using the amp cli with gemini 3 pro, after thinking, nothing happens"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#977,https://github.com/router-for-me/CLIProxyAPI/issues/977,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0632,error-handling-retries,"Harden ""fill-first strategy does not take effect (all accounts remain at 99%)"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#974,https://github.com/router-for-me/CLIProxyAPI/issues/974,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0634,provider-model-registry,"Generalize ""feat: Enhanced Request Logging with Metadata and Management API for Observability"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#972,https://github.com/router-for-me/CLIProxyAPI/issues/972,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0635,provider-model-registry,"Improve CLI UX around ""Antigravity with opus 4,5 keeps giving rate limits error for no reason."" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#970,https://github.com/router-for-me/CLIProxyAPI/issues/970,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0636,websocket-and-streaming,"Extend docs for ""exhausted没被重试or跳过,被传下来了"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#968,https://github.com/router-for-me/CLIProxyAPI/issues/968,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0640,general-polish,"Standardize naming/metadata affected by ""反重力反代在opencode不支持,问话回答一下就断"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#962,https://github.com/router-for-me/CLIProxyAPI/issues/962,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0642,general-polish,"Harden ""建议优化轮询逻辑,同一账号额度用完刷新后作为第二优先级轮询"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#959,https://github.com/router-for-me/CLIProxyAPI/issues/959,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0648,responses-and-chat-compat,"Refactor internals touched by ""[Bug]反代 Antigravity 使用Claude Code 时,特定请求持续无响应导致 504 Gateway Timeout"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#951,https://github.com/router-for-me/CLIProxyAPI/issues/951,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0652,general-polish,"Harden ""内存占用太高,用了1.5g"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#944,https://github.com/router-for-me/CLIProxyAPI/issues/944,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0655,general-polish,"Improve CLI UX around ""现有指令会让 Gemini 产生误解,无法真正忽略前置系统提示"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#940,https://github.com/router-for-me/CLIProxyAPI/issues/940,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0659,general-polish,"Prepare safe rollout for ""能不能支持UA伪装?"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#933,https://github.com/router-for-me/CLIProxyAPI/issues/933,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0660,general-polish,"Standardize naming/metadata affected by ""[features request] 恳请CPA团队能否增加KIRO的反代模式?Could you add a reverse proxy api to KIRO?"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#932,https://github.com/router-for-me/CLIProxyAPI/issues/932,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0664,thinking-and-reasoning,"Generalize ""[Bug] 400 error on Claude Code internal requests when thinking is enabled - assistant message missing thinking block"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#928,https://github.com/router-for-me/CLIProxyAPI/issues/928,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0668,general-polish,"Refactor internals touched by ""希望能自定义系统提示,比如自定义前缀"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#922,https://github.com/router-for-me/CLIProxyAPI/issues/922,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0670,general-polish,"Standardize naming/metadata affected by ""能不能添加功能,禁用某些配置文件"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#919,https://github.com/router-for-me/CLIProxyAPI/issues/919,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0672,general-polish,"Harden ""API密钥→特定配额文件"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#915,https://github.com/router-for-me/CLIProxyAPI/issues/915,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0674,responses-and-chat-compat,"Generalize ""error on claude code"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#913,https://github.com/router-for-me/CLIProxyAPI/issues/913,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0675,general-polish,"Improve CLI UX around ""反重力Claude修好后,大香蕉不行了"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#912,https://github.com/router-for-me/CLIProxyAPI/issues/912,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0676,general-polish,"Extend docs for ""看到有人发了一个更短的提示词"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#911,https://github.com/router-for-me/CLIProxyAPI/issues/911,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0681,thinking-and-reasoning,"Follow up ""更新到最新版本后,自定义 System Prompt 无效"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#905,https://github.com/router-for-me/CLIProxyAPI/issues/905,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0683,general-polish,"Operationalize ""有人遇到相同问题么?Resource has been exhausted (e.g. check quota)"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#903,https://github.com/router-for-me/CLIProxyAPI/issues/903,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0686,general-polish,"Extend docs for ""[feat]自动优化Antigravity的quota刷新时间选项"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#895,https://github.com/router-for-me/CLIProxyAPI/issues/895,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0688,provider-model-registry,"Refactor internals touched by ""支持包含模型配置"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#892,https://github.com/router-for-me/CLIProxyAPI/issues/892,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0692,responses-and-chat-compat,"Harden ""新版本有超时Bug,切换回老版本没问题"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#886,https://github.com/router-for-me/CLIProxyAPI/issues/886,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0695,testing-and-quality,"Improve CLI UX around ""Claude Code Web Search doesn’t work"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#883,https://github.com/router-for-me/CLIProxyAPI/issues/883,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0698,provider-model-registry,"Refactor internals touched by ""antigravity and gemini cli duplicated model names"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#873,https://github.com/router-for-me/CLIProxyAPI/issues/873,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0701,responses-and-chat-compat,"Follow up ""谷歌授权登录成功,但是额度刷新失败"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#864,https://github.com/router-for-me/CLIProxyAPI/issues/864,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0702,websocket-and-streaming,"Harden ""使用统计 每次重启服务就没了,能否重启不丢失,使用手动的方式去清理统计数据"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#863,https://github.com/router-for-me/CLIProxyAPI/issues/863,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0704,general-polish,"Generalize ""请增加对kiro的支持"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#855,https://github.com/router-for-me/CLIProxyAPI/issues/855,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0705,general-polish,"Improve CLI UX around ""Reqest for supporting github copilot"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#854,https://github.com/router-for-me/CLIProxyAPI/issues/854,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0706,provider-model-registry,"Extend docs for ""请添加iflow最新模型iFlow-ROME-30BA3B"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#853,https://github.com/router-for-me/CLIProxyAPI/issues/853,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0708,general-polish,"Refactor internals touched by ""Would the consumption be greater in Claude Code?"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#848,https://github.com/router-for-me/CLIProxyAPI/issues/848,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0711,general-polish,"Follow up ""Feature Request: API for fetching Quota stats (remaining, renew time, etc)"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#844,https://github.com/router-for-me/CLIProxyAPI/issues/844,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0712,cli-ux-dx,"Harden ""使用antigravity转为API在claude code中使用不支持web search"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#842,https://github.com/router-for-me/CLIProxyAPI/issues/842,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0715,provider-model-registry,"Improve CLI UX around ""[Feature Request] Schedule automated requests to AI models"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#838,https://github.com/router-for-me/CLIProxyAPI/issues/838,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0718,general-polish,"Refactor internals touched by ""mac使用brew安装的cpa,请问配置文件在哪?"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#831,https://github.com/router-for-me/CLIProxyAPI/issues/831,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0719,testing-and-quality,"Prepare safe rollout for ""Feature request"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#828,https://github.com/router-for-me/CLIProxyAPI/issues/828,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0720,thinking-and-reasoning,"Standardize naming/metadata affected by ""长时间运行后会出现`internal_server_error`"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#827,https://github.com/router-for-me/CLIProxyAPI/issues/827,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0723,general-polish,"Operationalize ""[Feature] 能否增加/v1/embeddings 端点"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#818,https://github.com/router-for-me/CLIProxyAPI/issues/818,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0727,install-and-ops,"Add robust stream/non-stream parity tests for ""Set up Apprise on TrueNAS for notifications"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#808,https://github.com/router-for-me/CLIProxyAPI/issues/808,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0730,websocket-and-streaming,"Standardize naming/metadata affected by ""win10无法安装没反应,cmd安装提示,failed to read config file"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#801,https://github.com/router-for-me/CLIProxyAPI/issues/801,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0738,general-polish,"Refactor internals touched by ""Brew 版本更新延迟,能否在 github Actions 自动增加更新 brew 版本?"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#789,https://github.com/router-for-me/CLIProxyAPI/issues/789,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0740,websocket-and-streaming,"Standardize naming/metadata affected by ""可否增加一个轮询方式的设置,某一个账户额度用尽时再使用下一个"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#784,https://github.com/router-for-me/CLIProxyAPI/issues/784,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0742,thinking-and-reasoning,"Harden ""Support for parallel requests"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#778,https://github.com/router-for-me/CLIProxyAPI/issues/778,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0744,websocket-and-streaming,"Generalize ""[功能请求] 假流式和非流式防超时"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#775,https://github.com/router-for-me/CLIProxyAPI/issues/775,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0745,general-polish,"Improve CLI UX around ""[功能请求]可否增加 google genai 的兼容"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#771,https://github.com/router-for-me/CLIProxyAPI/issues/771,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0746,general-polish,"Extend docs for ""反重力账号额度同时消耗"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#768,https://github.com/router-for-me/CLIProxyAPI/issues/768,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0747,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""iflow模型排除无效"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#762,https://github.com/router-for-me/CLIProxyAPI/issues/762,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0752,cli-ux-dx,"Harden ""建议增加 kiro CLI"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#748,https://github.com/router-for-me/CLIProxyAPI/issues/748,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0758,websocket-and-streaming,"Refactor internals touched by ""反代Antigravity,CC读图的时候似乎会触发bug?明明现在上下文还有很多,但是提示要compact了"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#741,https://github.com/router-for-me/CLIProxyAPI/issues/741,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0761,thinking-and-reasoning,"Follow up ""Pass through actual Anthropic token counts instead of estimating"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#738,https://github.com/router-for-me/CLIProxyAPI/issues/738,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0762,general-polish,"Harden ""多渠道同一模型映射成一个显示"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#737,https://github.com/router-for-me/CLIProxyAPI/issues/737,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0763,responses-and-chat-compat,"Operationalize ""Feature Request: Complete OpenAI Tool Calling Format Support for Claude Models (Cursor MCP Compatibility)"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#735,https://github.com/router-for-me/CLIProxyAPI/issues/735,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0770,cli-ux-dx,"Standardize naming/metadata affected by ""[Feature] Usage Statistics Persistence to JSON File - PR Proposal"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#726,https://github.com/router-for-me/CLIProxyAPI/issues/726,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0771,thinking-and-reasoning,"Follow up ""反代的Antigravity的claude模型在opencode cli需要增强适配"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#725,https://github.com/router-for-me/CLIProxyAPI/issues/725,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0772,websocket-and-streaming,"Harden ""iflow日志提示:当前找我聊的人太多了,可以晚点再来问我哦。"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#724,https://github.com/router-for-me/CLIProxyAPI/issues/724,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0773,general-polish,"Operationalize ""怎么加入多个反重力账号?"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#723,https://github.com/router-for-me/CLIProxyAPI/issues/723,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0775,responses-and-chat-compat,"Improve CLI UX around ""API Error: 400"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#719,https://github.com/router-for-me/CLIProxyAPI/issues/719,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0777,general-polish,"Add robust stream/non-stream parity tests for ""证书是否可以停用而非删除"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#717,https://github.com/router-for-me/CLIProxyAPI/issues/717,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0778,thinking-and-reasoning,"Refactor internals touched by ""thinking.cache_control error"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#714,https://github.com/router-for-me/CLIProxyAPI/issues/714,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0781,websocket-and-streaming,"Follow up ""报错:failed to download management asset"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#711,https://github.com/router-for-me/CLIProxyAPI/issues/711,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0785,cli-ux-dx,"Improve CLI UX around ""iflow cli更新 GLM4.7 & MiniMax M2.1 模型"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#707,https://github.com/router-for-me/CLIProxyAPI/issues/707,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0787,cli-ux-dx,"Add robust stream/non-stream parity tests for ""iflow-cli上线glm4.7和m2.1"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#701,https://github.com/router-for-me/CLIProxyAPI/issues/701,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0790,thinking-and-reasoning,"Standardize naming/metadata affected by ""6.6.49版本下Antigravity渠道的claude模型使用claude code缓存疑似失效"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#696,https://github.com/router-for-me/CLIProxyAPI/issues/696,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0792,websocket-and-streaming,"Harden ""Add efficient scalar operations API (mul_scalar, add_scalar, etc.)"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#691,https://github.com/router-for-me/CLIProxyAPI/issues/691,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0793,general-polish,"Operationalize ""[功能请求] 能不能给每个号单独配置代理?"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#690,https://github.com/router-for-me/CLIProxyAPI/issues/690,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0794,general-polish,"Generalize ""[Feature request] Add support for checking remaining Antigravity quota"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#687,https://github.com/router-for-me/CLIProxyAPI/issues/687,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0796,provider-model-registry,"Extend docs for ""Update Gemini 3 model names: remove -preview suffix for gemini-3-pro and gemini-3-flash"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#683,https://github.com/router-for-me/CLIProxyAPI/issues/683,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0800,thinking-and-reasoning,"Standardize naming/metadata affected by ""[Bug] Token counting endpoint /v1/messages/count_tokens significantly undercounts tokens"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#679,https://github.com/router-for-me/CLIProxyAPI/issues/679,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0801,general-polish,"Follow up ""[Feature] Automatic Censoring Logs"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#678,https://github.com/router-for-me/CLIProxyAPI/issues/678,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0804,provider-model-registry,"Generalize ""[Feature Request] Add timeout configuration"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#668,https://github.com/router-for-me/CLIProxyAPI/issues/668,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0808,provider-model-registry,"Refactor internals touched by ""[Feature Request] Support reverse proxy for 'mimo' to enable Codex CLI usage"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#656,https://github.com/router-for-me/CLIProxyAPI/issues/656,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0809,responses-and-chat-compat,"Prepare safe rollout for ""[Bug] Gemini API Error: 'defer_loading' field in function declarations results in 400 Invalid JSON payload"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#655,https://github.com/router-for-me/CLIProxyAPI/issues/655,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0810,responses-and-chat-compat,"Standardize naming/metadata affected by ""System message (role: ""system"") completely dropped when converting to Antigravity API format"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#654,https://github.com/router-for-me/CLIProxyAPI/issues/654,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0814,responses-and-chat-compat,"Generalize ""[BUG] calude chrome中使用 antigravity模型 tool call错误"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#642,https://github.com/router-for-me/CLIProxyAPI/issues/642,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0819,thinking-and-reasoning,"Prepare safe rollout for ""Payload thinking overrides break requests with tool_choice (handoff fails)"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#630,https://github.com/router-for-me/CLIProxyAPI/issues/630,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0822,provider-model-registry,"Harden ""[Question] Mapping different keys to different accounts for same provider"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#625,https://github.com/router-for-me/CLIProxyAPI/issues/625,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0824,thinking-and-reasoning,"Generalize ""[Feature Request] Set hard limits for CLIProxyAPI API Keys"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#617,https://github.com/router-for-me/CLIProxyAPI/issues/617,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0827,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""Request support for codebuff access."" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#612,https://github.com/router-for-me/CLIProxyAPI/issues/612,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0829,provider-model-registry,"Prepare safe rollout for ""Can't use Oracle tool in AMP Code"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#606,https://github.com/router-for-me/CLIProxyAPI/issues/606,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0830,testing-and-quality,"Standardize naming/metadata affected by ""Openai 5.2 Codex is launched"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#603,https://github.com/router-for-me/CLIProxyAPI/issues/603,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0834,general-polish,"Generalize """" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#595,https://github.com/router-for-me/CLIProxyAPI/issues/595,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0840,provider-model-registry,"Standardize naming/metadata affected by ""[Feature request] Add an enable switch for OpenAI-compatible providers and add model alias for antigravity"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#588,https://github.com/router-for-me/CLIProxyAPI/issues/588,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0844,responses-and-chat-compat,"Generalize ""Github Copilot Error"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#574,https://github.com/router-for-me/CLIProxyAPI/issues/574,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0845,provider-model-registry,"Improve CLI UX around ""Cursor support"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#573,https://github.com/router-for-me/CLIProxyAPI/issues/573,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0852,websocket-and-streaming,"Harden ""docker运行的容器最近几个版本不会自动下载management.html了"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#557,https://github.com/router-for-me/CLIProxyAPI/issues/557,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0859,provider-model-registry,"Prepare safe rollout for ""Suggestion: Retain statistics after each update."" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#541,https://github.com/router-for-me/CLIProxyAPI/issues/541,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0861,general-polish,"Follow up ""[Feature Request] Add logs rotation"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#535,https://github.com/router-for-me/CLIProxyAPI/issues/535,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0862,responses-and-chat-compat,"Harden ""[Bug] AI Studio 渠道流式响应 JSON 格式异常导致客户端解析失败"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#534,https://github.com/router-for-me/CLIProxyAPI/issues/534,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0869,provider-model-registry,"Prepare safe rollout for ""Claude code results in errors with ""poor internet connection"""" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#510,https://github.com/router-for-me/CLIProxyAPI/issues/510,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0873,provider-model-registry,"Operationalize ""openai兼容错误使用“alias”作为模型id请求"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#503,https://github.com/router-for-me/CLIProxyAPI/issues/503,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0875,responses-and-chat-compat,"Improve CLI UX around ""unexpected `tool_use_id` found in `tool_result` blocks"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#497,https://github.com/router-for-me/CLIProxyAPI/issues/497,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0877,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""antigravity中反代的接口在claude code中无法使用thinking模式"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#495,https://github.com/router-for-me/CLIProxyAPI/issues/495,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0878,general-polish,"Refactor internals touched by ""Add support for gpt-5,2"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#493,https://github.com/router-for-me/CLIProxyAPI/issues/493,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0879,provider-model-registry,"Prepare safe rollout for ""OAI models not working."" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#492,https://github.com/router-for-me/CLIProxyAPI/issues/492,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0880,provider-model-registry,"Standardize naming/metadata affected by ""Did the API change?"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#491,https://github.com/router-for-me/CLIProxyAPI/issues/491,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0881,provider-model-registry,"Follow up ""5.2 missing. no automatic model discovery"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#490,https://github.com/router-for-me/CLIProxyAPI/issues/490,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0882,thinking-and-reasoning,"Harden ""Tool calling fails when using Claude Opus 4.5 Thinking (AntiGravity) model via Zed Agent"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#489,https://github.com/router-for-me/CLIProxyAPI/issues/489,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0883,websocket-and-streaming,"Operationalize ""Issue with enabling logs in Mac settings."" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#484,https://github.com/router-for-me/CLIProxyAPI/issues/484,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0885,provider-model-registry,"Improve CLI UX around ""gpt-5-codex-(low,medium,high) models not listed anymore"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#482,https://github.com/router-for-me/CLIProxyAPI/issues/482,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0888,thinking-and-reasoning,"Refactor internals touched by ""antigravity渠道的claude模型在claude code中无法使用explore工具"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#477,https://github.com/router-for-me/CLIProxyAPI/issues/477,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0891,thinking-and-reasoning,"Follow up ""Antigravity API reports API Error: 400 with Claude Code"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#472,https://github.com/router-for-me/CLIProxyAPI/issues/472,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0894,general-polish,"Generalize ""支持一下https://gemini.google.com/app"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#462,https://github.com/router-for-me/CLIProxyAPI/issues/462,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0905,install-and-ops,"Improve CLI UX around ""[Feature Request] Persistent Storage for Usage Statistics"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#431,https://github.com/router-for-me/CLIProxyAPI/issues/431,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0908,provider-model-registry,"Refactor internals touched by ""Antigravity: Permission denied on resource project [projectID]"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#421,https://github.com/router-for-me/CLIProxyAPI/issues/421,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0911,responses-and-chat-compat,"Follow up ""OpenAI Compatibility with OpenRouter results in invalid JSON response despite 200 OK"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#417,https://github.com/router-for-me/CLIProxyAPI/issues/417,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0915,cli-ux-dx,"Improve CLI UX around ""Which CLIs that support Antigravity?"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#412,https://github.com/router-for-me/CLIProxyAPI/issues/412,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0917,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""iflow使用谷歌登录后,填入cookie无法正常使用"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#408,https://github.com/router-for-me/CLIProxyAPI/issues/408,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0922,websocket-and-streaming,"Harden ""antigravity认证难以成功"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#396,https://github.com/router-for-me/CLIProxyAPI/issues/396,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0923,cli-ux-dx,"Operationalize ""Could I use gemini-3-pro-preview by gmini cli?"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#391,https://github.com/router-for-me/CLIProxyAPI/issues/391,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0924,provider-model-registry,"Generalize ""Ports Reserved By Windows Hyper-V"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#387,https://github.com/router-for-me/CLIProxyAPI/issues/387,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0927,provider-model-registry,"Add robust stream/non-stream parity tests for ""Web Search tool not working in AMP with cliproxyapi"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#370,https://github.com/router-for-me/CLIProxyAPI/issues/370,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0932,provider-model-registry,"Harden ""Web Search tool not functioning in Claude Code"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#364,https://github.com/router-for-me/CLIProxyAPI/issues/364,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0933,thinking-and-reasoning,"Operationalize ""claude code Auto compact not triggered even after reaching autocompact buffer threshold"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#363,https://github.com/router-for-me/CLIProxyAPI/issues/363,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0934,general-polish,"Generalize ""[Feature] 增加gemini business账号支持"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#361,https://github.com/router-for-me/CLIProxyAPI/issues/361,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0940,general-polish,"Standardize naming/metadata affected by ""[Feature Request] Amazonq Support"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#350,https://github.com/router-for-me/CLIProxyAPI/issues/350,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0941,thinking-and-reasoning,"Follow up ""Feature: Add tier-based provider prioritization"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#349,https://github.com/router-for-me/CLIProxyAPI/issues/349,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0944,thinking-and-reasoning,"Generalize ""Anitigravity models are not working in opencode cli, has serveral bugs"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#342,https://github.com/router-for-me/CLIProxyAPI/issues/342,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0945,general-polish,"Improve CLI UX around ""[Bug] Antigravity 渠道使用原生 Gemini 格式:模型列表缺失及 gemini-3-pro-preview 联网搜索不可用"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#341,https://github.com/router-for-me/CLIProxyAPI/issues/341,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0946,responses-and-chat-compat,"Extend docs for ""checkSystemInstructions adds cache_control block causing 'maximum of 4 blocks' error"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#339,https://github.com/router-for-me/CLIProxyAPI/issues/339,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0949,provider-model-registry,"Prepare safe rollout for ""Droid as provider"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#336,https://github.com/router-for-me/CLIProxyAPI/issues/336,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0954,provider-model-registry,"Generalize ""FR: Add Opus 4.5 Support"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#321,https://github.com/router-for-me/CLIProxyAPI/issues/321,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0955,responses-and-chat-compat,"Improve CLI UX around ""`gemini-3-pro-preview` tool usage failures"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#320,https://github.com/router-for-me/CLIProxyAPI/issues/320,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0956,cli-ux-dx,"Extend docs for ""RooCode compatibility"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#319,https://github.com/router-for-me/CLIProxyAPI/issues/319,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0958,docs-quickstarts,"Refactor internals touched by ""Nano Banana"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#316,https://github.com/router-for-me/CLIProxyAPI/issues/316,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0959,general-polish,"Prepare safe rollout for ""Feature: 渠道关闭/开启切换按钮、渠道测试按钮、指定渠道模型调用"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#314,https://github.com/router-for-me/CLIProxyAPI/issues/314,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0964,provider-model-registry,"Generalize ""[Suggestion] Improve Prompt Caching for Gemini CLI / Antigravity - Don't do round-robin for all every request"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#307,https://github.com/router-for-me/CLIProxyAPI/issues/307,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0967,general-polish,"Add robust stream/non-stream parity tests for ""如果能控制aistudio的认证文件启用就好了"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#302,https://github.com/router-for-me/CLIProxyAPI/issues/302,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0968,responses-and-chat-compat,"Refactor internals touched by ""Dynamic model provider not work"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#301,https://github.com/router-for-me/CLIProxyAPI/issues/301,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0970,websocket-and-streaming,"Standardize naming/metadata affected by ""cursor with antigravity"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#298,https://github.com/router-for-me/CLIProxyAPI/issues/298,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0971,general-polish,"Follow up ""认证未走代理"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#297,https://github.com/router-for-me/CLIProxyAPI/issues/297,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0975,websocket-and-streaming,"Improve CLI UX around ""CLIProxyAPI error in huggingface"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#290,https://github.com/router-for-me/CLIProxyAPI/issues/290,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0977,provider-model-registry,"Add robust stream/non-stream parity tests for ""Feature: Add Image Support for Gemini 3"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#283,https://github.com/router-for-me/CLIProxyAPI/issues/283,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0980,thinking-and-reasoning,"Standardize naming/metadata affected by ""[Suggestion] Improve Prompt Caching - Don't do round-robin for all every request"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#277,https://github.com/router-for-me/CLIProxyAPI/issues/277,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0981,provider-model-registry,"Follow up ""Feature Request: Support Google Antigravity provider"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#273,https://github.com/router-for-me/CLIProxyAPI/issues/273,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0982,cli-ux-dx,"Harden ""Add copilot cli proxy"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#272,https://github.com/router-for-me/CLIProxyAPI/issues/272,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0985,error-handling-retries,"Improve CLI UX around ""Account banned after using CLI Proxy API on VPS"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#266,https://github.com/router-for-me/CLIProxyAPI/issues/266,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0990,cli-ux-dx,"Standardize naming/metadata affected by ""麻烦大佬能不能更进模型id,比如gpt已经更新了小版本5.1了"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#261,https://github.com/router-for-me/CLIProxyAPI/issues/261,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0994,general-polish,"Generalize ""认证文件管理 主动触发同步"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#255,https://github.com/router-for-me/CLIProxyAPI/issues/255,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0995,thinking-and-reasoning,"Improve CLI UX around ""Kimi K2 Thinking"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#254,https://github.com/router-for-me/CLIProxyAPI/issues/254,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0996,cli-ux-dx,"Extend docs for ""nano banana 水印的能解决?我使用CLIProxyAPI 6.1"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#253,https://github.com/router-for-me/CLIProxyAPI/issues/253,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0997,install-and-ops,"Add robust stream/non-stream parity tests for ""ai studio 不能用"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#252,https://github.com/router-for-me/CLIProxyAPI/issues/252,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1002,general-polish,"Harden ""gpt-5.1模型添加"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#246,https://github.com/router-for-me/CLIProxyAPI/issues/246,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1004,thinking-and-reasoning,"Generalize ""支持为模型设定默认请求参数"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#242,https://github.com/router-for-me/CLIProxyAPI/issues/242,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1005,general-polish,"Improve CLI UX around ""ClawCloud 如何结合NanoBanana 使用?"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#241,https://github.com/router-for-me/CLIProxyAPI/issues/241,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1006,websocket-and-streaming,"Extend docs for ""gemini cli 无法画图是不是必须要使用低版本了"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#240,https://github.com/router-for-me/CLIProxyAPI/issues/240,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1008,general-polish,"Refactor internals touched by ""Codex API 配置中Base URL需要加v1嘛?"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#238,https://github.com/router-for-me/CLIProxyAPI/issues/238,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1010,general-polish,"Standardize naming/metadata affected by ""AI Studio途径,是否支持imagen图片生成模型?"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#235,https://github.com/router-for-me/CLIProxyAPI/issues/235,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1011,general-polish,"Follow up ""现在对话很容易就结束"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#234,https://github.com/router-for-me/CLIProxyAPI/issues/234,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1016,responses-and-chat-compat,"Extend docs for ""Feature: Prevent infinite loop to allow direct access to Gemini-native features"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#220,https://github.com/router-for-me/CLIProxyAPI/issues/220,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1017,provider-model-registry,"Add robust stream/non-stream parity tests for ""Feature request: Support amazon-q-developer-cli"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#219,https://github.com/router-for-me/CLIProxyAPI/issues/219,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1018,responses-and-chat-compat,"Refactor internals touched by ""Gemini Cli 400 Error"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#218,https://github.com/router-for-me/CLIProxyAPI/issues/218,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1021,websocket-and-streaming,"Follow up ""Codex trying to read from non-existant Bashes in Claude"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#211,https://github.com/router-for-me/CLIProxyAPI/issues/211,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1022,thinking-and-reasoning,"Harden ""Feature Request: Git-backed Configuration and Token Store for sync"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#210,https://github.com/router-for-me/CLIProxyAPI/issues/210,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1023,cli-ux-dx,"Operationalize ""CLIProxyAPI中的Gemini cli的图片生成,是不是无法使用了?"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#208,https://github.com/router-for-me/CLIProxyAPI/issues/208,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1024,responses-and-chat-compat,"Generalize ""Model gemini-2.5-flash-image not work any more"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#203,https://github.com/router-for-me/CLIProxyAPI/issues/203,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1025,general-polish,"Improve CLI UX around ""qwen code和iflow的模型重复了"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#202,https://github.com/router-for-me/CLIProxyAPI/issues/202,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1027,provider-model-registry,"Add robust stream/non-stream parity tests for ""Wrong Claude Model Recognized"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#200,https://github.com/router-for-me/CLIProxyAPI/issues/200,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1028,provider-model-registry,"Refactor internals touched by ""Unable to Select Specific Model"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#197,https://github.com/router-for-me/CLIProxyAPI/issues/197,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1029,thinking-and-reasoning,"Prepare safe rollout for ""claude code with copilot"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#193,https://github.com/router-for-me/CLIProxyAPI/issues/193,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1031,error-handling-retries,"Follow up ""[feature request] enable host or bind ip option / 添加 host 配置选项以允许外部网络访问"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#190,https://github.com/router-for-me/CLIProxyAPI/issues/190,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1032,thinking-and-reasoning,"Harden ""Feature request: Add token cost statistics"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#189,https://github.com/router-for-me/CLIProxyAPI/issues/189,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1036,cli-ux-dx,"Extend docs for ""希望增加渠道分类"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#178,https://github.com/router-for-me/CLIProxyAPI/issues/178,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1038,responses-and-chat-compat,"Refactor internals touched by ""Possible JSON Marshal issue: Some Chars transformed to unicode while transforming Anthropic request to OpenAI compatible request"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#175,https://github.com/router-for-me/CLIProxyAPI/issues/175,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1039,websocket-and-streaming,"Prepare safe rollout for ""question about subagents:"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#174,https://github.com/router-for-me/CLIProxyAPI/issues/174,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1040,responses-and-chat-compat,"Standardize naming/metadata affected by ""MiniMax-M2 API error"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#172,https://github.com/router-for-me/CLIProxyAPI/issues/172,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1042,responses-and-chat-compat,"Harden ""MiniMax-M2 and other Anthropic compatible models"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#170,https://github.com/router-for-me/CLIProxyAPI/issues/170,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1047,provider-model-registry,"Add robust stream/non-stream parity tests for ""Feature Request: Add support for vision-model for Qwen-CLI"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#164,https://github.com/router-for-me/CLIProxyAPI/issues/164,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1048,thinking-and-reasoning,"Refactor internals touched by ""[Suggestion] Intelligent Model Routing"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#162,https://github.com/router-for-me/CLIProxyAPI/issues/162,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1050,thinking-and-reasoning,"Standardize naming/metadata affected by ""GeminiCLI的模型,总是会把历史问题全部回答一遍"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#159,https://github.com/router-for-me/CLIProxyAPI/issues/159,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1055,websocket-and-streaming,"Improve CLI UX around ""OpenRouter Grok 4 Fast Bug"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#152,https://github.com/router-for-me/CLIProxyAPI/issues/152,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1060,general-polish,"Standardize naming/metadata affected by ""关于openai兼容供应商"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#143,https://github.com/router-for-me/CLIProxyAPI/issues/143,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1061,general-polish,"Follow up ""No System Prompt maybe possible?"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#142,https://github.com/router-for-me/CLIProxyAPI/issues/142,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1062,thinking-and-reasoning,"Harden ""Claude Code tokens counter"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#140,https://github.com/router-for-me/CLIProxyAPI/issues/140,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1066,thinking-and-reasoning,"Extend docs for ""Claude Code ``/context`` command"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#133,https://github.com/router-for-me/CLIProxyAPI/issues/133,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1067,provider-model-registry,"Add robust stream/non-stream parity tests for ""Any interest in adding AmpCode support?"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#132,https://github.com/router-for-me/CLIProxyAPI/issues/132,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1069,responses-and-chat-compat,"Prepare safe rollout for ""Geminicli api proxy error"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#129,https://github.com/router-for-me/CLIProxyAPI/issues/129,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1070,thinking-and-reasoning,"Standardize naming/metadata affected by ""Github Copilot Subscription"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#128,https://github.com/router-for-me/CLIProxyAPI/issues/128,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1075,general-polish,"Improve CLI UX around ""recommend using bufio to improve terminal visuals(reduce flickering)"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#120,https://github.com/router-for-me/CLIProxyAPI/issues/120,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1076,cli-ux-dx,"Extend docs for ""视觉以及PDF适配"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#119,https://github.com/router-for-me/CLIProxyAPI/issues/119,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1077,cli-ux-dx,"Add robust stream/non-stream parity tests for ""claude code接入gemini cli模型问题"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#115,https://github.com/router-for-me/CLIProxyAPI/issues/115,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1079,thinking-and-reasoning,"Prepare safe rollout for ""Thinking toggle with GPT-5-Codex model"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#109,https://github.com/router-for-me/CLIProxyAPI/issues/109,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1080,general-polish,"Standardize naming/metadata affected by ""可否增加 请求 api-key = 渠道密钥模式"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#108,https://github.com/router-for-me/CLIProxyAPI/issues/108,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1082,cli-ux-dx,"Harden ""支持Gemini CLI 的全部模型"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#105,https://github.com/router-for-me/CLIProxyAPI/issues/105,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1084,responses-and-chat-compat,"Generalize ""Bug: function calling error in the request on OpenAI completion for gemini-cli"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#102,https://github.com/router-for-me/CLIProxyAPI/issues/102,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1085,general-polish,"Improve CLI UX around ""增加 IFlow 支持模型"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#101,https://github.com/router-for-me/CLIProxyAPI/issues/101,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1086,general-polish,"Extend docs for ""Feature Request: Grok usage"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#100,https://github.com/router-for-me/CLIProxyAPI/issues/100,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1087,websocket-and-streaming,"Add robust stream/non-stream parity tests for ""新版本的claude code2.0.X搭配本项目的使用问题"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#98,https://github.com/router-for-me/CLIProxyAPI/issues/98,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1089,general-polish,"Prepare safe rollout for ""可以支持z.ai 吗"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#96,https://github.com/router-for-me/CLIProxyAPI/issues/96,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1090,provider-model-registry,"Standardize naming/metadata affected by ""Gemini and Qwen doesn't work with Opencode"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#93,https://github.com/router-for-me/CLIProxyAPI/issues/93,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1091,cli-ux-dx,"Follow up ""Agent Client Protocol (ACP)?"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#92,https://github.com/router-for-me/CLIProxyAPI/issues/92,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1092,provider-model-registry,"Harden ""Auto compress - Error: B is not an Object. (evaluating '""object""in B')"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#91,https://github.com/router-for-me/CLIProxyAPI/issues/91,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1094,general-polish,"Generalize ""Gemini API 能否添加设置Base URL 的选项"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#88,https://github.com/router-for-me/CLIProxyAPI/issues/88,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1095,provider-model-registry,"Improve CLI UX around ""Some third-party claude code will return null when used with this project"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#87,https://github.com/router-for-me/CLIProxyAPI/issues/87,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1096,provider-model-registry,"Extend docs for ""Auto compress - Error: 500 status code (no body)"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#86,https://github.com/router-for-me/CLIProxyAPI/issues/86,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1099,thinking-and-reasoning,"Prepare safe rollout for ""Command /context dont work in claude code"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#80,https://github.com/router-for-me/CLIProxyAPI/issues/80,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1100,install-and-ops,"Standardize naming/metadata affected by ""MacOS brew installation support?"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#79,https://github.com/router-for-me/CLIProxyAPI/issues/79,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1106,cli-ux-dx,"Extend docs for ""如果配置了gemini cli,再配置aistudio api key,会怎样?"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#48,https://github.com/router-for-me/CLIProxyAPI/issues/48,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1108,provider-model-registry,"Refactor internals touched by ""#38 Lobechat问题的可能性 暨 Get Models返回JSON规整化的建议"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#40,https://github.com/router-for-me/CLIProxyAPI/issues/40,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1111,general-polish,"Follow up ""登录默认跳转浏览器 没有url"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#35,https://github.com/router-for-me/CLIProxyAPI/issues/35,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1112,general-polish,"Harden ""Qwen3-Max-Preview可以使用了吗"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#34,https://github.com/router-for-me/CLIProxyAPI/issues/34,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1113,install-and-ops,"Operationalize ""使用docker-compose.yml搭建失败"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#32,https://github.com/router-for-me/CLIProxyAPI/issues/32,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1114,error-handling-retries,"Generalize ""Claude Code 报错 API Error: Cannot read properties of undefined (reading 'filter')"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#25,https://github.com/router-for-me/CLIProxyAPI/issues/25,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1115,websocket-and-streaming,"Improve CLI UX around ""QQ group search not found, can we open a TG group?"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#24,https://github.com/router-for-me/CLIProxyAPI/issues/24,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1116,cli-ux-dx,"Extend docs for ""Codex CLI 能中转到Claude Code吗?"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#22,https://github.com/router-for-me/CLIProxyAPI/issues/22,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1118,cli-ux-dx,"Refactor internals touched by ""希望支持iflow"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#20,https://github.com/router-for-me/CLIProxyAPI/issues/20,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1124,provider-model-registry,"Generalize ""500就一直卡死了"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#12,https://github.com/router-for-me/CLIProxyAPI/issues/12,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1125,responses-and-chat-compat,"Improve CLI UX around ""无法使用/v1/messages端口"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#11,https://github.com/router-for-me/CLIProxyAPI/issues/11,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1126,general-polish,"Extend docs for ""可用正常接入new-api这种api站吗?"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#10,https://github.com/router-for-me/CLIProxyAPI/issues/10,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1128,cli-ux-dx,"Refactor internals touched by ""cli有办法像别的gemini一样关闭安全审查吗?"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#7,https://github.com/router-for-me/CLIProxyAPI/issues/7,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1133,responses-and-chat-compat,"Operationalize ""偶尔会弹出无效API key提示,“400 API key not valid. Please pass a valid API key.”"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#2,https://github.com/router-for-me/CLIProxyAPI/issues/2,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1712,general-polish,"Harden ""佬们,隔壁很多账号403啦,这里一切正常吗?"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1570,https://github.com/router-for-me/CLIProxyAPI/discussions/1570,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1713,general-polish,"Operationalize ""最近谷歌经常封号有木有什么好的解决办法?"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1656,https://github.com/router-for-me/CLIProxyAPI/discussions/1656,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1715,general-polish,"Improve CLI UX around ""不同思路的 Antigravity 代理"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1634,https://github.com/router-for-me/CLIProxyAPI/discussions/1634,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1716,install-and-ops,"Extend docs for ""Claude Code policy update"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1640,https://github.com/router-for-me/CLIProxyAPI/discussions/1640,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1720,cli-ux-dx,"Standardize naming/metadata affected by ""[功能请求] 能否将绕过403集成到本体里"" across both repos and docs.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1598,https://github.com/router-for-me/CLIProxyAPI/discussions/1598,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1721,general-polish,"Follow up ""Add support for GitHub Copilot"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1490,https://github.com/router-for-me/CLIProxyAPI/discussions/1490,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1722,provider-model-registry,"Harden ""Why am I unable to use multimodal? Can I send a picture URL?"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1524,https://github.com/router-for-me/CLIProxyAPI/discussions/1524,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1723,testing-and-quality,"Operationalize ""Most accounts banned from Antigravity (Google AI Pro Family) – anyone else?"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1558,https://github.com/router-for-me/CLIProxyAPI/discussions/1558,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1728,general-polish,"Refactor internals touched by ""加个模型到底有几个账号的模型对应吧,现在kimi-k2.5有6个模型,不知道哪个和哪个"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1559,https://github.com/router-for-me/CLIProxyAPI/discussions/1559,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1731,install-and-ops,"Follow up ""How can I update without losing my original data?"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1536,https://github.com/router-for-me/CLIProxyAPI/discussions/1536,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1733,install-and-ops,"Operationalize ""[Feature Request] Persistent Storage for Usage Statistics"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#528,https://github.com/router-for-me/CLIProxyAPI/discussions/528,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1737,general-polish,"Add robust stream/non-stream parity tests for ""openclaw里面配置完成后为什么无法使用"" across supported providers.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1485,https://github.com/router-for-me/CLIProxyAPI/discussions/1485,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1738,general-polish,"Refactor internals touched by ""codex5.3什么时候能获取到啊"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1487,https://github.com/router-for-me/CLIProxyAPI/discussions/1487,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1741,general-polish,"Follow up ""为啥openai的端点可以添加多个密钥,但是a社的端点不能添加"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1458,https://github.com/router-for-me/CLIProxyAPI/discussions/1458,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1742,general-polish,"Harden ""轮询会无差别轮询即便某个账号在很久前已经空配额"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1459,https://github.com/router-for-me/CLIProxyAPI/discussions/1459,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1743,general-polish,"Operationalize ""Feature request: Add support for perplexity"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1470,https://github.com/router-for-me/CLIProxyAPI/discussions/1470,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1744,provider-model-registry,"Generalize ""Perplexity as a provider"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1069,https://github.com/router-for-me/CLIProxyAPI/discussions/1069,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1745,thinking-and-reasoning,"Improve CLI UX around ""更新到最新版本之后,出现了503的报错"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1227,https://github.com/router-for-me/CLIProxyAPI/discussions/1227,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1746,cli-ux-dx,"Extend docs for ""使用统计 每次重启服务就没了,能否重启不丢失,使用手动的方式去清理统计数据"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#881,https://github.com/router-for-me/CLIProxyAPI/discussions/881,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1747,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""[antigravity] 500 Internal error and 403 Verification Required for multiple accounts"" across supported providers.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1488,https://github.com/router-for-me/CLIProxyAPI/discussions/1488,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1749,error-handling-retries,"Prepare safe rollout for ""Should we add a limit protection feature to the API?"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1359,https://github.com/router-for-me/CLIProxyAPI/discussions/1359,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1750,general-polish,"Standardize naming/metadata affected by ""好像codebuddy也能有命令行也能用,能加进去吗"" across both repos and docs.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1262,https://github.com/router-for-me/CLIProxyAPI/discussions/1262,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1752,general-polish,"Harden ""反重力的banana pro额度一直无法恢复"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1286,https://github.com/router-for-me/CLIProxyAPI/discussions/1286,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1753,thinking-and-reasoning,"Operationalize ""Gemini API 密钥 那里填写秘钥后怎么配置每个密钥的代理,怎么配置模型映射?"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1272,https://github.com/router-for-me/CLIProxyAPI/discussions/1272,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1754,general-polish,"Generalize ""该凭证暂无可用模型,这是被封号了的意思吗"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1204,https://github.com/router-for-me/CLIProxyAPI/discussions/1204,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1755,thinking-and-reasoning,"Improve CLI UX around ""gemini api 使用openai 兼容的url 使用时 tool_call 有问题"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1176,https://github.com/router-for-me/CLIProxyAPI/discussions/1176,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1757,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""v6.7.24,反重力的gemini-3,调用API有bug"" across supported providers.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1246,https://github.com/router-for-me/CLIProxyAPI/discussions/1246,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1758,cli-ux-dx,"Refactor internals touched by ""Do Antigravity and Gemini CLI have internet access via proxy?"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1242,https://github.com/router-for-me/CLIProxyAPI/discussions/1242,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1760,general-polish,"Standardize naming/metadata affected by ""能不能增加一个配额保护"" across both repos and docs.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1228,https://github.com/router-for-me/CLIProxyAPI/discussions/1228,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1761,general-polish,"Follow up ""[功能需求] 认证文件增加屏蔽模型跳过轮询"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1200,https://github.com/router-for-me/CLIProxyAPI/discussions/1200,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1762,general-polish,"Harden ""[Feature] 增加gemini business账号支持"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#392,https://github.com/router-for-me/CLIProxyAPI/discussions/392,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1764,cli-ux-dx,"Generalize ""Could I use gemini-3-pro-preview by gmini cli?"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#393,https://github.com/router-for-me/CLIProxyAPI/discussions/393,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1765,general-polish,"Improve CLI UX around ""可以出个检查更新吗,不然每次都要拉下载然后重启"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1201,https://github.com/router-for-me/CLIProxyAPI/discussions/1201,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1770,general-polish,"Standardize naming/metadata affected by ""希望可以添加授权文件分组的功能(不是授权类型分组)"" across both repos and docs.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1141,https://github.com/router-for-me/CLIProxyAPI/discussions/1141,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1772,thinking-and-reasoning,"Harden ""Anyone have any idea on how to add thinking?"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1112,https://github.com/router-for-me/CLIProxyAPI/discussions/1112,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1777,general-polish,"Add robust stream/non-stream parity tests for ""认证文件管理可否添加一键导出所有凭证的按钮"" across supported providers.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1180,https://github.com/router-for-me/CLIProxyAPI/discussions/1180,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1778,provider-model-registry,"Refactor internals touched by ""添加一个对某一个分组使用不同的轮询策略"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1071,https://github.com/router-for-me/CLIProxyAPI/discussions/1071,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1782,general-polish,"Harden ""希望添加一个最低quota功能"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#975,https://github.com/router-for-me/CLIProxyAPI/discussions/975,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1783,thinking-and-reasoning,"Operationalize ""反重力的模型名可以重命名吗"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#783,https://github.com/router-for-me/CLIProxyAPI/discussions/783,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1784,provider-model-registry,"Generalize ""gemini 3 missing field"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1017,https://github.com/router-for-me/CLIProxyAPI/discussions/1017,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1787,general-polish,"Add robust stream/non-stream parity tests for ""Feature: 渠道关闭/开启切换按钮、渠道测试按钮、指定渠道模型调用"" across supported providers.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#525,https://github.com/router-for-me/CLIProxyAPI/discussions/525,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1789,general-polish,"Prepare safe rollout for ""A tool for AmpCode agent to turn on off free mode to enjoy Oracle, Websearch by free credits without seeing ads to much"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1203,https://github.com/router-for-me/CLIProxyAPI/discussions/1203,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1790,general-polish,"Standardize naming/metadata affected by ""现有指令会让 Gemini 产生误解,无法真正忽略前置系统提示"" across both repos and docs.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1206,https://github.com/router-for-me/CLIProxyAPI/discussions/1206,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1792,general-polish,"Harden ""exhausted没被重试or跳过,被传下来了"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#969,https://github.com/router-for-me/CLIProxyAPI/discussions/969,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1793,thinking-and-reasoning,"Operationalize ""希望能够添加一个不带`-thinking`后缀的opus"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#963,https://github.com/router-for-me/CLIProxyAPI/discussions/963,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1795,general-polish,"Improve CLI UX around ""能不能支持UA伪装?"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#980,https://github.com/router-for-me/CLIProxyAPI/discussions/980,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1796,general-polish,"Extend docs for ""希望能自定义系统提示,比如自定义前缀"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#925,https://github.com/router-for-me/CLIProxyAPI/discussions/925,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1799,general-polish,"Prepare safe rollout for ""[feat]自动优化Antigravity的quota刷新时间选项"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#898,https://github.com/router-for-me/CLIProxyAPI/discussions/898,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1800,cli-ux-dx,"Standardize naming/metadata affected by ""增加qodercli"" across both repos and docs.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#899,https://github.com/router-for-me/CLIProxyAPI/discussions/899,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1801,responses-and-chat-compat,"Follow up ""谷歌授权登录成功,但是额度刷新失败"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#870,https://github.com/router-for-me/CLIProxyAPI/discussions/870,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1804,cli-ux-dx,"Generalize ""Special Thanks"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#867,https://github.com/router-for-me/CLIProxyAPI/discussions/867,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1806,general-polish,"Extend docs for ""在cherry-studio中的流失响应似乎未生效"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#826,https://github.com/router-for-me/CLIProxyAPI/discussions/826,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1807,provider-model-registry,"Add robust stream/non-stream parity tests for ""[FQ]增加telegram bot集成和更多管理API命令刷新Providers周期额度"" across supported providers.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#825,https://github.com/router-for-me/CLIProxyAPI/discussions/825,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1810,general-polish,"Standardize naming/metadata affected by ""win10无法安装没反应,cmd安装提示,failed to read config file"" across both repos and docs.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#810,https://github.com/router-for-me/CLIProxyAPI/discussions/810,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1811,cli-ux-dx,"Follow up ""iflow-cli 的模型配置到 claude code 上 用的是Anthropic协议接口 多轮对话缓存的问题"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#809,https://github.com/router-for-me/CLIProxyAPI/discussions/809,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1813,websocket-and-streaming,"Operationalize ""[功能请求] 假流式和非流式防超时"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#851,https://github.com/router-for-me/CLIProxyAPI/discussions/851,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1814,general-polish,"Generalize ""[功能请求] 新增联网gemini 联网模型"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#780,https://github.com/router-for-me/CLIProxyAPI/discussions/780,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1815,thinking-and-reasoning,"Improve CLI UX around ""Support for parallel requests"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#794,https://github.com/router-for-me/CLIProxyAPI/discussions/794,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1818,general-polish,"Refactor internals touched by ""Support Trae"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#671,https://github.com/router-for-me/CLIProxyAPI/discussions/671,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1821,provider-model-registry,"Follow up ""[Question] Mapping different keys to different accounts for same provider"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#644,https://github.com/router-for-me/CLIProxyAPI/discussions/644,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1822,thinking-and-reasoning,"Harden ""[Feature Request] Set hard limits for CLIProxyAPI API Keys"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#645,https://github.com/router-for-me/CLIProxyAPI/discussions/645,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1823,websocket-and-streaming,"Operationalize ""Request support for codebuff access."" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#652,https://github.com/router-for-me/CLIProxyAPI/discussions/652,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1826,install-and-ops,"Extend docs for ""使用统计的数据可以持久化吗"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#584,https://github.com/router-for-me/CLIProxyAPI/discussions/584,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1829,thinking-and-reasoning,"Prepare safe rollout for ""能否增加一个count_tokens接口的兼容性配置"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#560,https://github.com/router-for-me/CLIProxyAPI/discussions/560,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1831,thinking-and-reasoning,"Follow up ""[Suggestion] Intelligent Model Routing"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#520,https://github.com/router-for-me/CLIProxyAPI/discussions/520,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1832,install-and-ops,"Harden ""Welcome to CLIProxyAPI Discussions!"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#198,https://github.com/router-for-me/CLIProxyAPI/discussions/198,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1835,general-polish,"Improve CLI UX around ""Acknowledgments"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#486,https://github.com/router-for-me/CLIProxyAPI/discussions/486,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1837,provider-model-registry,"Add robust stream/non-stream parity tests for ""可用模型列表 建议按照 认证文件类型 来给出"" across supported providers.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#456,https://github.com/router-for-me/CLIProxyAPI/discussions/456,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1838,cli-ux-dx,"Refactor internals touched by ""antigravity认证难以成功"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#398,https://github.com/router-for-me/CLIProxyAPI/discussions/398,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1842,general-polish,"Harden ""iflow使用谷歌登录后,填入cookie无法正常使用"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#409,https://github.com/router-for-me/CLIProxyAPI/discussions/409,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1844,provider-model-registry,"Generalize ""Ports Reserved By Windows Hyper-V"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#395,https://github.com/router-for-me/CLIProxyAPI/discussions/395,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1846,thinking-and-reasoning,"Extend docs for ""claude code Auto compact not triggered even after reaching autocompact buffer threshold"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#581,https://github.com/router-for-me/CLIProxyAPI/discussions/581,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1848,general-polish,"Refactor internals touched by ""Recommended Endpoint (OpenAI vs Anthropic)"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#345,https://github.com/router-for-me/CLIProxyAPI/discussions/345,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1849,provider-model-registry,"Prepare safe rollout for ""Is there any chance to make windsurf a provider of cliproxyapi?"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#331,https://github.com/router-for-me/CLIProxyAPI/discussions/331,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1851,install-and-ops,"Follow up ""docker方式部署后,怎么登陆gemini账号呢?"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#330,https://github.com/router-for-me/CLIProxyAPI/discussions/330,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1854,error-handling-retries,"Generalize ""CLIProxyAPI error in huggingface"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#292,https://github.com/router-for-me/CLIProxyAPI/discussions/292,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1858,general-polish,"Refactor internals touched by ""Persisted Usage Metrics"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#224,https://github.com/router-for-me/CLIProxyAPI/discussions/224,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1859,cli-ux-dx,"Prepare safe rollout for ""CLI Recommendations"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#199,https://github.com/router-for-me/CLIProxyAPI/discussions/199,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1860,error-handling-retries,"Standardize naming/metadata affected by ""Codex trying to read from non-existant Bashes in Claude"" across both repos and docs.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#213,https://github.com/router-for-me/CLIProxyAPI/discussions/213,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1861,thinking-and-reasoning,"Follow up ""Feature request: Add token cost statistics"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#522,https://github.com/router-for-me/CLIProxyAPI/discussions/522,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1868,general-polish,"Refactor internals touched by ""请求添加新功能:支持对Orchids的反代"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#254,https://github.com/router-for-me/CLIProxyAPIPlus/issues/254,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1873,thinking-and-reasoning,"Operationalize ""context length for models registered from github-copilot should always be 128K"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#241,https://github.com/router-for-me/CLIProxyAPIPlus/issues/241,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1877,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Opus 4.6"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#219,https://github.com/router-for-me/CLIProxyAPIPlus/issues/219,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1884,cli-ux-dx,"Generalize ""failed to save config: open /CLIProxyAPI/config.yaml: read-only file system"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#201,https://github.com/router-for-me/CLIProxyAPIPlus/issues/201,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1888,websocket-and-streaming,"Refactor internals touched by ""why no kiro in dashboard"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#183,https://github.com/router-for-me/CLIProxyAPIPlus/issues/183,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1889,general-polish,"Prepare safe rollout for ""OpenAI-MLX-Server and vLLM-MLX Support?"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#179,https://github.com/router-for-me/CLIProxyAPIPlus/issues/179,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1891,thinking-and-reasoning,"Follow up ""Kiro Token 导入失败: Refresh token is required"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#177,https://github.com/router-for-me/CLIProxyAPIPlus/issues/177,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1892,general-polish,"Harden ""Kimi Code support"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#169,https://github.com/router-for-me/CLIProxyAPIPlus/issues/169,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1893,general-polish,"Operationalize ""kiro如何看配额?"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#165,https://github.com/router-for-me/CLIProxyAPIPlus/issues/165,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1894,thinking-and-reasoning,"Generalize ""kiro反代的Write工具json截断问题,返回的文件路径经常是错误的"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#164,https://github.com/router-for-me/CLIProxyAPIPlus/issues/164,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1897,general-polish,"Add robust stream/non-stream parity tests for ""kiro反代出现重复输出的情况"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#160,https://github.com/router-for-me/CLIProxyAPIPlus/issues/160,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1898,thinking-and-reasoning,"Refactor internals touched by ""kiro IDC 刷新 token 失败"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#149,https://github.com/router-for-me/CLIProxyAPIPlus/issues/149,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1899,install-and-ops,"Prepare safe rollout for ""请求docker部署支持arm架构的机器!感谢。"" via flags, migration docs, and backward-compat tests.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#147,https://github.com/router-for-me/CLIProxyAPIPlus/issues/147,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1903,cli-ux-dx,"Operationalize ""Kimi For Coding Support / 请求为 Kimi 添加编程支持"" with observability, runbook updates, and deployment safeguards.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#141,https://github.com/router-for-me/CLIProxyAPIPlus/issues/141,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1906,general-polish,"Extend docs for ""Routing strategy ""fill-first"" is not working as expected"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#133,https://github.com/router-for-me/CLIProxyAPIPlus/issues/133,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1907,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""WARN kiro_executor.go:1189 kiro: received 400 error (attempt 1/3), body: {""message"":""Improperly formed request."",""reason"":null}"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#131,https://github.com/router-for-me/CLIProxyAPIPlus/issues/131,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1908,cli-ux-dx,"Refactor internals touched by ""CLIProxyApiPlus不支持像CLIProxyApi一样使用ClawCloud云部署吗?"" to reduce coupling and improve maintainability.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#129,https://github.com/router-for-me/CLIProxyAPIPlus/issues/129,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1911,websocket-and-streaming,"Follow up ""Gemini3无法生图"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#122,https://github.com/router-for-me/CLIProxyAPIPlus/issues/122,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1916,general-polish,"Extend docs for ""大佬,什么时候搞个多账号管理呀"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#108,https://github.com/router-for-me/CLIProxyAPIPlus/issues/108,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1920,general-polish,"Standardize naming/metadata affected by ""ADD TRAE IDE support"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#97,https://github.com/router-for-me/CLIProxyAPIPlus/issues/97,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1922,provider-model-registry,"Harden ""GitHub Copilot Model Call Failure"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#99,https://github.com/router-for-me/CLIProxyAPIPlus/issues/99,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1930,error-handling-retries,"Standardize naming/metadata affected by ""failed to load config: failed to read config file: read /CLIProxyAPI/config.yaml: is a directory"" across both repos and docs.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#81,https://github.com/router-for-me/CLIProxyAPIPlus/issues/81,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1935,responses-and-chat-compat,"Improve CLI UX around ""Claude Code WebSearch fails with 400 error when using Kiro/Amazon Q backend"" with clearer commands, flags, and immediate validation feedback.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#72,https://github.com/router-for-me/CLIProxyAPIPlus/issues/72,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1936,responses-and-chat-compat,"Extend docs for ""[BUG] Vision requests fail for ZAI (glm) and Copilot models with missing header / invalid parameter errors"" with quickstart snippets and troubleshooting decision trees.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#69,https://github.com/router-for-me/CLIProxyAPIPlus/issues/69,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1937,general-polish,"Add robust stream/non-stream parity tests for ""怎么更新iflow的模型列表。"" across supported providers.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#66,https://github.com/router-for-me/CLIProxyAPIPlus/issues/66,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1941,provider-model-registry,"Follow up ""GitHub Copilot models seem to be hardcoded"" by closing compatibility gaps and locking in regression coverage.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#37,https://github.com/router-for-me/CLIProxyAPIPlus/issues/37,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1942,general-polish,"Harden ""plus版本只能自己构建吗?"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,S,wave-2,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#34,https://github.com/router-for-me/CLIProxyAPIPlus/issues/34,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0084,thinking-and-reasoning,"Generalize ""feat(registry): add GPT-4o model variants for GitHub Copilot"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#255,https://github.com/router-for-me/CLIProxyAPIPlus/pull/255,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0086,provider-model-registry,"Extend docs for ""feat(registry): add Gemini 3.1 Pro to GitHub Copilot provider"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#250,https://github.com/router-for-me/CLIProxyAPIPlus/pull/250,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0088,general-polish,"Refactor internals touched by ""v6.8.21"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#248,https://github.com/router-for-me/CLIProxyAPIPlus/pull/248,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0090,thinking-and-reasoning,"Standardize naming/metadata affected by ""feat: add Claude Sonnet 4.6 model support for Kiro provider"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#244,https://github.com/router-for-me/CLIProxyAPIPlus/pull/244,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0093,provider-model-registry,"Operationalize ""feat(registry): add Sonnet 4.6 to GitHub Copilot provider"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#240,https://github.com/router-for-me/CLIProxyAPIPlus/pull/240,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0094,provider-model-registry,"Generalize ""feat(registry): add GPT-5.3 Codex to GitHub Copilot provider"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#239,https://github.com/router-for-me/CLIProxyAPIPlus/pull/239,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0096,general-polish,"Extend docs for ""v6.8.18"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#237,https://github.com/router-for-me/CLIProxyAPIPlus/pull/237,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0105,general-polish,"Improve CLI UX around ""v6.8.15"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#227,https://github.com/router-for-me/CLIProxyAPIPlus/pull/227,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0107,general-polish,"Add robust stream/non-stream parity tests for ""v6.8.13"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#225,https://github.com/router-for-me/CLIProxyAPIPlus/pull/225,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0110,general-polish,"Standardize naming/metadata affected by ""fix(kiro): 修复之前提交的错误的application/cbor请求处理逻辑"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#220,https://github.com/router-for-me/CLIProxyAPIPlus/pull/220,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0111,responses-and-chat-compat,"Follow up ""fix: prevent merging assistant messages with tool_calls"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#218,https://github.com/router-for-me/CLIProxyAPIPlus/pull/218,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0112,thinking-and-reasoning,"Harden ""增加kiro新模型并根据其他提供商同模型配置Thinking"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#216,https://github.com/router-for-me/CLIProxyAPIPlus/pull/216,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0117,general-polish,"Add robust stream/non-stream parity tests for ""v6.8.9"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#207,https://github.com/router-for-me/CLIProxyAPIPlus/pull/207,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0120,responses-and-chat-compat,"Standardize naming/metadata affected by ""fix(copilot): prevent premium request count inflation for Claude models"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#203,https://github.com/router-for-me/CLIProxyAPIPlus/pull/203,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0122,general-polish,"Harden ""v6.8.4"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#197,https://github.com/router-for-me/CLIProxyAPIPlus/pull/197,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0123,general-polish,"Operationalize ""v6.8.1"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#195,https://github.com/router-for-me/CLIProxyAPIPlus/pull/195,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0126,general-polish,"Extend docs for ""v6.8.0"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#192,https://github.com/router-for-me/CLIProxyAPIPlus/pull/192,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0128,responses-and-chat-compat,"Refactor internals touched by ""fix(kiro): handle empty content in current user message for compaction"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#190,https://github.com/router-for-me/CLIProxyAPIPlus/pull/190,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0129,thinking-and-reasoning,"Prepare safe rollout for ""feat: add Claude Opus 4.6 support for Kiro"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#189,https://github.com/router-for-me/CLIProxyAPIPlus/pull/189,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0132,responses-and-chat-compat,"Harden ""fix(kiro): handle empty content in Claude format assistant messages"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#186,https://github.com/router-for-me/CLIProxyAPIPlus/pull/186,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0134,testing-and-quality,"Generalize ""add kimik2.5 to iflow"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#184,https://github.com/router-for-me/CLIProxyAPIPlus/pull/184,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0140,provider-model-registry,"Standardize naming/metadata affected by ""feat(registry): add kiro channel support for model definitions"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#174,https://github.com/router-for-me/CLIProxyAPIPlus/pull/174,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0143,websocket-and-streaming,"Operationalize ""feat(copilot): Add copilot usage monitoring in endpoint /api-call"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#171,https://github.com/router-for-me/CLIProxyAPIPlus/pull/171,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0147,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""fix(kiro): handle empty content in messages to prevent Bad Request errors"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#162,https://github.com/router-for-me/CLIProxyAPIPlus/pull/162,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0148,general-polish,"Refactor internals touched by ""v6.7.40"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#161,https://github.com/router-for-me/CLIProxyAPIPlus/pull/161,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0154,general-polish,"Generalize ""v6.7.31"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#153,https://github.com/router-for-me/CLIProxyAPIPlus/pull/153,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0160,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix: refresh token for kiro enterprise account"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#143,https://github.com/router-for-me/CLIProxyAPIPlus/pull/143,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0162,error-handling-retries,"Harden ""fix: add Copilot-Vision-Request header for vision content"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#139,https://github.com/router-for-me/CLIProxyAPIPlus/pull/139,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0163,general-polish,"Operationalize ""v6.7.26"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#138,https://github.com/router-for-me/CLIProxyAPIPlus/pull/138,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0165,general-polish,"Improve CLI UX around ""支持多个idc登录凭证保存"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#135,https://github.com/router-for-me/CLIProxyAPIPlus/pull/135,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0166,general-polish,"Extend docs for ""Resolve Issue #131"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#132,https://github.com/router-for-me/CLIProxyAPIPlus/pull/132,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0167,general-polish,"Add robust stream/non-stream parity tests for ""v6.7.22"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#130,https://github.com/router-for-me/CLIProxyAPIPlus/pull/130,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0169,general-polish,"Prepare safe rollout for ""feat(kiro): 添加用于令牌额度查询的api-call兼容"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#126,https://github.com/router-for-me/CLIProxyAPIPlus/pull/126,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0172,general-polish,"Harden ""兼容格式"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#121,https://github.com/router-for-me/CLIProxyAPIPlus/pull/121,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0175,general-polish,"Improve CLI UX around ""v6.7.15"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#117,https://github.com/router-for-me/CLIProxyAPIPlus/pull/117,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0176,general-polish,"Extend docs for ""合并"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#116,https://github.com/router-for-me/CLIProxyAPIPlus/pull/116,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0177,general-polish,"Add robust stream/non-stream parity tests for ""v6.7.9"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#114,https://github.com/router-for-me/CLIProxyAPIPlus/pull/114,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0178,cli-ux-dx,"Refactor internals touched by ""Add Github Copilot support for management interface"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#112,https://github.com/router-for-me/CLIProxyAPIPlus/pull/112,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0179,responses-and-chat-compat,"Prepare safe rollout for ""fix: prevent system prompt re-injection on subsequent turns"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#110,https://github.com/router-for-me/CLIProxyAPIPlus/pull/110,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0180,general-polish,"Standardize naming/metadata affected by ""Feat/usage persistance"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#109,https://github.com/router-for-me/CLIProxyAPIPlus/pull/109,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0181,general-polish,"Follow up ""fix(kiro): correct Amazon Q endpoint URL path"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#107,https://github.com/router-for-me/CLIProxyAPIPlus/pull/107,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0183,general-polish,"Operationalize ""v6.7.0"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#104,https://github.com/router-for-me/CLIProxyAPIPlus/pull/104,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0185,provider-model-registry,"Improve CLI UX around ""fix(kiro): re-add kiro-auto to registry"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#100,https://github.com/router-for-me/CLIProxyAPIPlus/pull/100,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0186,general-polish,"Extend docs for ""v6.6.105"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#98,https://github.com/router-for-me/CLIProxyAPIPlus/pull/98,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0189,general-polish,"Prepare safe rollout for ""v6.6.96"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#92,https://github.com/router-for-me/CLIProxyAPIPlus/pull/92,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0191,general-polish,"Follow up ""v6.6.85"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#88,https://github.com/router-for-me/CLIProxyAPIPlus/pull/88,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0194,general-polish,"Generalize ""v6.6.81"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#80,https://github.com/router-for-me/CLIProxyAPIPlus/pull/80,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0195,general-polish,"Improve CLI UX around ""v6.6.71"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#75,https://github.com/router-for-me/CLIProxyAPIPlus/pull/75,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0197,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""feat: Add MCP tool support for Cursor IDE"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#71,https://github.com/router-for-me/CLIProxyAPIPlus/pull/71,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0198,general-polish,"Refactor internals touched by ""v6.6.60"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#70,https://github.com/router-for-me/CLIProxyAPIPlus/pull/70,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0199,general-polish,"Prepare safe rollout for ""v6.6.56"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#68,https://github.com/router-for-me/CLIProxyAPIPlus/pull/68,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0200,general-polish,"Standardize naming/metadata affected by ""v6.6.54"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#67,https://github.com/router-for-me/CLIProxyAPIPlus/pull/67,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0201,general-polish,"Follow up ""v6.6.52"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#65,https://github.com/router-for-me/CLIProxyAPIPlus/pull/65,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0202,general-polish,"Harden ""v6.6.51"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#64,https://github.com/router-for-me/CLIProxyAPIPlus/pull/64,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0206,install-and-ops,"Extend docs for ""v6.6.50(解决 #59 冲突)"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#60,https://github.com/router-for-me/CLIProxyAPIPlus/pull/60,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0208,general-polish,"Refactor internals touched by ""v6.6.48"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#58,https://github.com/router-for-me/CLIProxyAPIPlus/pull/58,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0210,general-polish,"Standardize naming/metadata affected by ""v6.6.30"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#55,https://github.com/router-for-me/CLIProxyAPIPlus/pull/55,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0218,general-polish,"Refactor internals touched by ""v6.6.24"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#40,https://github.com/router-for-me/CLIProxyAPIPlus/pull/40,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0219,general-polish,"Prepare safe rollout for ""v6.6.23"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#39,https://github.com/router-for-me/CLIProxyAPIPlus/pull/39,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0220,general-polish,"Standardize naming/metadata affected by ""v6.6.22"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#38,https://github.com/router-for-me/CLIProxyAPIPlus/pull/38,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0222,general-polish,"Harden ""v6.6.19"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#35,https://github.com/router-for-me/CLIProxyAPIPlus/pull/35,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0223,general-polish,"Operationalize ""v6.6.18"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#33,https://github.com/router-for-me/CLIProxyAPIPlus/pull/33,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0225,general-polish,"Improve CLI UX around ""v6.6.17"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#31,https://github.com/router-for-me/CLIProxyAPIPlus/pull/31,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0226,general-polish,"Extend docs for ""v6.6.15"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#29,https://github.com/router-for-me/CLIProxyAPIPlus/pull/29,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0234,general-polish,"Generalize ""v6.6.1"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#19,https://github.com/router-for-me/CLIProxyAPIPlus/pull/19,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0236,cli-ux-dx,"Extend docs for ""由AI进行更改修复了Kiro供应商的Claude协议与OpenAI协议。(对比AIClient-2-API项目进行变更)"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#17,https://github.com/router-for-me/CLIProxyAPIPlus/pull/17,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0237,provider-model-registry,"Add robust stream/non-stream parity tests for ""fix(registry): remove unstable kiro-auto model"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#16,https://github.com/router-for-me/CLIProxyAPIPlus/pull/16,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0239,general-polish,"Prepare safe rollout for ""v6.5.59"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#14,https://github.com/router-for-me/CLIProxyAPIPlus/pull/14,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0240,general-polish,"Standardize naming/metadata affected by ""v6.5.57"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#13,https://github.com/router-for-me/CLIProxyAPIPlus/pull/13,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0241,general-polish,"Follow up ""v6.5.56"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#12,https://github.com/router-for-me/CLIProxyAPIPlus/pull/12,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0243,general-polish,"Operationalize ""fix(kiro):修复 base64 图片格式转换问题"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#10,https://github.com/router-for-me/CLIProxyAPIPlus/pull/10,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0244,general-polish,"Generalize ""fix(kiro): 修复 base64 图片格式转换问题"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#9,https://github.com/router-for-me/CLIProxyAPIPlus/pull/9,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0245,cli-ux-dx,"Improve CLI UX around ""feat: 添加Kiro渠道图片支持功能,借鉴justlovemaki/AIClient-2-API实现"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#8,https://github.com/router-for-me/CLIProxyAPIPlus/pull/8,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0248,general-polish,"Refactor internals touched by ""Feature/kiro integration"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#3,https://github.com/router-for-me/CLIProxyAPIPlus/pull/3,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0249,general-polish,"Prepare safe rollout for ""v6.5.32"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#2,https://github.com/router-for-me/CLIProxyAPIPlus/pull/2,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0250,general-polish,"Standardize naming/metadata affected by ""v6.5.31"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#1,https://github.com/router-for-me/CLIProxyAPIPlus/pull/1,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1145,testing-and-quality,"Improve CLI UX around ""fix: correct Gemini API schema parameter naming"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1648,https://github.com/router-for-me/CLIProxyAPI/pull/1648,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1146,error-handling-retries,"Extend docs for ""fix(antigravity): prevent invalid JSON when tool_result has no content"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1645,https://github.com/router-for-me/CLIProxyAPI/pull/1645,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1147,provider-model-registry,"Add robust stream/non-stream parity tests for ""feat: add Gemini 3.1 Pro Preview model definition"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1644,https://github.com/router-for-me/CLIProxyAPI/pull/1644,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1153,thinking-and-reasoning,"Operationalize ""feat(registry): add Claude Sonnet 4.6 model definition"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1629,https://github.com/router-for-me/CLIProxyAPI/pull/1629,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1158,thinking-and-reasoning,"Refactor internals touched by ""fix: skip proxy_ prefix for built-in tools in message history"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1624,https://github.com/router-for-me/CLIProxyAPI/pull/1624,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1163,provider-model-registry,"Operationalize ""feat(stats): persist across restarts with periodic/shutdown flush"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1610,https://github.com/router-for-me/CLIProxyAPI/pull/1610,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1165,provider-model-registry,"Improve CLI UX around ""feat(registry): add Qwen 3.5 Plus model definitions"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1606,https://github.com/router-for-me/CLIProxyAPI/pull/1606,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1166,provider-model-registry,"Extend docs for ""Add Qwen Coder Model with updated parameters"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1605,https://github.com/router-for-me/CLIProxyAPI/pull/1605,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1171,provider-model-registry,"Follow up ""feat(registry): add support for 'kimi' channel in model definitions"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1597,https://github.com/router-for-me/CLIProxyAPI/pull/1597,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1172,responses-and-chat-compat,"Harden ""Pass cache usage from codex to openai chat completions"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1595,https://github.com/router-for-me/CLIProxyAPI/pull/1595,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1176,provider-model-registry,"Extend docs for ""feat(registry): add gpt-5.3-codex-spark model definition"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1574,https://github.com/router-for-me/CLIProxyAPI/pull/1574,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1177,general-polish,"Add robust stream/non-stream parity tests for ""Change GLM CODING PLAN subscription price"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1571,https://github.com/router-for-me/CLIProxyAPI/pull/1571,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1179,provider-model-registry,"Prepare safe rollout for ""Add MiniMax-M2.5 model definition"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1566,https://github.com/router-for-me/CLIProxyAPI/pull/1566,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1182,provider-model-registry,"Harden ""fix(schema): sanitize Gemini-incompatible tool metadata fields"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1542,https://github.com/router-for-me/CLIProxyAPI/pull/1542,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1198,error-handling-retries,"Refactor internals touched by ""Add max-quota routing strategy"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1491,https://github.com/router-for-me/CLIProxyAPI/pull/1491,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1200,general-polish,"Standardize naming/metadata affected by ""pull"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1474,https://github.com/router-for-me/CLIProxyAPI/pull/1474,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1204,general-polish,"Generalize ""Kimi fix"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1464,https://github.com/router-for-me/CLIProxyAPI/pull/1464,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1209,general-polish,"Prepare safe rollout for ""sync"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1448,https://github.com/router-for-me/CLIProxyAPI/pull/1448,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1210,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix(registry): correct Claude Opus 4.6 model metadata"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1446,https://github.com/router-for-me/CLIProxyAPI/pull/1446,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1211,thinking-and-reasoning,"Follow up ""feat(registry): register Claude 4.6 static data"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1440,https://github.com/router-for-me/CLIProxyAPI/pull/1440,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1214,general-polish,"Generalize ""Feature/codex lite"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1434,https://github.com/router-for-me/CLIProxyAPI/pull/1434,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1222,general-polish,"Harden ""ss"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1408,https://github.com/router-for-me/CLIProxyAPI/pull/1408,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1226,general-polish,"Extend docs for ""chore: ignore .sisyphus directory"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1391,https://github.com/router-for-me/CLIProxyAPI/pull/1391,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1229,general-polish,"Prepare safe rollout for ""refactor(codex): remove codex instructions injection support"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1380,https://github.com/router-for-me/CLIProxyAPI/pull/1380,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1230,general-polish,"Standardize naming/metadata affected by ""refactor(api): centralize config change logging"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1379,https://github.com/router-for-me/CLIProxyAPI/pull/1379,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1234,cli-ux-dx,"Generalize ""增加一个CLIProxyAPI 托盘添加到社区项目中"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1369,https://github.com/router-for-me/CLIProxyAPI/pull/1369,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1236,responses-and-chat-compat,"Extend docs for ""fix(antigravity): sanitize request.contents to remove invalid metadata entries"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1326,https://github.com/router-for-me/CLIProxyAPI/pull/1326,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1243,provider-model-registry,"Operationalize ""feat(registry): add GetAllStaticModels helper function"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1312,https://github.com/router-for-me/CLIProxyAPI/pull/1312,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1248,provider-model-registry,"Refactor internals touched by ""Feat(vertex): add prefix field"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1302,https://github.com/router-for-me/CLIProxyAPI/pull/1302,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1251,general-polish,"Follow up ""fix(api): update amp module only on config changes"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1296,https://github.com/router-for-me/CLIProxyAPI/pull/1296,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1252,thinking-and-reasoning,"Harden ""feat(caching): implement Claude prompt caching with multi-turn support"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1295,https://github.com/router-for-me/CLIProxyAPI/pull/1295,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1255,thinking-and-reasoning,"Improve CLI UX around ""feat(thinking): enable thinking toggle for qwen3 and deepseek models"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1276,https://github.com/router-for-me/CLIProxyAPI/pull/1276,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1256,cli-ux-dx,"Extend docs for ""fix: add missing 'items' to array schemas in Codex tool parameters"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1275,https://github.com/router-for-me/CLIProxyAPI/pull/1275,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1257,general-polish,"Add robust stream/non-stream parity tests for ""Pr routing preference priority"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1271,https://github.com/router-for-me/CLIProxyAPI/pull/1271,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1259,error-handling-retries,"Prepare safe rollout for ""fix(gemini): force type to string for enum fields to fix Antigravity Gemini API error"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1261,https://github.com/router-for-me/CLIProxyAPI/pull/1261,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1261,provider-model-registry,"Follow up ""feat(api): add management model definitions endpoint"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1257,https://github.com/router-for-me/CLIProxyAPI/pull/1257,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1271,general-polish,"Follow up ""Sync up"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1231,https://github.com/router-for-me/CLIProxyAPI/pull/1231,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1279,error-handling-retries,"Prepare safe rollout for ""fix(executor): strip non-standard fields for Gemini API requests"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1196,https://github.com/router-for-me/CLIProxyAPI/pull/1196,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1280,responses-and-chat-compat,"Standardize naming/metadata affected by ""feat(api,handlers,executor): add /v1/embeddings endpoint support"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1191,https://github.com/router-for-me/CLIProxyAPI/pull/1191,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1283,provider-model-registry,"Operationalize ""fix(api): enhance ClaudeModels response to align with api.anthropic.com"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1183,https://github.com/router-for-me/CLIProxyAPI/pull/1183,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1286,provider-model-registry,"Extend docs for ""fix: change HTTP status code from 400 to 502 when no provider available"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1174,https://github.com/router-for-me/CLIProxyAPI/pull/1174,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1289,provider-model-registry,"Prepare safe rollout for ""feat(executor): apply payload rules using requested model"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1169,https://github.com/router-for-me/CLIProxyAPI/pull/1169,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1296,provider-model-registry,"Extend docs for ""fix(gemini): preserve displayName and description in models list"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1132,https://github.com/router-for-me/CLIProxyAPI/pull/1132,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1298,thinking-and-reasoning,"Refactor internals touched by ""fix(executor): only strip maxOutputTokens for non-claude models"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1130,https://github.com/router-for-me/CLIProxyAPI/pull/1130,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1299,general-polish,"Prepare safe rollout for ""Add switch"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1129,https://github.com/router-for-me/CLIProxyAPI/pull/1129,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1300,responses-and-chat-compat,"Standardize naming/metadata affected by ""fix(antigravity): clean tool parameters schema for all models"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1126,https://github.com/router-for-me/CLIProxyAPI/pull/1126,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1301,responses-and-chat-compat,"Follow up ""Filter out Top_P when Temp is set on Claude"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1125,https://github.com/router-for-me/CLIProxyAPI/pull/1125,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1304,general-polish,"Generalize ""Fix antigravity malformed_function_call"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1116,https://github.com/router-for-me/CLIProxyAPI/pull/1116,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1306,provider-model-registry,"Extend docs for ""feat(registry): support provider-specific model info lookup"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1108,https://github.com/router-for-me/CLIProxyAPI/pull/1108,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1310,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix(executor): stop rewriting thinkingLevel for gemini"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1101,https://github.com/router-for-me/CLIProxyAPI/pull/1101,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1314,thinking-and-reasoning,"Generalize ""Thinking"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1088,https://github.com/router-for-me/CLIProxyAPI/pull/1088,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1317,error-handling-retries,"Add robust stream/non-stream parity tests for ""fix(antigravity): convert non-string enum values to strings for Gemini API"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1076,https://github.com/router-for-me/CLIProxyAPI/pull/1076,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1321,general-polish,"Follow up ""fix(codex): ensure instructions field exists"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1054,https://github.com/router-for-me/CLIProxyAPI/pull/1054,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1322,general-polish,"Harden ""feat(codex): add config toggle for codex instructions injection"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1049,https://github.com/router-for-me/CLIProxyAPI/pull/1049,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1323,thinking-and-reasoning,"Operationalize ""Refactor thinking"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1033,https://github.com/router-for-me/CLIProxyAPI/pull/1033,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1324,cli-ux-dx,"Generalize ""Claude/investigate cliproxy config o ef sb"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1025,https://github.com/router-for-me/CLIProxyAPI/pull/1025,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1329,general-polish,"Prepare safe rollout for ""feat(codex): add OpenCode instructions based on user agent"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#971,https://github.com/router-for-me/CLIProxyAPI/pull/971,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1332,general-polish,"Harden ""feat: add usage statistics persistence support"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#958,https://github.com/router-for-me/CLIProxyAPI/pull/958,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1333,thinking-and-reasoning,"Operationalize ""feat(codex): add subscription date fields to ID token claims"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#955,https://github.com/router-for-me/CLIProxyAPI/pull/955,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1341,provider-model-registry,"Follow up ""feat: add /v1/images/generations endpoint for OpenAI-compatible image generation"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#924,https://github.com/router-for-me/CLIProxyAPI/pull/924,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1342,provider-model-registry,"Harden ""fix(executor): update gemini model identifier to gemini-3-pro-preview"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#921,https://github.com/router-for-me/CLIProxyAPI/pull/921,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1345,cli-ux-dx,"Improve CLI UX around ""Vscode plugin"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#901,https://github.com/router-for-me/CLIProxyAPI/pull/901,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1347,general-polish,"Add robust stream/non-stream parity tests for ""Create config.yaml"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#896,https://github.com/router-for-me/CLIProxyAPI/pull/896,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1348,cli-ux-dx,"Refactor internals touched by ""feat: implement CLI Proxy API server with backup and restore function…"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#894,https://github.com/router-for-me/CLIProxyAPI/pull/894,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1350,thinking-and-reasoning,"Standardize naming/metadata affected by ""做了较小的修正,使得Gemini完全支持多候选功能"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#879,https://github.com/router-for-me/CLIProxyAPI/pull/879,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1351,error-handling-retries,"Follow up ""feat(usage): persist usage statistics"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#878,https://github.com/router-for-me/CLIProxyAPI/pull/878,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1358,thinking-and-reasoning,"Refactor internals touched by ""fix(gemini): abort default injection on existing thinking keys"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#862,https://github.com/router-for-me/CLIProxyAPI/pull/862,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1365,responses-and-chat-compat,"Improve CLI UX around ""feat(api): add unified Base URL support and path normalization"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#849,https://github.com/router-for-me/CLIProxyAPI/pull/849,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1367,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""fix(antigravity): include tools in countTokens by appending as content"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#841,https://github.com/router-for-me/CLIProxyAPI/pull/841,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1371,install-and-ops,"Follow up ""Statistic persistent with enhanced secure features & quick docker build and push to docker hub actions"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#832,https://github.com/router-for-me/CLIProxyAPI/pull/832,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1372,thinking-and-reasoning,"Harden ""fix(util): disable default thinking for gemini-3 series"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#830,https://github.com/router-for-me/CLIProxyAPI/pull/830,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1374,install-and-ops,"Generalize ""feat(script): add usage statistics preservation across container rebuilds"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#824,https://github.com/router-for-me/CLIProxyAPI/pull/824,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1379,thinking-and-reasoning,"Prepare safe rollout for ""Fix model alias thinking suffix"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#814,https://github.com/router-for-me/CLIProxyAPI/pull/814,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1385,provider-model-registry,"Improve CLI UX around ""feat(watcher): add model mappings change detection"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#800,https://github.com/router-for-me/CLIProxyAPI/pull/800,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1390,provider-model-registry,"Standardize naming/metadata affected by ""feat(gemini): add per-key model alias support for Gemini provider"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#785,https://github.com/router-for-me/CLIProxyAPI/pull/785,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1393,error-handling-retries,"Operationalize ""fix: Implement fallback log directory for file logging on read-only system"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#772,https://github.com/router-for-me/CLIProxyAPI/pull/772,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1401,general-polish,"Follow up ""fix(logging): improve request/response capture"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#761,https://github.com/router-for-me/CLIProxyAPI/pull/761,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1405,thinking-and-reasoning,"Improve CLI UX around ""Fix: disable thinking when tool_choice forces tool use"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#757,https://github.com/router-for-me/CLIProxyAPI/pull/757,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1409,general-polish,"Prepare safe rollout for ""fix(config): preserve original config structure and avoid default value pollution"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#750,https://github.com/router-for-me/CLIProxyAPI/pull/750,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1414,general-polish,"Generalize ""Fixed incorrect function signature call to `NewBaseAPIHandlers`"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#722,https://github.com/router-for-me/CLIProxyAPI/pull/722,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1418,general-polish,"Refactor internals touched by ""Log"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#706,https://github.com/router-for-me/CLIProxyAPI/pull/706,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1427,general-polish,"Add robust stream/non-stream parity tests for ""feat(logging): implement request ID tracking and propagation"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#688,https://github.com/router-for-me/CLIProxyAPI/pull/688,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1436,oauth-and-authentication,"Extend docs for ""feat: add fill-first routing strategy"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#663,https://github.com/router-for-me/CLIProxyAPI/pull/663,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1440,thinking-and-reasoning,"Standardize naming/metadata affected by ""fix: remove invalid fields from Antigravity contents array"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#657,https://github.com/router-for-me/CLIProxyAPI/pull/657,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1442,general-polish,"Harden ""fix(amp): add /settings routes to proxy"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#646,https://github.com/router-for-me/CLIProxyAPI/pull/646,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1447,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Revert ""fix(util): disable default thinking for gemini 3 flash"""" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#628,https://github.com/router-for-me/CLIProxyAPI/pull/628,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1448,thinking-and-reasoning,"Refactor internals touched by ""fix(gemini): add optional skip for gemini3 thinking conversion"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#627,https://github.com/router-for-me/CLIProxyAPI/pull/627,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1451,error-handling-retries,"Follow up ""feat(amp): enable webSearch and readWebPage tools in smart mode"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#622,https://github.com/router-for-me/CLIProxyAPI/pull/622,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1453,thinking-and-reasoning,"Operationalize ""fix(util): disable default thinking for gemini 3 flash"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#619,https://github.com/router-for-me/CLIProxyAPI/pull/619,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1456,provider-model-registry,"Extend docs for ""feature: Support multiple AMP model fallbacks"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#615,https://github.com/router-for-me/CLIProxyAPI/pull/615,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1458,provider-model-registry,"Refactor internals touched by ""Add gpt-5.2-codex model + prompt routing"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#610,https://github.com/router-for-me/CLIProxyAPI/pull/610,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1459,provider-model-registry,"Prepare safe rollout for ""feat(registry): add gpt 5.2 codex model definition"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#609,https://github.com/router-for-me/CLIProxyAPI/pull/609,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1461,thinking-and-reasoning,"Follow up ""feature: Improves Amp client compatibility"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#605,https://github.com/router-for-me/CLIProxyAPI/pull/605,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1468,provider-model-registry,"Refactor internals touched by ""chore: ignore gemini metadata files"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#586,https://github.com/router-for-me/CLIProxyAPI/pull/586,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1469,provider-model-registry,"Prepare safe rollout for ""chore: Updates Gemini Flash alias"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#585,https://github.com/router-for-me/CLIProxyAPI/pull/585,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1471,general-polish,"Follow up ""chore: ignore agent and bmad artifacts"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#580,https://github.com/router-for-me/CLIProxyAPI/pull/580,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1475,thinking-and-reasoning,"Improve CLI UX around ""Revert ""Fix invalid thinking signature when proxying Claude via Antigravity"""" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#571,https://github.com/router-for-me/CLIProxyAPI/pull/571,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1478,thinking-and-reasoning,"Refactor internals touched by ""feat(thinking): unify budget/effort conversion logic and add iFlow thinking support"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#564,https://github.com/router-for-me/CLIProxyAPI/pull/564,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1480,general-polish,"Standardize naming/metadata affected by ""chore: ignore .bmad directory"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#558,https://github.com/router-for-me/CLIProxyAPI/pull/558,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1488,general-polish,"Refactor internals touched by ""Aistudio"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#542,https://github.com/router-for-me/CLIProxyAPI/pull/542,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1491,provider-model-registry,"Follow up ""feat: using Client Model Infos;"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#536,https://github.com/router-for-me/CLIProxyAPI/pull/536,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1506,general-polish,"Extend docs for ""Unify the Gemini executor style"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#488,https://github.com/router-for-me/CLIProxyAPI/pull/488,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1514,error-handling-retries,"Generalize ""fix(config): set default MaxRetryInterval to 30s"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#468,https://github.com/router-for-me/CLIProxyAPI/pull/468,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1515,provider-model-registry,"Improve CLI UX around ""fix(registry): normalize model IDs with underscores to dashes"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#467,https://github.com/router-for-me/CLIProxyAPI/pull/467,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1519,thinking-and-reasoning,"Prepare safe rollout for ""feat(aistudio): normalize thinking budget in request translation"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#461,https://github.com/router-for-me/CLIProxyAPI/pull/461,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1521,thinking-and-reasoning,"Follow up ""feat(antigravity): enforce thinking budget limits for Claude models"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#458,https://github.com/router-for-me/CLIProxyAPI/pull/458,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1522,general-polish,"Harden ""style(logging): remove redundant separator line from response section"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#457,https://github.com/router-for-me/CLIProxyAPI/pull/457,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1525,general-polish,"Improve CLI UX around ""add ampcode management api"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#453,https://github.com/router-for-me/CLIProxyAPI/pull/453,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1526,thinking-and-reasoning,"Extend docs for ""fix(antigravity): auto-enable thinking for Claude models when no config sent"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#452,https://github.com/router-for-me/CLIProxyAPI/pull/452,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1527,provider-model-registry,"Add robust stream/non-stream parity tests for ""refactor(config): rename prioritize-model-mappings to force-model-mappings"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#450,https://github.com/router-for-me/CLIProxyAPI/pull/450,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1529,general-polish,"Prepare safe rollout for ""Iflow"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#448,https://github.com/router-for-me/CLIProxyAPI/pull/448,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1532,thinking-and-reasoning,"Harden ""feat(registry): add explicit thinking support config for antigravity models"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#444,https://github.com/router-for-me/CLIProxyAPI/pull/444,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1533,responses-and-chat-compat,"Operationalize ""fix: filter whitespace-only text in Claude to OpenAI translation"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#441,https://github.com/router-for-me/CLIProxyAPI/pull/441,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1534,general-polish,"Generalize ""feat(logging): add version info to request log output"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#439,https://github.com/router-for-me/CLIProxyAPI/pull/439,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1542,general-polish,"Harden ""fix(amp): suppress ErrAbortHandler panics in reverse proxy handler"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#423,https://github.com/router-for-me/CLIProxyAPI/pull/423,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1543,general-polish,"Operationalize ""Amp"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#422,https://github.com/router-for-me/CLIProxyAPI/pull/422,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1544,general-polish,"Generalize ""Amp"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#418,https://github.com/router-for-me/CLIProxyAPI/pull/418,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1545,general-polish,"Improve CLI UX around ""Amp"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#416,https://github.com/router-for-me/CLIProxyAPI/pull/416,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1546,general-polish,"Extend docs for ""refactor(api): remove legacy generative-language-api-key endpoints and duplicate GetConfigYAML"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#406,https://github.com/router-for-me/CLIProxyAPI/pull/406,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1548,general-polish,"Refactor internals touched by ""Legacy Config Migration and Amp Consolidation"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#404,https://github.com/router-for-me/CLIProxyAPI/pull/404,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1550,general-polish,"Standardize naming/metadata affected by ""fix some bugs"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#399,https://github.com/router-for-me/CLIProxyAPI/pull/399,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1551,provider-model-registry,"Follow up ""refactor(registry): remove qwen3-coder model from iFlow models list"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#394,https://github.com/router-for-me/CLIProxyAPI/pull/394,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1553,provider-model-registry,"Operationalize ""fix: enable hot reload for amp-model-mappings config"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#389,https://github.com/router-for-me/CLIProxyAPI/pull/389,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1562,thinking-and-reasoning,"Harden ""feat(registry): add thinking support to gemini models"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#377,https://github.com/router-for-me/CLIProxyAPI/pull/377,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1567,provider-model-registry,"Add robust stream/non-stream parity tests for ""Add Model Blacklist"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#366,https://github.com/router-for-me/CLIProxyAPI/pull/366,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1575,thinking-and-reasoning,"Improve CLI UX around ""fix: handle tools conversion for gemini-claude-sonnet-4-5-thinking model"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#347,https://github.com/router-for-me/CLIProxyAPI/pull/347,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1576,testing-and-quality,"Extend docs for ""style(amp): tidy whitespace in proxy module and tests"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#343,https://github.com/router-for-me/CLIProxyAPI/pull/343,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1579,cli-ux-dx,"Prepare safe rollout for ""增加多候选支持"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#333,https://github.com/router-for-me/CLIProxyAPI/pull/333,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1582,general-polish,"Harden ""fix: claude & codex compatibility"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#325,https://github.com/router-for-me/CLIProxyAPI/pull/325,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1583,provider-model-registry,"Operationalize ""feat(registry): add support for Claude Opus 4.5 model"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#323,https://github.com/router-for-me/CLIProxyAPI/pull/323,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1584,thinking-and-reasoning,"Generalize ""feat(registry): add Claude Opus 4.5 model definition"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#322,https://github.com/router-for-me/CLIProxyAPI/pull/322,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1585,error-handling-retries,"Improve CLI UX around ""feat(logs): add limit query param to cap returned logs"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#318,https://github.com/router-for-me/CLIProxyAPI/pull/318,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1586,thinking-and-reasoning,"Extend docs for ""fix(aistudio): strip Gemini generation config overrides"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#315,https://github.com/router-for-me/CLIProxyAPI/pull/315,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1590,general-polish,"Standardize naming/metadata affected by ""Antigravity bugfix"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#296,https://github.com/router-for-me/CLIProxyAPI/pull/296,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1597,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""feat(gemini): support gemini-3-pro-preview, thinking budget fix & image support"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#281,https://github.com/router-for-me/CLIProxyAPI/pull/281,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1600,general-polish,"Standardize naming/metadata affected by ""Iflow"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#275,https://github.com/router-for-me/CLIProxyAPI/pull/275,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1601,error-handling-retries,"Follow up ""fix: detect HTML error bodies without text/html content type"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#274,https://github.com/router-for-me/CLIProxyAPI/pull/274,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1607,provider-model-registry,"Add robust stream/non-stream parity tests for ""Add GPT-5.1 and GPT-5.1 Codex model definitions"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#245,https://github.com/router-for-me/CLIProxyAPI/pull/245,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1608,general-polish,"Refactor internals touched by ""feat(openai): inject default params from config"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#243,https://github.com/router-for-me/CLIProxyAPI/pull/243,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1609,provider-model-registry,"Prepare safe rollout for ""feat: add auto model resolution and model creation timestamp tracking"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#237,https://github.com/router-for-me/CLIProxyAPI/pull/237,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1611,general-polish,"Follow up ""add headers support for api"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#227,https://github.com/router-for-me/CLIProxyAPI/pull/227,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1612,provider-model-registry,"Harden ""feat(config): support HTTP headers across providers"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#226,https://github.com/router-for-me/CLIProxyAPI/pull/226,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1617,general-polish,"Add robust stream/non-stream parity tests for ""unfeat"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#215,https://github.com/router-for-me/CLIProxyAPI/pull/215,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1620,responses-and-chat-compat,"Standardize naming/metadata affected by ""feat: Implement context-aware Gemini executor to improve performance"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#207,https://github.com/router-for-me/CLIProxyAPI/pull/207,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1623,general-polish,"Operationalize ""Dev"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#195,https://github.com/router-for-me/CLIProxyAPI/pull/195,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1625,provider-model-registry,"Improve CLI UX around ""Add safety settings for gemini models"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#191,https://github.com/router-for-me/CLIProxyAPI/pull/191,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1629,testing-and-quality,"Prepare safe rollout for ""test"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#184,https://github.com/router-for-me/CLIProxyAPI/pull/184,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1630,general-polish,"Standardize naming/metadata affected by ""t"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#183,https://github.com/router-for-me/CLIProxyAPI/pull/183,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1635,general-polish,"Improve CLI UX around ""fix(gemini): map responseModalities to uppercase IMAGE/TEXT"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#163,https://github.com/router-for-me/CLIProxyAPI/pull/163,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1636,provider-model-registry,"Extend docs for ""Add websocket provider"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#161,https://github.com/router-for-me/CLIProxyAPI/pull/161,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1637,general-polish,"Add robust stream/non-stream parity tests for ""feat(config): standardize YAML string quoting in normalization"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#157,https://github.com/router-for-me/CLIProxyAPI/pull/157,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1640,general-polish,"Standardize naming/metadata affected by ""feat(mgmt): support YAML config retrieval and updates via /config.yaml"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#147,https://github.com/router-for-me/CLIProxyAPI/pull/147,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1641,thinking-and-reasoning,"Follow up ""feat(iflow): add masked token logs; increase refresh lead to 24h"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#146,https://github.com/router-for-me/CLIProxyAPI/pull/146,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1642,general-polish,"Harden ""feat: prefer util.WritablePath() for logs and local storage"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#145,https://github.com/router-for-me/CLIProxyAPI/pull/145,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1643,provider-model-registry,"Operationalize ""fix(registry): always use model ID for Gemini name"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#141,https://github.com/router-for-me/CLIProxyAPI/pull/141,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1644,general-polish,"Generalize ""feat(logging): centralize sensitive header masking"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#139,https://github.com/router-for-me/CLIProxyAPI/pull/139,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1646,websocket-and-streaming,"Extend docs for ""feat(managementasset): add MANAGEMENT_STATIC_PATH override"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#134,https://github.com/router-for-me/CLIProxyAPI/pull/134,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1647,general-polish,"Add robust stream/non-stream parity tests for ""feat(management): add log retrieval and cleanup endpoints"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#130,https://github.com/router-for-me/CLIProxyAPI/pull/130,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1648,install-and-ops,"Refactor internals touched by ""fix(server): snapshot config with YAML to handle in-place mutations"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#127,https://github.com/router-for-me/CLIProxyAPI/pull/127,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1650,general-polish,"Standardize naming/metadata affected by ""add S3-compatible object store"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#125,https://github.com/router-for-me/CLIProxyAPI/pull/125,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1651,general-polish,"Follow up ""feat(config): use block style for YAML maps/lists"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#118,https://github.com/router-for-me/CLIProxyAPI/pull/118,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1652,general-polish,"Harden ""feat(store): add PostgreSQL-backed config store with env selection"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#117,https://github.com/router-for-me/CLIProxyAPI/pull/117,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1655,general-polish,"Improve CLI UX around ""chore: update .gitignore include .env"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#113,https://github.com/router-for-me/CLIProxyAPI/pull/113,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1657,general-polish,"Add robust stream/non-stream parity tests for ""feat(config): Gracefully handle empty or invalid optional config"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#110,https://github.com/router-for-me/CLIProxyAPI/pull/110,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1658,general-polish,"Refactor internals touched by ""Remove Gemini Web"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#107,https://github.com/router-for-me/CLIProxyAPI/pull/107,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1659,general-polish,"Prepare safe rollout for ""Add Cloud Deploy Mode"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#104,https://github.com/router-for-me/CLIProxyAPI/pull/104,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1662,general-polish,"Harden ""Add Gem Mode for Gemini Web"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#94,https://github.com/router-for-me/CLIProxyAPI/pull/94,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1663,general-polish,"Operationalize ""Dethink"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#90,https://github.com/router-for-me/CLIProxyAPI/pull/90,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1664,general-polish,"Generalize ""add Iflow"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#85,https://github.com/router-for-me/CLIProxyAPI/pull/85,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1665,provider-model-registry,"Improve CLI UX around ""fix(cliproxy): Use model name as fallback for ID if alias is empty"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#83,https://github.com/router-for-me/CLIProxyAPI/pull/83,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1667,general-polish,"Add robust stream/non-stream parity tests for ""feat: add multi-account polling for Gemini web"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#78,https://github.com/router-for-me/CLIProxyAPI/pull/78,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1668,provider-model-registry,"Refactor internals touched by ""feat(registry): add support for Claude Sonnet 4.5 model"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#77,https://github.com/router-for-me/CLIProxyAPI/pull/77,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1669,general-polish,"Prepare safe rollout for ""Minor adjustments to the logs"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#72,https://github.com/router-for-me/CLIProxyAPI/pull/72,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1673,cli-ux-dx,"Operationalize ""refactor(logging): Improve client loading and registration logs"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#68,https://github.com/router-for-me/CLIProxyAPI/pull/68,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1678,general-polish,"Refactor internals touched by ""Gemini-web"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#63,https://github.com/router-for-me/CLIProxyAPI/pull/63,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1680,general-polish,"Standardize naming/metadata affected by ""Reduce the size of gemini-web's package files"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#61,https://github.com/router-for-me/CLIProxyAPI/pull/61,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1681,provider-model-registry,"Follow up ""Move gemini-web to provider"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#60,https://github.com/router-for-me/CLIProxyAPI/pull/60,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1685,general-polish,"Improve CLI UX around ""feat(gemini-web): Implement proactive PSIDTS cookie rotation"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#55,https://github.com/router-for-me/CLIProxyAPI/pull/55,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1687,general-polish,"Add robust stream/non-stream parity tests for ""Made some optimizations for Gemini Web"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#53,https://github.com/router-for-me/CLIProxyAPI/pull/53,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1689,provider-model-registry,"Prepare safe rollout for ""feat(gemini-web): Add support for real Nano Banana model"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#51,https://github.com/router-for-me/CLIProxyAPI/pull/51,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1692,general-polish,"Harden ""Merge pull request #46 from router-for-me/cookie_snapshot"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#47,https://github.com/router-for-me/CLIProxyAPI/pull/47,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1694,general-polish,"Generalize ""Add Cookie Snapshot"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#45,https://github.com/router-for-me/CLIProxyAPI/pull/45,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1695,general-polish,"Improve CLI UX around ""Merge gemini-web into dev"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#44,https://github.com/router-for-me/CLIProxyAPI/pull/44,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1698,general-polish,"Refactor internals touched by ""Avoid unnecessary config.yaml reloads via hash check"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#39,https://github.com/router-for-me/CLIProxyAPI/pull/39,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1701,provider-model-registry,"Follow up ""Inject build metadata into binary during release and docker build"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#31,https://github.com/router-for-me/CLIProxyAPI/pull/31,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1703,cli-ux-dx,"Operationalize ""Enhance client counting and logging"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#29,https://github.com/router-for-me/CLIProxyAPI/pull/29,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1706,provider-model-registry,"Extend docs for ""Add Gemini 2.5 Flash-Lite Model"" with quickstart snippets and troubleshooting decision trees.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#26,https://github.com/router-for-me/CLIProxyAPI/pull/26,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1707,cli-ux-dx,"Add robust stream/non-stream parity tests for ""Improve hot reloading and fix api response logging"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#23,https://github.com/router-for-me/CLIProxyAPI/pull/23,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1708,install-and-ops,"Refactor internals touched by ""Set the default Docker timezone to Asia/Shanghai"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#16,https://github.com/router-for-me/CLIProxyAPI/pull/16,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1709,cli-ux-dx,"Prepare safe rollout for ""Mentioned in Awesome Gemini CLI"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#8,https://github.com/router-for-me/CLIProxyAPI/pull/8,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1949,thinking-and-reasoning,"Prepare safe rollout for ""feat(registry): add GPT-4o model variants for GitHub Copilot"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#255,https://github.com/router-for-me/CLIProxyAPIPlus/pull/255,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1951,provider-model-registry,"Follow up ""feat(registry): add Gemini 3.1 Pro to GitHub Copilot provider"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#250,https://github.com/router-for-me/CLIProxyAPIPlus/pull/250,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1952,general-polish,"Harden ""v6.8.22"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#249,https://github.com/router-for-me/CLIProxyAPIPlus/pull/249,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1953,general-polish,"Operationalize ""v6.8.21"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#248,https://github.com/router-for-me/CLIProxyAPIPlus/pull/248,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1958,provider-model-registry,"Refactor internals touched by ""feat(registry): add Sonnet 4.6 to GitHub Copilot provider"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#240,https://github.com/router-for-me/CLIProxyAPIPlus/pull/240,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1959,provider-model-registry,"Prepare safe rollout for ""feat(registry): add GPT-5.3 Codex to GitHub Copilot provider"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#239,https://github.com/router-for-me/CLIProxyAPIPlus/pull/239,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1960,provider-model-registry,"Standardize naming/metadata affected by ""Fix Copilot 0x model incorrectly consuming premium requests"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#238,https://github.com/router-for-me/CLIProxyAPIPlus/pull/238,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1961,general-polish,"Follow up ""v6.8.18"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#237,https://github.com/router-for-me/CLIProxyAPIPlus/pull/237,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1970,general-polish,"Standardize naming/metadata affected by ""v6.8.15"" across both repos and docs.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#227,https://github.com/router-for-me/CLIProxyAPIPlus/pull/227,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1975,general-polish,"Improve CLI UX around ""fix(kiro): 修复之前提交的错误的application/cbor请求处理逻辑"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#220,https://github.com/router-for-me/CLIProxyAPIPlus/pull/220,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1977,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""增加kiro新模型并根据其他提供商同模型配置Thinking"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#216,https://github.com/router-for-me/CLIProxyAPIPlus/pull/216,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1982,general-polish,"Harden ""v6.8.9"" with stricter validation, safer defaults, and explicit fallback semantics.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#207,https://github.com/router-for-me/CLIProxyAPIPlus/pull/207,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1984,general-polish,"Generalize ""v6.8.7"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#204,https://github.com/router-for-me/CLIProxyAPIPlus/pull/204,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1985,responses-and-chat-compat,"Improve CLI UX around ""fix(copilot): prevent premium request count inflation for Claude models"" with clearer commands, flags, and immediate validation feedback.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#203,https://github.com/router-for-me/CLIProxyAPIPlus/pull/203,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1987,general-polish,"Add robust stream/non-stream parity tests for ""v6.8.4"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#197,https://github.com/router-for-me/CLIProxyAPIPlus/pull/197,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1988,general-polish,"Refactor internals touched by ""v6.8.1"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#195,https://github.com/router-for-me/CLIProxyAPIPlus/pull/195,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1991,general-polish,"Follow up ""v6.8.0"" by closing compatibility gaps and locking in regression coverage.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#192,https://github.com/router-for-me/CLIProxyAPIPlus/pull/192,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1993,responses-and-chat-compat,"Operationalize ""fix(kiro): handle empty content in current user message for compaction"" with observability, runbook updates, and deployment safeguards.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#190,https://github.com/router-for-me/CLIProxyAPIPlus/pull/190,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1994,thinking-and-reasoning,"Generalize ""feat: add Claude Opus 4.6 support for Kiro"" into provider-agnostic translation/utilities to reduce duplicate logic.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#189,https://github.com/router-for-me/CLIProxyAPIPlus/pull/189,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1997,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""fix(kiro): handle empty content in Claude format assistant messages"" across supported providers.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#186,https://github.com/router-for-me/CLIProxyAPIPlus/pull/186,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1998,general-polish,"Refactor internals touched by ""v6.7.48"" to reduce coupling and improve maintainability.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#185,https://github.com/router-for-me/CLIProxyAPIPlus/pull/185,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1999,testing-and-quality,"Prepare safe rollout for ""add kimik2.5 to iflow"" via flags, migration docs, and backward-compat tests.",P2,M,wave-2,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#184,https://github.com/router-for-me/CLIProxyAPIPlus/pull/184,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0013,responses-and-chat-compat,"Operationalize ""Bug: MergeAdjacentMessages drops tool_calls from assistant messages"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#217,https://github.com/router-for-me/CLIProxyAPIPlus/issues/217,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0061,provider-model-registry,"Follow up ""UI 上没有 Kiro 配置的入口,或者说想添加 Kiro 支持,具体该怎么做"" by closing compatibility gaps and locking in regression coverage.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#87,https://github.com/router-for-me/CLIProxyAPIPlus/issues/87,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0256,docs-quickstarts,"Extend docs for ""docker镜像及docker相关其它优化建议"" with quickstart snippets and troubleshooting decision trees.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1669,https://github.com/router-for-me/CLIProxyAPI/issues/1669,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0273,provider-model-registry,"Operationalize ""Google官方好像已经有检测并稳定封禁CPA反代Antigravity的方案了?"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1631,https://github.com/router-for-me/CLIProxyAPI/issues/1631,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0275,provider-model-registry,"Improve CLI UX around ""codex 中 plus/team错误支持gpt-5.3-codex-spark 但实际上不支持"" with clearer commands, flags, and immediate validation feedback.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1623,https://github.com/router-for-me/CLIProxyAPI/issues/1623,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0280,responses-and-chat-compat,"Standardize naming/metadata affected by ""Any Plans to support Jetbrains IDE?"" across both repos and docs.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1615,https://github.com/router-for-me/CLIProxyAPI/issues/1615,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0389,error-handling-retries,"Prepare safe rollout for ""Add LangChain/LangGraph Integration for Memory System"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1419,https://github.com/router-for-me/CLIProxyAPI/issues/1419,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0393,oauth-and-authentication,"Operationalize ""Add Google Drive Connector for Memory Ingestion"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1415,https://github.com/router-for-me/CLIProxyAPI/issues/1415,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0420,responses-and-chat-compat,"Standardize naming/metadata affected by ""[Bug] Gemini 400 Error: ""defer_loading"" field in ToolSearch is not supported by Gemini API"" across both repos and docs.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1375,https://github.com/router-for-me/CLIProxyAPI/issues/1375,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0429,websocket-and-streaming,"Prepare safe rollout for ""nvidia openai接口连接失败"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1324,https://github.com/router-for-me/CLIProxyAPI/issues/1324,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0448,error-handling-retries,"Refactor internals touched by ""cpa长时间运行会oom"" to reduce coupling and improve maintainability.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1287,https://github.com/router-for-me/CLIProxyAPI/issues/1287,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0465,thinking-and-reasoning,"Improve CLI UX around ""[Bug] 反重力banana pro 4k 图片生成输出为空,仅思考过程可见"" with clearer commands, flags, and immediate validation feedback.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1255,https://github.com/router-for-me/CLIProxyAPI/issues/1255,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0470,provider-model-registry,"Standardize naming/metadata affected by ""[BUG] Why does it repeat twice? 为什么他重复了两次?"" across both repos and docs.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1247,https://github.com/router-for-me/CLIProxyAPI/issues/1247,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0499,install-and-ops,"Prepare safe rollout for ""linux一键安装的如何更新"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1167,https://github.com/router-for-me/CLIProxyAPI/issues/1167,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0515,error-handling-retries,"Improve CLI UX around ""[Bug] Internal restart loop causes continuous ""address already in use"" errors in logs"" with clearer commands, flags, and immediate validation feedback.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1146,https://github.com/router-for-me/CLIProxyAPI/issues/1146,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0519,thinking-and-reasoning,"Prepare safe rollout for ""Claude to OpenAI Translation Generates Empty System Message"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1136,https://github.com/router-for-me/CLIProxyAPI/issues/1136,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0525,thinking-and-reasoning,"Improve CLI UX around ""[Bug] Antigravity provider intermittently strips `thinking` blocks in multi-turn conversations with extended thinking enabled"" with clearer commands, flags, and immediate validation feedback.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1124,https://github.com/router-for-me/CLIProxyAPI/issues/1124,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0535,provider-model-registry,"Improve CLI UX around ""[Feature Request] whitelist models for specific API KEY"" with clearer commands, flags, and immediate validation feedback.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1107,https://github.com/router-for-me/CLIProxyAPI/issues/1107,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0542,responses-and-chat-compat,"Harden ""Anthropic web_search fails in v6.7.x - invalid tool name web_search_20250305"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1094,https://github.com/router-for-me/CLIProxyAPI/issues/1094,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0603,provider-model-registry,"Operationalize ""Management Usage report resets at restart"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#1013,https://github.com/router-for-me/CLIProxyAPI/issues/1013,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0639,provider-model-registry,"Prepare safe rollout for ""版本:6.6.98 症状:登录成功后白屏,React Error #300 复现:登录后立即崩溃白屏"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#964,https://github.com/router-for-me/CLIProxyAPI/issues/964,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0643,responses-and-chat-compat,"Operationalize ""macOS的webui无法登录"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#957,https://github.com/router-for-me/CLIProxyAPI/issues/957,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0649,docs-quickstarts,"Prepare safe rollout for ""README has been replaced by the one from CLIProxyAPIPlus"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#950,https://github.com/router-for-me/CLIProxyAPI/issues/950,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0673,docs-quickstarts,"Operationalize ""增加支持Gemini API v1版本"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#914,https://github.com/router-for-me/CLIProxyAPI/issues/914,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0679,responses-and-chat-compat,"Prepare safe rollout for ""[BUG] 403 You are currently configured to use a Google Cloud Project but lack a Gemini Code Assist license"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#907,https://github.com/router-for-me/CLIProxyAPI/issues/907,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0699,docs-quickstarts,"Prepare safe rollout for ""supports stakpak.dev"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#872,https://github.com/router-for-me/CLIProxyAPI/issues/872,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0700,provider-model-registry,"Standardize naming/metadata affected by ""gemini 模型 tool_calls 问题"" across both repos and docs.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#866,https://github.com/router-for-me/CLIProxyAPI/issues/866,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0716,docs-quickstarts,"Extend docs for """"Feature Request: Android Binary Support (Termux Build Guide)"""" with quickstart snippets and troubleshooting decision trees.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#836,https://github.com/router-for-me/CLIProxyAPI/issues/836,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0769,thinking-and-reasoning,"Prepare safe rollout for ""[BUG] Antigravity Opus + Codex cannot read images"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#729,https://github.com/router-for-me/CLIProxyAPI/issues/729,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0780,thinking-and-reasoning,"Standardize naming/metadata affected by ""/context show system tools 1 tokens, mcp tools 4 tokens"" across both repos and docs.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#712,https://github.com/router-for-me/CLIProxyAPI/issues/712,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0784,provider-model-registry,"Generalize ""Behavior is not consistent with codex"" into provider-agnostic translation/utilities to reduce duplicate logic.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#708,https://github.com/router-for-me/CLIProxyAPI/issues/708,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0786,thinking-and-reasoning,"Extend docs for ""Antigravity provider returns 400 error when extended thinking is enabled after tool calls"" with quickstart snippets and troubleshooting decision trees.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#702,https://github.com/router-for-me/CLIProxyAPI/issues/702,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0789,docs-quickstarts,"Prepare safe rollout for ""是否可以提供kiro的支持啊"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#698,https://github.com/router-for-me/CLIProxyAPI/issues/698,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0797,responses-and-chat-compat,"Add robust stream/non-stream parity tests for ""Frequent Tool-Call Failures with Gemini-2.5-pro in OpenAI-Compatible Mode"" across supported providers.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#682,https://github.com/router-for-me/CLIProxyAPI/issues/682,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0811,responses-and-chat-compat,"Follow up ""Antigravity Provider Broken"" by closing compatibility gaps and locking in regression coverage.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#650,https://github.com/router-for-me/CLIProxyAPI/issues/650,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0813,provider-model-registry,"Operationalize ""Request Wrap Cursor to use models as proxy"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#648,https://github.com/router-for-me/CLIProxyAPI/issues/648,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0820,provider-model-registry,"Standardize naming/metadata affected by ""我无法使用gpt5.2max而其他正常"" across both repos and docs.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#629,https://github.com/router-for-me/CLIProxyAPI/issues/629,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0831,thinking-and-reasoning,"Follow up ""Failing to do tool use from within Cursor"" by closing compatibility gaps and locking in regression coverage.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#601,https://github.com/router-for-me/CLIProxyAPI/issues/601,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0835,provider-model-registry,"Improve CLI UX around ""不能通过回调链接认证吗"" with clearer commands, flags, and immediate validation feedback.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#594,https://github.com/router-for-me/CLIProxyAPI/issues/594,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0848,responses-and-chat-compat,"Refactor internals touched by ""Model ignores tool response and keeps repeating tool calls (Gemini 3 Pro / 2.5 Pro)"" to reduce coupling and improve maintainability.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#565,https://github.com/router-for-me/CLIProxyAPI/issues/565,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-0857,provider-model-registry,"Add robust stream/non-stream parity tests for ""Add General Request Queue with Windowed Concurrency for Reliable Pseudo-Concurrent Execution"" across supported providers.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#546,https://github.com/router-for-me/CLIProxyAPI/issues/546,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0872,provider-model-registry,"Harden ""[Bug] Load balancing is uneven: Requests are not distributed equally among available accounts"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#506,https://github.com/router-for-me/CLIProxyAPI/issues/506,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0887,thinking-and-reasoning,"Add robust stream/non-stream parity tests for ""Files and images not working with Antigravity"" across supported providers.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#478,https://github.com/router-for-me/CLIProxyAPI/issues/478,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-0889,thinking-and-reasoning,"Prepare safe rollout for ""Error with Antigravity"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#476,https://github.com/router-for-me/CLIProxyAPI/issues/476,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-0914,thinking-and-reasoning,"Generalize ""invalid_request_error"",""message"":""`max_tokens` must be greater than `thinking.budget_tokens`."" into provider-agnostic translation/utilities to reduce duplicate logic.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#413,https://github.com/router-for-me/CLIProxyAPI/issues/413,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-0925,provider-model-registry,"Improve CLI UX around ""Image gen not supported/enabled for gemini-3-pro-image-preview?"" with clearer commands, flags, and immediate validation feedback.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#374,https://github.com/router-for-me/CLIProxyAPI/issues/374,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-0926,docs-quickstarts,"Extend docs for ""Is it possible to support gemini native api for file upload?"" with quickstart snippets and troubleshooting decision trees.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#373,https://github.com/router-for-me/CLIProxyAPI/issues/373,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0953,thinking-and-reasoning,"Operationalize ""FR: Add support for beta headers for Claude models"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#324,https://github.com/router-for-me/CLIProxyAPI/issues/324,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-0960,responses-and-chat-compat,"Standardize naming/metadata affected by ""Previous request seem to be concatenated into new ones with Antigravity"" across both repos and docs.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#313,https://github.com/router-for-me/CLIProxyAPI/issues/313,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-0961,thinking-and-reasoning,"Follow up ""Question: Is the Antigravity provider available and compatible with the sonnet 4.5 Thinking LLM model?"" by closing compatibility gaps and locking in regression coverage.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#311,https://github.com/router-for-me/CLIProxyAPI/issues/311,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-0962,websocket-and-streaming,"Harden ""cursor with gemini-claude-sonnet-4-5"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#310,https://github.com/router-for-me/CLIProxyAPI/issues/310,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-0992,provider-model-registry,"Harden ""Feat Request: Support gpt-5-pro"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#259,https://github.com/router-for-me/CLIProxyAPI/issues/259,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1000,provider-model-registry,"Standardize naming/metadata affected by ""应该给GPT-5.1添加-none后缀适配以保持一致性"" across both repos and docs.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#248,https://github.com/router-for-me/CLIProxyAPI/issues/248,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1046,install-and-ops,"Extend docs for ""Created an install script for linux"" with quickstart snippets and troubleshooting decision trees.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#166,https://github.com/router-for-me/CLIProxyAPI/issues/166,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1049,error-handling-retries,"Prepare safe rollout for ""Clarification Needed: Is 'timeout' a Supported Config Parameter?"" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#160,https://github.com/router-for-me/CLIProxyAPI/issues/160,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1051,thinking-and-reasoning,"Follow up ""Gemini Cli With github copilot"" by closing compatibility gaps and locking in regression coverage.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#158,https://github.com/router-for-me/CLIProxyAPI/issues/158,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1052,thinking-and-reasoning,"Harden ""Enhancement: _FILE env vars for docker compose"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#156,https://github.com/router-for-me/CLIProxyAPI/issues/156,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1103,websocket-and-streaming,"Operationalize ""添加 Factor CLI 2api 选项"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPI,issue#74,https://github.com/router-for-me/CLIProxyAPI/issues/74,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1759,docs-quickstarts,"Prepare safe rollout for """"Feature Request: Android Binary Support (Termux Build Guide)"""" via flags, migration docs, and backward-compat tests.",P3,S,wave-3,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1209,https://github.com/router-for-me/CLIProxyAPI/discussions/1209,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1766,install-and-ops,"Extend docs for ""linux一键安装的如何更新"" with quickstart snippets and troubleshooting decision trees.",P3,S,wave-3,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1177,https://github.com/router-for-me/CLIProxyAPI/discussions/1177,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1773,provider-model-registry,"Operationalize ""[Feature Request] whitelist models for specific API KEY"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1205,https://github.com/router-for-me/CLIProxyAPI/discussions/1205,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1780,cli-ux-dx,"Standardize naming/metadata affected by ""旧的认证凭证升级后无法使用"" across both repos and docs.",P3,S,wave-3,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#1011,https://github.com/router-for-me/CLIProxyAPI/discussions/1011,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1803,docs-quickstarts,"Operationalize ""supports stakpak.dev"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#880,https://github.com/router-for-me/CLIProxyAPI/discussions/880,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1833,thinking-and-reasoning,"Operationalize ""[Feature Request] Global Alias"" with observability, runbook updates, and deployment safeguards.",P3,S,wave-3,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#632,https://github.com/router-for-me/CLIProxyAPI/discussions/632,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1834,provider-model-registry,"Generalize ""Image gen not supported/enabled for gemini-3-pro-image-preview?"" into provider-agnostic translation/utilities to reduce duplicate logic.",P3,S,wave-3,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#378,https://github.com/router-for-me/CLIProxyAPI/discussions/378,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1845,docs-quickstarts,"Improve CLI UX around ""Is it possible to support gemini native api for file upload?"" with clearer commands, flags, and immediate validation feedback.",P3,S,wave-3,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#631,https://github.com/router-for-me/CLIProxyAPI/discussions/631,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1850,provider-model-registry,"Standardize naming/metadata affected by ""ask model"" across both repos and docs.",P3,S,wave-3,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#309,https://github.com/router-for-me/CLIProxyAPI/discussions/309,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1852,provider-model-registry,"Harden ""Multi-Model Routing"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,S,wave-3,proposed,yes,discussion,router-for-me/CLIProxyAPI,discussion#312,https://github.com/router-for-me/CLIProxyAPI/discussions/312,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1867,provider-model-registry,"Add robust stream/non-stream parity tests for ""[Feature Request] Add GPT-4o Model Support to GitHub Copilot"" across supported providers.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#257,https://github.com/router-for-me/CLIProxyAPIPlus/issues/257,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1878,responses-and-chat-compat,"Refactor internals touched by ""Bug: MergeAdjacentMessages drops tool_calls from assistant messages"" to reduce coupling and improve maintainability.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#217,https://github.com/router-for-me/CLIProxyAPIPlus/issues/217,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1926,provider-model-registry,"Extend docs for ""UI 上没有 Kiro 配置的入口,或者说想添加 Kiro 支持,具体该怎么做"" with quickstart snippets and troubleshooting decision trees.",P3,S,wave-3,proposed,yes,issue,router-for-me/CLIProxyAPIPlus,issue#87,https://github.com/router-for-me/CLIProxyAPIPlus/issues/87,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-0082,docs-quickstarts,"Harden ""Normalize Codex schema handling"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#259,https://github.com/router-for-me/CLIProxyAPIPlus/pull/259,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1151,provider-model-registry,"Follow up ""🚀 Add OmniRoute to ""More Choices"" — A Full-Featured Fork Inspired by CLIProxyAPI"" by closing compatibility gaps and locking in regression coverage.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1638,https://github.com/router-for-me/CLIProxyAPI/pull/1638,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1154,error-handling-retries,"Generalize ""fix: update Claude masquerading headers and configurable defaults"" into provider-agnostic translation/utilities to reduce duplicate logic.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1628,https://github.com/router-for-me/CLIProxyAPI/pull/1628,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1161,docs-quickstarts,"Follow up ""docs: comprehensive README update"" by closing compatibility gaps and locking in regression coverage.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1614,https://github.com/router-for-me/CLIProxyAPI/pull/1614,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1192,thinking-and-reasoning,"Harden ""feat: add claude-opus-4-7-thinking and fix opus-4-6 context length"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1518,https://github.com/router-for-me/CLIProxyAPI/pull/1518,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1221,docs-quickstarts,"Follow up ""docs: Add a new client application - Lin Jun"" by closing compatibility gaps and locking in regression coverage.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1409,https://github.com/router-for-me/CLIProxyAPI/pull/1409,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1232,docs-quickstarts,"Harden ""Add CLIProxyAPI Tray section to README_CN.md"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1371,https://github.com/router-for-me/CLIProxyAPI/pull/1371,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1233,docs-quickstarts,"Operationalize ""Add CLIProxyAPI Tray information to README"" with observability, runbook updates, and deployment safeguards.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1370,https://github.com/router-for-me/CLIProxyAPI/pull/1370,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1269,install-and-ops,"Prepare safe rollout for ""feat: add official Termux (aarch64) build to release workflow"" via flags, migration docs, and backward-compat tests.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1233,https://github.com/router-for-me/CLIProxyAPI/pull/1233,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1272,install-and-ops,"Harden ""feat: add official Termux build support to release workflow"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1230,https://github.com/router-for-me/CLIProxyAPI/pull/1230,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1319,error-handling-retries,"Prepare safe rollout for ""docs(readme): add ZeroLimit to projects based on CLIProxyAPI"" via flags, migration docs, and backward-compat tests.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#1068,https://github.com/router-for-me/CLIProxyAPI/pull/1068,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1328,websocket-and-streaming,"Refactor internals touched by ""修复打包后找不到配置文件问题"" to reduce coupling and improve maintainability.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#981,https://github.com/router-for-me/CLIProxyAPI/pull/981,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1354,docs-quickstarts,"Generalize ""Update README.md"" into provider-agnostic translation/utilities to reduce duplicate logic.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#871,https://github.com/router-for-me/CLIProxyAPI/pull/871,Refactor translation layer to isolate provider transform logic from transport concerns.
+CP2K-1356,responses-and-chat-compat,"Extend docs for ""feat(claude): add native request cloaking for non-claude-code clients"" with quickstart snippets and troubleshooting decision trees.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#868,https://github.com/router-for-me/CLIProxyAPI/pull/868,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1378,docs-quickstarts,"Refactor internals touched by ""feat(README): add star history"" to reduce coupling and improve maintainability.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#817,https://github.com/router-for-me/CLIProxyAPI/pull/817,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1395,provider-model-registry,"Improve CLI UX around ""feat: add per-entry base-url support for OpenAI-compatible API keys"" with clearer commands, flags, and immediate validation feedback.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#769,https://github.com/router-for-me/CLIProxyAPI/pull/769,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1413,docs-quickstarts,"Operationalize ""docs: add Quotio to community projects"" with observability, runbook updates, and deployment safeguards.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#727,https://github.com/router-for-me/CLIProxyAPI/pull/727,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1416,provider-model-registry,"Extend docs for ""Multi-Target Model Aliases and Provider Aggregation"" with quickstart snippets and troubleshooting decision trees.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#716,https://github.com/router-for-me/CLIProxyAPI/pull/716,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1423,websocket-and-streaming,"Operationalize ""docs(readme): add Cubence sponsor and fix PackyCode link"" with observability, runbook updates, and deployment safeguards.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#697,https://github.com/router-for-me/CLIProxyAPI/pull/697,Improve error diagnostics and add actionable remediation text in CLI and docs.
+CP2K-1429,provider-model-registry,"Prepare safe rollout for ""docs(readme): add PackyCode sponsor"" via flags, migration docs, and backward-compat tests.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#684,https://github.com/router-for-me/CLIProxyAPI/pull/684,Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+CP2K-1430,docs-quickstarts,"Standardize naming/metadata affected by ""docs: add operations guide and docs updates"" across both repos and docs.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#676,https://github.com/router-for-me/CLIProxyAPI/pull/676,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1431,docs-quickstarts,"Follow up ""docs: add operations guide and docs updates"" by closing compatibility gaps and locking in regression coverage.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#675,https://github.com/router-for-me/CLIProxyAPI/pull/675,Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+CP2K-1455,provider-model-registry,"Improve CLI UX around ""feat(amp): add Amp as provider"" with clearer commands, flags, and immediate validation feedback.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#616,https://github.com/router-for-me/CLIProxyAPI/pull/616,Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+CP2K-1460,provider-model-registry,"Standardize naming/metadata affected by ""Fix SDK: remove internal package imports for external consumers"" across both repos and docs.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#608,https://github.com/router-for-me/CLIProxyAPI/pull/608,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1466,websocket-and-streaming,"Extend docs for ""fix: Fixes Bash tool command parameter name mismatch"" with quickstart snippets and troubleshooting decision trees.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#589,https://github.com/router-for-me/CLIProxyAPI/pull/589,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1470,thinking-and-reasoning,"Standardize naming/metadata affected by ""feat: use thinkingLevel for Gemini 3 models per Google documentation"" across both repos and docs.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#582,https://github.com/router-for-me/CLIProxyAPI/pull/582,"Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+CP2K-1538,provider-model-registry,"Refactor internals touched by ""docs: add ProxyPal to 'Who is with us?' section"" to reduce coupling and improve maintainability.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#429,https://github.com/router-for-me/CLIProxyAPI/pull/429,Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+CP2K-1552,provider-model-registry,"Harden ""feat(amp): add model mapping support for routing unavailable models to alternatives"" with stricter validation, safer defaults, and explicit fallback semantics.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#390,https://github.com/router-for-me/CLIProxyAPI/pull/390,Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+CP2K-1626,provider-model-registry,"Extend docs for ""feat: introduce intelligent model routing system with management API and configuration"" with quickstart snippets and troubleshooting decision trees.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#187,https://github.com/router-for-me/CLIProxyAPI/pull/187,Add staged rollout controls (feature flags) with safe defaults and migration notes.
+CP2K-1627,docs-quickstarts,"Add robust stream/non-stream parity tests for ""docs: add AI Studio setup"" across supported providers.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPI,pr#186,https://github.com/router-for-me/CLIProxyAPI/pull/186,Harden edge-case parsing for stream and non-stream payload variants.
+CP2K-1947,docs-quickstarts,"Add robust stream/non-stream parity tests for ""Normalize Codex schema handling"" across supported providers.",P3,M,wave-3,proposed,yes,pr,router-for-me/CLIProxyAPIPlus,pr#259,https://github.com/router-for-me/CLIProxyAPIPlus/pull/259,Harden edge-case parsing for stream and non-stream payload variants.
diff --git a/docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.json b/docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.json
new file mode 100644
index 0000000000..e547a42a70
--- /dev/null
+++ b/docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.json
@@ -0,0 +1,30048 @@
+{
+ "stats": {
+ "discussions_core": 155,
+ "discussions_plus": 3,
+ "issues_core": 880,
+ "issues_plus": 81,
+ "prs_core": 577,
+ "prs_plus": 169,
+ "sources_total_unique": 1865
+ },
+ "counts": {
+ "effort": {
+ "L": 3,
+ "M": 949,
+ "S": 1048
+ },
+ "priority": {
+ "P1": 1112,
+ "P2": 786,
+ "P3": 102
+ },
+ "theme": {
+ "cli-ux-dx": 55,
+ "dev-runtime-refresh": 60,
+ "docs-quickstarts": 142,
+ "error-handling-retries": 40,
+ "general-polish": 296,
+ "go-cli-extraction": 99,
+ "install-and-ops": 26,
+ "integration-api-bindings": 78,
+ "oauth-and-authentication": 122,
+ "platform-architecture": 1,
+ "project-frontmatter": 1,
+ "provider-model-registry": 249,
+ "responses-and-chat-compat": 271,
+ "testing-and-quality": 12,
+ "thinking-and-reasoning": 444,
+ "websocket-and-streaming": 104
+ },
+ "wave": {
+ "wave-1": 1114,
+ "wave-2": 784,
+ "wave-3": 102
+ }
+ },
+ "items": [
+ {
+ "id": "CP2K-0011",
+ "theme": "general-polish",
+ "title": "Follow up \"kiro账号被封\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#221",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/221",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0014",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"Add support for proxying models from kilocode CLI\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#213",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/213",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0015",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"[Bug] Kiro 与 Ampcode 的 Bash 工具参数不兼容\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#210",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/210",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0016",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"[Feature Request] Add default oauth-model-alias for Kiro channel (like Antigravity)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#208",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/208",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0017",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#206",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/206",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0018",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"GitHub Copilot CLI 使用方法\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#202",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/202",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0021",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"Cursor CLI \\ Auth Support\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#198",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/198",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0022",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"Why no opus 4.6 on github copilot auth\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#196",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/196",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0025",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Claude thought_signature forwarded to Gemini causes Base64 decode error\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#178",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/178",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0030",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"fix(kiro): handle empty content in messages to prevent Bad Request errors\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#163",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/163",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0031",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"在配置文件中支持为所有 OAuth 渠道自定义上游 URL\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#158",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/158",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0034",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"请求docker部署支持arm架构的机器!感谢。\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#147",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/147",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0036",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"[Bug]进一步完善 openai兼容模式对 claude 模型的支持(完善 协议格式转换 )\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#145",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/145",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0037",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"完善 claude openai兼容渠道的格式转换\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#142",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/142",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0039",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"kiro idc登录需要手动刷新状态\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#136",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/136",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0040",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"[Bug Fix] 修复 Kiro 的Claude模型非流式请求 output_tokens 为 0 导致的用量统计缺失\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#134",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/134",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0045",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"Error 403\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#125",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/125",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0047",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"enterprise 账号 Kiro不是很稳定,很容易就403不可用了\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#118",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/118",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0048",
+ "theme": "oauth-and-authentication",
+ "title": "Refactor internals touched by \"-kiro-aws-login 登录后一直封号\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#115",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/115",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0050",
+ "theme": "oauth-and-authentication",
+ "title": "Standardize naming/metadata affected by \"Antigravity authentication failed\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#111",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/111",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0051",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"大佬,什么时候搞个多账号管理呀\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#108",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/108",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0052",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"日志中,一直打印auth file changed (WRITE)\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#105",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/105",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0053",
+ "theme": "oauth-and-authentication",
+ "title": "Operationalize \"登录incognito参数无效\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#102",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/102",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0054",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"OpenAI-compat provider hardcodes /v1/models (breaks Z.ai v4: /api/coding/paas/v4/models)\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#101",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/101",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0056",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"Kiro currently has no authentication available\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#96",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/96",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0059",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Bug: Kiro/BuilderId tokens can collide when email/profile_arn are empty; refresh token lifecycle not handled\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#90",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/90",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0060",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"[Bug] Amazon Q endpoint returns HTTP 400 ValidationException (wrong CLI/KIRO_CLI origin)\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#89",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/89",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0062",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Cursor Issue\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#86",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/86",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0063",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"Feature request: Configurable HTTP request timeout for Extended Thinking models\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#84",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/84",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0064",
+ "theme": "websocket-and-streaming",
+ "title": "Generalize \"kiro请求偶尔报错event stream fatal\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#83",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/83",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0066",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"[建议] 技术大佬考虑可以有机会新增一堆逆向平台\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#79",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/79",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0068",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"kiro请求的数据好像一大就会出错,导致cc写入文件失败\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#77",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/77",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0073",
+ "theme": "oauth-and-authentication",
+ "title": "Operationalize \"How to use KIRO with IAM?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#56",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/56",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0074",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"[Bug] Models from Codex (openai) are not accessible when Copilot is added\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#43",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/43",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0075",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"model gpt-5.1-codex-mini is not accessible via the /chat/completions endpoint\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#41",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/41",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0079",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"lack of thinking signature in kiro's non-stream response cause incompatibility with some ai clients (specifically cherry studio)\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#27",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/27",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0080",
+ "theme": "oauth-and-authentication",
+ "title": "Standardize naming/metadata affected by \"I did not find the Kiro entry in the Web UI\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#26",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/26",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0081",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Kiro (AWS CodeWhisperer) - Stream error, status: 400\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#7",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/7",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0251",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"Why a separate repo?\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "discussion#170",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/discussions/170",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0252",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"How do I perform GitHub OAuth authentication? I can't find the entrance.\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "discussion#215",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/discussions/215",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0255",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat: support image content in tool result messages (OpenAI ↔ Claude translation)\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1670",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1670",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0257",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"Need maintainer-handled codex translator compatibility for Responses compaction fields\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1667",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1667",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0258",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"codex: usage_limit_reached (429) should honor resets_at/resets_in_seconds as next_retry_after\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1666",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1666",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0260",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix(claude): token exchange blocked by Cloudflare managed challenge on console.anthropic.com\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1659",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1659",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0263",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"All credentials for model claude-sonnet-4-6 are cooling down\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1655",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1655",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0265",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Claude Sonnet 4.5 models are deprecated - please remove from panel\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1651",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1651",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0267",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"codex 返回 Unsupported parameter: response_format\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1647",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1647",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0268",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Bug: Invalid JSON payload when tool_result has no content field (antigravity translator)\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1646",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1646",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0272",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"是否支持微软账号的反代?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1632",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1632",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0274",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"Claude Sonnet 4.5 is no longer available. Please switch to Claude Sonnet 4.6.\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1630",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1630",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0277",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Question: applyClaudeHeaders() — how were these defaults chosen?\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1621",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1621",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0278",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"[BUG] claude code 接入 cliproxyapi 使用时,模型的输出没有呈现流式,而是一下子蹦出来回答结果\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1620",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1620",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0281",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"[bug] codex oauth登录流程失败\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1612",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1612",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0282",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"qwen auth 里获取到了 qwen3.5,但是 ai 客户端获取不到这个模型\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1611",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1611",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0283",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"fix: handle response.function_call_arguments.done in codex→claude streaming translator\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1609",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1609",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0286",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"[Feature Request] Antigravity channel should support routing claude-haiku-4-5-20251001 model (used by Claude Code pre-flight checks)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1596",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1596",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0289",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"[Bug] Claude Code 2.1.37 random cch in x-anthropic-billing-header causes severe prompt-cache miss on third-party upstreams\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1592",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1592",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0291",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"配额管理可以刷出额度,但是调用的时候提示额度不足\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1590",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1590",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0293",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"iflow GLM 5 时不时会返回 406\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1588",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1588",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0296",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"bug: Invalid thinking block signature when switching from Gemini CLI to Claude OAuth mid-conversation\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1584",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1584",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0297",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"I saved 10M tokens (89%) on my Claude Code sessions with a CLI proxy\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1583",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1583",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0298",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"[bug]? gpt-5.3-codex-spark 在 team 账户上报错 400\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1582",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1582",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0302",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"Port 8317 becomes unreachable after running for some time, recovers immediately after SSH login\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1575",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1575",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0303",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"Support for gpt-5.3-codex-spark\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1573",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1573",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0306",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"能否再难用一点?!\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1564",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1564",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0307",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Cache usage through Claude oAuth always 0\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1562",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1562",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0308",
+ "theme": "oauth-and-authentication",
+ "title": "Refactor internals touched by \"antigravity 无法使用\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1561",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1561",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0310",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Claude Code 调用 nvidia 发现 无法正常使用bash grep类似的工具\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1557",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1557",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0311",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"Gemini CLI: 额度获取失败:请检查凭证状态\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1556",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1556",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0314",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"Kimi的OAuth无法使用\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1553",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1553",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0315",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"grok的OAuth登录认证可以支持下吗? 谢谢!\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1552",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1552",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0316",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"iflow executor: token refresh failed\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1551",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1551",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0317",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"为什么gemini3会报错\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1549",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1549",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0323",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"佬们,隔壁很多账号403啦,这里一切正常吗?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1541",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1541",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0324",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"feat(thinking): support Claude output_config.effort parameter (Opus 4.6)\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1540",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1540",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0327",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"[Bug] Persistent 400 \"Invalid Argument\" error with claude-opus-4-6-thinking model (with and without thinking budget)\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1533",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1533",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0329",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"bug: proxy_ prefix applied to tool_choice.name but not tools[].name causes 400 errors on OAuth requests\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1530",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1530",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0333",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"The account has available credit, but a 503 or 429 error is occurring.\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1521",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1521",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0334",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"openclaw调用CPA 中的codex5.2 报错。\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1517",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1517",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0336",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Token refresh logic fails with generic 500 error (\"server busy\") from iflow provider\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1514",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1514",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0337",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1513",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1513",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0340",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"反重力 claude-opus-4-6-thinking 模型如何通过 () 实现强行思考\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1509",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1509",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0341",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Feature: Per-OAuth-Account Outbound Proxy Enforcement for Google (Gemini/Antigravity) + OpenAI Codex – incl. Token Refresh and optional Strict/Fail-Closed Mode\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1508",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1508",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0353",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"Feature request [allow to configure RPM, TPM, RPD, TPD]\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1493",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1493",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0354",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"Antigravity using Ultra plan: Opus 4.6 gets 429 on CLIProxy but runs with Opencode-Auth\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1486",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1486",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0357",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Amp code doesn't route through CLIProxyAPI\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1481",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1481",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0358",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"导入kiro账户,过一段时间就失效了\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1480",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1480",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0359",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"openai-compatibility: streaming response empty when translating Codex protocol (/v1/responses) to OpenAI chat/completions\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1478",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1478",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0360",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"bug: request-level metadata fields injected into contents[] causing Gemini API rejection (v6.8.4)\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1477",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1477",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0366",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"model not found for gpt-5.3-codex\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1463",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1463",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0370",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"When I don’t add the authentication file, opening Claude Code keeps throwing a 500 error, instead of directly using the AI provider I’ve configured.\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1455",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1455",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0371",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"6.7.53版本反重力无法看到opus-4.6模型\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1453",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1453",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0372",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"Codex OAuth failed\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1451",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1451",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0373",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"Google asking to Verify account\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1447",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1447",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0374",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"API Error\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1445",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1445",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0375",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"Unable to use GPT 5.3 codex (model_not_found)\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1443",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1443",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0376",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"gpt-5.3-codex 请求400 显示不存在该模型\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1442",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1442",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0381",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"[BUG] Invalid JSON payload with large requests (~290KB) - truncated body\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1433",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1433",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0384",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"[v6.7.47] 接入智谱 Plan 计划后请求报错\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1430",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1430",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0387",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"bug: Claude → Gemini translation fails due to unsupported JSON Schema fields ($id, patternProperties)\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1424",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1424",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0390",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Security Review: Apply Lessons from Supermemory Security Findings\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1418",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1418",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0391",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Add Webhook Support for Document Lifecycle Events\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1417",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1417",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0394",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"Add Document Processor for PDF and URL Content Extraction\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1414",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1414",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0398",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Implement MCP Server for Memory Operations\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1410",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1410",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0400",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Bug: /v1/responses returns 400 \"Input must be a list\" when input is string (regression 6.7.42, Droid auto-compress broken)\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1403",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1403",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0401",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Factory Droid CLI got 404\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1401",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1401",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0403",
+ "theme": "oauth-and-authentication",
+ "title": "Operationalize \"Feature request: Cursor CLI support\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1399",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1399",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0404",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"bug: Invalid signature in thinking block (API 400) on follow-up requests\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1398",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1398",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0407",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"Session title generation fails for Claude models via Antigravity provider (OpenCode)\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1394",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1394",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0408",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"反代反重力请求gemini-3-pro-image-preview接口报错\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1393",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1393",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0409",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"[Feature Request] Implement automatic account rotation on VALIDATION_REQUIRED errors\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1392",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1392",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0413",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"在codex运行报错\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1406",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1406",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0415",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"Claude authentication failed in v6.7.41 (works in v6.7.25)\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1383",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1383",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0416",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"Question: Does load balancing work with 2 Codex accounts for the Responses API?\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1382",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1382",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0417",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"登陆提示“登录失败: 访问被拒绝,权限不足”\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1381",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1381",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0419",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"antigravity无法登录\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1376",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1376",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0421",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"API Error: 403\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1374",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1374",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0424",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Bad processing of Claude prompt caching that is already implemented by client app\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1366",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1366",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0425",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"[Bug] OpenAI-compatible provider: message_start.usage always returns 0 tokens (kimi-for-coding)\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1365",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1365",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0426",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"iflow Cli官方针对terminal有Oauth 登录方式\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1364",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1364",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0428",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"“Error 404: Requested entity was not found\" for gemini 3 by gemini-cli\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1325",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1325",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0430",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Feature Request: Add generateImages endpoint support for Gemini API\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1322",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1322",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0431",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"iFlow Error: LLM returned 200 OK but response body was empty (possible rate limit)\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1321",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1321",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0432",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"feat: add code_execution and url_context tool passthrough for Gemini\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1318",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1318",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0436",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Claude Opus 4.5 returns \"Internal server error\" in response body via Anthropic OAuth (Sonnet works)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1306",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1306",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0439",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"版本: v6.7.27 添加openai-compatibility的时候出现 malformed HTTP response 错误\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1301",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1301",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0440",
+ "theme": "websocket-and-streaming",
+ "title": "Standardize naming/metadata affected by \"fix(logging): request and API response timestamps are inaccurate in error logs\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1299",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1299",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0441",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"cpaUsageMetadata leaks to Gemini API responses when using Antigravity backend\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1297",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1297",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0442",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Gemini API error: empty text content causes 'required oneof field data must have one initialized field'\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1293",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1293",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0443",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"Gemini API error: empty text content causes 'required oneof field data must have one initialized field'\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1292",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1292",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0446",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"Request takes over a minute to get sent with Antigravity\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1289",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1289",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0447",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Antigravity auth requires daily re-login - sessions expire unexpectedly\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1288",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1288",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0449",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"429 RESOURCE_EXHAUSTED for Claude Opus 4.5 Thinking with Google AI Pro Account\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1284",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1284",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0452",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Support request: Kimi For Coding (Kimi Code / K2.5) behind CLIProxyAPI\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1280",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1280",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0459",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"[Improvement] Pre-bundle Management UI in Docker Image\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1266",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1266",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0467",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"CLIProxyAPI goes down after some time, only recovers when SSH into server\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1253",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1253",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0468",
+ "theme": "oauth-and-authentication",
+ "title": "Refactor internals touched by \"kiro hope\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1252",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1252",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0469",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"\"Requested entity was not found\" for all antigravity models\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1251",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1251",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0476",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"GLM Coding Plan\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1226",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1226",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0479",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"auth_unavailable: no auth available in claude code cli, 使用途中经常500\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1222",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1222",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0482",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"openai codex 认证失败: Failed to exchange authorization code for tokens\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1217",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1217",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0484",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Error 403\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1214",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1214",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0485",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"Gemini CLI OAuth 认证失败: failed to start callback server\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1213",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1213",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0486",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"bug: Thinking budget ignored in cross-provider conversations (Antigravity)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1199",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1199",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0490",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"codex总是有失败\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1193",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1193",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0493",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"🚨🔥 CRITICAL BUG REPORT: Invalid Function Declaration Schema in API Request 🔥🚨\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1189",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1189",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0496",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"使用 Antigravity OAuth 使用openai格式调用opencode问题\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1173",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1173",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0497",
+ "theme": "error-handling-retries",
+ "title": "Add robust stream/non-stream parity tests for \"今天中午开始一直429\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1172",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1172",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0508",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"[Bug] v6.7.x Regression: thinking parameter not recognized, causing Cherry Studio and similar clients to fail displaying extended thinking content\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1155",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1155",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0510",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Antigravity OAuth认证失败\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1153",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1153",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0516",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"cc 使用 zai-glm-4.7 报错 body.reasoning\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1143",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1143",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0517",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"NVIDIA不支持,转发成claude和gpt都用不了\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1139",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1139",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0520",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"tool_choice not working for Gemini models via Claude API endpoint\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1135",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1135",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0527",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"gpt-5.2-codex \"System messages are not allowed\"\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1122",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1122",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0531",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"gemini-3-pro-high (Antigravity): malformed_function_call error with tools\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1113",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1113",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0533",
+ "theme": "error-handling-retries",
+ "title": "Operationalize \"香蕉pro 图片一下将所有图片额度都消耗没了\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1110",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1110",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0536",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"gemini-3-pro-high returns empty response when subagent uses tools\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1106",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1106",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0537",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"GitStore local repo fills tmpfs due to accumulating loose git objects (no GC/repack)\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1104",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1104",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0541",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"Wrong workspace selected for OpenAI accounts\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1095",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1095",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0543",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"Antigravity 生图无法指定分辨率\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1093",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1093",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0544",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"文件写方式在docker下容易出现Inode变更问题\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1092",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1092",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0548",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Streaming Response Translation Fails to Emit Completion Events on `[DONE]` Marker\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1085",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1085",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0549",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"Feature Request: Add support for Text Embedding API (/v1/embeddings)\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1084",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1084",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0553",
+ "theme": "oauth-and-authentication",
+ "title": "Operationalize \"配额管理中可否新增Claude OAuth认证方式号池的配额信息\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1079",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1079",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0554",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"Extended thinking model fails with \"Expected thinking or redacted_thinking, but found tool_use\" on multi-turn conversations\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1078",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1078",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0555",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"functionDeclarations 和 googleSearch 合并到同一个 tool 对象导致 Gemini API 报错\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1077",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1077",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0558",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"image generation 429\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1073",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1073",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0559",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"No Auth Available\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1072",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1072",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0560",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"配置OpenAI兼容格式的API,用Anthropic接口 OpenAI接口都调用不成功\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1066",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1066",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0561",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"\"Think Mode\" Reasoning models are not visible in GitHub Copilot interface\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1065",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1065",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0562",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Gemini 和 Claude 多条 system 提示词时,只有最后一条生效 / When Gemini and Claude have multiple system prompt words, only the last one takes effect\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1064",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1064",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0563",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"OAuth issue with Qwen using Google Social Login\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1063",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1063",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0564",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"[Feature] allow to disable auth files from UI (management)\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1062",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1062",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0567",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"OpenAI 兼容提供商 由于客户端没有兼容OpenAI接口,导致调用失败\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1059",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1059",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0569",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"[bug]在 opencode 多次正常请求后出现 500 Unknown Error 后紧接着 No Auth Available\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1057",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1057",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0573",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"Codex authentication cannot be detected\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1052",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1052",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0574",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"v6.7.3 OAuth 模型映射 新增或修改存在问题\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1051",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1051",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0576",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"最新版本CPA,OAuths模型映射功能失败?\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1048",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1048",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0577",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"新增的Antigravity文件会报错429\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1047",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1047",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0578",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Docker部署缺失gemini-web-auth功能\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1045",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1045",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0586",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"macos webui Codex OAuth error\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1037",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1037",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0587",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"antigravity 无法获取登录链接\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1035",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1035",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0590",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Antigravity auth causes infinite refresh loop when project_id cannot be fetched\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1030",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1030",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0595",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Vertex Credential Doesn't Work with gemini-3-pro-image-preview\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1024",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1024",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0601",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Antigravity Accounts Rate Limited (HTTP 429) Despite Available Quota\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1015",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1015",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0605",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"「建议」希望能添加一个手动控制某 oauth 认证是否参与反代的功能\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1010",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1010",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0607",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"添加openai v1 chat接口,使用responses调用,出现截断,最后几个字不显示\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1008",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1008",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0610",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"Feature: Add Veo 3.1 Video Generation Support\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1005",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1005",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0611",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"Bug: Streaming response.output_item.done missing function name\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1004",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1004",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0612",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Close\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1003",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1003",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0614",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"[Bug] Codex Responses API: item_reference in `input` not cleaned, causing 404 errors and incorrect client suspension\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#999",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/999",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0615",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"[Bug] Codex Responses API: `input` 中的 item_reference 未清理,导致 404 错误和客户端被误暂停\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#998",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/998",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0616",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"【建议】保留Gemini格式请求的思考签名\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#997",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/997",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0624",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"New OpenAI API: /responses/compact\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#986",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/986",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0625",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"Bug Report: OAuth Login Failure on Windows due to Port 51121 Conflict\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#985",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/985",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0626",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"Claude model reports wrong/unknown model when accessed via API (Claude Code OAuth)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#984",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/984",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0628",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"[建议]Codex渠道将System角色映射为Developer角色\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#982",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/982",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0629",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"No Image Generation Models Available After Gemini CLI Setup\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#978",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/978",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0631",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"GPT5.2模型异常报错 auth_unavailable: no auth available\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#976",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/976",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0633",
+ "theme": "oauth-and-authentication",
+ "title": "Operationalize \"Auth files permanently deleted from S3 on service restart due to race condition\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#973",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/973",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0637",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"初次运行运行.exe文件报错\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#966",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/966",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0641",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Antigravity using Flash 2.0 Model for Sonet\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#960",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/960",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0645",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"[Feature] Allow define log filepath in config\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#954",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/954",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0646",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"[建议]希望OpenAI 兼容提供商支持启用停用功能\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#953",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/953",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0647",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Reasoning field missing for gpt-5.1-codex-max at xhigh reasoning level (while gpt-5.2-codex works as expected)\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#952",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/952",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0650",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"Internal Server Error: {\"error\":{\"message\":\"auth_unavailable: no auth available\"... (click to expand) [retrying in 8s attempt #4]\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#949",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/949",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0651",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"[BUG] Multi-part Gemini response loses content - only last part preserved in OpenAI translation\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#948",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/948",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0653",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"接入openroute成功,但是下游使用异常\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#942",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/942",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0654",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"fix: use original request JSON for echoed fields in OpenAI Responses translator\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#941",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/941",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0656",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"[Feature Request] Support Priority Failover Strategy (Priority Queue) Instead of all Round-Robin\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#937",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/937",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0657",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"[Feature Request] Support multiple aliases for a single model name in oauth-model-mappings\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#936",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/936",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0658",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"新手登陆认证问题\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#934",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/934",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0661",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Gemini 3 Pro cannot perform native tool calls in Roo Code\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#931",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/931",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0662",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Qwen OAuth Request Error\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#930",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/930",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0663",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"无法在 api 代理中使用 Anthropic 模型,报错 429\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#929",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/929",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0666",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"同一个chatgpt账号加入了多个工作空间,同时个人账户也有gptplus,他们的codex认证文件在cliproxyapi不能同时使用\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#926",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/926",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0669",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Help for setting mistral\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#920",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/920",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0671",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"How to run this?\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#917",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/917",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0677",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Antigravity models return 429 RESOURCE_EXHAUSTED via cURL, but Antigravity IDE still works (started ~18:00 GMT+7)\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#910",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/910",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0678",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"gemini3p报429,其他的都好好的\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#908",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/908",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0680",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"新版本运行闪退\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#906",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/906",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0682",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"⎿ 429 {\"error\":{\"code\":\"model_cooldown\",\"message\":\"All credentials for model gemini-claude-opus-4-5-thinking are cooling down via provider antigravity\",\"model\":\"gemini-claude-opus-4-5-thinking\",\"provider\":\"antigravity\",\"reset_seconds\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#904",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/904",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0685",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"OpenAI Codex returns 400: Unsupported parameter: prompt_cache_retention\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#897",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/897",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0687",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"Apply Routing Strategy also to Auth Files\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#893",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/893",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0689",
+ "theme": "oauth-and-authentication",
+ "title": "Prepare safe rollout for \"Cursor subscription support\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#891",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/891",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0691",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"[Bug] Codex auth file overwritten when account has both Plus and Team plans\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#887",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/887",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0693",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"can not work with mcp:ncp on antigravity auth\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#885",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/885",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0694",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"Gemini Cli Oauth 认证失败\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#884",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/884",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0697",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"同时使用GPT账号个人空间和团队空间\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#875",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/875",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0707",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"[Bug] Infinite hanging and quota surge with gemini-claude-opus-4-5-thinking in Claude Code\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#852",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/852",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0709",
+ "theme": "oauth-and-authentication",
+ "title": "Prepare safe rollout for \"功能请求:为 OAuth 账户添加独立代理配置支持\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#847",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/847",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0710",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"Promt caching\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#845",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/845",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0714",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Image Generation 504 Timeout Investigation\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#839",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/839",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0717",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"[Bug] Antigravity token refresh loop caused by metadataEqualIgnoringTimestamps skipping critical field updates\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#833",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/833",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0721",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"windows环境下,认证文件显示重复的BUG\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#822",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/822",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0724",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"模型带前缀并开启force_model_prefix后,以gemini格式获取模型列表中没有带前缀的模型\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#816",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/816",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0726",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"代理的codex 404\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#812",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/812",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0728",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"Request for maintenance team intervention: Changes in internal/translator needed\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#806",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/806",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0729",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"feat(translator): integrate SanitizeFunctionName across Claude translators\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#804",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/804",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0731",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"在cherry-studio中的流失响应似乎未生效\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#798",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/798",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0732",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Bug: ModelStates (BackoffLevel) lost when auth is reloaded or refreshed\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#797",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/797",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0733",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"[Bug] Stream usage data is merged with finish_reason: \"stop\", causing Letta AI to crash (OpenAI Stream Options incompatibility)\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#796",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/796",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0734",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"[BUG] Codex 默认回调端口 1455 位于 Hyper-v 保留端口段内\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#793",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/793",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0735",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"【Bug】: High CPU usage when managing 50+ OAuth accounts\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#792",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/792",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0737",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"当在codex exec 中使用gemini 或claude 模型时 codex 无输出结果\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#790",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/790",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0739",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"[Bug]: Gemini Models Output Truncated - Database Schema Exceeds Maximum Allowed Tokens (140k+ chars) in Claude Code\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#788",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/788",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0743",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"当认证账户消耗完之后,不会自动切换到 AI 提供商账户\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#777",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/777",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0748",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"support proxy for opencode\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#753",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/753",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0749",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"[BUG] thinking/思考链在 antigravity 反代下被截断/丢失(stream 分块处理过严)\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#752",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/752",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0750",
+ "theme": "oauth-and-authentication",
+ "title": "Standardize naming/metadata affected by \"api-keys 필드에 placeholder 값이 있으면 invalid api key 에러 발생\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#751",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/751",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0751",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"[Bug]Fix `invalid_request_error` (Field required) when assistant message has empty content with tool_calls\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#749",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/749",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0753",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"[Bug] Streaming response 'message_start' event missing token counts (affects OpenCode/Vercel AI SDK)\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#747",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/747",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0755",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Add output_tokens_details.reasoning_tokens for thinking models on /v1/messages\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#744",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/744",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0756",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"qwen-code-plus not supoort guided-json Structured Output\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#743",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/743",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0757",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Bash tool too slow\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#742",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/742",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0764",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Bug: /v1/responses endpoint does not correctly convert message format for Anthropic API\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#736",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/736",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0765",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"请问有计划支持显示目前剩余额度吗\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#734",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/734",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0766",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"reasoning_content is null for extended thinking models (thinking goes to content instead)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#732",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/732",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0767",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Use actual Anthropic token counts instead of estimation for reasoning_tokens\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#731",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/731",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0768",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"400 error: messages.X.content.0.text.text: Field required\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#730",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/730",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0774",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"最新的版本无法构建成镜像\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#721",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/721",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0776",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"是否可以支持/openai/v1/responses端点\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#718",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/718",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0782",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"iFlow models don't work in CC anymore\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#710",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/710",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0788",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"[功能请求] 支持使用 Vertex AI的API Key 模式调用\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#699",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/699",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0791",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"Translator: support first-class system prompt override for codex\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#694",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/694",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0795",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"Feature Request: Priority-based Auth Selection for Specific Models\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#685",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/685",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0799",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Support developer role\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#680",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/680",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0802",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Translator: remove Copilot mention in OpenAI-\u003eClaude stream comment\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#677",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/677",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0803",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"iflow渠道凭证报错\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#669",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/669",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0806",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"Filter OTLP telemetry from Amp VS Code hitting /api/otel/v1/metrics\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#660",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/660",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0807",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"Handle OpenAI Responses-format payloads hitting /v1/chat/completions\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#659",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/659",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0815",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"get error when tools call in jetbrains ai assistant with openai BYOK\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#639",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/639",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0816",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"[Bug] OAuth tokens have insufficient scopes for Gemini/Antigravity API - 401 \"Invalid API key\"\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#637",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/637",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0818",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"Spam about server clients and configuration updated\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#635",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/635",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0821",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"[Feature Request] Add support for AWS Bedrock API\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#626",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/626",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0823",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"\"Requested entity was not found\" for Gemini 3\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#620",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/620",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0825",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Management routes (threads, user, auth) fail with 401/402 because proxy strips client auth and injects provider-only credentials\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#614",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/614",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0826",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"Amp client fails with \"unexpected EOF\" when creating large files, while OpenAI-compatible clients succeed\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#613",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/613",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0832",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"[Bug] gpt-5.1-codex models return 400 error (no body) while other OpenAI models succeed\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#600",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/600",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0833",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"调用deepseek-chat报错\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#599",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/599",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0837",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"[Bug] Antigravity prompt caching broken by random sessionId per request\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#592",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/592",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0838",
+ "theme": "websocket-and-streaming",
+ "title": "Refactor internals touched by \"Important Security \u0026 Integrity Alert regarding @Eric Tech\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#591",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/591",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0839",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"[Bug] Models from Codex (openai) are not accessible when Copilot is added\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#590",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/590",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0842",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"github copilot problem\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#578",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/578",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0843",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"amp使用时日志频繁出现下面报错\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#576",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/576",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0846",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"Qwen CLI often stops working before finishing the task\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#567",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/567",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0847",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"gemini cli接入后,可以正常调用所属大模型;Antigravity通过OAuth成功认证接入后,无法调用所属的模型\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#566",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/566",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0849",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"fix(translator): emit message_start on first chunk regardless of role field\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#563",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/563",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0850",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Bug: OpenAI→Anthropic streaming translation fails with tool calls - missing message_start\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#561",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/561",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0853",
+ "theme": "oauth-and-authentication",
+ "title": "Operationalize \"Bug: AmpCode login routes incorrectly require API key authentication since v6.6.15\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#554",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/554",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0854",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Github Copilot\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#551",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/551",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0856",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"Antigravity has no gemini-2.5-pro\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#548",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/548",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0858",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"The token file was not generated.\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#544",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/544",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0860",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Bug: Codex→Claude SSE content_block.index collisions break Claude clients\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#539",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/539",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0863",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"Feature: Add copilot-unlimited-mode config for copilot-api compatibility\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#532",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/532",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0864",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"Bug: content_block_start sent before message_start in OpenAI→Anthropic translation\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#530",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/530",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0865",
+ "theme": "websocket-and-streaming",
+ "title": "Improve CLI UX around \"CLIProxyAPI,通过gemini cli来实现对gemini-2.5-pro的调用,如果遇到输出长度在上万字的情况,总是遇到429错误\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#518",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/518",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0866",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Antigravity Error 400\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#517",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/517",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0867",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Add AiStudio error\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#513",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/513",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0868",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Claude Code with Antigravity gemini-claude-sonnet-4-5-thinking error: Extra inputs are not permitted\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#512",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/512",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0871",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"GET /v1/models does not expose model capabilities (e.g. gpt-5.2 supports (xhigh) but cannot be discovered)\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#508",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/508",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0876",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"gpt5.2 cherry 报错\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#496",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/496",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0884",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"How to configure thinking for Claude and Codex?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#483",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/483",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0886",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"CLIProxyAPI配置 Gemini CLI最后一步失败:Google账号权限设置不够\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#480",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/480",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0890",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix(translator): skip empty functionResponse in OpenAI-to-Antigravity path\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#475",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/475",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0892",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"fix(translator): preserve tool_use blocks on args parse failure\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#471",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/471",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0895",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Streaming fails for \"preview\" and \"thinking\" models (response is buffered)\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#460",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/460",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0896",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"failed to unmarshal function response: invalid character 'm' looking for beginning of value on droid\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#451",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/451",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0898",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"[Suggestion] Add ingress rate limiting and 403 circuit breaker for /v1/messages\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#443",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/443",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0900",
+ "theme": "oauth-and-authentication",
+ "title": "Standardize naming/metadata affected by \"【BUG】Infinite loop on startup if an auth file is removed (Windows)\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#440",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/440",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0901",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"can I use models of droid in Claude Code?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#438",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/438",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0902",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"`[Bug/Question]: Antigravity models looping in Plan Mode \u0026 400 Invalid Argument errors`\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#437",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/437",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0903",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"[Bug] 400 Invalid Argument: 'thinking' block missing in ConvertClaudeRequestToAntigravity\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#436",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/436",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0904",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"gemini等模型没有按openai api的格式返回呀\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#433",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/433",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0906",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Antigravity Claude *-thinking + tools only stream reasoning (no assistant content/tool_calls) via OpenAI-compatible API\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#425",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/425",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0907",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Antigravity Claude by Claude Code `max_tokens` must be greater than `thinking.budget_tokens`\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#424",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/424",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0909",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Extended thinking blocks not preserved during tool use, causing API rejection\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#420",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/420",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0910",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Antigravity Claude via CLIProxyAPI: browsing enabled in Cherry but no actual web requests\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#419",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/419",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0913",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"Gemini-CLI,gemini-2.5-pro调用触发限流之后(You have exhausted your capacity on this model. Your quota will reset after 51s.),会自动切换请求gemini-2.5-pro-preview-06-05,但是这个模型貌似已经不存在了\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#414",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/414",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0916",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"[Feature Request] Dynamic Model Mapping \u0026 Custom Parameter Injection (e.g., iflow /tab)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#411",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/411",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0918",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Antigravity not working\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#407",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/407",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0919",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"大佬能不能出个zeabur部署的教程\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#403",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/403",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0921",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"HTTP Proxy Not Effective: Token Unobtainable After Google Account Authentication Success\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#397",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/397",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0929",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"能否为kiro oauth提供支持?(附实现项目链接)\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#368",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/368",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0930",
+ "theme": "oauth-and-authentication",
+ "title": "Standardize naming/metadata affected by \"antigravity 无法配置?\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#367",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/367",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0935",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"[Bug] Codex Reasponses Sometimes Omit Reasoning Tokens\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#356",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/356",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0936",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"[Bug] Codex Max Does Not Utilize XHigh Reasoning Effort\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#354",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/354",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0937",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"[Bug] Gemini 3 Does Not Utilize Reasoning Effort\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#353",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/353",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0938",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"API for iflow-cli is not work anymore: iflow executor: token refresh failed: iflow token: missing access token in response\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#352",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/352",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0939",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"[Bug] Antigravity/Claude Code: \"tools.0.custom.input_schema: Field required\" error on all antigravity models\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#351",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/351",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0942",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Gemini 3 Pro + Codex CLI\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#346",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/346",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0947",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"OpenAI and Gemini API: thinking/chain-of-thought broken or 400 error (max_tokens vs thinking.budget_tokens) for thinking models\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#338",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/338",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0948",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"[Bug] Commit 52c17f0 breaks OAuth authentication for Anthropic models\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#337",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/337",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0951",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"gemini-claude-sonnet-4-5-thinking: Chain-of-Thought (thinking) does not work on any API (OpenAI/Gemini/Claude)\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#332",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/332",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0952",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"docker方式部署后,怎么登陆gemini账号呢?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#328",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/328",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0963",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"Gemini not stream thinking result\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#308",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/308",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0965",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"docker-compose启动错误\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#305",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/305",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0969",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"token无计数\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#300",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/300",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0972",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"[Feature Request] Add --manual-callback mode for headless/remote OAuth (especially for users behind proxy / Clash TUN in China)\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#295",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/295",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0973",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"Regression: gemini-3-pro-preview unusable due to removal of 429 retry logic in d50b0f7\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#293",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/293",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0974",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Gemini 3 Pro no response in Roo Code with AI Studio setup\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#291",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/291",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0976",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"Post \"https://chatgpt.com/backend-api/codex/responses\": Not Found\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#286",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/286",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0978",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Bug: Gemini 3 Thinking Budget requires normalization in CLI Translator\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#282",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/282",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0979",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Feature Request: Support for Gemini 3 Pro Preview\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#278",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/278",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0983",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"`gemini-3-pro-preview` is missing\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#271",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/271",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0984",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"Adjust gemini-3-pro-preview`s doc\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#269",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/269",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0986",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Bug: config.example.yaml has incorrect auth-dir default, causes auth files to be saved in wrong location\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#265",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/265",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0987",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Security: Auth directory created with overly permissive 0o755 instead of 0o700\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#264",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/264",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0991",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"Factory Droid: /compress (session compact) fails on Gemini 2.5 via CLIProxyAPI\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#260",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/260",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0993",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"gemini oauth in droid cli: unknown provider\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#258",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/258",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0998",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"Feature: scoped `auto` model (provider + pattern)\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#251",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/251",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0999",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"wss 链接失败\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#250",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/250",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1001",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"不支持 candidate_count 功能,设置需要多版本回复的时候,只会输出1条\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#247",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/247",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1003",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"cli-proxy-api --gemini-web-auth\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#244",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/244",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1009",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"Feature Request: Support \"auto\" Model Selection for Seamless Provider Updates\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#236",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/236",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1013",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"Feature Request : Token Caching for Codex\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#231",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/231",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1014",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"agentrouter problem\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#228",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/228",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1019",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"/v1/responese connection error for version 0.55.0 of codex\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#216",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/216",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1020",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"https://huggingface.co/chat\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#212",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/212",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1030",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"Feature Request: OAuth Aliases \u0026 Multiple Aliases\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#192",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/192",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1033",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"internal/translator下的翻译器对外暴露了吗?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#188",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/188",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1034",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"API Key issue\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#181",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/181",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1037",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"gemini-cli `Request Failed: 400` exception\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#176",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/176",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1041",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"[feature request] pass model names without defining them [HAS PR]\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#171",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/171",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1043",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"Troublesome First Instruction\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#169",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/169",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1053",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"All-in-WSL2: Claude Code (sub-agents + MCP) via CLIProxyAPI — token-only Codex, gpt-5-high / gpt-5-low mapping, multi-account\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#154",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/154",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1054",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"OpenAI-compatible API not working properly with certain models (e.g. glm-4.6, kimi-k2, DeepSeek-V3.2)\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#153",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/153",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1056",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Question about models:\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#150",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/150",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1057",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Feature Request: Add rovodev CLI Support\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#149",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/149",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1059",
+ "theme": "oauth-and-authentication",
+ "title": "Prepare safe rollout for \"Cannot create Auth files in docker container webui management page\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#144",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/144",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1063",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"API Error\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#137",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/137",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1065",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"droid cli with CLIProxyAPI [codex,zai]\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#135",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/135",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1068",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"Agentrouter.org Support\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#131",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/131",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1071",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Add Z.ai / GLM API Configuration\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#124",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/124",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1072",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Gemini + Droid = Bug\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#123",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/123",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1074",
+ "theme": "websocket-and-streaming",
+ "title": "Generalize \"Web Search and other network tools\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#121",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/121",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1078",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Feat Request: Usage Limit Notifications + Timers + Per-Auth Usage\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#112",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/112",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1088",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Huge error message when connecting to Gemini via Opencode, SanitizeSchemaForGemini not being used?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#97",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/97",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1093",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"Gemini Web Auto Refresh Token\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#89",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/89",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1097",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Add more model selection options\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#84",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/84",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1098",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Error on switching models in Droid after hitting Usage Limit\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#81",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/81",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1101",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"[Feature Request] - Adding OAuth support of Z.AI and Kimi\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#76",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/76",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1105",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"添加回调链接输入认证\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#56",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/56",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1107",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"Error walking auth directory: open C:\\Users\\xiaohu\\AppData\\Local\\ElevatedDiagnostics: Access is denied\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#42",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/42",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1109",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"lobechat 添加自定义API服务商后无法使用\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#38",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/38",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1110",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Missing API key\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#37",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/37",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1117",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"客户端/终端可以正常访问该代理,但无法输出回复\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#21",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/21",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1119",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"希望可以加入对responses的支持。\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#19",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/19",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1120",
+ "theme": "error-handling-retries",
+ "title": "Standardize naming/metadata affected by \"关于gpt5\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#18",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/18",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1122",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"gemini使用project_id登录,会无限要求跳转链接,使用配置更改auth_dir无效\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#14",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/14",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1123",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"新认证生成的auth文件,使用的时候提示:400 API key not valid.\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#13",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/13",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1129",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"如果一个项目需要指定ID认证,则指定后一定也会失败\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#6",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/6",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1130",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"指定project_id登录,无限跳转登陆页面\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#5",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/5",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1132",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"Login error.win11\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#3",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/3",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1714",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"429 RESOURCE_EXHAUSTED for Claude Opus 4.5 Thinking with Google AI Pro Account\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1471",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1471",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1717",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"是否支持微软账号的反代?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1636",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1636",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1718",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"[Feature Request] Antigravity channel should support routing claude-haiku-4-5-20251001 model (used by Claude Code pre-flight checks)\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1619",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1619",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1719",
+ "theme": "oauth-and-authentication",
+ "title": "Prepare safe rollout for \"new project\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1602",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1602",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1724",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"[功能请求] 支持使用 Vertex AI的API Key 模式调用\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1212",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1212",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1726",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"grok的OAuth登录认证可以支持下吗? 谢谢!\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1569",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1569",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1727",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"400 Bad Request when reasoning_effort=\"xhigh\" with kimi k2.5 (OpenAI-compatible API)\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1309",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1309",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1730",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"为什么gemini3会报错\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1550",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1550",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1732",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Feat Request: Usage Limit Notifications + Timers + Per-Auth Usage\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#519",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/519",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1734",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Will using this claude code subscription lead to account suspension?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1520",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1520",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1735",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"After logging in with iFlowOAuth, most models cannot be used, only non-CLI models can be used.\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1498",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1498",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1736",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"CLIProxyAPI woth opencode and google, qwen, antigravity, amp - how to do it?\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1489",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1489",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1739",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"NVIDIA不支持,转发成claude和gpt都用不了\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1145",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1145",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1751",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"mac使用brew安装的cpa,请问配置文件在哪?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#843",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/843",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1756",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"New OpenAI API: /responses/compact\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1202",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1202",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1763",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"openai codex 认证失败: Failed to exchange authorization code for tokens\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1221",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1221",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1768",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"询问 AI Studio Build Proxy 的 每日大概额度\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1158",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1158",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1774",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Feature: Add Veo 3.1 Video Generation Support\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1016",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1016",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1775",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"Gemini Cli Oauth 认证失败\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#890",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/890",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1776",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"配额管理中可否新增Claude OAuth认证方式号池的配额信息\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1178",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1178",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1779",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"windmill-sse-support\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1046",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1046",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1781",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"antigravity 无法获取登录链接\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1036",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1036",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1785",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"主负责人们你们好!非常喜欢你们的作品,给我的日常工作带来了巨大的帮助!最近项目是被其他提交者们刷年底开源kpi了吗?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1000",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1000",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1788",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"No Image Generation Models Available After Gemini CLI Setup\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1207",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1207",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1791",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"Does CLIProxyAPI support Google Antigravity OAuth?\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#979",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/979",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1797",
+ "theme": "error-handling-retries",
+ "title": "Add robust stream/non-stream parity tests for \"目前所有凭证完好,其他模型都能请求成功,除了Gemini3.0Pro,报429\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#909",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/909",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1802",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"antigravity and gemini cli duplicated model names\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#882",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/882",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1808",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"代理的codex 404\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#813",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/813",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1809",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"Feature Request: Priority-based Auth Selection for Specific Models\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#692",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/692",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1812",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"github copilot problem\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#640",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/640",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1816",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Antigravity\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#674",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/674",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1819",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Filter OTLP telemetry from Amp VS Code hitting /api/otel/v1/metrics\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#672",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/672",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1820",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"[Feature Request] Add support for AWS Bedrock API\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#643",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/643",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1825",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"The token file was not generated.\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#555",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/555",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1828",
+ "theme": "oauth-and-authentication",
+ "title": "Refactor internals touched by \"gemini cli接入后,可以正常调用所属大模型;Antigravity通过OAuth成功认证接入后,无法调用所属的模型\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#568",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/568",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1830",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"Where does it take my limits from when using \"gemini-3-pro-preview\" model?\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#540",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/540",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1836",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"支持一下https://gemini.google.com/app\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#469",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/469",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1839",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"[Suggestion] Add ingress rate limiting and 403 circuit breaker for /v1/messages\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#651",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/651",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1841",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"[Feature Request] Dynamic Model Mapping \u0026 Custom Parameter Injection (e.g., iflow /tab)\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#527",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/527",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1847",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Feature: Add tier-based provider prioritization\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#526",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/526",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1853",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Questions About Accessing the New Model\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#267",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/267",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1855",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"Question about connecting to AI Studio\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#276",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/276",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1857",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"agentrouter problem\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#229",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/229",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1864",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"Feature Request: OAuth Aliases \u0026 Multiple Aliases\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#523",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/523",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1865",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"No Auth Status\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#521",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/521",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1866",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Support `variant` parameter as fallback for `reasoning_effort` in codex models\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#258",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/258",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1869",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"Codex support\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#253",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/253",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1870",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Bug thinking\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#251",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/251",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1871",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"fix(cline): add grantType to token refresh and extension headers\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#246",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/246",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1872",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"fix(cline): add grantType to token refresh and extension headers\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#245",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/245",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1874",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"Add AMP auth as Kiro\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#232",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/232",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1875",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"[Bug] Unable to disable default kiro model aliases; configuration persists in memory after deletion\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#222",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/222",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1876",
+ "theme": "general-polish",
+ "title": "Extend docs for \"kiro账号被封\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#221",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/221",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1879",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Add support for proxying models from kilocode CLI\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#213",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/213",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1880",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"[Bug] Kiro 与 Ampcode 的 Bash 工具参数不兼容\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#210",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/210",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1882",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#206",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/206",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1883",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"GitHub Copilot CLI 使用方法\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#202",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/202",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1887",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Why no opus 4.6 on github copilot auth\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#196",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/196",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1890",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Claude thought_signature forwarded to Gemini causes Base64 decode error\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#178",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/178",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1895",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"fix(kiro): handle empty content in messages to prevent Bad Request errors\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#163",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/163",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1896",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"在配置文件中支持为所有 OAuth 渠道自定义上游 URL\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#158",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/158",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1901",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"[Bug]进一步完善 openai兼容模式对 claude 模型的支持(完善 协议格式转换 )\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#145",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/145",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1902",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"完善 claude openai兼容渠道的格式转换\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#142",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/142",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1904",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"kiro idc登录需要手动刷新状态\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#136",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/136",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1905",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"[Bug Fix] 修复 Kiro 的Claude模型非流式请求 output_tokens 为 0 导致的用量统计缺失\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#134",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/134",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1910",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"Error 403\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#125",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/125",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1912",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"enterprise 账号 Kiro不是很稳定,很容易就403不可用了\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#118",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/118",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1913",
+ "theme": "oauth-and-authentication",
+ "title": "Operationalize \"-kiro-aws-login 登录后一直封号\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#115",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/115",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1915",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"Antigravity authentication failed\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#111",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/111",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1917",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"日志中,一直打印auth file changed (WRITE)\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#105",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/105",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1918",
+ "theme": "oauth-and-authentication",
+ "title": "Refactor internals touched by \"登录incognito参数无效\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#102",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/102",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1921",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Kiro currently has no authentication available\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#96",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/96",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1923",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"Feature: Add Veo Video Generation Support (Similar to Image Generation)\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#94",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/94",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1924",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"Bug: Kiro/BuilderId tokens can collide when email/profile_arn are empty; refresh token lifecycle not handled\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#90",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/90",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1925",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"[Bug] Amazon Q endpoint returns HTTP 400 ValidationException (wrong CLI/KIRO_CLI origin)\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#89",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/89",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1927",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"Cursor Issue\" across supported providers.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#86",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/86",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1928",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Feature request: Configurable HTTP request timeout for Extended Thinking models\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#84",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/84",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1929",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"kiro请求偶尔报错event stream fatal\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#83",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/83",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1931",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"[建议] 技术大佬考虑可以有机会新增一堆逆向平台\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#79",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/79",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1933",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"kiro请求的数据好像一大就会出错,导致cc写入文件失败\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#77",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/77",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1934",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"[Bug] Kiro multi-account support broken - auth file overwritten on re-login\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#76",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/76",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1938",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"How to use KIRO with IAM?\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#56",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/56",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1939",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"[Bug] Models from Codex (openai) are not accessible when Copilot is added\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#43",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/43",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1940",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"model gpt-5.1-codex-mini is not accessible via the /chat/completions endpoint\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#41",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/41",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1944",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"lack of thinking signature in kiro's non-stream response cause incompatibility with some ai clients (specifically cherry studio)\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#27",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/27",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1945",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"I did not find the Kiro entry in the Web UI\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#26",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/26",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1946",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Kiro (AWS CodeWhisperer) - Stream error, status: 400\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "S",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#7",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/7",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0003",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose dev profile with HMR-style reload, config watcher, and explicit `cliproxy refresh` command.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "strategy",
+ "source_repo": "cross-repo",
+ "source_ref": "synthesis",
+ "source_url": "",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0004",
+ "theme": "docs-quickstarts",
+ "title": "Publish provider-specific 5-minute quickstarts with auth + model selection + sanity-check commands.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "strategy",
+ "source_repo": "cross-repo",
+ "source_ref": "synthesis",
+ "source_url": "",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0005",
+ "theme": "docs-quickstarts",
+ "title": "Add troubleshooting matrix for auth, model mapping, thinking normalization, stream parsing, and retry semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "strategy",
+ "source_repo": "cross-repo",
+ "source_ref": "synthesis",
+ "source_url": "",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0006",
+ "theme": "cli-ux-dx",
+ "title": "Ship interactive setup wizard and `doctor --fix` with machine-readable JSON output and deterministic remediation.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "strategy",
+ "source_repo": "cross-repo",
+ "source_ref": "synthesis",
+ "source_url": "",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0008",
+ "theme": "testing-and-quality",
+ "title": "Add dedicated reasoning controls tests (`variant`, `reasoning_effort`, `reasoning.effort`, suffix forms).",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "strategy",
+ "source_repo": "cross-repo",
+ "source_ref": "synthesis",
+ "source_url": "",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0019",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"failed to save config: open /CLIProxyAPI/config.yaml: read-only file system\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#201",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/201",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0023",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"why no kiro in dashboard\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#183",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/183",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0029",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"kiro反代的Write工具json截断问题,返回的文件路径经常是错误的\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#164",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/164",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0038",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Kimi For Coding Support / 请求为 Kimi 添加编程支持\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#141",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/141",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0046",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Gemini3无法生图\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#122",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/122",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0057",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"GitHub Copilot Model Call Failure\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#99",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/99",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0058",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Feature: Add Veo Video Generation Support (Similar to Image Generation)\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#94",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/94",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0069",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"[Bug] Kiro multi-account support broken - auth file overwritten on re-login\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#76",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/76",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0076",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"GitHub Copilot models seem to be hardcoded\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#37",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/37",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0083",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"fix: add default copilot claude model aliases for oauth routing\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#256",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/256",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0085",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(kiro): stop duplicated thinking on OpenAI and preserve Claude multi-turn thinking\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#252",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/252",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0087",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"v6.8.22\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#249",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/249",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0089",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"fix(cline): add grantType to token refresh and extension headers\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#247",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/247",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0091",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat(registry): add Claude Sonnet 4.6 model definitions\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#243",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/243",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0092",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Improve Copilot provider based on ericc-ch/copilot-api comparison\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#242",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/242",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0095",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Fix Copilot 0x model incorrectly consuming premium requests\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#238",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/238",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0097",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"fix: add proxy_ prefix handling for tool_reference content blocks\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#236",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/236",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0098",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix(codex): handle function_call_arguments streaming for both spark and non-spark models\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#235",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/235",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0099",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"Add Kilo Code provider with dynamic model fetching\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#234",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/234",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0100",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Fix Copilot codex model Responses API translation for Claude Code\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#233",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/233",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0101",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat(models): add Thinking support to GitHub Copilot models\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#231",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/231",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0102",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(copilot): forward Claude-format tools to Copilot Responses API\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#230",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/230",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0103",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"fix: preserve explicitly deleted kiro aliases across config reload\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#229",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/229",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0104",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"fix(antigravity): add warn-level logging to silent failure paths in FetchAntigravityModels\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#228",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/228",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0106",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"refactor(kiro): Kiro Web Search Logic \u0026 Executor Alignment\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#226",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/226",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0108",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"fix(kiro): prepend placeholder user message when conversation starts with assistant role\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#224",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/224",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0109",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"fix(kiro): prepend placeholder user message when conversation starts with assistant role\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#223",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/223",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0113",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"fix(auth): strip model suffix in GitHub Copilot executor before upstream call\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#214",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/214",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0114",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix(kiro): filter orphaned tool_results from compacted conversations\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#212",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/212",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0115",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"fix(kiro): fully implement Kiro web search tool via MCP integration\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#211",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/211",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0116",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"feat(config): add default Kiro model aliases for standard Claude model names\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#209",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/209",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0118",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"fix(translator): fix nullable type arrays breaking Gemini/Antigravity API\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#205",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/205",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0119",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"v6.8.7\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#204",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/204",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0121",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"feat: add Claude Opus 4.6 to GitHub Copilot models\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#199",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/199",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0124",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"fix: replace assistant placeholder text to prevent model parroting\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#194",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/194",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0125",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"Add management OAuth quota endpoints\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#193",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/193",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0127",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"feat(kiro): add contextUsageEvent handler\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#191",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/191",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0130",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"Codex executor: bump client headers for GPT-5.3 compatibility\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#188",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/188",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0131",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Fix Codex gpt-5.3-codex routing by normalizing backend model\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#187",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/187",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0133",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"v6.7.48\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#185",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/185",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0135",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Add Kimi (Moonshot AI) provider support\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#182",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/182",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0136",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(kiro): handle tool_use in content array for compaction requests\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#181",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/181",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0137",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Add Kimi (Moonshot AI) provider support\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#180",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/180",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0138",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"v6.7.45\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#176",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/176",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0139",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"fix(kiro): Rework JSON Truncation Handling with SOFT_LIMIT_REACHED\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#175",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/175",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0141",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"修复:docker镜像上传时用户名使用变量并增加手动构建,修复OAuth 排除列表与OAuth 模型别名中kiro无法获取模型问题\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#173",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/173",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0142",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"fix(kiro): prioritize email for filename to prevent collisions\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#172",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/172",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0144",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"fix(logging): expand tilde in auth-dir path for log directory\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#168",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/168",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0145",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix: add copilot- prefix to GitHub Copilot model IDs to prevent naming collisions\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#167",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/167",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0146",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"feat: add .air.toml configuration file and update .gitignore for build artifacts\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#166",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/166",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0149",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"fix(kiro): filter web search tool\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#159",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/159",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0150",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix(kiro): Support token extraction from Metadata for file-based authentication\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#157",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/157",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0151",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"fix(kiro): Do not use OIDC region for API endpoint\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#156",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/156",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0152",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat(kiro): switch to Amazon Q endpoint as primary\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#155",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/155",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0153",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"v6.7.32\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#154",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/154",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0155",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"feat(kiro): Add dynamic region support for API endpoints\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#152",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/152",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0156",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"fix: Use Firefox TLS fingerprint for Claude OAuth to bypass Cloudflare\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#151",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/151",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0157",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"fix: handle Write tool truncation when content exceeds API limits\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#150",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/150",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0158",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix: explicitly check built-in tool types to prevent proxy_ prefix\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#148",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/148",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0159",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"fix: handle zero output_tokens for kiro non-streaming requests\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#144",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/144",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0161",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"fix: support github-copilot provider in AccountInfo logging\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#140",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/140",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0164",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"fix: case-insensitive auth_method comparison for IDC tokens\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#137",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/137",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0168",
+ "theme": "oauth-and-authentication",
+ "title": "Refactor internals touched by \"Bien/validate auth files\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#127",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/127",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0170",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(kiro): always attempt token refresh on 401 before checking retry …\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#124",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/124",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0171",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"v6.7.20\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#123",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/123",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0173",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"fix(auth): normalize Kiro authMethod to lowercase on token import\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#120",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/120",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0174",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"支持Kiro sso idc\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#119",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/119",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0182",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"fix(codex): drop unsupported responses metadata\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#106",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/106",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0184",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat(openai): responses API support for GitHub Copilot provider\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#103",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/103",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0187",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat(kiro): 实现动态工具压缩功能\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#95",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/95",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0188",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"feat(config): add github-copilot support to oauth-model-mappings and oauth-excluded-models\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#93",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/93",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0190",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"v6.6.93\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#91",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/91",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0192",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"feat(config): add configurable request-timeout for upstream provider requests\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#85",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/85",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0193",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"feat(kiro): add OAuth model name mappings support for Kiro\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#82",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/82",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0196",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"feat: Add provided_by field to /v1/models response\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#74",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/74",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0203",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix(openai): add index field to image response for LiteLLM compatibility\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#63",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/63",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0204",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"v6.6.50\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#62",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/62",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0205",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"fix(kiro): Handle tool results correctly in OpenAI format translation\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#61",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/61",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0207",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"v6.6.50\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#59",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/59",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0209",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat: add AWS Identity Center (IDC) authentication support\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#57",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/57",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0211",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"add missing Kiro config synthesis\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#54",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/54",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0212",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"docs: operations guide + config examples\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#53",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/53",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0213",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"fix(auth): secure token persistence + git-repo warning\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#52",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/52",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0214",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"fix(api): improve streaming bootstrap resilience\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#51",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/51",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0215",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"feat(routing): add fill-first credential selection strategy\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#50",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/50",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0216",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"feat(oauth): harden provider flows + oauthhttp + oauth proxy override\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#49",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/49",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0217",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"feat(kiro): 新增授权码登录流程,优化邮箱获取与官方 Thinking 模式解析 预支持\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#42",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/42",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0221",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Add GPT-5.2 model support for GitHub Copilot\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#36",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/36",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0224",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"feat: enhance thinking mode support for Kiro translator\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#32",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/32",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0227",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"fix(kiro): remove the extra quotation marks from the protocol handler\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#28",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/28",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0228",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix(kiro): Always parse thinking tags from Kiro API responses\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#25",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/25",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0229",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"feat(kiro): Major Refactoring + OpenAI Translator Implementation + Streaming Fixes\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#24",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/24",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0230",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"v6.6.9\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#23",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/23",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0231",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat(kiro): enhance thinking support and fix truncation issues\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#22",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/22",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0232",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"v6.6.6\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#21",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/21",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0233",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"feat(kiro): 支持思考模型 (Thinking Mode) 并通过多配额故障转移增强稳定性\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#20",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/20",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0235",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Kiro Executor Stability and API Compatibility Improvements\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#18",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/18",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0238",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix kiro cannot refresh the token\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#15",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/15",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0242",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"fix: handle unexpected 'content_block_start' event order (fixes #4)\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#11",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/11",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0246",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"Feature/copilot oauth support\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#6",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/6",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0247",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Sync\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#5",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/5",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0253",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Does CLIProxyAPIPlus support Kiro multi-account rotation with load balancing?\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "discussion#73",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/discussions/73",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0261",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Qwen Oauth fails\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1658",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1658",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0266",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Gemini API integration: incorrect renaming of 'parameters' to 'parametersJsonSchema'\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1649",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1649",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0276",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Please add support for Claude Sonnet 4.6\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1622",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1622",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0285",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"速速支持qwen code的qwen3.5\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1603",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1603",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0290",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"()强制思考会在2m左右时返回500错误\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1591",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1591",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0299",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"希望能加一个一键清理失效的认证文件功能\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1580",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1580",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0304",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Reasoning Error\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1572",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1572",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0319",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"[Claude code] ENABLE_TOOL_SEARCH - MCP not in available tools 400\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1547",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1547",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0322",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"删除iflow提供商的过时模型\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1544",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1544",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0342",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"[BUG] 反重力 Opus-4.5 在 OpenCode 上搭配 DCP 插件使用时会报错\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1507",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1507",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0345",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"[BUG] sdkaccess.RegisterProvider 逻辑被 syncInlineAccessProvider 破坏\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1503",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1503",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0348",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"After logging in with iFlowOAuth, most models cannot be used, only non-CLI models can be used.\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1499",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1499",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0361",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Roo Code v3.47.0 cannot make Gemini API calls anymore\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1476",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1476",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0368",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"为啥openai的端点可以添加多个密钥,但是a社的端点不能添加\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1457",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1457",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0377",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"The requested model 'gpt-5.3-codex' does not exist.\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1441",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1441",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0380",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"iflow kimi-k2.5 无法正常统计消耗的token数,一直是0\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1437",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1437",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0399",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"■ stream disconnected before completion: stream closed before response.completed\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1407",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1407",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0406",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Vertex AI global 区域端点 URL 格式错误,导致无法访问 Gemini 3 Preview 模型\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1395",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1395",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0414",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"[Feature request] Support nested object parameter mapping in payload config\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1384",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1384",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0418",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Gemini 3 Flash includeThoughts参数不生效了\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1378",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1378",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0435",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"400 Bad Request when reasoning_effort=\"xhigh\" with kimi k2.5 (OpenAI-compatible API)\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1307",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1307",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0437",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"CLI Proxy API 版本: v6.7.28,OAuth 模型别名里的antigravity项目无法被删除。\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1305",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1305",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0456",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Tool Error on Antigravity Gemini 3 Flash\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1269",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1269",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0460",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"AMP CLI not working\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1264",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1264",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0464",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Anthropic via OAuth can not callback URL\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1256",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1256",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0475",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Feature Request:Add support for separate proxy configuration with credentials\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1236",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1236",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0483",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"tool_use_error InputValidationError: EnterPlanMode failed due to the following issue: An unexpected parameter `reason` was provided\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1215",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1215",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0494",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"认证失败: Failed to exchange token\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1186",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1186",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0506",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"[Feature] 添加Github Copilot 的OAuth\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1159",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1159",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0513",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"OpenAI 兼容模型请求失败问题\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1149",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1149",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0522",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"API Error: 400是怎么回事,之前一直能用\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1133",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1133",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0529",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Error code: 400 - {'detail': 'Unsupported parameter: user'}\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1119",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1119",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0532",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"该凭证暂无可用模型,这是被封号了的意思吗\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1111",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1111",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0551",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"修改报错HTTP Status Code\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1082",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1082",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0552",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"反重力2api无法使用工具\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1080",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1080",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0570",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"6.7.3报错 claude和cherry 都报错,是配置问题吗?还是模型换名了unknown provider for model gemini-claude-opus-4-\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1056",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1056",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0575",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"【建议】持久化储存使用统计\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1050",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1050",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0580",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"OpenAI-compatible assistant content arrays dropped in conversion, causing repeated replies\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1043",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1043",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0589",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"额度获取失败:Gemini CLI 凭证缺少 Project ID\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1032",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1032",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0598",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"额度的消耗怎么做到平均分配和限制最多使用量呢?\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1021",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1021",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0608",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"iFlow token刷新失败\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1007",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1007",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0609",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix(codex): Codex 流错误格式不符合 OpenAI Responses API 规范导致客户端解析失败\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1006",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1006",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0621",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"`tool_use` ids were found without `tool_result` blocks immediately\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#989",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/989",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0627",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"400 Error: Unsupported max_tokens Parameter When Using OpenAI Base URL\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#983",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/983",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0638",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"登陆后白屏\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#965",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/965",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0644",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"【bug】三方兼容open ai接口 测试会报这个,如何解决呢?\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#956",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/956",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0665",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"配置自定义提供商的时候怎么给相同的baseurl一次配置多个API Token呢?\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#927",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/927",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0667",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"iFlow 登录失败\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#923",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/923",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0684",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"auth_unavailable: no auth available\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#902",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/902",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0690",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"增加qodercli\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#889",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/889",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0696",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix(antigravity): Streaming finish_reason 'tool_calls' overwritten by 'stop' - breaks Claude Code tool detection\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#876",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/876",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0703",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"代理 iflow 模型服务的时候频繁出现重复调用同一个请求的情况。一直循环\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#856",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/856",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0713",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"[Bug] Antigravity countTokens ignores tools field - always returns content-only token count\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#840",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/840",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0722",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"[FQ]增加telegram bot集成和更多管理API命令刷新Providers周期额度\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#820",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/820",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0725",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"iFlow account error show on terminal\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#815",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/815",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0736",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"使用上游提供的 Gemini API 和 URL 获取到的模型名称不对应\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#791",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/791",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0741",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"[功能请求] 新增联网gemini 联网模型\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#779",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/779",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0754",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"[Bug] Invalid request error when using thinking with multi-turn conversations\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#746",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/746",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0759",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Claude Code CLI's status line shows zero tokens\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#740",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/740",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0760",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Tool calls not emitted after thinking blocks\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#739",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/739",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0779",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Feature: able to show the remaining quota of antigravity and gemini cli\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#713",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/713",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0783",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"claude code 的指令/cotnext 裡token 計算不正確\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#709",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/709",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0798",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Feature: Persist stats to disk (Docker-friendly) instead of in-memory only\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#681",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/681",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0805",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Support Trae\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#666",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/666",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0812",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"希望能支持 GitHub Copilot\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#649",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/649",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0817",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Large prompt failures w/ Claude Code vs Codex routes (gpt-5.2): cloudcode 'Prompt is too long' + codex SSE missing response.completed\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#636",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/636",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0828",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"SDK Internal Package Dependency Issue\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#607",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/607",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0836",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"bug: Streaming not working for Gemini 3 models (Flash/Pro Preview) via Gemini CLI/Antigravity\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#593",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/593",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0841",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"[Bug] Gemini API rejects \"optional\" field in tool parameters\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#583",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/583",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0851",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"stackTrace.format error in error response handling\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#559",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/559",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0855",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Gemini3配置了thinkingConfig无效,模型调用名称被改为了gemini-3-pro-high\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#550",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/550",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0870",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"[Feature Request] Global Alias\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#509",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/509",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0874",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"bug: antigravity oauth callback fails on windows due to hard-coded port 51121\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#499",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/499",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0893",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Antigravity API reports API Error: 400 with Claude Code\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#463",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/463",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0897",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"iFlow Cookie 登录流程BUG\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#445",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/445",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0899",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"AGY Claude models\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#442",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/442",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0912",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Bug: Claude proxy models fail with tools - `tools.0.custom.input_schema: Field required`\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#415",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/415",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0920",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Gemini responses contain non-standard OpenAI fields causing parser failures\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#400",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/400",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0928",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"1006怎么处理\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#369",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/369",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0931",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Frequent 500 auth_unavailable and Codex CLI models disappearing from /v1/models\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#365",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/365",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0943",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Add support for anthropic-beta header for Claude thinking models with tool use\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#344",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/344",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0950",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Support for JSON schema / structured output\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#335",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/335",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0957",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"undefined is not an object (evaluating 'T.match')\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#317",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/317",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0966",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"可以让不同的提供商分别设置代理吗?\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#304",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/304",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0988",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Gemini CLI Oauth with Claude Code\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#263",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/263",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0989",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Gemini cli使用不了\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#262",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/262",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1007",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"[error] [iflow_executor.go:273] iflow executor: token refresh failed: iflow token: missing access token in response\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#239",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/239",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1012",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"添加文件时重复添加\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#233",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/233",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1015",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"[Suggestion] Add suport iFlow CLI MiniMax-M2\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#223",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/223",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1026",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"docker compose还会继续维护吗\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#201",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/201",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1035",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"[Request] Add support for Gemini Embeddings (AI Studio API key) and optional multi-key rotation\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#179",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/179",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1044",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"No Auth Status\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#168",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/168",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1045",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Major Bug in transforming anthropic request to openai compatible request\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#167",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/167",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1058",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"CC 使用 gpt-5-codex 模型几乎没有走缓存\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#148",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/148",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1064",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"代理在生成函数调用请求时使用了 Gemini API 不支持的 \"const\" 字段\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#136",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/136",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1073",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Custom models for AI Proviers\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#122",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/122",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1081",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Homebrew 安装的 CLIProxyAPI 如何设置配置文件?\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#106",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/106",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1083",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"gemini能否适配思考预算后缀?\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#103",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/103",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1102",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Bug: 500 Invalid resource field value in the request on OpenAI completion for gemini-cli\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#75",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/75",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1104",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Support audio for gemini-cli\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#73",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/73",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1121",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"v1beta接口报错Please use a valid role: user, model.\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#17",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/17",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1127",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Unexpected API Response: The language model did not provide any assistant messages. This may indicate an issue with the API or the model's output.\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#9",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/9",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1131",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Error walking auth directory\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#4",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/4",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1134",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"feat: add sticky-round-robin routing strategy\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1673",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1673",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1135",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"fix(responses): prevent JSON tree corruption from literal control chars in function output\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1672",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1672",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1136",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"fix(codex): honor usage_limit_reached resets_at for retry_after\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1668",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1668",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1137",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"feat: add codex responses compatibility for compaction payloads\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1664",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1664",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1138",
+ "theme": "oauth-and-authentication",
+ "title": "Refactor internals touched by \"feat: implement credential-based round-robin for gemini-cli\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1663",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1663",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1139",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat: add cache-user-id toggle for Claude cloaking\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1662",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1662",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1140",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat(gemini): add gemini-3.1-pro-preview model definitions\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1661",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1661",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1141",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"fix(claude): use api.anthropic.com for OAuth token exchange\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1660",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1660",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1142",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Pass file input from /chat/completions and /responses to codex and claude\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1654",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1654",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1143",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"fix(translator): handle tool call arguments in codex→claude streaming translator\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1652",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1652",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1144",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"fix(iflow): improve 406 handling, stream stability, and auth availability\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1650",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1650",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1148",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Fix usage convertation from gemini response to openai format\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1643",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1643",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1149",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"Add strict structured-output mappings for Claude, Gemini, and Codex\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1642",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1642",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1150",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"fix(codex): only expose gpt-5.3-codex-spark for Pro OAuth\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1639",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1639",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1152",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"fix: handle tool call argument streaming in Codex→OpenAI translator\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1635",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1635",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1155",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"fix: clamp reasoning_effort to valid OpenAI-format values\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1627",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1627",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1156",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat: passthrough upstream response headers to clients\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1626",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1626",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1157",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"feat: add per-auth tool_prefix_disabled option\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1625",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1625",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1159",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Fix empty usage in /v1/completions\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1618",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1618",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1160",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix(codex): normalize structured output schema for strict validation\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1616",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1616",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1162",
+ "theme": "provider-model-registry",
+ "title": "Harden \"fix: round-robin, fallback chains, cross-provider failover\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1613",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1613",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1164",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"fix: add proxy_ prefix handling for tool_reference content blocks\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1608",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1608",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1167",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"fix: model ID normalization and quota fallback logic\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1604",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1604",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1168",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"feat(access): add wildcard prefix matching for API keys\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1601",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1601",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1169",
+ "theme": "oauth-and-authentication",
+ "title": "Prepare safe rollout for \"feat(tui): add a terminal-based management UI (TUI)\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1600",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1600",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1170",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix(auth): don't cool down keys on count_tokens 4xx\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1599",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1599",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1173",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feature(codex-spark): Adds GPT 5.3 Codex Spark model and updates Codex client version\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1581",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1581",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1174",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Fix duplicate/empty tool_use blocks in OpenAI-\u003eClaude streaming translation\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1579",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1579",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1175",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"fix(antigravity): align Client-Metadata platform/identity with Antigravity requests\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1578",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1578",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1178",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Add CLIProxyAPI Dashboard to 'Who is with us?' section\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1568",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1568",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1180",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"feat(antigravity/claude): add web search support\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1565",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1565",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1181",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat(gemini-cli): add Google One login and improve auto-discovery\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1543",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1543",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1183",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"feat(translator): OpenAI web search annotations passthrough\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1539",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1539",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1184",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"feat: per-account excluded_models \u0026 priority support for OAuth auth files\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1537",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1537",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1185",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"feat(thinking): unify Claude adaptive reasoning behavior\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1534",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1534",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1186",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"feat(translator): grounding metadata + Claude web_search citation passthrough\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1532",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1532",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1187",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"fix: handle plain string content in OpenAI Responses → Gemini translation\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1529",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1529",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1188",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"feat(auth): add post-auth hook mechanism\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1527",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1527",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1189",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix(codex): remove unsupported 'user' field from /v1/responses payload\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1523",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1523",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1190",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feature(proxy): Adds special handling for client cancellations in proxy error handler\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1522",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1522",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1191",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat(translator): support Claude thinking type adaptive\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1519",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1519",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1193",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"feat: add adaptive thinking type and output_config.effort support\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1516",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1516",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1194",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"fix(translator): fix nullable type arrays breaking Gemini/Antigravity API\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1511",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1511",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1195",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"fix(amp): rewrite response.model in Responses API SSE events\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1506",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1506",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1196",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat(executor): add session ID and HMAC-SHA256 signature generation for iFlow API requests\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1502",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1502",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1197",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix(management): ensure management.html is available synchronously and improve asset sync handling\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1492",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1492",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1199",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"refactor(management): streamline control panel management and implement sync throttling\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1479",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1479",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1201",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"fix: migrate claude-opus-4-5 to 4-6 aliases \u0026 strip thinking blocks from non-thinking responses\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1473",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1473",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1202",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Fix Kimi tool-call payload normalization for reasoning_content\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1467",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1467",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1203",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"fix(kimi): add OAuth model-alias channel support and cover OAuth excl…\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1465",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1465",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1205",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"fix(auth): return HTTP 429 instead of 500 for auth_unavailable error\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1460",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1460",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1206",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"fix: custom antigravity proxy prompt \u0026 respect disable-cooling for all errors\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1454",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1454",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1207",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Add Kimi (Moonshot AI) provider support\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1450",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1450",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1208",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Add Kimi (Moonshot AI) provider support\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1449",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1449",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1212",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"feat(antigravity): add optional web_search tool translation for Claude API\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1436",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1436",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1213",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"fix: Enable extended thinking support for Claude Haiku 4.5\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1435",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1435",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1215",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"fix(gemini): support snake_case thinking config fields from Python SDK\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1429",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1429",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1216",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Feature/rovo integration and repo consolidation\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1428",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1428",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1217",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"fix(cliproxy): update auth before model registration\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1425",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1425",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1218",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"feat(watcher): log auth field changes on reload\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1423",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1423",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1219",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat(gemini-cli): support image content in Claude request conversion\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1422",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1422",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1220",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"feat(fallback): add model fallback support for automatic failover\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1421",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1421",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1223",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"feat(logging): implement JSON structured logging with SSE content agg…\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1402",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1402",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1224",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(translator): compare model group instead of full model name for signature validation\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1397",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1397",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1225",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"fix(logging): expand tilde in auth-dir path for log directory\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1396",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1396",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1227",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"fix(auth): 400 invalid_request_error 立即返回不再重试\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1390",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1390",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1228",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix(auth): normalize model key for thinking suffix in selectors\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1386",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1386",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1231",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat: enhanced error logging with response body limits and custom features\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1377",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1377",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1235",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat(logging): make error-logs-max-files configurable\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1368",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1368",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1237",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"fix(config): enable gemini-3-pro-preview by removing forced alias\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1323",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1323",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1238",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"feat(kiro): Add AWS Kiro provider support\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1320",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1320",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1239",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"feat(kiro): Add AWS Kiro provider support\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1319",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1319",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1240",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"feat(translator): add code_execution and url_context tool passthrough\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1317",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1317",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1241",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feature(ampcode): Improves AMP model mapping with alias support\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1314",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1314",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1242",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat(registry): add GetAllStaticModels helper function\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1313",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1313",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1244",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"fix(gemini): Removes unsupported extension fields\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1311",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1311",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1245",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"feat: Kimi Code (kimi-for-coding) support for Droid CLI via Anthropic…\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1310",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1310",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1246",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"fix(antigravity): resolve model aliases to support gemini-3-pro-preview\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1308",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1308",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1247",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"feat(quota): add automatic quota monitoring for Antigravity accounts\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1303",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1303",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1249",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"fix(logging): add API response timestamp and fix request timestamp timing\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1300",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1300",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1250",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"fix(translator): restore usageMetadata in Gemini responses from Antigravity\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1298",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1298",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1253",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"fix: skip empty text parts and messages to avoid Gemini API error\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1294",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1294",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1254",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix: handle missing usage in streaming responses from OpenAI-compatible providers\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1279",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1279",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1258",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat(logging): add timestamp to API RESPONSE section in error logs\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1265",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1265",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1260",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"feat(auth): add credential-master mode for follower nodes\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1258",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1258",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1262",
+ "theme": "provider-model-registry",
+ "title": "Harden \"feat: 凭证失效时自动禁用\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1250",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1250",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1263",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"feat: add credential-peers broadcast for multi-instance token sync\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1249",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1249",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1264",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"feat(openai): add responses/compact support\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1248",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1248",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1265",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat: add OpenAI-compatible /v1/embeddings endpoint with API key load balancing\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1241",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1241",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1266",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"feat: 管理 API 自动删除支持\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1237",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1237",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1267",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"feat: add usage statistics persistence\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1235",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1235",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1268",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix: prevent Event Loop with ExpectedWriteTracker (Issue #833 Part 2)\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1234",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1234",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1270",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix: persist access_token for Google OAuth providers (fixes #833)\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1232",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1232",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1273",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat: add OpenAI-compatible /v1/embeddings endpoint\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1229",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1229",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1274",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Add request_id to error logs and extract error messages\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1225",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1225",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1275",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat(routing): native provider priority with automatic fallback\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1220",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1220",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1276",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"docs: 新增 CPA-XXX 社区面板项目\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1216",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1216",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1277",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"feat(auth): add health check endpoint for auth file models\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1208",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1208",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1278",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix(antigravity): decouple thinking config translation from history validation\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1198",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1198",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1281",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"feat: 实现多代理池支持以降低单IP请求频率限制\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1188",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1188",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1282",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Refactor authentication handling for Antigravity, Claude, Codex, and Gemini\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1185",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1185",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1284",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"fix(claude): skip built-in tools in OAuth tool prefix\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1179",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1179",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1285",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"fix: context cancellation check in conductor.go\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1175",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1175",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1287",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"refactor(auth): remove unused provider execution helpers\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1171",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1171",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1288",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat: optimization enable/disable auth files\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1170",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1170",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1290",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"feat(thinking): add config-based reasoning level overrides\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1156",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1156",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1291",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"fix(thinking): handle Cerebras GLM reasoning fields\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1151",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1151",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1292",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Add switch\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1147",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1147",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1293",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"fix(antigravity): add web search tool support for Claude/OpenAI format requests\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1142",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1142",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1294",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"fix(auth): handle quota cooldown in retry logic for transient errors\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1140",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1140",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1295",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"fix(translator): ensure system message is only added if it contains c…\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1137",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1137",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1297",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"Fix Gemini tool calling for Antigravity (malformed_function_call)\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1131",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1131",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1302",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"fix(translator): extract system messages from input in codex response…\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1121",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1121",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1303",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"fix(translator): enhance signature cache clearing logic and update test cases with model name\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1117",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1117",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1305",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"feat(wakeup): add auto-wakeup scheduling system\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1114",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1114",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1307",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"fix(validate): enhance level clamping logic for provider family conversions\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1105",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1105",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1308",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"feat(vertex): add Imagen image generation model support\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1103",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1103",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1309",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat(management): add PATCH endpoint to enable/disable auth files\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1102",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1102",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1311",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"refactor(claude): move max_tokens constraint enforcement to Apply method\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1099",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1099",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1312",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"feat(translator): report cached token usage in Claude output\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1096",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1096",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1313",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"feat: add self rate limiting for OAuth providers\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1091",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1091",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1315",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"fix(responses): finalize stream on [DONE] without finish_reason\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1087",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1087",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1316",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Refine thinking validation and cross‑provider payload conversion\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1081",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1081",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1318",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"feat: add SQLite-based usage statistics persistence\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1070",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1070",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1320",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"refactor(auth): simplify filename prefixes for qwen and iflow tokens\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1067",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1067",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1325",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"feat(docker): use environment variables for volume paths\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1018",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1018",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1326",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(antigravity): prevent corrupted thought signature when switching models\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#994",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/994",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1327",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"feat: add control switches for api provider and auth files\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#993",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/993",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1330",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat(config): add github-copilot to oauth-model-mappings supported channels\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#967",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/967",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1331",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"Add Candidate count (OpenAI 'n' parameter) support\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#961",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/961",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1334",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Resolve memory leaks causing OOM in k8s deployment\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#947",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/947",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1335",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"fix(executor): rename blocked tool names for Claude Code OAuth\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#946",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/946",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1336",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"fix(executor): rename blocked tool names for Claude Code OAuth\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#945",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/945",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1337",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"Fix Claude OAuth tool name mapping (proxy_)\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#943",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/943",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1338",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix: Claude OAuth by prefixing tool names and merging beta headers\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#939",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/939",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1339",
+ "theme": "oauth-and-authentication",
+ "title": "Prepare safe rollout for \"refactor(logging): clean up oauth logs and debugs\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#938",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/938",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1340",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"feat: add Cursor Agent CLI provider integration\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#935",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/935",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1343",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat(websearch): add web search support for Claude Code\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#918",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/918",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1344",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"feat(websearch): add web search support for Claude Code\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#916",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/916",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1346",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"feat: Add GitHub Copilot OAuth Integration\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#900",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/900",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1349",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix(management): refresh antigravity token for api-call $TOKEN$\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#888",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/888",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1352",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"feat(codex): include plan type in auth filename\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#877",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/877",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1353",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"fix(antigravity): preserve finish_reason tool_calls across streaming chunks\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#874",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/874",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1355",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"fix(auth): persist access_token on refresh to prevent token loss\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#869",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/869",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1357",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"fix(translator): stabilize tool_call finish_reason\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#865",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/865",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1359",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"fix(auth): use backend project ID for free tier Gemini CLI OAuth users\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#861",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/861",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1360",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat: add configurable request timeout for extended thinking models\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#860",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/860",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1361",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"fix: prevent race condition in objectstore auth sync\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#859",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/859",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1362",
+ "theme": "provider-model-registry",
+ "title": "Harden \"docs: add ProxyPilot to community projects\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#858",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/858",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1363",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Management update\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#857",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/857",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1364",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"feat(translator): add developer role support for Gemini translators\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#850",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/850",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1366",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"fix(antigravity): apply schema cleaning to Gemini 3 models\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#846",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/846",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1368",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"docs: add CodMate to community projects\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#837",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/837",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1369",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"fix(auth): resolve token refresh loop and preserve ModelStates on auth reload\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#835",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/835",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1370",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix(auth): prevent infinite token refresh loop by persisting access_token\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#834",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/834",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1373",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"feat: Add session management with conversation history and provider affinity\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#829",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/829",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1375",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"feat(translator): enhance Claude-to-OpenAI conversion with thinking block and tool result handling\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#823",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/823",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1376",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"feat: Add Antigravity refresh token auth and api-call proxy endpoint\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#821",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/821",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1377",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(translator): correctly map stop_reason in response translations\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#819",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/819",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1380",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat(antigravity): add web_search support for Claude via Gemini googleSearch\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#811",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/811",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1381",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"Add Claude quota management endpoints\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#807",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/807",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1382",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"fix(translator): correctly map stop_reason in response translations\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#805",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/805",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1383",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"feat(translator): resolve invalid function name errors by sanitizing Claude tool names\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#803",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/803",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1384",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"feat(translator): fix invalid function name errors by sanitizing Claude tool names\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#802",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/802",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1386",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"fix: preserve ModelStates during auth reload/refresh and parse Antigravity retryDelay\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#799",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/799",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1387",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"refactor(executor): resolve upstream model at conductor level before execution\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#795",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/795",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1388",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix(antigravity): parse retry-after delay from 429 response body\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#787",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/787",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1389",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"feat(antigravity): add web_search support for Claude via Gemini googleSearch\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#786",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/786",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1391",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"refactor(config): rename model-name-mappings to oauth-model-mappings\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#782",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/782",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1392",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix(antigravity): inject required placeholder when properties exist w…\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#776",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/776",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1394",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat(api): add id token claims extraction for codex auth entries\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#770",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/770",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1396",
+ "theme": "websocket-and-streaming",
+ "title": "Extend docs for \"feat(amp): add per-client upstream API key mapping support\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#767",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/767",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1397",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Background Quota Refresh \u0026 Automated Token Management\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#766",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/766",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1398",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"feat: add global model aliases with cross-provider fallback\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#765",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/765",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1399",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"feat: add global model aliases with cross-provider fallback\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#764",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/764",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1400",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"feat(logging): disambiguate OAuth credential selection in debug logs\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#763",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/763",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1402",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"Merge v6.6.62 + sticky routing + quota refresh\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#760",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/760",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1403",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"docs: add ProxyPilot to community projects\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#759",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/759",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1404",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"feat: expose antigravity models via Anthropic endpoint\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#758",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/758",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1406",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat(iflow): add model-specific thinking configs for GLM-4.7 and Mini…\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#756",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/756",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1407",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"feat(iflow): add model-specific thinking configs for GLM-4.7 and MiniMax-M2.1\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#755",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/755",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1408",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"feat(executor): 为 openai-compat 添加 wire-api 配置支持\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#754",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/754",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1410",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"fix(auth): make provider rotation atomic\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#745",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/745",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1411",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix: handle nested text format and reasoning_content field\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#733",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/733",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1412",
+ "theme": "provider-model-registry",
+ "title": "Harden \"feat(ampcode): support per-request upstream key\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#728",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/728",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1415",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"refactor: extract OAuth callback handler factory to reduce code duplication\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#720",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/720",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1417",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"feat: implement automatic self-update via --update CLI flag\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#715",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/715",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1419",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"fix(translator): Prevent duplicated text in assistant messages with tool_calls\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#705",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/705",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1420",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"fix(openai): add index field to image response for LiteLLM compatibility\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#704",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/704",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1421",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix(openai): add index field to image response for LiteLLM compatibility\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#703",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/703",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1422",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"refactor(sdk/auth): rename manager.go to conductor.go\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#700",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/700",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1424",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"feat: add cached token parsing for Gemini , Antigravity API responses\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#695",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/695",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1425",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Add support for OAuth model aliases for Claude\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#693",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/693",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1426",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"docs(readme): add Cubence sponsor\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#689",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/689",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1428",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat: regex support for model-mappings\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#686",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/686",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1432",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"fix: secure token persistence\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#673",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/673",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1433",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"feat: inject token warning when Antigravity usage exceeds threshold\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#667",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/667",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1434",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"docs: add operations guide and config updates\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#665",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/665",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1435",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"fix: secure token persistence\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#664",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/664",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1437",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"feat: harden oauth flows and providers\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#662",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/662",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1438",
+ "theme": "oauth-and-authentication",
+ "title": "Refactor internals touched by \"fix: improve streaming bootstrap and forwarding\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#661",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/661",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1439",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Fix responses-format handling for chat completions(Support Cursor)\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#658",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/658",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1441",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"Fix: Use x-api-key header for Claude API instead of Authorization: Bearer\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#653",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/653",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1443",
+ "theme": "oauth-and-authentication",
+ "title": "Operationalize \"OAuth and management\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#641",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/641",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1444",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix: add gemini-3-flash-preview model definition in GetGeminiModels\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#638",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/638",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1445",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(amp): add /docs routes to proxy\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#634",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/634",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1446",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"feat(antigravity): add payload config support to Antigravity executor\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#633",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/633",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1449",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Fix/kiro config synthesis\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#624",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/624",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1450",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Remote OAuth\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#623",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/623",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1452",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Antigravity Prompt Caching Fix\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#621",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/621",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1454",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"fix(amp): add management auth skipper\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#618",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/618",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1457",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"feat(antigravity): Improve Claude model compatibility\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#611",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/611",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1462",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(amp): inject Amp token for management routes to fix thread reading and web search\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#604",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/604",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1463",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix: remove propertyNames from JSON schema for Gemini compatibility\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#602",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/602",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1464",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"fix(auth): prevent token refresh loop by ignoring timestamp fields\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#598",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/598",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1465",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"Fix/embedding features\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#596",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/596",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1467",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"fix: handle non-standard 'optional' field in JSON Schema for Gemini API\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#587",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/587",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1472",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Refactor-watcher-phase3\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#577",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/577",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1473",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"feature: Improves Antigravity(gemini-claude) JSON schema compatibility\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#575",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/575",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1474",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"refactor(watcher): extract auth synthesizer to synthesizer package\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#572",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/572",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1476",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Fix invalid thinking signature when proxying Claude via Antigravity\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#570",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/570",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1477",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Watcher Module Progressive Refactoring - Phase 1\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#569",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/569",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1479",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(translator): emit message_start on first chunk regardless of role field\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#562",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/562",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1481",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"fix: bypass KorProxy auth for Amp management routes\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#556",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/556",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1482",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix(translator): preserve built-in tools (web_search) to Responses API\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#553",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/553",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1483",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"fix(translator): preserve built-in tools (web_search) to Responses API\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#552",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/552",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1484",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Improve Request Logging Efficiency and Standardize Error Responses\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#549",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/549",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1485",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"feat(amp): require API key authentication for management routes\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#547",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/547",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1486",
+ "theme": "websocket-and-streaming",
+ "title": "Extend docs for \"feat: add configurable transient-retry-interval for 408/5xx errors\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#545",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/545",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1487",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"feat(auth): add proxy information to debug logs\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#543",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/543",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1489",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"fix(claude): avoid reusing content_block indexes in Codex SSE\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#538",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/538",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1490",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"fix: handle malformed json in function response parsing\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#537",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/537",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1492",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"refactor(thinking): centralize reasoning effort mapping and normalize budget values\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#533",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/533",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1493",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"feat: add API endpoint to query models for auth credentials\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#531",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/531",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1494",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"fix: ensure message_start sent before content_block_start in OpenAI→Anthropic translation\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#529",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/529",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1495",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Feature/usage metrics\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#516",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/516",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1496",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(amp): flush response buffer after each streaming chunk write\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#515",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/515",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1497",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"feat(auth): add per-auth use_global_proxy configuration\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#514",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/514",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1498",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"fix(antigravity): sanitize tool JSON schemas (strip )\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#507",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/507",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1499",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"fix(thinking): map budgets to effort levels\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#505",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/505",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1500",
+ "theme": "oauth-and-authentication",
+ "title": "Standardize naming/metadata affected by \"feat(auth): add priority-based auth selection\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#504",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/504",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1501",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix(auth): prevent duplicate iflow BXAuth tokens\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#502",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/502",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1502",
+ "theme": "provider-model-registry",
+ "title": "Harden \"fix(openai-compat): prevent model alias from being overwritten\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#501",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/501",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1503",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"fix(codex): raise default reasoning effort to medium\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#500",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/500",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1504",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"fix(claude): flush Claude SSE chunks immediately\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#498",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/498",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1505",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"fix(models): add \"none\" reasoning effort level to gpt-5.2\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#494",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/494",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1507",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"fix(amp): set status on claude stream errors\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#487",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/487",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1508",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Think\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#485",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/485",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1509",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"fix: increase buffer size for stream scanners to 50MB across multiple executors\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#481",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/481",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1510",
+ "theme": "websocket-and-streaming",
+ "title": "Standardize naming/metadata affected by \"fix(claude): prevent final events when no content streamed\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#479",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/479",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1511",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"fix(translator): skip empty functionResponse in OpenAI-to-Antigravity path\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#474",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/474",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1512",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"feat: add rate limiting and circuit breaker for /v1/messages endpoint\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#473",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/473",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1513",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(gemini): normalize model listing output\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#470",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/470",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1516",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"fix(translator): preserve tool_use blocks on args parse failure\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#466",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/466",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1517",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Move thinking budget normalization from translators to executor\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#465",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/465",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1518",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat/amp-mapping-model-regex\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#464",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/464",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1520",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat: add Sequential Mode, strictly follows priority order (prioritizes higher-priority Providers).\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#459",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/459",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1523",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"feat(logging): add upstream API request/response capture to streaming logs\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#455",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/455",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1524",
+ "theme": "testing-and-quality",
+ "title": "Generalize \"feat(config): add configurable host binding for server\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#454",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/454",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1528",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"fix(gemini-cli): enhance 429 retry delay parsing\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#449",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/449",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1530",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat: add model name to GIN request logs\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#447",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/447",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1531",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"feat: add model name to GIN request logs\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#446",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/446",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1535",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"fix: prioritize model mappings over local providers for Amp CLI\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#435",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/435",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1536",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"feat: preserve thinking config for Claude models via Antigravity/Vertex AI\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#434",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/434",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1537",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix(amp): pass mapped model to gemini bridge via context\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#432",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/432",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1539",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat(amp): add response rewriter for model name substitution in responses\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#428",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/428",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1540",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"feat(kiro): add complete Kiro (AWS CodeWhisperer) integration\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#427",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/427",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1541",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat(kiro): add complete Kiro (AWS CodeWhisperer) integration\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#426",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/426",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1547",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(amp): add missing /auth/* and /api/tab/* proxy routes for AMP CLI\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#405",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/405",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1549",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"Support OpenAI responses wire API and provider query params for OpenAI-compatible upstreams\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#401",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/401",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1554",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"refactor(executor): dedupe thinking metadata helpers across Gemini executors\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#386",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/386",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1555",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"feat: add Canonical IR translator with new providers (Kiro, Cline, Ollama)\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#385",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/385",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1556",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"test(copilot): add comprehensive test coverage [5/5]\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#384",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/384",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1557",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"feat(copilot): add Gemini 3 Pro reasoning support [4/5]\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#383",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/383",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1558",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat(copilot): add Copilot request executor and model registry [3/5]\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#382",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/382",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1559",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"feat(copilot): implement GitHub Copilot authentication flow [2/5]\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#381",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/381",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1560",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"feat(copilot): add shared infrastructure and config [1/5]\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#380",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/380",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1561",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"docs: add CCS (Claude Code Switch) to projects list\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#379",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/379",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1563",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"feat(util): add -reasoning suffix support for Gemini models\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#376",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/376",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1564",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat: Add support for VertexAI compatible service\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#375",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/375",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1565",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"feat(copilot): add GitHub Copilot support and Gemini 3 Pro reasoning\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#372",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/372",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1566",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix(amp): add /threads.rss root-level route for AMP CLI\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#371",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/371",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1568",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"feat(auth): add GitHub Copilot authentication and API integration\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#362",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/362",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1569",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"fix(translator): handle non-JSON output gracefully in function call r…\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#360",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/360",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1570",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix(gemini): use thinkingLevel instead of thinkingBudget for Gemini 3…\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#359",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/359",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1571",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat(gemini): add Gemini 3 Pro Preview low/high reasoning effort mode…\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#358",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/358",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1572",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"fix(codex): estimate reasoning tokens from accumulated content when u…\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#357",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/357",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1573",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"fix(translator): add xhigh reasoning_effort support for Codex Max models\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#355",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/355",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1574",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"fix(antigravity): ensure maxOutputTokens \u003e thinkingBudget for Claude thinking models\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#348",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/348",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1577",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix(thinking): resolve OpenAI/Gemini compatibility for thinking model…\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#340",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/340",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1578",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"feat(claude): add thinking model variants and beta headers support\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#334",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/334",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1580",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Fix Antigravity Claude tools schema for Claude Code\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#327",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/327",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1581",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat(registry): add Claude 4.5 Opus model definition\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#326",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/326",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1587",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"fix some bugs\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#306",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/306",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1588",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"feat(translator): support image size and googleSearch tools\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#303",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/303",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1589",
+ "theme": "oauth-and-authentication",
+ "title": "Prepare safe rollout for \"Zhizinan1997 test\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#299",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/299",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1591",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat(translator): support xhigh thinking config level\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#294",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/294",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1592",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"feat: add Google Antigravity support\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#289",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/289",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1593",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"Fix OpenAI responses 404\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#288",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/288",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1594",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Amp CLI Integration Module\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#287",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/287",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1595",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"feat(iflow): add cookie-based authentication endpoint\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#285",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/285",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1596",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"feat: Add Amp CLI integration with OAuth fallback support\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#284",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/284",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1598",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat: enable Gemini 3 Pro Preview with OAuth support\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#280",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/280",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1599",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"feat(gemini): add support for gemini-3-pro-preview\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#279",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/279",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1602",
+ "theme": "oauth-and-authentication",
+ "title": "Harden \"feat(auth): add iFlow cookie-based authentication support\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#270",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/270",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1603",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"fix: use underscore suffix in short name mapping\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#268",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/268",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1604",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"fix(claude translator): guard tool schema properties\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#257",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/257",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1605",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"Implement Claude Web Search Support with Proper Streaming Translation\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#256",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/256",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1606",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"fix(runtime): remove gpt-5.1 minimal effort variant\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#249",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/249",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1610",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"fix(management): exclude disabled runtime-only auths from file entries\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#230",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/230",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1613",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"feat(registry): add GPT-5 Codex Mini model variants\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#225",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/225",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1614",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"Return auth info from memory\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#222",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/222",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1615",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix(translator): accept camelCase thinking config in OpenAI→Gemini\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#221",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/221",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1616",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"fix(openai/chat-completions): preserve tool_result JSON, robust quoting, strip unsupported fields\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#217",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/217",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1618",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"ci: add GitHub Action to block changes under `internal/translator` di…\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#214",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/214",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1619",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"fix: handle array format in tool_result content for Gemini API\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#209",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/209",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1621",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"fix: Correctly read and restore request body in logging middleware\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#206",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/206",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1622",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"OpenAI normalization + Responses ordering + multimodal routing/fallback (based on v6.3.4)\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#196",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/196",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1624",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Add Gemini API key endpoints\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#194",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/194",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1628",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"Feat: Add reasoning effort support for Gemini models\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#185",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/185",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1631",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"Merge my-code into main: upstream sync + conflict resolution + openspec updates\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#182",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/182",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1632",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"docs/add-haiku-4.5\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#180",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/180",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1633",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat(registry): unify Gemini models and add AI Studio set\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#177",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/177",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1634",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Add support for dynamic model providers\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#173",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/173",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1638",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"fix: preserve cooled-down models and return JSON 429 with reset time metadata\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#155",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/155",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1639",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"docs: add Subtitle Translator to projects list\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#151",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/151",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1645",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"refactor(executor): unify error handling for resource cleanup and buffer constants\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#138",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/138",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1649",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"perf: optimize Claude streaming with bufio and fix SSE parsing errors\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#126",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/126",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1653",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix(management,config,watcher): treat empty base-url as removal; improve config change logs\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#116",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/116",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1654",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"feat(managementasset): Authenticate GitHub API requests\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#114",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/114",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1656",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"fix(server): Handle empty/invalid config in cloud deploy mode\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#111",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/111",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1660",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"feat(translator): Add support for openrouter image_config\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#99",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/99",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1661",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"feat(cliproxy): Rebind auth executors on config change\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#95",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/95",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1666",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat: Implement hot-reloading for management endpoints\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#82",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/82",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1670",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix(translator): remove unsupported token limit fields for Codex Responses API\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#71",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/71",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1671",
+ "theme": "oauth-and-authentication",
+ "title": "Follow up \"Fix for the bug causing configuration to fail, and avoidance of invalid scanning of auth files.\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#70",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/70",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1672",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Implement minimal incremental updates for models and keys\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#69",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/69",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1674",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"fix(auth): Make round-robin auth selection deterministic\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#67",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/67",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1675",
+ "theme": "oauth-and-authentication",
+ "title": "Improve CLI UX around \"feat(auth): Enhance Gemini web auth with flexible input and UI\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#66",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/66",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1676",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"feat(auth): Improve Gemini web auth with email label detection\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#65",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/65",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1677",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"fix(auth): Scope unavailability checks to specific models\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#64",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/64",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1679",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"feat(auth, docs): add SDK guides and local password support for manag…\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#62",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/62",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1682",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"fix(gemini-web): Correct stream translation and reduce auth refresh lead\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#59",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/59",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1683",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"refactor(gemini-web): Remove auto-refresh, auto-close, and caching\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#58",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/58",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1684",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"feat(gemini-web): Inject fallback text for image-only flash model responses\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#57",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/57",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1686",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"fix(auth): Improve file-based auth handling and consistency\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#54",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/54",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1688",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"Add support for image generation with Gemini models through the OpenAI chat completions translator.\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#52",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/52",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1690",
+ "theme": "oauth-and-authentication",
+ "title": "Standardize naming/metadata affected by \"refactor(auth): Centralize auth file reading with snapshot preference\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#50",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/50",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1691",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix(gemini-web): ensure colon spacing in JSON output for compatibility\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#49",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/49",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1693",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"Add Cookie Snapshot and fix some bugs\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#46",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/46",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1696",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"fix: comprehensive JSON Schema sanitization for Claude to Gemini\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#43",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/43",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1697",
+ "theme": "oauth-and-authentication",
+ "title": "Add robust stream/non-stream parity tests for \"Codex CLI - setting 'store = false' to prevent the request being rejected by OpenAI\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#41",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/41",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1699",
+ "theme": "oauth-and-authentication",
+ "title": "Prepare safe rollout for \"Add SSH tunnel guidance for login fallback\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#36",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/36",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1700",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"Modify docker compose for remote image and local build\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#33",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/33",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1702",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Inject build metadata into binary during release and docker build\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#30",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/30",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1704",
+ "theme": "oauth-and-authentication",
+ "title": "Generalize \"Optimize and fix bugs for hot reloading\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#28",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/28",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1705",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"fix(openai): add tool_calls.index and finish_reason to streaming chunks\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#27",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/27",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1710",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Correct config in README.md\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1711",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Feature request: Cursor CLI support\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1466",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1466",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1725",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"I saved 10M tokens (89%) on my Claude Code sessions with a CLI proxy\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1585",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1585",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1729",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"403 error\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1563",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1563",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1740",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"antigravity用不了\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1462",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1462",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1748",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"登陆提示“登录失败: 访问被拒绝,权限不足”\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1385",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1385",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1767",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"为什么我启动antigravity的时候CLIProxyAPI会自动启动?\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1164",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1164",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1769",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"cc 使用 zai-glm-4.7 报错 body.reasoning\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1144",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1144",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1771",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"antigravity 2 api 经常 429,有同样问题的吗\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1115",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1115",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1786",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"【建议】保留Gemini格式请求的思考签名\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1181",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1181",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1794",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Feature Request: API for fetching Quota stats (remaining, renew time, etc)\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1211",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1211",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1798",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Claude Code Web Search doesn’t work\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1210",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1210",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1805",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"iFlow account error show on terminal\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1182",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1182",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1817",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"[Feature Request] Add timeout configuration\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#670",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/670",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1824",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"不能通过回调链接认证吗\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#597",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/597",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1827",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"iflow 406 errors\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#579",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/579",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1840",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Claude Code No Longer Supported?\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#329",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/329",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1843",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"大佬能不能出个zeabur部署的教程\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#410",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/410",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1856",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"Feature: scoped `auto` model (provider + pattern)\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#524",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/524",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1862",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"qwen code和iflow的模型重复了\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#204",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/204",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1863",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"docker compose还会继续维护吗\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#205",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/205",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1881",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"[Feature Request] Add default oauth-model-alias for Kiro channel (like Antigravity)\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#208",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/208",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1885",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"gemini能不能设置配额,自动禁用 ,自动启用?\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#200",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/200",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1886",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Cursor CLI \\ Auth Support\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#198",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/198",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1900",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"[Feature Request] 请求增加 Kiro 配额的展示功能\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#146",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/146",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1909",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"kiro的social凭证无法刷新过期时间。\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#128",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/128",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1914",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"[Bug]Copilot Premium usage significantly amplified when using amp\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#113",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/113",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1919",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"OpenAI-compat provider hardcodes /v1/models (breaks Z.ai v4: /api/coding/paas/v4/models)\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#101",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/101",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1932",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"Issue with removed parameters - Sequential Thinking Tool Failure (nextThoughtNeeded undefined)\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#78",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/78",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1943",
+ "theme": "dev-runtime-refresh",
+ "title": "Add process-compose/HMR refresh workflow linked to \"kiro命令登录没有端口\" for deterministic local runtime reload.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#30",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/30",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1948",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"fix: add default copilot claude model aliases for oauth routing\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#256",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/256",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1950",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix(kiro): stop duplicated thinking on OpenAI and preserve Claude multi-turn thinking\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#252",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/252",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1954",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"fix(cline): add grantType to token refresh and extension headers\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#247",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/247",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1955",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"feat: add Claude Sonnet 4.6 model support for Kiro provider\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#244",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/244",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1956",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"feat(registry): add Claude Sonnet 4.6 model definitions\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#243",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/243",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1957",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Improve Copilot provider based on ericc-ch/copilot-api comparison\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#242",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/242",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1962",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"fix: add proxy_ prefix handling for tool_reference content blocks\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#236",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/236",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1963",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"fix(codex): handle function_call_arguments streaming for both spark and non-spark models\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#235",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/235",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1964",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"Add Kilo Code provider with dynamic model fetching\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#234",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/234",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1965",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Fix Copilot codex model Responses API translation for Claude Code\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#233",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/233",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1966",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"feat(models): add Thinking support to GitHub Copilot models\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#231",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/231",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1967",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"fix(copilot): forward Claude-format tools to Copilot Responses API\" across supported providers.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#230",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/230",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1968",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"fix: preserve explicitly deleted kiro aliases across config reload\" to reduce coupling and improve maintainability.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#229",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/229",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1969",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"fix(antigravity): add warn-level logging to silent failure paths in FetchAntigravityModels\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#228",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/228",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1971",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"refactor(kiro): Kiro Web Search Logic \u0026 Executor Alignment\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#226",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/226",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1972",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"v6.8.13\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#225",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/225",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1973",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"fix(kiro): prepend placeholder user message when conversation starts with assistant role\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#224",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/224",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1974",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"fix(kiro): prepend placeholder user message when conversation starts with assistant role\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#223",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/223",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1976",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"fix: prevent merging assistant messages with tool_calls\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#218",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/218",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1978",
+ "theme": "integration-api-bindings",
+ "title": "Design non-subprocess integration contract related to \"fix(auth): strip model suffix in GitHub Copilot executor before upstream call\" with Go bindings primary and API fallback.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#214",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/214",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1979",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"fix(kiro): filter orphaned tool_results from compacted conversations\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#212",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/212",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1980",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"fix(kiro): fully implement Kiro web search tool via MCP integration\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#211",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/211",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1981",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"feat(config): add default Kiro model aliases for standard Claude model names\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#209",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/209",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1983",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"fix(translator): fix nullable type arrays breaking Gemini/Antigravity API\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#205",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/205",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1986",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"feat: add Claude Opus 4.6 to GitHub Copilot models\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#199",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/199",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1989",
+ "theme": "docs-quickstarts",
+ "title": "Create or refresh provider quickstart derived from \"fix: replace assistant placeholder text to prevent model parroting\" with setup/auth/model/sanity-check flow.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#194",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/194",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1990",
+ "theme": "oauth-and-authentication",
+ "title": "Standardize naming/metadata affected by \"Add management OAuth quota endpoints\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#193",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/193",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1992",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"feat(kiro): add contextUsageEvent handler\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#191",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/191",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1995",
+ "theme": "go-cli-extraction",
+ "title": "Port relevant thegent-managed behavior implied by \"Codex executor: bump client headers for GPT-5.3 compatibility\" into cliproxy Go CLI commands and interactive setup.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#188",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/188",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1996",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Fix Codex gpt-5.3-codex routing by normalizing backend model\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#187",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/187",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-2000",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Add Kimi (Moonshot AI) provider support\" across both repos and docs.",
+ "priority": "P1",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#182",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/182",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0001",
+ "theme": "platform-architecture",
+ "title": "Port thegent proxy lifecycle/install/login/model-management flows into first-class cliproxy Go CLI commands.",
+ "priority": "P1",
+ "effort": "L",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "strategy",
+ "source_repo": "cross-repo",
+ "source_ref": "synthesis",
+ "source_url": "",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0002",
+ "theme": "integration-api-bindings",
+ "title": "Define a non-subprocess integration contract: Go bindings first, HTTP API fallback, versioned capability negotiation.",
+ "priority": "P1",
+ "effort": "L",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "strategy",
+ "source_repo": "cross-repo",
+ "source_ref": "synthesis",
+ "source_url": "",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0007",
+ "theme": "testing-and-quality",
+ "title": "Add cross-provider OpenAI Responses/Chat Completions conformance test suite with golden fixtures.",
+ "priority": "P1",
+ "effort": "L",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "strategy",
+ "source_repo": "cross-repo",
+ "source_ref": "synthesis",
+ "source_url": "",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0009",
+ "theme": "project-frontmatter",
+ "title": "Rewrite project frontmatter/readme with architecture, compatibility matrix, provider guides, support policy, and release channels.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "strategy",
+ "source_repo": "cross-repo",
+ "source_ref": "synthesis",
+ "source_url": "",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0010",
+ "theme": "install-and-ops",
+ "title": "Improve release and install UX with unified install flow, binary verification, and platform post-install checks.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-1",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "strategy",
+ "source_repo": "cross-repo",
+ "source_ref": "synthesis",
+ "source_url": "",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0012",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Opus 4.6\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#219",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/219",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0020",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"gemini能不能设置配额,自动禁用 ,自动启用?\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#200",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/200",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0024",
+ "theme": "general-polish",
+ "title": "Generalize \"OpenAI-MLX-Server and vLLM-MLX Support?\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#179",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/179",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0026",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Kiro Token 导入失败: Refresh token is required\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#177",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/177",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0027",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"Kimi Code support\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#169",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/169",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0028",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"kiro如何看配额?\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#165",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/165",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0032",
+ "theme": "general-polish",
+ "title": "Harden \"kiro反代出现重复输出的情况\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#160",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/160",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0033",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"kiro IDC 刷新 token 失败\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#149",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/149",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0035",
+ "theme": "websocket-and-streaming",
+ "title": "Improve CLI UX around \"[Feature Request] 请求增加 Kiro 配额的展示功能\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#146",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/146",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0041",
+ "theme": "general-polish",
+ "title": "Follow up \"Routing strategy \"fill-first\" is not working as expected\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#133",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/133",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0042",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"WARN kiro_executor.go:1189 kiro: received 400 error (attempt 1/3), body: {\"message\":\"Improperly formed request.\",\"reason\":null}\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#131",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/131",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0043",
+ "theme": "cli-ux-dx",
+ "title": "Operationalize \"CLIProxyApiPlus不支持像CLIProxyApi一样使用ClawCloud云部署吗?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#129",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/129",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0044",
+ "theme": "cli-ux-dx",
+ "title": "Generalize \"kiro的social凭证无法刷新过期时间。\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#128",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/128",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0049",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"[Bug]Copilot Premium usage significantly amplified when using amp\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#113",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/113",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0055",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"ADD TRAE IDE support\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#97",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/97",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0065",
+ "theme": "error-handling-retries",
+ "title": "Improve CLI UX around \"failed to load config: failed to read config file: read /CLIProxyAPI/config.yaml: is a directory\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#81",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/81",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0067",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Issue with removed parameters - Sequential Thinking Tool Failure (nextThoughtNeeded undefined)\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#78",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/78",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0070",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"Claude Code WebSearch fails with 400 error when using Kiro/Amazon Q backend\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#72",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/72",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0071",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"[BUG] Vision requests fail for ZAI (glm) and Copilot models with missing header / invalid parameter errors\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#69",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/69",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0072",
+ "theme": "general-polish",
+ "title": "Harden \"怎么更新iflow的模型列表。\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#66",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/66",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0077",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"plus版本只能自己构建吗?\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#34",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/34",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0078",
+ "theme": "install-and-ops",
+ "title": "Refactor internals touched by \"kiro命令登录没有端口\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#30",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/30",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0254",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"BUG: Cannot use Claude Models in Codex CLI\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1671",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1671",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0259",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"Concerns regarding the removal of Gemini Web support in the early stages of the project\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1665",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1665",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0262",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"logs-max-total-size-mb does not account for per-day subdirectories\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1657",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1657",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0264",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"\"Please add claude-sonnet-4-6 to registered Claude models. Released 2026-02-15.\"\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1653",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1653",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0269",
+ "theme": "error-handling-retries",
+ "title": "Prepare safe rollout for \"Docker Image Error\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1641",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1641",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0270",
+ "theme": "error-handling-retries",
+ "title": "Standardize naming/metadata affected by \"Google blocked my 3 email id at once\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1637",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1637",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0271",
+ "theme": "general-polish",
+ "title": "Follow up \"不同思路的 Antigravity 代理\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1633",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1633",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0279",
+ "theme": "oauth-and-authentication",
+ "title": "Prepare safe rollout for \"[Feature Request] Session-Aware Hybrid Routing Strategy\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1617",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1617",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0284",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"不能正确统计minimax-m2.5/kimi-k2.5的Token\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1607",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1607",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0287",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"希望为提供商添加请求优先级功能,最好是以模型为基础来进行请求\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1594",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1594",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0288",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"gpt-5.3-codex-spark error\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1593",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1593",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0292",
+ "theme": "general-polish",
+ "title": "Harden \"每次更新或者重启 使用统计数据都会清空\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1589",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1589",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0294",
+ "theme": "general-polish",
+ "title": "Generalize \"封号了,pro号没了,又找了个免费认证bot分享出来\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1587",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1587",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0295",
+ "theme": "cli-ux-dx",
+ "title": "Improve CLI UX around \"gemini-cli 不能自定请求头吗?\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1586",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1586",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0300",
+ "theme": "websocket-and-streaming",
+ "title": "Standardize naming/metadata affected by \"GPT Team认证似乎获取不到5.3 Codex\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1577",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1577",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0301",
+ "theme": "general-polish",
+ "title": "Follow up \"iflow渠道调用会一直返回406状态码\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1576",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1576",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0305",
+ "theme": "websocket-and-streaming",
+ "title": "Improve CLI UX around \"iflow MiniMax-2.5 is online,please add\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1567",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1567",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0309",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"GLM-5 return empty\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1560",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1560",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0312",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"403 error\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1555",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1555",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0313",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"iflow glm-5 is online,please add\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1554",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1554",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0318",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"cursor报错根源\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1548",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1548",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0320",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"自定义别名在调用的时候404\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1546",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1546",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0321",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"删除iflow提供商的过时模型\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1545",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1545",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0325",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Gemini-3-pro-high Corrupted thought signature\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1538",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1538",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0326",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"bug: \"status\": \"INVALID_ARGUMENT\" when using antigravity claude-opus-4-6\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1535",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1535",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0328",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"Invalid JSON payload received: Unknown name \\\"deprecated\\\"\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1531",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1531",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0330",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"请求为Windows添加启动自动更新命令\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1528",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1528",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0331",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"反重力逻辑加载失效\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1526",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1526",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0332",
+ "theme": "general-polish",
+ "title": "Harden \"support openai image generations api(/v1/images/generations)\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1525",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1525",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0335",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"opus4.6都支持1m的上下文了,请求体什么时候从280K调整下,现在也太小了,动不动就报错\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1515",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1515",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0338",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"请求体过大280KB限制和opus 4.6无法调用的问题,啥时候可以修复\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1512",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1512",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0339",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"502 unknown provider for model gemini-claude-opus-4-6-thinking\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1510",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1510",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0343",
+ "theme": "general-polish",
+ "title": "Operationalize \"Antigravity使用时,设计额度最小阈值,超过停止使用或者切换账号,因为额度多次用尽,会触发 5 天刷新\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1505",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1505",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0344",
+ "theme": "websocket-and-streaming",
+ "title": "Generalize \"iflow的glm-4.7会返回406\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1504",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1504",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0346",
+ "theme": "general-polish",
+ "title": "Extend docs for \"iflow部分模型增加了签名\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1501",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1501",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0347",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"Qwen Free allocated quota exceeded\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1500",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1500",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0349",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"为什么我请求了很多次,但是使用统计里仍然显示使用为0呢?\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1497",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1497",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0350",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"为什么配额管理里没有claude pro账号的额度?\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1496",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1496",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0351",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"最近几个版本,好像轮询失效了\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1495",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1495",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0352",
+ "theme": "error-handling-retries",
+ "title": "Harden \"iFlow error\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1494",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1494",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0355",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"gemini在cherry studio的openai接口无法控制思考长度\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1484",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1484",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0356",
+ "theme": "general-polish",
+ "title": "Extend docs for \"codex5.3什么时候能获取到啊\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1482",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1482",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0362",
+ "theme": "general-polish",
+ "title": "Harden \"[feat]更新很频繁,可以内置软件更新功能吗\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1475",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1475",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0363",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"Cannot alias multiple models to single model only on Antigravity\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1472",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1472",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0364",
+ "theme": "general-polish",
+ "title": "Generalize \"无法识别图片\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1469",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1469",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0365",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Support for Antigravity Opus 4.6\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1468",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1468",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0367",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"antigravity用不了\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1461",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1461",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0369",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"轮询会无差别轮询即便某个账号在很久前已经空配额\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1456",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1456",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0378",
+ "theme": "install-and-ops",
+ "title": "Refactor internals touched by \"Feature request: Add support for claude opus 4.6\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1439",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1439",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0379",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"Feature request: Add support for perplexity\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1438",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1438",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0382",
+ "theme": "general-polish",
+ "title": "Harden \"希望支持国产模型如glm kimi minimax 的 proxy\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1432",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1432",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0383",
+ "theme": "general-polish",
+ "title": "Operationalize \"关闭某个认证文件后没有持久化处理\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1431",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1431",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0385",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"大佬能不能把使用统计数据持久化?\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1427",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1427",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0386",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"[BUG] 使用 Google 官方 Python SDK时思考设置无法生效\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1426",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1426",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0388",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"Add Container Tags / Project Scoping for Memory Organization\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1420",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1420",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0392",
+ "theme": "general-polish",
+ "title": "Harden \"Create OpenAI-Compatible Memory Tools Wrapper\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1416",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1416",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0395",
+ "theme": "error-handling-retries",
+ "title": "Improve CLI UX around \"Add Notion Connector for Memory Ingestion\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1413",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1413",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0396",
+ "theme": "error-handling-retries",
+ "title": "Extend docs for \"Add Strict Schema Mode for OpenAI Function Calling\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1412",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1412",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0397",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Add Conversation Tracking Support for Chat History\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1411",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1411",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0402",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"反代反重力的 claude 在 opencode 中使用出现 unexpected EOF 错误\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1400",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1400",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0405",
+ "theme": "error-handling-retries",
+ "title": "Improve CLI UX around \"在 Visual Studio Code无法使用过工具\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1405",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1405",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0410",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"[antigravity] 500 Internal error and 403 Verification Required for multiple accounts\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1389",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1389",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0411",
+ "theme": "general-polish",
+ "title": "Follow up \"Antigravity的配额管理,账号没有订阅资格了,还是在显示模型额度\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1388",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1388",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0412",
+ "theme": "general-polish",
+ "title": "Harden \"大佬,可以加一个apikey的过期时间不\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1387",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1387",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0422",
+ "theme": "general-polish",
+ "title": "Harden \"Feature Request: 有没有可能支持Trea中国版?\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1373",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1373",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0423",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"Bug: Auto-injected cache_control exceeds Anthropic API's 4-block limit\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1372",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1372",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0427",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"Kimi For Coding 好像被 ban 了\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1327",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1327",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0433",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"This version of Antigravity is no longer supported. Please update to receive the latest features!\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1316",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1316",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0434",
+ "theme": "websocket-and-streaming",
+ "title": "Generalize \"无法轮询请求反重力和gemini cli\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1315",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1315",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0438",
+ "theme": "error-handling-retries",
+ "title": "Refactor internals touched by \"Feature Request: Add \"Sequential\" routing strategy to optimize account quota usage\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1304",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1304",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0444",
+ "theme": "general-polish",
+ "title": "Generalize \"gemini-3-pro-image-preview api 返回500 我看log中报500的都基本在1分钟左右\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1291",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1291",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0445",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"希望代理设置 能为多个不同的认证文件分别配置不同的代理 URL\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1290",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1290",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0450",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"[功能建议] 建议实现统计数据持久化,免去更新时的手动导出导入\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1282",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1282",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0451",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"反重力的banana pro额度一直无法恢复\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1281",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1281",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0453",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"TPM/RPM过载,但是等待半小时后依旧不行\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1278",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1278",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0454",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"支持codex的 /personality\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1273",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1273",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0455",
+ "theme": "websocket-and-streaming",
+ "title": "Improve CLI UX around \"Antigravity 可用模型数为 0\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1270",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1270",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0457",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"[Improvement] Persist Management UI assets in a dedicated volume\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1268",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1268",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0458",
+ "theme": "websocket-and-streaming",
+ "title": "Refactor internals touched by \"[Feature Request] Provide optional standalone UI service in docker-compose\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1267",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1267",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0461",
+ "theme": "general-polish",
+ "title": "Follow up \"建议增加根据额度阈值跳过轮询凭证功能\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1263",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1263",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0462",
+ "theme": "general-polish",
+ "title": "Harden \"[Bug] Antigravity Gemini API 报错:enum 仅允许用于 STRING 类型\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1260",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1260",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0463",
+ "theme": "general-polish",
+ "title": "Operationalize \"好像codebuddy也能有命令行也能用,能加进去吗\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1259",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1259",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0466",
+ "theme": "websocket-and-streaming",
+ "title": "Extend docs for \"iflow Cookies 登陆好像不能用\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1254",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1254",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0471",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"6.6.109之前的版本都可以开启iflow的deepseek3.2,qwen3-max-preview思考,6.7.xx就不能了\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1245",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1245",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0472",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Bug: Anthropic API 400 Error - Missing 'thinking' block before 'tool_use'\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1244",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1244",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0473",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"v6.7.24,反重力的gemini-3,调用API有bug\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1243",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1243",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0474",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"How to reset /models\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1240",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1240",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0477",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"更新到最新版本之后,出现了503的报错\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1224",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1224",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0478",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"能不能增加一个配额保护\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1223",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1223",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0480",
+ "theme": "websocket-and-streaming",
+ "title": "Standardize naming/metadata affected by \"无法关闭谷歌的某个具体的账号的使用权限\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1219",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1219",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0481",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"docker中的最新版本不是lastest\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1218",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1218",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0487",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"[功能需求] 认证文件增加屏蔽模型跳过轮询\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1197",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1197",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0488",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"可以出个检查更新吗,不然每次都要拉下载然后重启\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1195",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1195",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0489",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"antigravity可以增加配额保护吗 剩余额度多少的时候不在使用\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1194",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1194",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0491",
+ "theme": "general-polish",
+ "title": "Follow up \"建议在使用Antigravity 额度时,设计额度阈值自定义功能\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1192",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1192",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0492",
+ "theme": "provider-model-registry",
+ "title": "Harden \"Antigravity: rev19-uic3-1p (Alias: gemini-2.5-computer-use-preview-10-2025) nolonger useable\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1190",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1190",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0495",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"Model combo support\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1184",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1184",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0498",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"gemini api 使用openai 兼容的url 使用时 tool_call 有问题\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1168",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1168",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0500",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"新增微软copilot GPT5.2codex模型\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1166",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1166",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0501",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"Tool Calling Not Working in Cursor When Using Claude via CLIPROXYAPI + Antigravity Proxy\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1165",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1165",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0502",
+ "theme": "provider-model-registry",
+ "title": "Harden \"[Improvement] Allow multiple model mappings to have the same Alias\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1163",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1163",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0503",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"Antigravity模型在Cursor无法使用工具\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1162",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1162",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0504",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Gemini\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1161",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1161",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0505",
+ "theme": "cli-ux-dx",
+ "title": "Improve CLI UX around \"Add support proxy per account\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1160",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1160",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0507",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"希望支持claude api\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1157",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1157",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0509",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"nvidia今天开始超时了,昨天刚配置还好好的\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1154",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1154",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0511",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"日志怎么不记录了\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1152",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1152",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0512",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"v6.7.16无法反重力的gemini-3-pro-preview\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1150",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1150",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0514",
+ "theme": "general-polish",
+ "title": "Generalize \"没有单个凭证 启用/禁用 的切换开关吗\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1148",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1148",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0518",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"Feature Request: Add support for Cursor IDE as a backend/provider\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1138",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1138",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0521",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"model stops by itself does not proceed to the next step\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1134",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1134",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0523",
+ "theme": "general-polish",
+ "title": "Operationalize \"希望供应商能够加上微软365\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1128",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1128",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0524",
+ "theme": "cli-ux-dx",
+ "title": "Generalize \"codex的config.toml文件在哪里修改?\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1127",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1127",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0526",
+ "theme": "websocket-and-streaming",
+ "title": "Extend docs for \"使用Amp CLI的Painter工具画图显示prompt is too long\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1123",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1123",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0528",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"kiro使用orchestrator 模式调用的时候会报错400\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1120",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1120",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0530",
+ "theme": "websocket-and-streaming",
+ "title": "Standardize naming/metadata affected by \"添加智谱OpenAI兼容提供商获取模型和测试会失败\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1118",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1118",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0534",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"Error 'Expected thinking or redacted_thinking' after upgrade to v6.7.12\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1109",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1109",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0538",
+ "theme": "websocket-and-streaming",
+ "title": "Refactor internals touched by \"ℹ ⚠️ Response stopped due to malformed function call. 在 Gemini CLI 中 频繁出现这个提示,对话中断\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1100",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1100",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0539",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"【功能请求】添加禁用项目按键(或优先级逻辑)\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1098",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1098",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0540",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"有支持豆包的反代吗\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1097",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1097",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0545",
+ "theme": "websocket-and-streaming",
+ "title": "Improve CLI UX around \"命令行中返回结果一切正常,但是在cherry studio中找不到模型\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1090",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1090",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0546",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"[Feedback #1044] 尝试通过 Payload 设置 Gemini 3 宽高比失败 (Google API 400 Error)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1089",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1089",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0547",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"反重力2API opus模型 Error searching files\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1086",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1086",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0550",
+ "theme": "websocket-and-streaming",
+ "title": "Standardize naming/metadata affected by \"大香蕉生图无图片返回\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1083",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1083",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0556",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"Antigravity: MCP 工具的数字类型 enum 值导致 INVALID_ARGUMENT 错误\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1075",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1075",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0557",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"认证文件管理可否添加一键导出所有凭证的按钮\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1074",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1074",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0565",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"最新版claude 2.1.9调用后,会在后台刷出大量warn;持续输出\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1061",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1061",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0566",
+ "theme": "websocket-and-streaming",
+ "title": "Extend docs for \"Antigravity 针对Pro账号的 Claude/GPT 模型有周限额了吗?\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1060",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1060",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0568",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"希望可以增加antigravity授权的配额保护功能\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1058",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1058",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0571",
+ "theme": "cli-ux-dx",
+ "title": "Follow up \"codex-instructions-enabled为true时,在codex-cli中使用是否会重复注入instructions?\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1055",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1055",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0572",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"cliproxyapi多个账户切换(因限流/账号问题), 导致客户端直接报错\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1053",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1053",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0579",
+ "theme": "cli-ux-dx",
+ "title": "Prepare safe rollout for \"image模型能否在cliproxyapi中直接区分2k,4k\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1044",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1044",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0581",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"qwen进行模型映射时提示 更新模型映射失败: channel not found\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1042",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1042",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0582",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"升级到最新版本后,认证文件页面提示请升级CPA版本\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1041",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1041",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0583",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"服务启动后,终端连续不断打印相同内容\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1040",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1040",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0584",
+ "theme": "websocket-and-streaming",
+ "title": "Generalize \"Issue\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1039",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1039",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0585",
+ "theme": "websocket-and-streaming",
+ "title": "Improve CLI UX around \"Antigravity error to get quota limit\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1038",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1038",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0588",
+ "theme": "error-handling-retries",
+ "title": "Refactor internals touched by \"UltraAI Workspace account error: project_id cannot be retrieved\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1034",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1034",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0591",
+ "theme": "error-handling-retries",
+ "title": "Follow up \"希望能够通过配置文件设定API调用超时时间\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1029",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1029",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0592",
+ "theme": "provider-model-registry",
+ "title": "Harden \"Calling gpt-codex-5.2 returns 400 error: “Unsupported parameter: safety_identifier”\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1028",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1028",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0593",
+ "theme": "general-polish",
+ "title": "Operationalize \"【建议】能否加一下模型配额优先级?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1027",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1027",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0594",
+ "theme": "websocket-and-streaming",
+ "title": "Generalize \"求问,配额显示并不准确\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1026",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1026",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0596",
+ "theme": "install-and-ops",
+ "title": "Extend docs for \"[Feature] 提供更新命令\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1023",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1023",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0597",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"授权文件可以拷贝使用\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1022",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1022",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0599",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"【建议】就算开了日志也无法区别为什么新加的这个账号错误的原因\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1020",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1020",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0600",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"每天早上都报错 错误: Failed to call gemini-3-pro-preview model: unknown provider for model gemini-3-pro-preview 要重新删除账号重新登录,\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1019",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1019",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0602",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Bug: CLIproxyAPI returns Prompt is too long (need trim history)\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1014",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1014",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0604",
+ "theme": "websocket-and-streaming",
+ "title": "Generalize \"使用gemini-3-pro-image-preview 模型,生成不了图片\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1012",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1012",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0606",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"[Bug] Missing mandatory tool_use.id in request payload causing failure on subsequent tool calls\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1009",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1009",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0613",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"gemini 3 missing field\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1002",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1002",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0617",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"Gemini CLI 认证api,不支持gemini 3\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#996",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/996",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0618",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"配额管理显示不正常。\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#995",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/995",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0619",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"使用oh my opencode的时候subagent调用不积极\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#992",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/992",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0620",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"A tool for AmpCode agent to turn on off free mode to enjoy Oracle, Websearch by free credits without seeing ads to much\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#990",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/990",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0622",
+ "theme": "general-polish",
+ "title": "Harden \"Codex callback URL仅显示:http://localhost:1455/success\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#988",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/988",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0623",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"【建议】在CPA webui中实现禁用某个特定的凭证\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#987",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/987",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0630",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"When using the amp cli with gemini 3 pro, after thinking, nothing happens\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#977",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/977",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0632",
+ "theme": "error-handling-retries",
+ "title": "Harden \"fill-first strategy does not take effect (all accounts remain at 99%)\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#974",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/974",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0634",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"feat: Enhanced Request Logging with Metadata and Management API for Observability\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#972",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/972",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0635",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"Antigravity with opus 4,5 keeps giving rate limits error for no reason.\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#970",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/970",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0636",
+ "theme": "websocket-and-streaming",
+ "title": "Extend docs for \"exhausted没被重试or跳过,被传下来了\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#968",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/968",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0640",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"反重力反代在opencode不支持,问话回答一下就断\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#962",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/962",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0642",
+ "theme": "general-polish",
+ "title": "Harden \"建议优化轮询逻辑,同一账号额度用完刷新后作为第二优先级轮询\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#959",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/959",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0648",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"[Bug]反代 Antigravity 使用Claude Code 时,特定请求持续无响应导致 504 Gateway Timeout\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#951",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/951",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0652",
+ "theme": "general-polish",
+ "title": "Harden \"内存占用太高,用了1.5g\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#944",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/944",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0655",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"现有指令会让 Gemini 产生误解,无法真正忽略前置系统提示\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#940",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/940",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0659",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"能不能支持UA伪装?\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#933",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/933",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0660",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"[features request] 恳请CPA团队能否增加KIRO的反代模式?Could you add a reverse proxy api to KIRO?\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#932",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/932",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0664",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"[Bug] 400 error on Claude Code internal requests when thinking is enabled - assistant message missing thinking block\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#928",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/928",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0668",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"希望能自定义系统提示,比如自定义前缀\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#922",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/922",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0670",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"能不能添加功能,禁用某些配置文件\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#919",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/919",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0672",
+ "theme": "general-polish",
+ "title": "Harden \"API密钥→特定配额文件\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#915",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/915",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0674",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"error on claude code\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#913",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/913",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0675",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"反重力Claude修好后,大香蕉不行了\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#912",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/912",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0676",
+ "theme": "general-polish",
+ "title": "Extend docs for \"看到有人发了一个更短的提示词\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#911",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/911",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0681",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"更新到最新版本后,自定义 System Prompt 无效\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#905",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/905",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0683",
+ "theme": "general-polish",
+ "title": "Operationalize \"有人遇到相同问题么?Resource has been exhausted (e.g. check quota)\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#903",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/903",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0686",
+ "theme": "general-polish",
+ "title": "Extend docs for \"[feat]自动优化Antigravity的quota刷新时间选项\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#895",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/895",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0688",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"支持包含模型配置\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#892",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/892",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0692",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"新版本有超时Bug,切换回老版本没问题\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#886",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/886",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0695",
+ "theme": "testing-and-quality",
+ "title": "Improve CLI UX around \"Claude Code Web Search doesn’t work\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#883",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/883",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0698",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"antigravity and gemini cli duplicated model names\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#873",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/873",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0701",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"谷歌授权登录成功,但是额度刷新失败\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#864",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/864",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0702",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"使用统计 每次重启服务就没了,能否重启不丢失,使用手动的方式去清理统计数据\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#863",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/863",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0704",
+ "theme": "general-polish",
+ "title": "Generalize \"请增加对kiro的支持\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#855",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/855",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0705",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"Reqest for supporting github copilot\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#854",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/854",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0706",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"请添加iflow最新模型iFlow-ROME-30BA3B\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#853",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/853",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0708",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Would the consumption be greater in Claude Code?\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#848",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/848",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0711",
+ "theme": "general-polish",
+ "title": "Follow up \"Feature Request: API for fetching Quota stats (remaining, renew time, etc)\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#844",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/844",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0712",
+ "theme": "cli-ux-dx",
+ "title": "Harden \"使用antigravity转为API在claude code中使用不支持web search\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#842",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/842",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0715",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"[Feature Request] Schedule automated requests to AI models\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#838",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/838",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0718",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"mac使用brew安装的cpa,请问配置文件在哪?\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#831",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/831",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0719",
+ "theme": "testing-and-quality",
+ "title": "Prepare safe rollout for \"Feature request\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#828",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/828",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0720",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"长时间运行后会出现`internal_server_error`\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#827",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/827",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0723",
+ "theme": "general-polish",
+ "title": "Operationalize \"[Feature] 能否增加/v1/embeddings 端点\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#818",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/818",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0727",
+ "theme": "install-and-ops",
+ "title": "Add robust stream/non-stream parity tests for \"Set up Apprise on TrueNAS for notifications\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#808",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/808",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0730",
+ "theme": "websocket-and-streaming",
+ "title": "Standardize naming/metadata affected by \"win10无法安装没反应,cmd安装提示,failed to read config file\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#801",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/801",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0738",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Brew 版本更新延迟,能否在 github Actions 自动增加更新 brew 版本?\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#789",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/789",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0740",
+ "theme": "websocket-and-streaming",
+ "title": "Standardize naming/metadata affected by \"可否增加一个轮询方式的设置,某一个账户额度用尽时再使用下一个\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#784",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/784",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0742",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Support for parallel requests\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#778",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/778",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0744",
+ "theme": "websocket-and-streaming",
+ "title": "Generalize \"[功能请求] 假流式和非流式防超时\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#775",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/775",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0745",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"[功能请求]可否增加 google genai 的兼容\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#771",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/771",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0746",
+ "theme": "general-polish",
+ "title": "Extend docs for \"反重力账号额度同时消耗\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#768",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/768",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0747",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"iflow模型排除无效\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#762",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/762",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0752",
+ "theme": "cli-ux-dx",
+ "title": "Harden \"建议增加 kiro CLI\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#748",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/748",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0758",
+ "theme": "websocket-and-streaming",
+ "title": "Refactor internals touched by \"反代Antigravity,CC读图的时候似乎会触发bug?明明现在上下文还有很多,但是提示要compact了\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#741",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/741",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0761",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Pass through actual Anthropic token counts instead of estimating\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#738",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/738",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0762",
+ "theme": "general-polish",
+ "title": "Harden \"多渠道同一模型映射成一个显示\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#737",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/737",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0763",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"Feature Request: Complete OpenAI Tool Calling Format Support for Claude Models (Cursor MCP Compatibility)\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#735",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/735",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0770",
+ "theme": "cli-ux-dx",
+ "title": "Standardize naming/metadata affected by \"[Feature] Usage Statistics Persistence to JSON File - PR Proposal\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#726",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/726",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0771",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"反代的Antigravity的claude模型在opencode cli需要增强适配\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#725",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/725",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0772",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"iflow日志提示:当前找我聊的人太多了,可以晚点再来问我哦。\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#724",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/724",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0773",
+ "theme": "general-polish",
+ "title": "Operationalize \"怎么加入多个反重力账号?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#723",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/723",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0775",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"API Error: 400\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#719",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/719",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0777",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"证书是否可以停用而非删除\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#717",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/717",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0778",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"thinking.cache_control error\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#714",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/714",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0781",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"报错:failed to download management asset\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#711",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/711",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0785",
+ "theme": "cli-ux-dx",
+ "title": "Improve CLI UX around \"iflow cli更新 GLM4.7 \u0026 MiniMax M2.1 模型\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#707",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/707",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0787",
+ "theme": "cli-ux-dx",
+ "title": "Add robust stream/non-stream parity tests for \"iflow-cli上线glm4.7和m2.1\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#701",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/701",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0790",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"6.6.49版本下Antigravity渠道的claude模型使用claude code缓存疑似失效\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#696",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/696",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0792",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"Add efficient scalar operations API (mul_scalar, add_scalar, etc.)\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#691",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/691",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0793",
+ "theme": "general-polish",
+ "title": "Operationalize \"[功能请求] 能不能给每个号单独配置代理?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#690",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/690",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0794",
+ "theme": "general-polish",
+ "title": "Generalize \"[Feature request] Add support for checking remaining Antigravity quota\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#687",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/687",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0796",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"Update Gemini 3 model names: remove -preview suffix for gemini-3-pro and gemini-3-flash\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#683",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/683",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0800",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"[Bug] Token counting endpoint /v1/messages/count_tokens significantly undercounts tokens\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#679",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/679",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0801",
+ "theme": "general-polish",
+ "title": "Follow up \"[Feature] Automatic Censoring Logs\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#678",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/678",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0804",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"[Feature Request] Add timeout configuration\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#668",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/668",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0808",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"[Feature Request] Support reverse proxy for 'mimo' to enable Codex CLI usage\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#656",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/656",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0809",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"[Bug] Gemini API Error: 'defer_loading' field in function declarations results in 400 Invalid JSON payload\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#655",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/655",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0810",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"System message (role: \"system\") completely dropped when converting to Antigravity API format\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#654",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/654",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0814",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"[BUG] calude chrome中使用 antigravity模型 tool call错误\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#642",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/642",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0819",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Payload thinking overrides break requests with tool_choice (handoff fails)\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#630",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/630",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0822",
+ "theme": "provider-model-registry",
+ "title": "Harden \"[Question] Mapping different keys to different accounts for same provider\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#625",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/625",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0824",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"[Feature Request] Set hard limits for CLIProxyAPI API Keys\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#617",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/617",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0827",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"Request support for codebuff access.\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#612",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/612",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0829",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"Can't use Oracle tool in AMP Code\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#606",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/606",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0830",
+ "theme": "testing-and-quality",
+ "title": "Standardize naming/metadata affected by \"Openai 5.2 Codex is launched\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#603",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/603",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0834",
+ "theme": "general-polish",
+ "title": "Generalize \"\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#595",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/595",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0840",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"[Feature request] Add an enable switch for OpenAI-compatible providers and add model alias for antigravity\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#588",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/588",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0844",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Github Copilot Error\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#574",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/574",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0845",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"Cursor support\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#573",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/573",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0852",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"docker运行的容器最近几个版本不会自动下载management.html了\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#557",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/557",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0859",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"Suggestion: Retain statistics after each update.\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#541",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/541",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0861",
+ "theme": "general-polish",
+ "title": "Follow up \"[Feature Request] Add logs rotation\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#535",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/535",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0862",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"[Bug] AI Studio 渠道流式响应 JSON 格式异常导致客户端解析失败\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#534",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/534",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0869",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"Claude code results in errors with \"poor internet connection\"\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#510",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/510",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0873",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"openai兼容错误使用“alias”作为模型id请求\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#503",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/503",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0875",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"unexpected `tool_use_id` found in `tool_result` blocks\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#497",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/497",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0877",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"antigravity中反代的接口在claude code中无法使用thinking模式\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#495",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/495",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0878",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Add support for gpt-5,2\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#493",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/493",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0879",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"OAI models not working.\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#492",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/492",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0880",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"Did the API change?\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#491",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/491",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0881",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"5.2 missing. no automatic model discovery\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#490",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/490",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0882",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Tool calling fails when using Claude Opus 4.5 Thinking (AntiGravity) model via Zed Agent\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#489",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/489",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0883",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"Issue with enabling logs in Mac settings.\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#484",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/484",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0885",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"gpt-5-codex-(low,medium,high) models not listed anymore\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#482",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/482",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0888",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"antigravity渠道的claude模型在claude code中无法使用explore工具\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#477",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/477",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0891",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Antigravity API reports API Error: 400 with Claude Code\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#472",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/472",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0894",
+ "theme": "general-polish",
+ "title": "Generalize \"支持一下https://gemini.google.com/app\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#462",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/462",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0905",
+ "theme": "install-and-ops",
+ "title": "Improve CLI UX around \"[Feature Request] Persistent Storage for Usage Statistics\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#431",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/431",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0908",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"Antigravity: Permission denied on resource project [projectID]\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#421",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/421",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0911",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"OpenAI Compatibility with OpenRouter results in invalid JSON response despite 200 OK\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#417",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/417",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0915",
+ "theme": "cli-ux-dx",
+ "title": "Improve CLI UX around \"Which CLIs that support Antigravity?\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#412",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/412",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0917",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"iflow使用谷歌登录后,填入cookie无法正常使用\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#408",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/408",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0922",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"antigravity认证难以成功\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#396",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/396",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0923",
+ "theme": "cli-ux-dx",
+ "title": "Operationalize \"Could I use gemini-3-pro-preview by gmini cli?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#391",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/391",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0924",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"Ports Reserved By Windows Hyper-V\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#387",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/387",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0927",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Web Search tool not working in AMP with cliproxyapi\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#370",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/370",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0932",
+ "theme": "provider-model-registry",
+ "title": "Harden \"Web Search tool not functioning in Claude Code\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#364",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/364",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0933",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"claude code Auto compact not triggered even after reaching autocompact buffer threshold\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#363",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/363",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0934",
+ "theme": "general-polish",
+ "title": "Generalize \"[Feature] 增加gemini business账号支持\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#361",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/361",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0940",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"[Feature Request] Amazonq Support\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#350",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/350",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0941",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Feature: Add tier-based provider prioritization\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#349",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/349",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0944",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"Anitigravity models are not working in opencode cli, has serveral bugs\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#342",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/342",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0945",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"[Bug] Antigravity 渠道使用原生 Gemini 格式:模型列表缺失及 gemini-3-pro-preview 联网搜索不可用\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#341",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/341",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0946",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"checkSystemInstructions adds cache_control block causing 'maximum of 4 blocks' error\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#339",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/339",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0949",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"Droid as provider\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#336",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/336",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0954",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"FR: Add Opus 4.5 Support\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#321",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/321",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0955",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"`gemini-3-pro-preview` tool usage failures\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#320",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/320",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0956",
+ "theme": "cli-ux-dx",
+ "title": "Extend docs for \"RooCode compatibility\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#319",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/319",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0958",
+ "theme": "docs-quickstarts",
+ "title": "Refactor internals touched by \"Nano Banana\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#316",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/316",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0959",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"Feature: 渠道关闭/开启切换按钮、渠道测试按钮、指定渠道模型调用\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#314",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/314",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0964",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"[Suggestion] Improve Prompt Caching for Gemini CLI / Antigravity - Don't do round-robin for all every request\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#307",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/307",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0967",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"如果能控制aistudio的认证文件启用就好了\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#302",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/302",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0968",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"Dynamic model provider not work\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#301",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/301",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0970",
+ "theme": "websocket-and-streaming",
+ "title": "Standardize naming/metadata affected by \"cursor with antigravity\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#298",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/298",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0971",
+ "theme": "general-polish",
+ "title": "Follow up \"认证未走代理\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#297",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/297",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0975",
+ "theme": "websocket-and-streaming",
+ "title": "Improve CLI UX around \"CLIProxyAPI error in huggingface\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#290",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/290",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0977",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Feature: Add Image Support for Gemini 3\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#283",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/283",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0980",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"[Suggestion] Improve Prompt Caching - Don't do round-robin for all every request\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#277",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/277",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0981",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"Feature Request: Support Google Antigravity provider\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#273",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/273",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0982",
+ "theme": "cli-ux-dx",
+ "title": "Harden \"Add copilot cli proxy\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#272",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/272",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0985",
+ "theme": "error-handling-retries",
+ "title": "Improve CLI UX around \"Account banned after using CLI Proxy API on VPS\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#266",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/266",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0990",
+ "theme": "cli-ux-dx",
+ "title": "Standardize naming/metadata affected by \"麻烦大佬能不能更进模型id,比如gpt已经更新了小版本5.1了\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#261",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/261",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0994",
+ "theme": "general-polish",
+ "title": "Generalize \"认证文件管理 主动触发同步\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#255",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/255",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0995",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Kimi K2 Thinking\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#254",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/254",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0996",
+ "theme": "cli-ux-dx",
+ "title": "Extend docs for \"nano banana 水印的能解决?我使用CLIProxyAPI 6.1\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#253",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/253",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0997",
+ "theme": "install-and-ops",
+ "title": "Add robust stream/non-stream parity tests for \"ai studio 不能用\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#252",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/252",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1002",
+ "theme": "general-polish",
+ "title": "Harden \"gpt-5.1模型添加\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#246",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/246",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1004",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"支持为模型设定默认请求参数\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#242",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/242",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1005",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"ClawCloud 如何结合NanoBanana 使用?\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#241",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/241",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1006",
+ "theme": "websocket-and-streaming",
+ "title": "Extend docs for \"gemini cli 无法画图是不是必须要使用低版本了\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#240",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/240",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1008",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Codex API 配置中Base URL需要加v1嘛?\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#238",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/238",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1010",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"AI Studio途径,是否支持imagen图片生成模型?\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#235",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/235",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1011",
+ "theme": "general-polish",
+ "title": "Follow up \"现在对话很容易就结束\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#234",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/234",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1016",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"Feature: Prevent infinite loop to allow direct access to Gemini-native features\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#220",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/220",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1017",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Feature request: Support amazon-q-developer-cli\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#219",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/219",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1018",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"Gemini Cli 400 Error\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#218",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/218",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1021",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"Codex trying to read from non-existant Bashes in Claude\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#211",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/211",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1022",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Feature Request: Git-backed Configuration and Token Store for sync\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#210",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/210",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1023",
+ "theme": "cli-ux-dx",
+ "title": "Operationalize \"CLIProxyAPI中的Gemini cli的图片生成,是不是无法使用了?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#208",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/208",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1024",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Model gemini-2.5-flash-image not work any more\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#203",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/203",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1025",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"qwen code和iflow的模型重复了\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#202",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/202",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1027",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Wrong Claude Model Recognized\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#200",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/200",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1028",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"Unable to Select Specific Model\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#197",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/197",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1029",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"claude code with copilot\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#193",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/193",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1031",
+ "theme": "error-handling-retries",
+ "title": "Follow up \"[feature request] enable host or bind ip option / 添加 host 配置选项以允许外部网络访问\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#190",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/190",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1032",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Feature request: Add token cost statistics\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#189",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/189",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1036",
+ "theme": "cli-ux-dx",
+ "title": "Extend docs for \"希望增加渠道分类\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#178",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/178",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1038",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"Possible JSON Marshal issue: Some Chars transformed to unicode while transforming Anthropic request to OpenAI compatible request\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#175",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/175",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1039",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"question about subagents:\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#174",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/174",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1040",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"MiniMax-M2 API error\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#172",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/172",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1042",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"MiniMax-M2 and other Anthropic compatible models\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#170",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/170",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1047",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Feature Request: Add support for vision-model for Qwen-CLI\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#164",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/164",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1048",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"[Suggestion] Intelligent Model Routing\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#162",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/162",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1050",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"GeminiCLI的模型,总是会把历史问题全部回答一遍\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#159",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/159",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1055",
+ "theme": "websocket-and-streaming",
+ "title": "Improve CLI UX around \"OpenRouter Grok 4 Fast Bug\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#152",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/152",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1060",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"关于openai兼容供应商\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#143",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/143",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1061",
+ "theme": "general-polish",
+ "title": "Follow up \"No System Prompt maybe possible?\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#142",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/142",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1062",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Claude Code tokens counter\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#140",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/140",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1066",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Claude Code ``/context`` command\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#133",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/133",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1067",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Any interest in adding AmpCode support?\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#132",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/132",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1069",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"Geminicli api proxy error\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#129",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/129",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1070",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"Github Copilot Subscription\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#128",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/128",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1075",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"recommend using bufio to improve terminal visuals(reduce flickering)\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#120",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/120",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1076",
+ "theme": "cli-ux-dx",
+ "title": "Extend docs for \"视觉以及PDF适配\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#119",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/119",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1077",
+ "theme": "cli-ux-dx",
+ "title": "Add robust stream/non-stream parity tests for \"claude code接入gemini cli模型问题\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#115",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/115",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1079",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Thinking toggle with GPT-5-Codex model\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#109",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/109",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1080",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"可否增加 请求 api-key = 渠道密钥模式\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#108",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/108",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1082",
+ "theme": "cli-ux-dx",
+ "title": "Harden \"支持Gemini CLI 的全部模型\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#105",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/105",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1084",
+ "theme": "responses-and-chat-compat",
+ "title": "Generalize \"Bug: function calling error in the request on OpenAI completion for gemini-cli\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#102",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/102",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1085",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"增加 IFlow 支持模型\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#101",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/101",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1086",
+ "theme": "general-polish",
+ "title": "Extend docs for \"Feature Request: Grok usage\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#100",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/100",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1087",
+ "theme": "websocket-and-streaming",
+ "title": "Add robust stream/non-stream parity tests for \"新版本的claude code2.0.X搭配本项目的使用问题\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#98",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/98",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1089",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"可以支持z.ai 吗\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#96",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/96",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1090",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"Gemini and Qwen doesn't work with Opencode\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#93",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/93",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1091",
+ "theme": "cli-ux-dx",
+ "title": "Follow up \"Agent Client Protocol (ACP)?\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#92",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/92",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1092",
+ "theme": "provider-model-registry",
+ "title": "Harden \"Auto compress - Error: B is not an Object. (evaluating '\"object\"in B')\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#91",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/91",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1094",
+ "theme": "general-polish",
+ "title": "Generalize \"Gemini API 能否添加设置Base URL 的选项\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#88",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/88",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1095",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"Some third-party claude code will return null when used with this project\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#87",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/87",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1096",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"Auto compress - Error: 500 status code (no body)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#86",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/86",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1099",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Command /context dont work in claude code\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#80",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/80",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1100",
+ "theme": "install-and-ops",
+ "title": "Standardize naming/metadata affected by \"MacOS brew installation support?\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#79",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/79",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1106",
+ "theme": "cli-ux-dx",
+ "title": "Extend docs for \"如果配置了gemini cli,再配置aistudio api key,会怎样?\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#48",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/48",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1108",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"#38 Lobechat问题的可能性 暨 Get Models返回JSON规整化的建议\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#40",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/40",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1111",
+ "theme": "general-polish",
+ "title": "Follow up \"登录默认跳转浏览器 没有url\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#35",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/35",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1112",
+ "theme": "general-polish",
+ "title": "Harden \"Qwen3-Max-Preview可以使用了吗\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#34",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/34",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1113",
+ "theme": "install-and-ops",
+ "title": "Operationalize \"使用docker-compose.yml搭建失败\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#32",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/32",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1114",
+ "theme": "error-handling-retries",
+ "title": "Generalize \"Claude Code 报错 API Error: Cannot read properties of undefined (reading 'filter')\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#25",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/25",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1115",
+ "theme": "websocket-and-streaming",
+ "title": "Improve CLI UX around \"QQ group search not found, can we open a TG group?\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#24",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/24",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1116",
+ "theme": "cli-ux-dx",
+ "title": "Extend docs for \"Codex CLI 能中转到Claude Code吗?\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#22",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/22",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1118",
+ "theme": "cli-ux-dx",
+ "title": "Refactor internals touched by \"希望支持iflow\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#20",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/20",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1124",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"500就一直卡死了\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#12",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/12",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1125",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"无法使用/v1/messages端口\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#11",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/11",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1126",
+ "theme": "general-polish",
+ "title": "Extend docs for \"可用正常接入new-api这种api站吗?\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#10",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/10",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1128",
+ "theme": "cli-ux-dx",
+ "title": "Refactor internals touched by \"cli有办法像别的gemini一样关闭安全审查吗?\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#7",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/7",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1133",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"偶尔会弹出无效API key提示,“400 API key not valid. Please pass a valid API key.”\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#2",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/2",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1712",
+ "theme": "general-polish",
+ "title": "Harden \"佬们,隔壁很多账号403啦,这里一切正常吗?\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1570",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1570",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1713",
+ "theme": "general-polish",
+ "title": "Operationalize \"最近谷歌经常封号有木有什么好的解决办法?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1656",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1656",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1715",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"不同思路的 Antigravity 代理\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1634",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1634",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1716",
+ "theme": "install-and-ops",
+ "title": "Extend docs for \"Claude Code policy update\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1640",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1640",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1720",
+ "theme": "cli-ux-dx",
+ "title": "Standardize naming/metadata affected by \"[功能请求] 能否将绕过403集成到本体里\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1598",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1598",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1721",
+ "theme": "general-polish",
+ "title": "Follow up \"Add support for GitHub Copilot\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1490",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1490",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1722",
+ "theme": "provider-model-registry",
+ "title": "Harden \"Why am I unable to use multimodal? Can I send a picture URL?\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1524",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1524",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1723",
+ "theme": "testing-and-quality",
+ "title": "Operationalize \"Most accounts banned from Antigravity (Google AI Pro Family) – anyone else?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1558",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1558",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1728",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"加个模型到底有几个账号的模型对应吧,现在kimi-k2.5有6个模型,不知道哪个和哪个\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1559",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1559",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1731",
+ "theme": "install-and-ops",
+ "title": "Follow up \"How can I update without losing my original data?\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1536",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1536",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1733",
+ "theme": "install-and-ops",
+ "title": "Operationalize \"[Feature Request] Persistent Storage for Usage Statistics\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#528",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/528",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1737",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"openclaw里面配置完成后为什么无法使用\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1485",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1485",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1738",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"codex5.3什么时候能获取到啊\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1487",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1487",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1741",
+ "theme": "general-polish",
+ "title": "Follow up \"为啥openai的端点可以添加多个密钥,但是a社的端点不能添加\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1458",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1458",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1742",
+ "theme": "general-polish",
+ "title": "Harden \"轮询会无差别轮询即便某个账号在很久前已经空配额\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1459",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1459",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1743",
+ "theme": "general-polish",
+ "title": "Operationalize \"Feature request: Add support for perplexity\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1470",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1470",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1744",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"Perplexity as a provider\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1069",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1069",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1745",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"更新到最新版本之后,出现了503的报错\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1227",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1227",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1746",
+ "theme": "cli-ux-dx",
+ "title": "Extend docs for \"使用统计 每次重启服务就没了,能否重启不丢失,使用手动的方式去清理统计数据\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#881",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/881",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1747",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"[antigravity] 500 Internal error and 403 Verification Required for multiple accounts\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1488",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1488",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1749",
+ "theme": "error-handling-retries",
+ "title": "Prepare safe rollout for \"Should we add a limit protection feature to the API?\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1359",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1359",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1750",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"好像codebuddy也能有命令行也能用,能加进去吗\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1262",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1262",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1752",
+ "theme": "general-polish",
+ "title": "Harden \"反重力的banana pro额度一直无法恢复\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1286",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1286",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1753",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"Gemini API 密钥 那里填写秘钥后怎么配置每个密钥的代理,怎么配置模型映射?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1272",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1272",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1754",
+ "theme": "general-polish",
+ "title": "Generalize \"该凭证暂无可用模型,这是被封号了的意思吗\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1204",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1204",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1755",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"gemini api 使用openai 兼容的url 使用时 tool_call 有问题\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1176",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1176",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1757",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"v6.7.24,反重力的gemini-3,调用API有bug\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1246",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1246",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1758",
+ "theme": "cli-ux-dx",
+ "title": "Refactor internals touched by \"Do Antigravity and Gemini CLI have internet access via proxy?\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1242",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1242",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1760",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"能不能增加一个配额保护\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1228",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1228",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1761",
+ "theme": "general-polish",
+ "title": "Follow up \"[功能需求] 认证文件增加屏蔽模型跳过轮询\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1200",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1200",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1762",
+ "theme": "general-polish",
+ "title": "Harden \"[Feature] 增加gemini business账号支持\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#392",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/392",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1764",
+ "theme": "cli-ux-dx",
+ "title": "Generalize \"Could I use gemini-3-pro-preview by gmini cli?\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#393",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/393",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1765",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"可以出个检查更新吗,不然每次都要拉下载然后重启\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1201",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1201",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1770",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"希望可以添加授权文件分组的功能(不是授权类型分组)\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1141",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1141",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1772",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Anyone have any idea on how to add thinking?\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1112",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1112",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1777",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"认证文件管理可否添加一键导出所有凭证的按钮\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1180",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1180",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1778",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"添加一个对某一个分组使用不同的轮询策略\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1071",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1071",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1782",
+ "theme": "general-polish",
+ "title": "Harden \"希望添加一个最低quota功能\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#975",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/975",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1783",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"反重力的模型名可以重命名吗\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#783",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/783",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1784",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"gemini 3 missing field\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1017",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1017",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1787",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"Feature: 渠道关闭/开启切换按钮、渠道测试按钮、指定渠道模型调用\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#525",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/525",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1789",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"A tool for AmpCode agent to turn on off free mode to enjoy Oracle, Websearch by free credits without seeing ads to much\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1203",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1203",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1790",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"现有指令会让 Gemini 产生误解,无法真正忽略前置系统提示\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1206",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1206",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1792",
+ "theme": "general-polish",
+ "title": "Harden \"exhausted没被重试or跳过,被传下来了\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#969",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/969",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1793",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"希望能够添加一个不带`-thinking`后缀的opus\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#963",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/963",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1795",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"能不能支持UA伪装?\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#980",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/980",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1796",
+ "theme": "general-polish",
+ "title": "Extend docs for \"希望能自定义系统提示,比如自定义前缀\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#925",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/925",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1799",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"[feat]自动优化Antigravity的quota刷新时间选项\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#898",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/898",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1800",
+ "theme": "cli-ux-dx",
+ "title": "Standardize naming/metadata affected by \"增加qodercli\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#899",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/899",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1801",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"谷歌授权登录成功,但是额度刷新失败\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#870",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/870",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1804",
+ "theme": "cli-ux-dx",
+ "title": "Generalize \"Special Thanks\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#867",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/867",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1806",
+ "theme": "general-polish",
+ "title": "Extend docs for \"在cherry-studio中的流失响应似乎未生效\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#826",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/826",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1807",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"[FQ]增加telegram bot集成和更多管理API命令刷新Providers周期额度\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#825",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/825",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1810",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"win10无法安装没反应,cmd安装提示,failed to read config file\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#810",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/810",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1811",
+ "theme": "cli-ux-dx",
+ "title": "Follow up \"iflow-cli 的模型配置到 claude code 上 用的是Anthropic协议接口 多轮对话缓存的问题\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#809",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/809",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1813",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"[功能请求] 假流式和非流式防超时\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#851",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/851",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1814",
+ "theme": "general-polish",
+ "title": "Generalize \"[功能请求] 新增联网gemini 联网模型\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#780",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/780",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1815",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Support for parallel requests\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#794",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/794",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1818",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Support Trae\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#671",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/671",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1821",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"[Question] Mapping different keys to different accounts for same provider\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#644",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/644",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1822",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"[Feature Request] Set hard limits for CLIProxyAPI API Keys\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#645",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/645",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1823",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"Request support for codebuff access.\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#652",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/652",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1826",
+ "theme": "install-and-ops",
+ "title": "Extend docs for \"使用统计的数据可以持久化吗\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#584",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/584",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1829",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"能否增加一个count_tokens接口的兼容性配置\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#560",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/560",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1831",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"[Suggestion] Intelligent Model Routing\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#520",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/520",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1832",
+ "theme": "install-and-ops",
+ "title": "Harden \"Welcome to CLIProxyAPI Discussions!\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#198",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/198",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1835",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"Acknowledgments\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#486",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/486",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1837",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"可用模型列表 建议按照 认证文件类型 来给出\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#456",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/456",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1838",
+ "theme": "cli-ux-dx",
+ "title": "Refactor internals touched by \"antigravity认证难以成功\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#398",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/398",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1842",
+ "theme": "general-polish",
+ "title": "Harden \"iflow使用谷歌登录后,填入cookie无法正常使用\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#409",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/409",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1844",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"Ports Reserved By Windows Hyper-V\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#395",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/395",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1846",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"claude code Auto compact not triggered even after reaching autocompact buffer threshold\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#581",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/581",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1848",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Recommended Endpoint (OpenAI vs Anthropic)\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#345",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/345",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1849",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"Is there any chance to make windsurf a provider of cliproxyapi?\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#331",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/331",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1851",
+ "theme": "install-and-ops",
+ "title": "Follow up \"docker方式部署后,怎么登陆gemini账号呢?\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#330",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/330",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1854",
+ "theme": "error-handling-retries",
+ "title": "Generalize \"CLIProxyAPI error in huggingface\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#292",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/292",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1858",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Persisted Usage Metrics\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#224",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/224",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1859",
+ "theme": "cli-ux-dx",
+ "title": "Prepare safe rollout for \"CLI Recommendations\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#199",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/199",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1860",
+ "theme": "error-handling-retries",
+ "title": "Standardize naming/metadata affected by \"Codex trying to read from non-existant Bashes in Claude\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#213",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/213",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1861",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Feature request: Add token cost statistics\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#522",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/522",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1868",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"请求添加新功能:支持对Orchids的反代\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#254",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/254",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1873",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"context length for models registered from github-copilot should always be 128K\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#241",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/241",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1877",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Opus 4.6\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#219",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/219",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1884",
+ "theme": "cli-ux-dx",
+ "title": "Generalize \"failed to save config: open /CLIProxyAPI/config.yaml: read-only file system\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#201",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/201",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1888",
+ "theme": "websocket-and-streaming",
+ "title": "Refactor internals touched by \"why no kiro in dashboard\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#183",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/183",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1889",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"OpenAI-MLX-Server and vLLM-MLX Support?\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#179",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/179",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1891",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Kiro Token 导入失败: Refresh token is required\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#177",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/177",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1892",
+ "theme": "general-polish",
+ "title": "Harden \"Kimi Code support\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#169",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/169",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1893",
+ "theme": "general-polish",
+ "title": "Operationalize \"kiro如何看配额?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#165",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/165",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1894",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"kiro反代的Write工具json截断问题,返回的文件路径经常是错误的\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#164",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/164",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1897",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"kiro反代出现重复输出的情况\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#160",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/160",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1898",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"kiro IDC 刷新 token 失败\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#149",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/149",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1899",
+ "theme": "install-and-ops",
+ "title": "Prepare safe rollout for \"请求docker部署支持arm架构的机器!感谢。\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#147",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/147",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1903",
+ "theme": "cli-ux-dx",
+ "title": "Operationalize \"Kimi For Coding Support / 请求为 Kimi 添加编程支持\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#141",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/141",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1906",
+ "theme": "general-polish",
+ "title": "Extend docs for \"Routing strategy \"fill-first\" is not working as expected\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#133",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/133",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1907",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"WARN kiro_executor.go:1189 kiro: received 400 error (attempt 1/3), body: {\"message\":\"Improperly formed request.\",\"reason\":null}\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#131",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/131",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1908",
+ "theme": "cli-ux-dx",
+ "title": "Refactor internals touched by \"CLIProxyApiPlus不支持像CLIProxyApi一样使用ClawCloud云部署吗?\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#129",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/129",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1911",
+ "theme": "websocket-and-streaming",
+ "title": "Follow up \"Gemini3无法生图\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#122",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/122",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1916",
+ "theme": "general-polish",
+ "title": "Extend docs for \"大佬,什么时候搞个多账号管理呀\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#108",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/108",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1920",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"ADD TRAE IDE support\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#97",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/97",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1922",
+ "theme": "provider-model-registry",
+ "title": "Harden \"GitHub Copilot Model Call Failure\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#99",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/99",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1930",
+ "theme": "error-handling-retries",
+ "title": "Standardize naming/metadata affected by \"failed to load config: failed to read config file: read /CLIProxyAPI/config.yaml: is a directory\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#81",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/81",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1935",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"Claude Code WebSearch fails with 400 error when using Kiro/Amazon Q backend\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#72",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/72",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1936",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"[BUG] Vision requests fail for ZAI (glm) and Copilot models with missing header / invalid parameter errors\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#69",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/69",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1937",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"怎么更新iflow的模型列表。\" across supported providers.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#66",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/66",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1941",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"GitHub Copilot models seem to be hardcoded\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#37",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/37",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1942",
+ "theme": "general-polish",
+ "title": "Harden \"plus版本只能自己构建吗?\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "S",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#34",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/34",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0084",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"feat(registry): add GPT-4o model variants for GitHub Copilot\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#255",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/255",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0086",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"feat(registry): add Gemini 3.1 Pro to GitHub Copilot provider\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#250",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/250",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0088",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"v6.8.21\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#248",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/248",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0090",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"feat: add Claude Sonnet 4.6 model support for Kiro provider\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#244",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/244",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0093",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"feat(registry): add Sonnet 4.6 to GitHub Copilot provider\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#240",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/240",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0094",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"feat(registry): add GPT-5.3 Codex to GitHub Copilot provider\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#239",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/239",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0096",
+ "theme": "general-polish",
+ "title": "Extend docs for \"v6.8.18\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#237",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/237",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0105",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"v6.8.15\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#227",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/227",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0107",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"v6.8.13\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#225",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/225",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0110",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"fix(kiro): 修复之前提交的错误的application/cbor请求处理逻辑\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#220",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/220",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0111",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"fix: prevent merging assistant messages with tool_calls\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#218",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/218",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0112",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"增加kiro新模型并根据其他提供商同模型配置Thinking\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#216",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/216",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0117",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"v6.8.9\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#207",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/207",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0120",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"fix(copilot): prevent premium request count inflation for Claude models\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#203",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/203",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0122",
+ "theme": "general-polish",
+ "title": "Harden \"v6.8.4\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#197",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/197",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0123",
+ "theme": "general-polish",
+ "title": "Operationalize \"v6.8.1\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#195",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/195",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0126",
+ "theme": "general-polish",
+ "title": "Extend docs for \"v6.8.0\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#192",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/192",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0128",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"fix(kiro): handle empty content in current user message for compaction\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#190",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/190",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0129",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"feat: add Claude Opus 4.6 support for Kiro\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#189",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/189",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0132",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"fix(kiro): handle empty content in Claude format assistant messages\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#186",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/186",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0134",
+ "theme": "testing-and-quality",
+ "title": "Generalize \"add kimik2.5 to iflow\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#184",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/184",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0140",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"feat(registry): add kiro channel support for model definitions\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#174",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/174",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0143",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"feat(copilot): Add copilot usage monitoring in endpoint /api-call\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#171",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/171",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0147",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"fix(kiro): handle empty content in messages to prevent Bad Request errors\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#162",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/162",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0148",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"v6.7.40\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#161",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/161",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0154",
+ "theme": "general-polish",
+ "title": "Generalize \"v6.7.31\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#153",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/153",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0160",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix: refresh token for kiro enterprise account\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#143",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/143",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0162",
+ "theme": "error-handling-retries",
+ "title": "Harden \"fix: add Copilot-Vision-Request header for vision content\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#139",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/139",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0163",
+ "theme": "general-polish",
+ "title": "Operationalize \"v6.7.26\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#138",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/138",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0165",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"支持多个idc登录凭证保存\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#135",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/135",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0166",
+ "theme": "general-polish",
+ "title": "Extend docs for \"Resolve Issue #131\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#132",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/132",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0167",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"v6.7.22\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#130",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/130",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0169",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"feat(kiro): 添加用于令牌额度查询的api-call兼容\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#126",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/126",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0172",
+ "theme": "general-polish",
+ "title": "Harden \"兼容格式\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#121",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/121",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0175",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"v6.7.15\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#117",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/117",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0176",
+ "theme": "general-polish",
+ "title": "Extend docs for \"合并\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#116",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/116",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0177",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"v6.7.9\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#114",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/114",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0178",
+ "theme": "cli-ux-dx",
+ "title": "Refactor internals touched by \"Add Github Copilot support for management interface\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#112",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/112",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0179",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"fix: prevent system prompt re-injection on subsequent turns\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#110",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/110",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0180",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"Feat/usage persistance\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#109",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/109",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0181",
+ "theme": "general-polish",
+ "title": "Follow up \"fix(kiro): correct Amazon Q endpoint URL path\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#107",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/107",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0183",
+ "theme": "general-polish",
+ "title": "Operationalize \"v6.7.0\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#104",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/104",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0185",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"fix(kiro): re-add kiro-auto to registry\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#100",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/100",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0186",
+ "theme": "general-polish",
+ "title": "Extend docs for \"v6.6.105\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#98",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/98",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0189",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"v6.6.96\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#92",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/92",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0191",
+ "theme": "general-polish",
+ "title": "Follow up \"v6.6.85\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#88",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/88",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0194",
+ "theme": "general-polish",
+ "title": "Generalize \"v6.6.81\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#80",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/80",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0195",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"v6.6.71\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#75",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/75",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0197",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"feat: Add MCP tool support for Cursor IDE\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#71",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/71",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0198",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"v6.6.60\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#70",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/70",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0199",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"v6.6.56\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#68",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/68",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0200",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"v6.6.54\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#67",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/67",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0201",
+ "theme": "general-polish",
+ "title": "Follow up \"v6.6.52\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#65",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/65",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0202",
+ "theme": "general-polish",
+ "title": "Harden \"v6.6.51\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#64",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/64",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0206",
+ "theme": "install-and-ops",
+ "title": "Extend docs for \"v6.6.50(解决 #59 冲突)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#60",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/60",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0208",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"v6.6.48\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#58",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/58",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0210",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"v6.6.30\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#55",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/55",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0218",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"v6.6.24\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#40",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/40",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0219",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"v6.6.23\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#39",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/39",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0220",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"v6.6.22\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#38",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/38",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0222",
+ "theme": "general-polish",
+ "title": "Harden \"v6.6.19\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#35",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/35",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0223",
+ "theme": "general-polish",
+ "title": "Operationalize \"v6.6.18\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#33",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/33",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0225",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"v6.6.17\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#31",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/31",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0226",
+ "theme": "general-polish",
+ "title": "Extend docs for \"v6.6.15\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#29",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/29",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0234",
+ "theme": "general-polish",
+ "title": "Generalize \"v6.6.1\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#19",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/19",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0236",
+ "theme": "cli-ux-dx",
+ "title": "Extend docs for \"由AI进行更改修复了Kiro供应商的Claude协议与OpenAI协议。(对比AIClient-2-API项目进行变更)\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#17",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/17",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0237",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"fix(registry): remove unstable kiro-auto model\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#16",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/16",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0239",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"v6.5.59\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#14",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/14",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0240",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"v6.5.57\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#13",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/13",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0241",
+ "theme": "general-polish",
+ "title": "Follow up \"v6.5.56\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#12",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/12",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0243",
+ "theme": "general-polish",
+ "title": "Operationalize \"fix(kiro):修复 base64 图片格式转换问题\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#10",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/10",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0244",
+ "theme": "general-polish",
+ "title": "Generalize \"fix(kiro): 修复 base64 图片格式转换问题\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#9",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/9",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0245",
+ "theme": "cli-ux-dx",
+ "title": "Improve CLI UX around \"feat: 添加Kiro渠道图片支持功能,借鉴justlovemaki/AIClient-2-API实现\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#8",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/8",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0248",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Feature/kiro integration\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#3",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/3",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0249",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"v6.5.32\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#2",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/2",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0250",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"v6.5.31\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#1",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/1",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1145",
+ "theme": "testing-and-quality",
+ "title": "Improve CLI UX around \"fix: correct Gemini API schema parameter naming\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1648",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1648",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1146",
+ "theme": "error-handling-retries",
+ "title": "Extend docs for \"fix(antigravity): prevent invalid JSON when tool_result has no content\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1645",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1645",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1147",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"feat: add Gemini 3.1 Pro Preview model definition\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1644",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1644",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1153",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"feat(registry): add Claude Sonnet 4.6 model definition\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1629",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1629",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1158",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix: skip proxy_ prefix for built-in tools in message history\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1624",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1624",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1163",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"feat(stats): persist across restarts with periodic/shutdown flush\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1610",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1610",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1165",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"feat(registry): add Qwen 3.5 Plus model definitions\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1606",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1606",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1166",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"Add Qwen Coder Model with updated parameters\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1605",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1605",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1171",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"feat(registry): add support for 'kimi' channel in model definitions\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1597",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1597",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1172",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Pass cache usage from codex to openai chat completions\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1595",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1595",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1176",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"feat(registry): add gpt-5.3-codex-spark model definition\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1574",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1574",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1177",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"Change GLM CODING PLAN subscription price\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1571",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1571",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1179",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"Add MiniMax-M2.5 model definition\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1566",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1566",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1182",
+ "theme": "provider-model-registry",
+ "title": "Harden \"fix(schema): sanitize Gemini-incompatible tool metadata fields\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1542",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1542",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1198",
+ "theme": "error-handling-retries",
+ "title": "Refactor internals touched by \"Add max-quota routing strategy\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1491",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1491",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1200",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"pull\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1474",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1474",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1204",
+ "theme": "general-polish",
+ "title": "Generalize \"Kimi fix\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1464",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1464",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1209",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"sync\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1448",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1448",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1210",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix(registry): correct Claude Opus 4.6 model metadata\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1446",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1446",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1211",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat(registry): register Claude 4.6 static data\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1440",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1440",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1214",
+ "theme": "general-polish",
+ "title": "Generalize \"Feature/codex lite\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1434",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1434",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1222",
+ "theme": "general-polish",
+ "title": "Harden \"ss\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1408",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1408",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1226",
+ "theme": "general-polish",
+ "title": "Extend docs for \"chore: ignore .sisyphus directory\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1391",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1391",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1229",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"refactor(codex): remove codex instructions injection support\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1380",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1380",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1230",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"refactor(api): centralize config change logging\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1379",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1379",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1234",
+ "theme": "cli-ux-dx",
+ "title": "Generalize \"增加一个CLIProxyAPI 托盘添加到社区项目中\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1369",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1369",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1236",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"fix(antigravity): sanitize request.contents to remove invalid metadata entries\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1326",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1326",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1243",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"feat(registry): add GetAllStaticModels helper function\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1312",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1312",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1248",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"Feat(vertex): add prefix field\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1302",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1302",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1251",
+ "theme": "general-polish",
+ "title": "Follow up \"fix(api): update amp module only on config changes\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1296",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1296",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1252",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"feat(caching): implement Claude prompt caching with multi-turn support\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1295",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1295",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1255",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"feat(thinking): enable thinking toggle for qwen3 and deepseek models\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1276",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1276",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1256",
+ "theme": "cli-ux-dx",
+ "title": "Extend docs for \"fix: add missing 'items' to array schemas in Codex tool parameters\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1275",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1275",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1257",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"Pr routing preference priority\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1271",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1271",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1259",
+ "theme": "error-handling-retries",
+ "title": "Prepare safe rollout for \"fix(gemini): force type to string for enum fields to fix Antigravity Gemini API error\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1261",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1261",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1261",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"feat(api): add management model definitions endpoint\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1257",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1257",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1271",
+ "theme": "general-polish",
+ "title": "Follow up \"Sync up\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1231",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1231",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1279",
+ "theme": "error-handling-retries",
+ "title": "Prepare safe rollout for \"fix(executor): strip non-standard fields for Gemini API requests\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1196",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1196",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1280",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"feat(api,handlers,executor): add /v1/embeddings endpoint support\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1191",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1191",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1283",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"fix(api): enhance ClaudeModels response to align with api.anthropic.com\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1183",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1183",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1286",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"fix: change HTTP status code from 400 to 502 when no provider available\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1174",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1174",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1289",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"feat(executor): apply payload rules using requested model\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1169",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1169",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1296",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"fix(gemini): preserve displayName and description in models list\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1132",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1132",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1298",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix(executor): only strip maxOutputTokens for non-claude models\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1130",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1130",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1299",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"Add switch\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1129",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1129",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1300",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"fix(antigravity): clean tool parameters schema for all models\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1126",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1126",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1301",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"Filter out Top_P when Temp is set on Claude\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1125",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1125",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1304",
+ "theme": "general-polish",
+ "title": "Generalize \"Fix antigravity malformed_function_call\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1116",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1116",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1306",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"feat(registry): support provider-specific model info lookup\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1108",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1108",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1310",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix(executor): stop rewriting thinkingLevel for gemini\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1101",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1101",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1314",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"Thinking\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1088",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1088",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1317",
+ "theme": "error-handling-retries",
+ "title": "Add robust stream/non-stream parity tests for \"fix(antigravity): convert non-string enum values to strings for Gemini API\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1076",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1076",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1321",
+ "theme": "general-polish",
+ "title": "Follow up \"fix(codex): ensure instructions field exists\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1054",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1054",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1322",
+ "theme": "general-polish",
+ "title": "Harden \"feat(codex): add config toggle for codex instructions injection\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1049",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1049",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1323",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"Refactor thinking\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1033",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1033",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1324",
+ "theme": "cli-ux-dx",
+ "title": "Generalize \"Claude/investigate cliproxy config o ef sb\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1025",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1025",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1329",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"feat(codex): add OpenCode instructions based on user agent\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#971",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/971",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1332",
+ "theme": "general-polish",
+ "title": "Harden \"feat: add usage statistics persistence support\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#958",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/958",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1333",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"feat(codex): add subscription date fields to ID token claims\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#955",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/955",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1341",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"feat: add /v1/images/generations endpoint for OpenAI-compatible image generation\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#924",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/924",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1342",
+ "theme": "provider-model-registry",
+ "title": "Harden \"fix(executor): update gemini model identifier to gemini-3-pro-preview\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#921",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/921",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1345",
+ "theme": "cli-ux-dx",
+ "title": "Improve CLI UX around \"Vscode plugin\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#901",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/901",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1347",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"Create config.yaml\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#896",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/896",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1348",
+ "theme": "cli-ux-dx",
+ "title": "Refactor internals touched by \"feat: implement CLI Proxy API server with backup and restore function…\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#894",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/894",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1350",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"做了较小的修正,使得Gemini完全支持多候选功能\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#879",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/879",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1351",
+ "theme": "error-handling-retries",
+ "title": "Follow up \"feat(usage): persist usage statistics\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#878",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/878",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1358",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix(gemini): abort default injection on existing thinking keys\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#862",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/862",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1365",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"feat(api): add unified Base URL support and path normalization\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#849",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/849",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1367",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"fix(antigravity): include tools in countTokens by appending as content\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#841",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/841",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1371",
+ "theme": "install-and-ops",
+ "title": "Follow up \"Statistic persistent with enhanced secure features \u0026 quick docker build and push to docker hub actions\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#832",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/832",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1372",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"fix(util): disable default thinking for gemini-3 series\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#830",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/830",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1374",
+ "theme": "install-and-ops",
+ "title": "Generalize \"feat(script): add usage statistics preservation across container rebuilds\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#824",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/824",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1379",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Fix model alias thinking suffix\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#814",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/814",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1385",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"feat(watcher): add model mappings change detection\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#800",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/800",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1390",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"feat(gemini): add per-key model alias support for Gemini provider\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#785",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/785",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1393",
+ "theme": "error-handling-retries",
+ "title": "Operationalize \"fix: Implement fallback log directory for file logging on read-only system\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#772",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/772",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1401",
+ "theme": "general-polish",
+ "title": "Follow up \"fix(logging): improve request/response capture\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#761",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/761",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1405",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Fix: disable thinking when tool_choice forces tool use\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#757",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/757",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1409",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"fix(config): preserve original config structure and avoid default value pollution\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#750",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/750",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1414",
+ "theme": "general-polish",
+ "title": "Generalize \"Fixed incorrect function signature call to `NewBaseAPIHandlers`\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#722",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/722",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1418",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Log\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#706",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/706",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1427",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"feat(logging): implement request ID tracking and propagation\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#688",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/688",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1436",
+ "theme": "oauth-and-authentication",
+ "title": "Extend docs for \"feat: add fill-first routing strategy\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#663",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/663",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1440",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"fix: remove invalid fields from Antigravity contents array\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#657",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/657",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1442",
+ "theme": "general-polish",
+ "title": "Harden \"fix(amp): add /settings routes to proxy\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#646",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/646",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1447",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Revert \"fix(util): disable default thinking for gemini 3 flash\"\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#628",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/628",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1448",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"fix(gemini): add optional skip for gemini3 thinking conversion\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#627",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/627",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1451",
+ "theme": "error-handling-retries",
+ "title": "Follow up \"feat(amp): enable webSearch and readWebPage tools in smart mode\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#622",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/622",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1453",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"fix(util): disable default thinking for gemini 3 flash\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#619",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/619",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1456",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"feature: Support multiple AMP model fallbacks\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#615",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/615",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1458",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"Add gpt-5.2-codex model + prompt routing\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#610",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/610",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1459",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"feat(registry): add gpt 5.2 codex model definition\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#609",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/609",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1461",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feature: Improves Amp client compatibility\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#605",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/605",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1468",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"chore: ignore gemini metadata files\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#586",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/586",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1469",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"chore: Updates Gemini Flash alias\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#585",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/585",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1471",
+ "theme": "general-polish",
+ "title": "Follow up \"chore: ignore agent and bmad artifacts\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#580",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/580",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1475",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"Revert \"Fix invalid thinking signature when proxying Claude via Antigravity\"\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#571",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/571",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1478",
+ "theme": "thinking-and-reasoning",
+ "title": "Refactor internals touched by \"feat(thinking): unify budget/effort conversion logic and add iFlow thinking support\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#564",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/564",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1480",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"chore: ignore .bmad directory\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#558",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/558",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1488",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Aistudio\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#542",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/542",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1491",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"feat: using Client Model Infos;\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#536",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/536",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1506",
+ "theme": "general-polish",
+ "title": "Extend docs for \"Unify the Gemini executor style\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#488",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/488",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1514",
+ "theme": "error-handling-retries",
+ "title": "Generalize \"fix(config): set default MaxRetryInterval to 30s\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#468",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/468",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1515",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"fix(registry): normalize model IDs with underscores to dashes\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#467",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/467",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1519",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"feat(aistudio): normalize thinking budget in request translation\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#461",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/461",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1521",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat(antigravity): enforce thinking budget limits for Claude models\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#458",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/458",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1522",
+ "theme": "general-polish",
+ "title": "Harden \"style(logging): remove redundant separator line from response section\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#457",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/457",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1525",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"add ampcode management api\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#453",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/453",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1526",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"fix(antigravity): auto-enable thinking for Claude models when no config sent\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#452",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/452",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1527",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"refactor(config): rename prioritize-model-mappings to force-model-mappings\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#450",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/450",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1529",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"Iflow\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#448",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/448",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1532",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"feat(registry): add explicit thinking support config for antigravity models\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#444",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/444",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1533",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"fix: filter whitespace-only text in Claude to OpenAI translation\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#441",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/441",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1534",
+ "theme": "general-polish",
+ "title": "Generalize \"feat(logging): add version info to request log output\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#439",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/439",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1542",
+ "theme": "general-polish",
+ "title": "Harden \"fix(amp): suppress ErrAbortHandler panics in reverse proxy handler\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#423",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/423",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1543",
+ "theme": "general-polish",
+ "title": "Operationalize \"Amp\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#422",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/422",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1544",
+ "theme": "general-polish",
+ "title": "Generalize \"Amp\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#418",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/418",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1545",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"Amp\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#416",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/416",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1546",
+ "theme": "general-polish",
+ "title": "Extend docs for \"refactor(api): remove legacy generative-language-api-key endpoints and duplicate GetConfigYAML\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#406",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/406",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1548",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Legacy Config Migration and Amp Consolidation\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#404",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/404",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1550",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"fix some bugs\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#399",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/399",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1551",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"refactor(registry): remove qwen3-coder model from iFlow models list\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#394",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/394",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1553",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"fix: enable hot reload for amp-model-mappings config\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#389",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/389",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1562",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"feat(registry): add thinking support to gemini models\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#377",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/377",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1567",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Add Model Blacklist\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#366",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/366",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1575",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"fix: handle tools conversion for gemini-claude-sonnet-4-5-thinking model\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#347",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/347",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1576",
+ "theme": "testing-and-quality",
+ "title": "Extend docs for \"style(amp): tidy whitespace in proxy module and tests\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#343",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/343",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1579",
+ "theme": "cli-ux-dx",
+ "title": "Prepare safe rollout for \"增加多候选支持\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#333",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/333",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1582",
+ "theme": "general-polish",
+ "title": "Harden \"fix: claude \u0026 codex compatibility\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#325",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/325",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1583",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"feat(registry): add support for Claude Opus 4.5 model\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#323",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/323",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1584",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"feat(registry): add Claude Opus 4.5 model definition\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#322",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/322",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1585",
+ "theme": "error-handling-retries",
+ "title": "Improve CLI UX around \"feat(logs): add limit query param to cap returned logs\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#318",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/318",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1586",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"fix(aistudio): strip Gemini generation config overrides\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#315",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/315",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1590",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"Antigravity bugfix\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#296",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/296",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1597",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"feat(gemini): support gemini-3-pro-preview, thinking budget fix \u0026 image support\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#281",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/281",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1600",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"Iflow\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#275",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/275",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1601",
+ "theme": "error-handling-retries",
+ "title": "Follow up \"fix: detect HTML error bodies without text/html content type\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#274",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/274",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1607",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Add GPT-5.1 and GPT-5.1 Codex model definitions\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#245",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/245",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1608",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"feat(openai): inject default params from config\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#243",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/243",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1609",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"feat: add auto model resolution and model creation timestamp tracking\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#237",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/237",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1611",
+ "theme": "general-polish",
+ "title": "Follow up \"add headers support for api\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#227",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/227",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1612",
+ "theme": "provider-model-registry",
+ "title": "Harden \"feat(config): support HTTP headers across providers\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#226",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/226",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1617",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"unfeat\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#215",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/215",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1620",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"feat: Implement context-aware Gemini executor to improve performance\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#207",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/207",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1623",
+ "theme": "general-polish",
+ "title": "Operationalize \"Dev\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#195",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/195",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1625",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"Add safety settings for gemini models\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#191",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/191",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1629",
+ "theme": "testing-and-quality",
+ "title": "Prepare safe rollout for \"test\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#184",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/184",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1630",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"t\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#183",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/183",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1635",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"fix(gemini): map responseModalities to uppercase IMAGE/TEXT\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#163",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/163",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1636",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"Add websocket provider\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#161",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/161",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1637",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"feat(config): standardize YAML string quoting in normalization\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#157",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/157",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1640",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"feat(mgmt): support YAML config retrieval and updates via /config.yaml\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#147",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/147",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1641",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"feat(iflow): add masked token logs; increase refresh lead to 24h\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#146",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/146",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1642",
+ "theme": "general-polish",
+ "title": "Harden \"feat: prefer util.WritablePath() for logs and local storage\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#145",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/145",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1643",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"fix(registry): always use model ID for Gemini name\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#141",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/141",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1644",
+ "theme": "general-polish",
+ "title": "Generalize \"feat(logging): centralize sensitive header masking\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#139",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/139",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1646",
+ "theme": "websocket-and-streaming",
+ "title": "Extend docs for \"feat(managementasset): add MANAGEMENT_STATIC_PATH override\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#134",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/134",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1647",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"feat(management): add log retrieval and cleanup endpoints\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#130",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/130",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1648",
+ "theme": "install-and-ops",
+ "title": "Refactor internals touched by \"fix(server): snapshot config with YAML to handle in-place mutations\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#127",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/127",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1650",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"add S3-compatible object store\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#125",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/125",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1651",
+ "theme": "general-polish",
+ "title": "Follow up \"feat(config): use block style for YAML maps/lists\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#118",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/118",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1652",
+ "theme": "general-polish",
+ "title": "Harden \"feat(store): add PostgreSQL-backed config store with env selection\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#117",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/117",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1655",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"chore: update .gitignore include .env\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#113",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/113",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1657",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"feat(config): Gracefully handle empty or invalid optional config\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#110",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/110",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1658",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Remove Gemini Web\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#107",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/107",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1659",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"Add Cloud Deploy Mode\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#104",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/104",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1662",
+ "theme": "general-polish",
+ "title": "Harden \"Add Gem Mode for Gemini Web\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#94",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/94",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1663",
+ "theme": "general-polish",
+ "title": "Operationalize \"Dethink\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#90",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/90",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1664",
+ "theme": "general-polish",
+ "title": "Generalize \"add Iflow\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#85",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/85",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1665",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"fix(cliproxy): Use model name as fallback for ID if alias is empty\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#83",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/83",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1667",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"feat: add multi-account polling for Gemini web\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#78",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/78",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1668",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"feat(registry): add support for Claude Sonnet 4.5 model\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#77",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/77",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1669",
+ "theme": "general-polish",
+ "title": "Prepare safe rollout for \"Minor adjustments to the logs\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#72",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/72",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1673",
+ "theme": "cli-ux-dx",
+ "title": "Operationalize \"refactor(logging): Improve client loading and registration logs\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#68",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/68",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1678",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Gemini-web\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#63",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/63",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1680",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"Reduce the size of gemini-web's package files\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#61",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/61",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1681",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"Move gemini-web to provider\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#60",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/60",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1685",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"feat(gemini-web): Implement proactive PSIDTS cookie rotation\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#55",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/55",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1687",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"Made some optimizations for Gemini Web\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#53",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/53",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1689",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"feat(gemini-web): Add support for real Nano Banana model\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#51",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/51",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1692",
+ "theme": "general-polish",
+ "title": "Harden \"Merge pull request #46 from router-for-me/cookie_snapshot\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#47",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/47",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1694",
+ "theme": "general-polish",
+ "title": "Generalize \"Add Cookie Snapshot\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#45",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/45",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1695",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"Merge gemini-web into dev\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#44",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/44",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1698",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"Avoid unnecessary config.yaml reloads via hash check\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#39",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/39",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1701",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"Inject build metadata into binary during release and docker build\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#31",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/31",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1703",
+ "theme": "cli-ux-dx",
+ "title": "Operationalize \"Enhance client counting and logging\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#29",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/29",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1706",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"Add Gemini 2.5 Flash-Lite Model\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#26",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/26",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1707",
+ "theme": "cli-ux-dx",
+ "title": "Add robust stream/non-stream parity tests for \"Improve hot reloading and fix api response logging\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#23",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/23",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1708",
+ "theme": "install-and-ops",
+ "title": "Refactor internals touched by \"Set the default Docker timezone to Asia/Shanghai\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#16",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/16",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1709",
+ "theme": "cli-ux-dx",
+ "title": "Prepare safe rollout for \"Mentioned in Awesome Gemini CLI\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#8",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/8",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1949",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"feat(registry): add GPT-4o model variants for GitHub Copilot\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#255",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/255",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1951",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"feat(registry): add Gemini 3.1 Pro to GitHub Copilot provider\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#250",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/250",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1952",
+ "theme": "general-polish",
+ "title": "Harden \"v6.8.22\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#249",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/249",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1953",
+ "theme": "general-polish",
+ "title": "Operationalize \"v6.8.21\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#248",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/248",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1958",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"feat(registry): add Sonnet 4.6 to GitHub Copilot provider\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#240",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/240",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1959",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"feat(registry): add GPT-5.3 Codex to GitHub Copilot provider\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#239",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/239",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1960",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"Fix Copilot 0x model incorrectly consuming premium requests\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#238",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/238",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1961",
+ "theme": "general-polish",
+ "title": "Follow up \"v6.8.18\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#237",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/237",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1970",
+ "theme": "general-polish",
+ "title": "Standardize naming/metadata affected by \"v6.8.15\" across both repos and docs.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#227",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/227",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1975",
+ "theme": "general-polish",
+ "title": "Improve CLI UX around \"fix(kiro): 修复之前提交的错误的application/cbor请求处理逻辑\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#220",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/220",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1977",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"增加kiro新模型并根据其他提供商同模型配置Thinking\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#216",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/216",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1982",
+ "theme": "general-polish",
+ "title": "Harden \"v6.8.9\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#207",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/207",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1984",
+ "theme": "general-polish",
+ "title": "Generalize \"v6.8.7\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#204",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/204",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1985",
+ "theme": "responses-and-chat-compat",
+ "title": "Improve CLI UX around \"fix(copilot): prevent premium request count inflation for Claude models\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#203",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/203",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1987",
+ "theme": "general-polish",
+ "title": "Add robust stream/non-stream parity tests for \"v6.8.4\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#197",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/197",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1988",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"v6.8.1\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#195",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/195",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1991",
+ "theme": "general-polish",
+ "title": "Follow up \"v6.8.0\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#192",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/192",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1993",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"fix(kiro): handle empty content in current user message for compaction\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#190",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/190",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1994",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"feat: add Claude Opus 4.6 support for Kiro\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#189",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/189",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1997",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"fix(kiro): handle empty content in Claude format assistant messages\" across supported providers.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#186",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/186",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1998",
+ "theme": "general-polish",
+ "title": "Refactor internals touched by \"v6.7.48\" to reduce coupling and improve maintainability.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#185",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/185",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1999",
+ "theme": "testing-and-quality",
+ "title": "Prepare safe rollout for \"add kimik2.5 to iflow\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P2",
+ "effort": "M",
+ "wave": "wave-2",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#184",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/184",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0013",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"Bug: MergeAdjacentMessages drops tool_calls from assistant messages\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#217",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/217",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0061",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"UI 上没有 Kiro 配置的入口,或者说想添加 Kiro 支持,具体该怎么做\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#87",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/87",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0256",
+ "theme": "docs-quickstarts",
+ "title": "Extend docs for \"docker镜像及docker相关其它优化建议\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1669",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1669",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0273",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"Google官方好像已经有检测并稳定封禁CPA反代Antigravity的方案了?\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1631",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1631",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0275",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"codex 中 plus/team错误支持gpt-5.3-codex-spark 但实际上不支持\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1623",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1623",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0280",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"Any Plans to support Jetbrains IDE?\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1615",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1615",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0389",
+ "theme": "error-handling-retries",
+ "title": "Prepare safe rollout for \"Add LangChain/LangGraph Integration for Memory System\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1419",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1419",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0393",
+ "theme": "oauth-and-authentication",
+ "title": "Operationalize \"Add Google Drive Connector for Memory Ingestion\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1415",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1415",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0420",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"[Bug] Gemini 400 Error: \"defer_loading\" field in ToolSearch is not supported by Gemini API\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1375",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1375",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0429",
+ "theme": "websocket-and-streaming",
+ "title": "Prepare safe rollout for \"nvidia openai接口连接失败\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1324",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1324",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0448",
+ "theme": "error-handling-retries",
+ "title": "Refactor internals touched by \"cpa长时间运行会oom\" to reduce coupling and improve maintainability.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1287",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1287",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0465",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"[Bug] 反重力banana pro 4k 图片生成输出为空,仅思考过程可见\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1255",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1255",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0470",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"[BUG] Why does it repeat twice? 为什么他重复了两次?\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1247",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1247",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0499",
+ "theme": "install-and-ops",
+ "title": "Prepare safe rollout for \"linux一键安装的如何更新\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1167",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1167",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0515",
+ "theme": "error-handling-retries",
+ "title": "Improve CLI UX around \"[Bug] Internal restart loop causes continuous \"address already in use\" errors in logs\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1146",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1146",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0519",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Claude to OpenAI Translation Generates Empty System Message\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1136",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1136",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0525",
+ "theme": "thinking-and-reasoning",
+ "title": "Improve CLI UX around \"[Bug] Antigravity provider intermittently strips `thinking` blocks in multi-turn conversations with extended thinking enabled\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1124",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1124",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0535",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"[Feature Request] whitelist models for specific API KEY\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1107",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1107",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0542",
+ "theme": "responses-and-chat-compat",
+ "title": "Harden \"Anthropic web_search fails in v6.7.x - invalid tool name web_search_20250305\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1094",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1094",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0603",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"Management Usage report resets at restart\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#1013",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/1013",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0639",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"版本:6.6.98 症状:登录成功后白屏,React Error #300 复现:登录后立即崩溃白屏\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#964",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/964",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0643",
+ "theme": "responses-and-chat-compat",
+ "title": "Operationalize \"macOS的webui无法登录\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#957",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/957",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0649",
+ "theme": "docs-quickstarts",
+ "title": "Prepare safe rollout for \"README has been replaced by the one from CLIProxyAPIPlus\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#950",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/950",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0673",
+ "theme": "docs-quickstarts",
+ "title": "Operationalize \"增加支持Gemini API v1版本\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#914",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/914",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0679",
+ "theme": "responses-and-chat-compat",
+ "title": "Prepare safe rollout for \"[BUG] 403 You are currently configured to use a Google Cloud Project but lack a Gemini Code Assist license\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#907",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/907",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0699",
+ "theme": "docs-quickstarts",
+ "title": "Prepare safe rollout for \"supports stakpak.dev\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#872",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/872",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0700",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"gemini 模型 tool_calls 问题\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#866",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/866",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0716",
+ "theme": "docs-quickstarts",
+ "title": "Extend docs for \"\"Feature Request: Android Binary Support (Termux Build Guide)\"\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#836",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/836",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0769",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"[BUG] Antigravity Opus + Codex cannot read images\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#729",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/729",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0780",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"/context show system tools 1 tokens, mcp tools 4 tokens\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#712",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/712",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0784",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"Behavior is not consistent with codex\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#708",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/708",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0786",
+ "theme": "thinking-and-reasoning",
+ "title": "Extend docs for \"Antigravity provider returns 400 error when extended thinking is enabled after tool calls\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#702",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/702",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0789",
+ "theme": "docs-quickstarts",
+ "title": "Prepare safe rollout for \"是否可以提供kiro的支持啊\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#698",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/698",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0797",
+ "theme": "responses-and-chat-compat",
+ "title": "Add robust stream/non-stream parity tests for \"Frequent Tool-Call Failures with Gemini-2.5-pro in OpenAI-Compatible Mode\" across supported providers.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#682",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/682",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0811",
+ "theme": "responses-and-chat-compat",
+ "title": "Follow up \"Antigravity Provider Broken\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#650",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/650",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0813",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"Request Wrap Cursor to use models as proxy\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#648",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/648",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0820",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"我无法使用gpt5.2max而其他正常\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#629",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/629",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0831",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Failing to do tool use from within Cursor\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#601",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/601",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0835",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"不能通过回调链接认证吗\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#594",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/594",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0848",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"Model ignores tool response and keeps repeating tool calls (Gemini 3 Pro / 2.5 Pro)\" to reduce coupling and improve maintainability.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#565",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/565",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-0857",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"Add General Request Queue with Windowed Concurrency for Reliable Pseudo-Concurrent Execution\" across supported providers.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#546",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/546",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0872",
+ "theme": "provider-model-registry",
+ "title": "Harden \"[Bug] Load balancing is uneven: Requests are not distributed equally among available accounts\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#506",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/506",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0887",
+ "theme": "thinking-and-reasoning",
+ "title": "Add robust stream/non-stream parity tests for \"Files and images not working with Antigravity\" across supported providers.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#478",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/478",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-0889",
+ "theme": "thinking-and-reasoning",
+ "title": "Prepare safe rollout for \"Error with Antigravity\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#476",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/476",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-0914",
+ "theme": "thinking-and-reasoning",
+ "title": "Generalize \"invalid_request_error\",\"message\":\"`max_tokens` must be greater than `thinking.budget_tokens`.\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#413",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/413",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-0925",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"Image gen not supported/enabled for gemini-3-pro-image-preview?\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#374",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/374",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-0926",
+ "theme": "docs-quickstarts",
+ "title": "Extend docs for \"Is it possible to support gemini native api for file upload?\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#373",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/373",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0953",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"FR: Add support for beta headers for Claude models\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#324",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/324",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-0960",
+ "theme": "responses-and-chat-compat",
+ "title": "Standardize naming/metadata affected by \"Previous request seem to be concatenated into new ones with Antigravity\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#313",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/313",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-0961",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Question: Is the Antigravity provider available and compatible with the sonnet 4.5 Thinking LLM model?\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#311",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/311",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-0962",
+ "theme": "websocket-and-streaming",
+ "title": "Harden \"cursor with gemini-claude-sonnet-4-5\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#310",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/310",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-0992",
+ "theme": "provider-model-registry",
+ "title": "Harden \"Feat Request: Support gpt-5-pro\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#259",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/259",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1000",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"应该给GPT-5.1添加-none后缀适配以保持一致性\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#248",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/248",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1046",
+ "theme": "install-and-ops",
+ "title": "Extend docs for \"Created an install script for linux\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#166",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/166",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1049",
+ "theme": "error-handling-retries",
+ "title": "Prepare safe rollout for \"Clarification Needed: Is 'timeout' a Supported Config Parameter?\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#160",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/160",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1051",
+ "theme": "thinking-and-reasoning",
+ "title": "Follow up \"Gemini Cli With github copilot\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#158",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/158",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1052",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"Enhancement: _FILE env vars for docker compose\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#156",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/156",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1103",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"添加 Factor CLI 2api 选项\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "issue#74",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/issues/74",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1759",
+ "theme": "docs-quickstarts",
+ "title": "Prepare safe rollout for \"\"Feature Request: Android Binary Support (Termux Build Guide)\"\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1209",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1209",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1766",
+ "theme": "install-and-ops",
+ "title": "Extend docs for \"linux一键安装的如何更新\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1177",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1177",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1773",
+ "theme": "provider-model-registry",
+ "title": "Operationalize \"[Feature Request] whitelist models for specific API KEY\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1205",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1205",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1780",
+ "theme": "cli-ux-dx",
+ "title": "Standardize naming/metadata affected by \"旧的认证凭证升级后无法使用\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#1011",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/1011",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1803",
+ "theme": "docs-quickstarts",
+ "title": "Operationalize \"supports stakpak.dev\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#880",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/880",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1833",
+ "theme": "thinking-and-reasoning",
+ "title": "Operationalize \"[Feature Request] Global Alias\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#632",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/632",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1834",
+ "theme": "provider-model-registry",
+ "title": "Generalize \"Image gen not supported/enabled for gemini-3-pro-image-preview?\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#378",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/378",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1845",
+ "theme": "docs-quickstarts",
+ "title": "Improve CLI UX around \"Is it possible to support gemini native api for file upload?\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#631",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/631",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1850",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"ask model\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#309",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/309",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1852",
+ "theme": "provider-model-registry",
+ "title": "Harden \"Multi-Model Routing\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "discussion",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "discussion#312",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/discussions/312",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1867",
+ "theme": "provider-model-registry",
+ "title": "Add robust stream/non-stream parity tests for \"[Feature Request] Add GPT-4o Model Support to GitHub Copilot\" across supported providers.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#257",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/257",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1878",
+ "theme": "responses-and-chat-compat",
+ "title": "Refactor internals touched by \"Bug: MergeAdjacentMessages drops tool_calls from assistant messages\" to reduce coupling and improve maintainability.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#217",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/217",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1926",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"UI 上没有 Kiro 配置的入口,或者说想添加 Kiro 支持,具体该怎么做\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "S",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "issue",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "issue#87",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/issues/87",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-0082",
+ "theme": "docs-quickstarts",
+ "title": "Harden \"Normalize Codex schema handling\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#259",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/259",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1151",
+ "theme": "provider-model-registry",
+ "title": "Follow up \"🚀 Add OmniRoute to \"More Choices\" — A Full-Featured Fork Inspired by CLIProxyAPI\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1638",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1638",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1154",
+ "theme": "error-handling-retries",
+ "title": "Generalize \"fix: update Claude masquerading headers and configurable defaults\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1628",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1628",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1161",
+ "theme": "docs-quickstarts",
+ "title": "Follow up \"docs: comprehensive README update\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1614",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1614",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1192",
+ "theme": "thinking-and-reasoning",
+ "title": "Harden \"feat: add claude-opus-4-7-thinking and fix opus-4-6 context length\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1518",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1518",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1221",
+ "theme": "docs-quickstarts",
+ "title": "Follow up \"docs: Add a new client application - Lin Jun\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1409",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1409",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1232",
+ "theme": "docs-quickstarts",
+ "title": "Harden \"Add CLIProxyAPI Tray section to README_CN.md\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1371",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1371",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1233",
+ "theme": "docs-quickstarts",
+ "title": "Operationalize \"Add CLIProxyAPI Tray information to README\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1370",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1370",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1269",
+ "theme": "install-and-ops",
+ "title": "Prepare safe rollout for \"feat: add official Termux (aarch64) build to release workflow\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1233",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1233",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1272",
+ "theme": "install-and-ops",
+ "title": "Harden \"feat: add official Termux build support to release workflow\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1230",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1230",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1319",
+ "theme": "error-handling-retries",
+ "title": "Prepare safe rollout for \"docs(readme): add ZeroLimit to projects based on CLIProxyAPI\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#1068",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/1068",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1328",
+ "theme": "websocket-and-streaming",
+ "title": "Refactor internals touched by \"修复打包后找不到配置文件问题\" to reduce coupling and improve maintainability.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#981",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/981",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1354",
+ "theme": "docs-quickstarts",
+ "title": "Generalize \"Update README.md\" into provider-agnostic translation/utilities to reduce duplicate logic.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#871",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/871",
+ "implementation_note": "Refactor translation layer to isolate provider transform logic from transport concerns."
+ },
+ {
+ "id": "CP2K-1356",
+ "theme": "responses-and-chat-compat",
+ "title": "Extend docs for \"feat(claude): add native request cloaking for non-claude-code clients\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#868",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/868",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1378",
+ "theme": "docs-quickstarts",
+ "title": "Refactor internals touched by \"feat(README): add star history\" to reduce coupling and improve maintainability.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#817",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/817",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1395",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"feat: add per-entry base-url support for OpenAI-compatible API keys\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#769",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/769",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1413",
+ "theme": "docs-quickstarts",
+ "title": "Operationalize \"docs: add Quotio to community projects\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#727",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/727",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1416",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"Multi-Target Model Aliases and Provider Aggregation\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#716",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/716",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1423",
+ "theme": "websocket-and-streaming",
+ "title": "Operationalize \"docs(readme): add Cubence sponsor and fix PackyCode link\" with observability, runbook updates, and deployment safeguards.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#697",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/697",
+ "implementation_note": "Improve error diagnostics and add actionable remediation text in CLI and docs."
+ },
+ {
+ "id": "CP2K-1429",
+ "theme": "provider-model-registry",
+ "title": "Prepare safe rollout for \"docs(readme): add PackyCode sponsor\" via flags, migration docs, and backward-compat tests.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#684",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/684",
+ "implementation_note": "Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs."
+ },
+ {
+ "id": "CP2K-1430",
+ "theme": "docs-quickstarts",
+ "title": "Standardize naming/metadata affected by \"docs: add operations guide and docs updates\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#676",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/676",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1431",
+ "theme": "docs-quickstarts",
+ "title": "Follow up \"docs: add operations guide and docs updates\" by closing compatibility gaps and locking in regression coverage.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#675",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/675",
+ "implementation_note": "Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry."
+ },
+ {
+ "id": "CP2K-1455",
+ "theme": "provider-model-registry",
+ "title": "Improve CLI UX around \"feat(amp): add Amp as provider\" with clearer commands, flags, and immediate validation feedback.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#616",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/616",
+ "implementation_note": "Instrument structured logs/metrics around request normalize-\u003etranslate-\u003edispatch lifecycle."
+ },
+ {
+ "id": "CP2K-1460",
+ "theme": "provider-model-registry",
+ "title": "Standardize naming/metadata affected by \"Fix SDK: remove internal package imports for external consumers\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#608",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/608",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1466",
+ "theme": "websocket-and-streaming",
+ "title": "Extend docs for \"fix: Fixes Bash tool command parameter name mismatch\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#589",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/589",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1470",
+ "theme": "thinking-and-reasoning",
+ "title": "Standardize naming/metadata affected by \"feat: use thinkingLevel for Gemini 3 models per Google documentation\" across both repos and docs.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#582",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/582",
+ "implementation_note": "Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters."
+ },
+ {
+ "id": "CP2K-1538",
+ "theme": "provider-model-registry",
+ "title": "Refactor internals touched by \"docs: add ProxyPal to 'Who is with us?' section\" to reduce coupling and improve maintainability.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#429",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/429",
+ "implementation_note": "Benchmark p50/p95 latency and memory; reject regressions in CI quality gate."
+ },
+ {
+ "id": "CP2K-1552",
+ "theme": "provider-model-registry",
+ "title": "Harden \"feat(amp): add model mapping support for routing unavailable models to alternatives\" with stricter validation, safer defaults, and explicit fallback semantics.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#390",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/390",
+ "implementation_note": "Add failing-before/failing-after regression tests and update golden fixtures for each supported provider."
+ },
+ {
+ "id": "CP2K-1626",
+ "theme": "provider-model-registry",
+ "title": "Extend docs for \"feat: introduce intelligent model routing system with management API and configuration\" with quickstart snippets and troubleshooting decision trees.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#187",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/187",
+ "implementation_note": "Add staged rollout controls (feature flags) with safe defaults and migration notes."
+ },
+ {
+ "id": "CP2K-1627",
+ "theme": "docs-quickstarts",
+ "title": "Add robust stream/non-stream parity tests for \"docs: add AI Studio setup\" across supported providers.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPI",
+ "source_ref": "pr#186",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPI/pull/186",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ },
+ {
+ "id": "CP2K-1947",
+ "theme": "docs-quickstarts",
+ "title": "Add robust stream/non-stream parity tests for \"Normalize Codex schema handling\" across supported providers.",
+ "priority": "P3",
+ "effort": "M",
+ "wave": "wave-3",
+ "status": "proposed",
+ "implementation_ready": "yes",
+ "source_kind": "pr",
+ "source_repo": "router-for-me/CLIProxyAPIPlus",
+ "source_ref": "pr#259",
+ "source_url": "https://github.com/router-for-me/CLIProxyAPIPlus/pull/259",
+ "implementation_note": "Harden edge-case parsing for stream and non-stream payload variants."
+ }
+ ]
+}
\ No newline at end of file
diff --git a/docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md b/docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md
new file mode 100644
index 0000000000..10690adb86
--- /dev/null
+++ b/docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md
@@ -0,0 +1,2304 @@
+# CLIProxyAPI Ecosystem 2000-Item Execution Board
+
+- Generated: 2026-02-22
+- Scope: `router-for-me/CLIProxyAPIPlus` + `router-for-me/CLIProxyAPI` Issues, PRs, Discussions
+- Objective: Implementation-ready backlog (up to 2000), including CLI extraction, bindings/API integration, docs quickstarts, and dev-runtime refresh
+
+## Coverage
+- generated_items: 2000
+- sources_total_unique: 1865
+- issues_plus: 81
+- issues_core: 880
+- prs_plus: 169
+- prs_core: 577
+- discussions_plus: 3
+- discussions_core: 155
+
+## Distribution
+### Priority
+- P1: 1112
+- P2: 786
+- P3: 102
+
+### Wave
+- wave-1: 1114
+- wave-2: 784
+- wave-3: 102
+
+### Effort
+- S: 1048
+- M: 949
+- L: 3
+
+### Theme
+- thinking-and-reasoning: 444
+- general-polish: 296
+- responses-and-chat-compat: 271
+- provider-model-registry: 249
+- docs-quickstarts: 142
+- oauth-and-authentication: 122
+- websocket-and-streaming: 104
+- go-cli-extraction: 99
+- integration-api-bindings: 78
+- dev-runtime-refresh: 60
+- cli-ux-dx: 55
+- error-handling-retries: 40
+- install-and-ops: 26
+- testing-and-quality: 12
+- platform-architecture: 1
+- project-frontmatter: 1
+
+## Top 250 (Execution Order)
+
+### [CP2K-0011] Follow up "kiro账号被封" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: general-polish
+- Source: router-for-me/CLIProxyAPIPlus issue#221
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/221
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0014] Generalize "Add support for proxying models from kilocode CLI" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPIPlus issue#213
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/213
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0015] Improve CLI UX around "[Bug] Kiro 与 Ampcode 的 Bash 工具参数不兼容" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPIPlus issue#210
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/210
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0016] Extend docs for "[Feature Request] Add default oauth-model-alias for Kiro channel (like Antigravity)" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPIPlus issue#208
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/208
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0017] Create or refresh provider quickstart derived from "bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPIPlus issue#206
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/206
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0018] Refactor internals touched by "GitHub Copilot CLI 使用方法" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPIPlus issue#202
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/202
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0021] Follow up "Cursor CLI \ Auth Support" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPIPlus issue#198
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/198
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0022] Harden "Why no opus 4.6 on github copilot auth" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus issue#196
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/196
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0025] Improve CLI UX around "Claude thought_signature forwarded to Gemini causes Base64 decode error" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPIPlus issue#178
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/178
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0030] Standardize naming/metadata affected by "fix(kiro): handle empty content in messages to prevent Bad Request errors" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPIPlus issue#163
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/163
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0031] Follow up "在配置文件中支持为所有 OAuth 渠道自定义上游 URL" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus issue#158
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/158
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0034] Create or refresh provider quickstart derived from "请求docker部署支持arm架构的机器!感谢。" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPIPlus issue#147
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/147
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0036] Extend docs for "[Bug]进一步完善 openai兼容模式对 claude 模型的支持(完善 协议格式转换 )" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPIPlus issue#145
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/145
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0037] Add robust stream/non-stream parity tests for "完善 claude openai兼容渠道的格式转换" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPIPlus issue#142
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/142
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0039] Prepare safe rollout for "kiro idc登录需要手动刷新状态" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPIPlus issue#136
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/136
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0040] Standardize naming/metadata affected by "[Bug Fix] 修复 Kiro 的Claude模型非流式请求 output_tokens 为 0 导致的用量统计缺失" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPIPlus issue#134
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/134
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0045] Improve CLI UX around "Error 403" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPIPlus issue#125
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/125
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0047] Add robust stream/non-stream parity tests for "enterprise 账号 Kiro不是很稳定,很容易就403不可用了" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPIPlus issue#118
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/118
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0048] Refactor internals touched by "-kiro-aws-login 登录后一直封号" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus issue#115
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/115
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0050] Standardize naming/metadata affected by "Antigravity authentication failed" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus issue#111
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/111
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0051] Create or refresh provider quickstart derived from "大佬,什么时候搞个多账号管理呀" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPIPlus issue#108
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/108
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0052] Harden "日志中,一直打印auth file changed (WRITE)" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus issue#105
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/105
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0053] Operationalize "登录incognito参数无效" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus issue#102
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/102
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0054] Generalize "OpenAI-compat provider hardcodes /v1/models (breaks Z.ai v4: /api/coding/paas/v4/models)" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPIPlus issue#101
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/101
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0056] Extend docs for "Kiro currently has no authentication available" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPIPlus issue#96
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/96
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0059] Prepare safe rollout for "Bug: Kiro/BuilderId tokens can collide when email/profile_arn are empty; refresh token lifecycle not handled" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPIPlus issue#90
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/90
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0060] Standardize naming/metadata affected by "[Bug] Amazon Q endpoint returns HTTP 400 ValidationException (wrong CLI/KIRO_CLI origin)" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPIPlus issue#89
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/89
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0062] Harden "Cursor Issue" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPIPlus issue#86
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/86
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0063] Operationalize "Feature request: Configurable HTTP request timeout for Extended Thinking models" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPIPlus issue#84
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/84
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0064] Generalize "kiro请求偶尔报错event stream fatal" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: websocket-and-streaming
+- Source: router-for-me/CLIProxyAPIPlus issue#83
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/83
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0066] Extend docs for "[建议] 技术大佬考虑可以有机会新增一堆逆向平台" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus issue#79
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/79
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0068] Create or refresh provider quickstart derived from "kiro请求的数据好像一大就会出错,导致cc写入文件失败" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPIPlus issue#77
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/77
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0073] Operationalize "How to use KIRO with IAM?" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus issue#56
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/56
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0074] Generalize "[Bug] Models from Codex (openai) are not accessible when Copilot is added" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPIPlus issue#43
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/43
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0075] Improve CLI UX around "model gpt-5.1-codex-mini is not accessible via the /chat/completions endpoint" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPIPlus issue#41
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/41
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0079] Prepare safe rollout for "lack of thinking signature in kiro's non-stream response cause incompatibility with some ai clients (specifically cherry studio)" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPIPlus issue#27
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/27
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0080] Standardize naming/metadata affected by "I did not find the Kiro entry in the Web UI" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus issue#26
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/26
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0081] Follow up "Kiro (AWS CodeWhisperer) - Stream error, status: 400" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPIPlus issue#7
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/7
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0251] Follow up "Why a separate repo?" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus discussion#170
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/discussions/170
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0252] Harden "How do I perform GitHub OAuth authentication? I can't find the entrance." with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPIPlus discussion#215
+- Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/discussions/215
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0255] Create or refresh provider quickstart derived from "feat: support image content in tool result messages (OpenAI ↔ Claude translation)" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1670
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1670
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0257] Add robust stream/non-stream parity tests for "Need maintainer-handled codex translator compatibility for Responses compaction fields" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1667
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1667
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0258] Refactor internals touched by "codex: usage_limit_reached (429) should honor resets_at/resets_in_seconds as next_retry_after" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1666
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1666
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0260] Standardize naming/metadata affected by "fix(claude): token exchange blocked by Cloudflare managed challenge on console.anthropic.com" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1659
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1659
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0263] Operationalize "All credentials for model claude-sonnet-4-6 are cooling down" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1655
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1655
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0265] Improve CLI UX around "Claude Sonnet 4.5 models are deprecated - please remove from panel" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1651
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1651
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0267] Add robust stream/non-stream parity tests for "codex 返回 Unsupported parameter: response_format" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1647
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1647
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0268] Refactor internals touched by "Bug: Invalid JSON payload when tool_result has no content field (antigravity translator)" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1646
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1646
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0272] Create or refresh provider quickstart derived from "是否支持微软账号的反代?" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1632
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1632
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0274] Generalize "Claude Sonnet 4.5 is no longer available. Please switch to Claude Sonnet 4.6." into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1630
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1630
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0277] Add robust stream/non-stream parity tests for "Question: applyClaudeHeaders() — how were these defaults chosen?" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1621
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1621
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0278] Refactor internals touched by "[BUG] claude code 接入 cliproxyapi 使用时,模型的输出没有呈现流式,而是一下子蹦出来回答结果" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#1620
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1620
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0281] Follow up "[bug] codex oauth登录流程失败" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#1612
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1612
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0282] Harden "qwen auth 里获取到了 qwen3.5,但是 ai 客户端获取不到这个模型" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1611
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1611
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0283] Operationalize "fix: handle response.function_call_arguments.done in codex→claude streaming translator" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1609
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1609
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0286] Extend docs for "[Feature Request] Antigravity channel should support routing claude-haiku-4-5-20251001 model (used by Claude Code pre-flight checks)" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1596
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1596
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0289] Create or refresh provider quickstart derived from "[Bug] Claude Code 2.1.37 random cch in x-anthropic-billing-header causes severe prompt-cache miss on third-party upstreams" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1592
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1592
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0291] Follow up "配额管理可以刷出额度,但是调用的时候提示额度不足" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1590
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1590
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0293] Operationalize "iflow GLM 5 时不时会返回 406" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1588
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1588
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0296] Extend docs for "bug: Invalid thinking block signature when switching from Gemini CLI to Claude OAuth mid-conversation" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1584
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1584
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0297] Add robust stream/non-stream parity tests for "I saved 10M tokens (89%) on my Claude Code sessions with a CLI proxy" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1583
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1583
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0298] Refactor internals touched by "[bug]? gpt-5.3-codex-spark 在 team 账户上报错 400" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1582
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1582
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0302] Harden "Port 8317 becomes unreachable after running for some time, recovers immediately after SSH login" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1575
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1575
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0303] Operationalize "Support for gpt-5.3-codex-spark" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1573
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1573
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0306] Create or refresh provider quickstart derived from "能否再难用一点?!" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1564
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1564
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0307] Add robust stream/non-stream parity tests for "Cache usage through Claude oAuth always 0" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1562
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1562
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0308] Refactor internals touched by "antigravity 无法使用" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1561
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1561
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0310] Standardize naming/metadata affected by "Claude Code 调用 nvidia 发现 无法正常使用bash grep类似的工具" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1557
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1557
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0311] Follow up "Gemini CLI: 额度获取失败:请检查凭证状态" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1556
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1556
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0314] Generalize "Kimi的OAuth无法使用" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1553
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1553
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0315] Improve CLI UX around "grok的OAuth登录认证可以支持下吗? 谢谢!" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1552
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1552
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0316] Extend docs for "iflow executor: token refresh failed" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1551
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1551
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0317] Add robust stream/non-stream parity tests for "为什么gemini3会报错" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1549
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1549
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0323] Create or refresh provider quickstart derived from "佬们,隔壁很多账号403啦,这里一切正常吗?" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1541
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1541
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0324] Generalize "feat(thinking): support Claude output_config.effort parameter (Opus 4.6)" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1540
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1540
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0327] Add robust stream/non-stream parity tests for "[Bug] Persistent 400 "Invalid Argument" error with claude-opus-4-6-thinking model (with and without thinking budget)" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1533
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1533
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0329] Prepare safe rollout for "bug: proxy_ prefix applied to tool_choice.name but not tools[].name causes 400 errors on OAuth requests" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1530
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1530
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0333] Operationalize "The account has available credit, but a 503 or 429 error is occurring." with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: websocket-and-streaming
+- Source: router-for-me/CLIProxyAPI issue#1521
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1521
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0334] Generalize "openclaw调用CPA 中的codex5.2 报错。" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1517
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1517
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0336] Extend docs for "Token refresh logic fails with generic 500 error ("server busy") from iflow provider" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1514
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1514
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0337] Add robust stream/non-stream parity tests for "bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1513
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1513
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0340] Create or refresh provider quickstart derived from "反重力 claude-opus-4-6-thinking 模型如何通过 () 实现强行思考" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1509
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1509
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0341] Follow up "Feature: Per-OAuth-Account Outbound Proxy Enforcement for Google (Gemini/Antigravity) + OpenAI Codex – incl. Token Refresh and optional Strict/Fail-Closed Mode" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1508
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1508
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0353] Operationalize "Feature request [allow to configure RPM, TPM, RPD, TPD]" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#1493
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1493
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0354] Generalize "Antigravity using Ultra plan: Opus 4.6 gets 429 on CLIProxy but runs with Opencode-Auth" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1486
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1486
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0357] Create or refresh provider quickstart derived from "Amp code doesn't route through CLIProxyAPI" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1481
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1481
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0358] Refactor internals touched by "导入kiro账户,过一段时间就失效了" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1480
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1480
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0359] Prepare safe rollout for "openai-compatibility: streaming response empty when translating Codex protocol (/v1/responses) to OpenAI chat/completions" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1478
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1478
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0360] Standardize naming/metadata affected by "bug: request-level metadata fields injected into contents[] causing Gemini API rejection (v6.8.4)" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1477
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1477
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0366] Extend docs for "model not found for gpt-5.3-codex" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1463
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1463
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0370] Standardize naming/metadata affected by "When I don’t add the authentication file, opening Claude Code keeps throwing a 500 error, instead of directly using the AI provider I’ve configured." across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#1455
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1455
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0371] Follow up "6.7.53版本反重力无法看到opus-4.6模型" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1453
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1453
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0372] Harden "Codex OAuth failed" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1451
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1451
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0373] Operationalize "Google asking to Verify account" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1447
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1447
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0374] Create or refresh provider quickstart derived from "API Error" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1445
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1445
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0375] Improve CLI UX around "Unable to use GPT 5.3 codex (model_not_found)" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1443
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1443
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0376] Extend docs for "gpt-5.3-codex 请求400 显示不存在该模型" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1442
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1442
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0381] Follow up "[BUG] Invalid JSON payload with large requests (~290KB) - truncated body" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1433
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1433
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0384] Generalize "[v6.7.47] 接入智谱 Plan 计划后请求报错" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1430
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1430
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0387] Add robust stream/non-stream parity tests for "bug: Claude → Gemini translation fails due to unsupported JSON Schema fields ($id, patternProperties)" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1424
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1424
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0390] Standardize naming/metadata affected by "Security Review: Apply Lessons from Supermemory Security Findings" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1418
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1418
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0391] Create or refresh provider quickstart derived from "Add Webhook Support for Document Lifecycle Events" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1417
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1417
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0394] Generalize "Add Document Processor for PDF and URL Content Extraction" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#1414
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1414
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0398] Refactor internals touched by "Implement MCP Server for Memory Operations" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1410
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1410
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0400] Standardize naming/metadata affected by "Bug: /v1/responses returns 400 "Input must be a list" when input is string (regression 6.7.42, Droid auto-compress broken)" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1403
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1403
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0401] Follow up "Factory Droid CLI got 404" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1401
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1401
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0403] Operationalize "Feature request: Cursor CLI support" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1399
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1399
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0404] Generalize "bug: Invalid signature in thinking block (API 400) on follow-up requests" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1398
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1398
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0407] Add robust stream/non-stream parity tests for "Session title generation fails for Claude models via Antigravity provider (OpenCode)" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1394
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1394
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0408] Create or refresh provider quickstart derived from "反代反重力请求gemini-3-pro-image-preview接口报错" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1393
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1393
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0409] Prepare safe rollout for "[Feature Request] Implement automatic account rotation on VALIDATION_REQUIRED errors" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1392
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1392
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0413] Operationalize "在codex运行报错" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: websocket-and-streaming
+- Source: router-for-me/CLIProxyAPI issue#1406
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1406
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0415] Improve CLI UX around "Claude authentication failed in v6.7.41 (works in v6.7.25)" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1383
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1383
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0416] Extend docs for "Question: Does load balancing work with 2 Codex accounts for the Responses API?" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1382
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1382
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0417] Add robust stream/non-stream parity tests for "登陆提示“登录失败: 访问被拒绝,权限不足”" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1381
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1381
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0419] Prepare safe rollout for "antigravity无法登录" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1376
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1376
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0421] Follow up "API Error: 403" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1374
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1374
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0424] Generalize "Bad processing of Claude prompt caching that is already implemented by client app" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1366
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1366
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0425] Create or refresh provider quickstart derived from "[Bug] OpenAI-compatible provider: message_start.usage always returns 0 tokens (kimi-for-coding)" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1365
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1365
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0426] Extend docs for "iflow Cli官方针对terminal有Oauth 登录方式" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1364
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1364
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0428] Refactor internals touched by "“Error 404: Requested entity was not found" for gemini 3 by gemini-cli" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1325
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1325
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0430] Standardize naming/metadata affected by "Feature Request: Add generateImages endpoint support for Gemini API" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1322
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1322
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0431] Follow up "iFlow Error: LLM returned 200 OK but response body was empty (possible rate limit)" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1321
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1321
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0432] Harden "feat: add code_execution and url_context tool passthrough for Gemini" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1318
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1318
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0436] Extend docs for "Claude Opus 4.5 returns "Internal server error" in response body via Anthropic OAuth (Sonnet works)" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1306
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1306
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0439] Prepare safe rollout for "版本: v6.7.27 添加openai-compatibility的时候出现 malformed HTTP response 错误" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1301
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1301
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0440] Standardize naming/metadata affected by "fix(logging): request and API response timestamps are inaccurate in error logs" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: websocket-and-streaming
+- Source: router-for-me/CLIProxyAPI issue#1299
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1299
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0441] Follow up "cpaUsageMetadata leaks to Gemini API responses when using Antigravity backend" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1297
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1297
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0442] Create or refresh provider quickstart derived from "Gemini API error: empty text content causes 'required oneof field data must have one initialized field'" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1293
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1293
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0443] Operationalize "Gemini API error: empty text content causes 'required oneof field data must have one initialized field'" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1292
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1292
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0446] Extend docs for "Request takes over a minute to get sent with Antigravity" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#1289
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1289
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0447] Add robust stream/non-stream parity tests for "Antigravity auth requires daily re-login - sessions expire unexpectedly" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1288
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1288
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0449] Prepare safe rollout for "429 RESOURCE_EXHAUSTED for Claude Opus 4.5 Thinking with Google AI Pro Account" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1284
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1284
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0452] Harden "Support request: Kimi For Coding (Kimi Code / K2.5) behind CLIProxyAPI" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1280
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1280
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0459] Create or refresh provider quickstart derived from "[Improvement] Pre-bundle Management UI in Docker Image" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1266
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1266
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0467] Add robust stream/non-stream parity tests for "CLIProxyAPI goes down after some time, only recovers when SSH into server" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1253
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1253
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0468] Refactor internals touched by "kiro hope" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1252
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1252
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0469] Prepare safe rollout for ""Requested entity was not found" for all antigravity models" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1251
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1251
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0476] Create or refresh provider quickstart derived from "GLM Coding Plan" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1226
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1226
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0479] Prepare safe rollout for "auth_unavailable: no auth available in claude code cli, 使用途中经常500" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1222
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1222
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0482] Harden "openai codex 认证失败: Failed to exchange authorization code for tokens" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1217
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1217
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0484] Generalize "Error 403" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1214
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1214
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0485] Improve CLI UX around "Gemini CLI OAuth 认证失败: failed to start callback server" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1213
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1213
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0486] Extend docs for "bug: Thinking budget ignored in cross-provider conversations (Antigravity)" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1199
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1199
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0490] Standardize naming/metadata affected by "codex总是有失败" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1193
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1193
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0493] Create or refresh provider quickstart derived from "🚨🔥 CRITICAL BUG REPORT: Invalid Function Declaration Schema in API Request 🔥🚨" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1189
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1189
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0496] Extend docs for "使用 Antigravity OAuth 使用openai格式调用opencode问题" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1173
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1173
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0497] Add robust stream/non-stream parity tests for "今天中午开始一直429" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: error-handling-retries
+- Source: router-for-me/CLIProxyAPI issue#1172
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1172
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0508] Refactor internals touched by "[Bug] v6.7.x Regression: thinking parameter not recognized, causing Cherry Studio and similar clients to fail displaying extended thinking content" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1155
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1155
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0510] Create or refresh provider quickstart derived from "Antigravity OAuth认证失败" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1153
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1153
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0516] Extend docs for "cc 使用 zai-glm-4.7 报错 body.reasoning" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1143
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1143
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0517] Add robust stream/non-stream parity tests for "NVIDIA不支持,转发成claude和gpt都用不了" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1139
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1139
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0520] Standardize naming/metadata affected by "tool_choice not working for Gemini models via Claude API endpoint" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1135
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1135
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0527] Create or refresh provider quickstart derived from "gpt-5.2-codex "System messages are not allowed"" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1122
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1122
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0531] Follow up "gemini-3-pro-high (Antigravity): malformed_function_call error with tools" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1113
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1113
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0533] Operationalize "香蕉pro 图片一下将所有图片额度都消耗没了" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: error-handling-retries
+- Source: router-for-me/CLIProxyAPI issue#1110
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1110
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0536] Extend docs for "gemini-3-pro-high returns empty response when subagent uses tools" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1106
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1106
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0537] Add robust stream/non-stream parity tests for "GitStore local repo fills tmpfs due to accumulating loose git objects (no GC/repack)" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#1104
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1104
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0541] Follow up "Wrong workspace selected for OpenAI accounts" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#1095
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1095
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0543] Operationalize "Antigravity 生图无法指定分辨率" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1093
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1093
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0544] Create or refresh provider quickstart derived from "文件写方式在docker下容易出现Inode变更问题" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1092
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1092
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0548] Refactor internals touched by "Streaming Response Translation Fails to Emit Completion Events on `[DONE]` Marker" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1085
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1085
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0549] Prepare safe rollout for "Feature Request: Add support for Text Embedding API (/v1/embeddings)" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1084
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1084
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0553] Operationalize "配额管理中可否新增Claude OAuth认证方式号池的配额信息" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1079
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1079
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0554] Generalize "Extended thinking model fails with "Expected thinking or redacted_thinking, but found tool_use" on multi-turn conversations" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1078
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1078
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0555] Improve CLI UX around "functionDeclarations 和 googleSearch 合并到同一个 tool 对象导致 Gemini API 报错" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1077
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1077
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0558] Refactor internals touched by "image generation 429" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1073
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1073
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0559] Prepare safe rollout for "No Auth Available" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1072
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1072
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0560] Standardize naming/metadata affected by "配置OpenAI兼容格式的API,用Anthropic接口 OpenAI接口都调用不成功" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1066
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1066
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0561] Create or refresh provider quickstart derived from ""Think Mode" Reasoning models are not visible in GitHub Copilot interface" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1065
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1065
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0562] Harden "Gemini 和 Claude 多条 system 提示词时,只有最后一条生效 / When Gemini and Claude have multiple system prompt words, only the last one takes effect" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1064
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1064
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0563] Operationalize "OAuth issue with Qwen using Google Social Login" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1063
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1063
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0564] Generalize "[Feature] allow to disable auth files from UI (management)" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1062
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1062
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0567] Add robust stream/non-stream parity tests for "OpenAI 兼容提供商 由于客户端没有兼容OpenAI接口,导致调用失败" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1059
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1059
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0569] Prepare safe rollout for "[bug]在 opencode 多次正常请求后出现 500 Unknown Error 后紧接着 No Auth Available" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1057
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1057
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0573] Operationalize "Codex authentication cannot be detected" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#1052
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1052
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0574] Generalize "v6.7.3 OAuth 模型映射 新增或修改存在问题" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1051
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1051
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0576] Extend docs for "最新版本CPA,OAuths模型映射功能失败?" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1048
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1048
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0577] Add robust stream/non-stream parity tests for "新增的Antigravity文件会报错429" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1047
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1047
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0578] Create or refresh provider quickstart derived from "Docker部署缺失gemini-web-auth功能" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1045
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1045
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0586] Extend docs for "macos webui Codex OAuth error" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1037
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1037
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0587] Add robust stream/non-stream parity tests for "antigravity 无法获取登录链接" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1035
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1035
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0590] Standardize naming/metadata affected by "Antigravity auth causes infinite refresh loop when project_id cannot be fetched" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1030
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1030
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0595] Create or refresh provider quickstart derived from "Vertex Credential Doesn't Work with gemini-3-pro-image-preview" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1024
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1024
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0601] Follow up "Antigravity Accounts Rate Limited (HTTP 429) Despite Available Quota" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#1015
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1015
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0605] Improve CLI UX around "「建议」希望能添加一个手动控制某 oauth 认证是否参与反代的功能" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#1010
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1010
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0607] Add robust stream/non-stream parity tests for "添加openai v1 chat接口,使用responses调用,出现截断,最后几个字不显示" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1008
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1008
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0610] Standardize naming/metadata affected by "Feature: Add Veo 3.1 Video Generation Support" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1005
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1005
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0611] Follow up "Bug: Streaming response.output_item.done missing function name" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#1004
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1004
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0612] Create or refresh provider quickstart derived from "Close" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#1003
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1003
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0614] Generalize "[Bug] Codex Responses API: item_reference in `input` not cleaned, causing 404 errors and incorrect client suspension" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#999
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/999
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0615] Improve CLI UX around "[Bug] Codex Responses API: `input` 中的 item_reference 未清理,导致 404 错误和客户端被误暂停" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#998
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/998
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0616] Extend docs for "【建议】保留Gemini格式请求的思考签名" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#997
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/997
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0624] Generalize "New OpenAI API: /responses/compact" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#986
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/986
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0625] Improve CLI UX around "Bug Report: OAuth Login Failure on Windows due to Port 51121 Conflict" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#985
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/985
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0626] Extend docs for "Claude model reports wrong/unknown model when accessed via API (Claude Code OAuth)" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#984
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/984
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0628] Refactor internals touched by "[建议]Codex渠道将System角色映射为Developer角色" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#982
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/982
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0629] Create or refresh provider quickstart derived from "No Image Generation Models Available After Gemini CLI Setup" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#978
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/978
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0631] Follow up "GPT5.2模型异常报错 auth_unavailable: no auth available" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#976
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/976
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0633] Operationalize "Auth files permanently deleted from S3 on service restart due to race condition" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#973
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/973
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0637] Add robust stream/non-stream parity tests for "初次运行运行.exe文件报错" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#966
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/966
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0641] Follow up "Antigravity using Flash 2.0 Model for Sonet" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#960
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/960
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0645] Improve CLI UX around "[Feature] Allow define log filepath in config" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#954
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/954
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0646] Create or refresh provider quickstart derived from "[建议]希望OpenAI 兼容提供商支持启用停用功能" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#953
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/953
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0647] Add robust stream/non-stream parity tests for "Reasoning field missing for gpt-5.1-codex-max at xhigh reasoning level (while gpt-5.2-codex works as expected)" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#952
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/952
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0650] Standardize naming/metadata affected by "Internal Server Error: {"error":{"message":"auth_unavailable: no auth available"... (click to expand) [retrying in 8s attempt #4]" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#949
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/949
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0651] Follow up "[BUG] Multi-part Gemini response loses content - only last part preserved in OpenAI translation" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#948
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/948
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0653] Operationalize "接入openroute成功,但是下游使用异常" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#942
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/942
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0654] Generalize "fix: use original request JSON for echoed fields in OpenAI Responses translator" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#941
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/941
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0656] Extend docs for "[Feature Request] Support Priority Failover Strategy (Priority Queue) Instead of all Round-Robin" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#937
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/937
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0657] Add robust stream/non-stream parity tests for "[Feature Request] Support multiple aliases for a single model name in oauth-model-mappings" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#936
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/936
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0658] Refactor internals touched by "新手登陆认证问题" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#934
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/934
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0661] Follow up "Gemini 3 Pro cannot perform native tool calls in Roo Code" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#931
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/931
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0662] Harden "Qwen OAuth Request Error" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#930
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/930
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0663] Create or refresh provider quickstart derived from "无法在 api 代理中使用 Anthropic 模型,报错 429" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#929
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/929
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0666] Extend docs for "同一个chatgpt账号加入了多个工作空间,同时个人账户也有gptplus,他们的codex认证文件在cliproxyapi不能同时使用" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#926
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/926
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0669] Prepare safe rollout for "Help for setting mistral" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#920
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/920
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0671] Follow up "How to run this?" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#917
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/917
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0677] Add robust stream/non-stream parity tests for "Antigravity models return 429 RESOURCE_EXHAUSTED via cURL, but Antigravity IDE still works (started ~18:00 GMT+7)" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#910
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/910
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0678] Refactor internals touched by "gemini3p报429,其他的都好好的" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#908
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/908
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0680] Create or refresh provider quickstart derived from "新版本运行闪退" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#906
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/906
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0682] Harden "⎿ 429 {"error":{"code":"model_cooldown","message":"All credentials for model gemini-claude-opus-4-5-thinking are cooling down via provider antigravity","model":"gemini-claude-opus-4-5-thinking","provider":"antigravity","reset_seconds" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#904
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/904
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0685] Improve CLI UX around "OpenAI Codex returns 400: Unsupported parameter: prompt_cache_retention" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#897
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/897
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0687] Add robust stream/non-stream parity tests for "Apply Routing Strategy also to Auth Files" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#893
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/893
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0689] Prepare safe rollout for "Cursor subscription support" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#891
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/891
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0691] Follow up "[Bug] Codex auth file overwritten when account has both Plus and Team plans" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#887
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/887
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0693] Operationalize "can not work with mcp:ncp on antigravity auth" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#885
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/885
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0694] Generalize "Gemini Cli Oauth 认证失败" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#884
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/884
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0697] Create or refresh provider quickstart derived from "同时使用GPT账号个人空间和团队空间" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#875
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/875
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0707] Add robust stream/non-stream parity tests for "[Bug] Infinite hanging and quota surge with gemini-claude-opus-4-5-thinking in Claude Code" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#852
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/852
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0709] Prepare safe rollout for "功能请求:为 OAuth 账户添加独立代理配置支持" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#847
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/847
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0710] Standardize naming/metadata affected by "Promt caching" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#845
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/845
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+### [CP2K-0714] Create or refresh provider quickstart derived from "Image Generation 504 Timeout Investigation" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#839
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/839
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0717] Add robust stream/non-stream parity tests for "[Bug] Antigravity token refresh loop caused by metadataEqualIgnoringTimestamps skipping critical field updates" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#833
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/833
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0721] Follow up "windows环境下,认证文件显示重复的BUG" by closing compatibility gaps and locking in regression coverage.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#822
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/822
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0724] Generalize "模型带前缀并开启force_model_prefix后,以gemini格式获取模型列表中没有带前缀的模型" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#816
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/816
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0726] Extend docs for "代理的codex 404" with quickstart snippets and troubleshooting decision trees.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#812
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/812
+- Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes.
+
+### [CP2K-0728] Refactor internals touched by "Request for maintenance team intervention: Changes in internal/translator needed" to reduce coupling and improve maintainability.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#806
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/806
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0729] Prepare safe rollout for "feat(translator): integrate SanitizeFunctionName across Claude translators" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: responses-and-chat-compat
+- Source: router-for-me/CLIProxyAPI issue#804
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/804
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0731] Create or refresh provider quickstart derived from "在cherry-studio中的流失响应似乎未生效" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#798
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/798
+- Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry.
+
+### [CP2K-0732] Harden "Bug: ModelStates (BackoffLevel) lost when auth is reloaded or refreshed" with stricter validation, safer defaults, and explicit fallback semantics.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#797
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/797
+- Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider.
+
+### [CP2K-0733] Operationalize "[Bug] Stream usage data is merged with finish_reason: "stop", causing Letta AI to crash (OpenAI Stream Options incompatibility)" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#796
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/796
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0734] Generalize "[BUG] Codex 默认回调端口 1455 位于 Hyper-v 保留端口段内" into provider-agnostic translation/utilities to reduce duplicate logic.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: provider-model-registry
+- Source: router-for-me/CLIProxyAPI issue#793
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/793
+- Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns.
+
+### [CP2K-0735] Improve CLI UX around "【Bug】: High CPU usage when managing 50+ OAuth accounts" with clearer commands, flags, and immediate validation feedback.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#792
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/792
+- Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle.
+
+### [CP2K-0737] Add robust stream/non-stream parity tests for "当在codex exec 中使用gemini 或claude 模型时 codex 无输出结果" across supported providers.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#790
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/790
+- Implementation note: Harden edge-case parsing for stream and non-stream payload variants.
+
+### [CP2K-0739] Prepare safe rollout for "[Bug]: Gemini Models Output Truncated - Database Schema Exceeds Maximum Allowed Tokens (140k+ chars) in Claude Code" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#788
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/788
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0743] Operationalize "当认证账户消耗完之后,不会自动切换到 AI 提供商账户" with observability, runbook updates, and deployment safeguards.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: websocket-and-streaming
+- Source: router-for-me/CLIProxyAPI issue#777
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/777
+- Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs.
+
+### [CP2K-0748] Create or refresh provider quickstart derived from "support proxy for opencode" with setup/auth/model/sanity-check flow.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: docs-quickstarts
+- Source: router-for-me/CLIProxyAPI issue#753
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/753
+- Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate.
+
+### [CP2K-0749] Prepare safe rollout for "[BUG] thinking/思考链在 antigravity 反代下被截断/丢失(stream 分块处理过严)" via flags, migration docs, and backward-compat tests.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: thinking-and-reasoning
+- Source: router-for-me/CLIProxyAPI issue#752
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/752
+- Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs.
+
+### [CP2K-0750] Standardize naming/metadata affected by "api-keys 필드에 placeholder 값이 있으면 invalid api key 에러 발생" across both repos and docs.
+- Priority: P1
+- Wave: wave-1
+- Effort: S
+- Theme: oauth-and-authentication
+- Source: router-for-me/CLIProxyAPI issue#751
+- Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/751
+- Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters.
+
+## Full 2000 Items
+- Use the CSV/JSON artifacts for full import and sorting.
diff --git a/docs/planning/GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv b/docs/planning/GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv
new file mode 100644
index 0000000000..ba391d911e
--- /dev/null
+++ b/docs/planning/GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv
@@ -0,0 +1,2001 @@
+Title,Body,Status,Priority,Wave,Effort,Theme,Implementation Ready,Source Kind,Source Repo,Source Ref,Source URL,Labels,Board ID
+"Follow up ""kiro账号被封"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0011 | Source: router-for-me/CLIProxyAPIPlus issue#221 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/221 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#221,https://github.com/router-for-me/CLIProxyAPIPlus/issues/221,"board-2000,theme:general-polish,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0011
+"Generalize ""Add support for proxying models from kilocode CLI"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0014 | Source: router-for-me/CLIProxyAPIPlus issue#213 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/213 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#213,https://github.com/router-for-me/CLIProxyAPIPlus/issues/213,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0014
+"Improve CLI UX around ""[Bug] Kiro 与 Ampcode 的 Bash 工具参数不兼容"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0015 | Source: router-for-me/CLIProxyAPIPlus issue#210 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/210 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#210,https://github.com/router-for-me/CLIProxyAPIPlus/issues/210,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0015
+"Extend docs for ""[Feature Request] Add default oauth-model-alias for Kiro channel (like Antigravity)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0016 | Source: router-for-me/CLIProxyAPIPlus issue#208 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/208 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#208,https://github.com/router-for-me/CLIProxyAPIPlus/issues/208,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0016
+"Create or refresh provider quickstart derived from ""bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0017 | Source: router-for-me/CLIProxyAPIPlus issue#206 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/206 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPIPlus,issue#206,https://github.com/router-for-me/CLIProxyAPIPlus/issues/206,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0017
+"Refactor internals touched by ""GitHub Copilot CLI 使用方法"" to reduce coupling and improve maintainability.",Execution item CP2K-0018 | Source: router-for-me/CLIProxyAPIPlus issue#202 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/202 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#202,https://github.com/router-for-me/CLIProxyAPIPlus/issues/202,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0018
+"Follow up ""Cursor CLI \ Auth Support"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0021 | Source: router-for-me/CLIProxyAPIPlus issue#198 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/198 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#198,https://github.com/router-for-me/CLIProxyAPIPlus/issues/198,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0021
+"Harden ""Why no opus 4.6 on github copilot auth"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0022 | Source: router-for-me/CLIProxyAPIPlus issue#196 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/196 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#196,https://github.com/router-for-me/CLIProxyAPIPlus/issues/196,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0022
+"Improve CLI UX around ""Claude thought_signature forwarded to Gemini causes Base64 decode error"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0025 | Source: router-for-me/CLIProxyAPIPlus issue#178 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/178 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#178,https://github.com/router-for-me/CLIProxyAPIPlus/issues/178,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0025
+"Standardize naming/metadata affected by ""fix(kiro): handle empty content in messages to prevent Bad Request errors"" across both repos and docs.","Execution item CP2K-0030 | Source: router-for-me/CLIProxyAPIPlus issue#163 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/163 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#163,https://github.com/router-for-me/CLIProxyAPIPlus/issues/163,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0030
+"Follow up ""在配置文件中支持为所有 OAuth 渠道自定义上游 URL"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0031 | Source: router-for-me/CLIProxyAPIPlus issue#158 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/158 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#158,https://github.com/router-for-me/CLIProxyAPIPlus/issues/158,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0031
+"Create or refresh provider quickstart derived from ""请求docker部署支持arm架构的机器!感谢。"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0034 | Source: router-for-me/CLIProxyAPIPlus issue#147 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/147 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPIPlus,issue#147,https://github.com/router-for-me/CLIProxyAPIPlus/issues/147,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0034
+"Extend docs for ""[Bug]进一步完善 openai兼容模式对 claude 模型的支持(完善 协议格式转换 )"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0036 | Source: router-for-me/CLIProxyAPIPlus issue#145 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/145 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#145,https://github.com/router-for-me/CLIProxyAPIPlus/issues/145,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0036
+"Add robust stream/non-stream parity tests for ""完善 claude openai兼容渠道的格式转换"" across supported providers.",Execution item CP2K-0037 | Source: router-for-me/CLIProxyAPIPlus issue#142 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/142 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#142,https://github.com/router-for-me/CLIProxyAPIPlus/issues/142,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0037
+"Prepare safe rollout for ""kiro idc登录需要手动刷新状态"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0039 | Source: router-for-me/CLIProxyAPIPlus issue#136 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/136 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#136,https://github.com/router-for-me/CLIProxyAPIPlus/issues/136,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0039
+"Standardize naming/metadata affected by ""[Bug Fix] 修复 Kiro 的Claude模型非流式请求 output_tokens 为 0 导致的用量统计缺失"" across both repos and docs.","Execution item CP2K-0040 | Source: router-for-me/CLIProxyAPIPlus issue#134 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/134 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#134,https://github.com/router-for-me/CLIProxyAPIPlus/issues/134,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0040
+"Improve CLI UX around ""Error 403"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0045 | Source: router-for-me/CLIProxyAPIPlus issue#125 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/125 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#125,https://github.com/router-for-me/CLIProxyAPIPlus/issues/125,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0045
+"Add robust stream/non-stream parity tests for ""enterprise 账号 Kiro不是很稳定,很容易就403不可用了"" across supported providers.",Execution item CP2K-0047 | Source: router-for-me/CLIProxyAPIPlus issue#118 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/118 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#118,https://github.com/router-for-me/CLIProxyAPIPlus/issues/118,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0047
+"Refactor internals touched by ""-kiro-aws-login 登录后一直封号"" to reduce coupling and improve maintainability.",Execution item CP2K-0048 | Source: router-for-me/CLIProxyAPIPlus issue#115 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/115 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#115,https://github.com/router-for-me/CLIProxyAPIPlus/issues/115,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0048
+"Standardize naming/metadata affected by ""Antigravity authentication failed"" across both repos and docs.","Execution item CP2K-0050 | Source: router-for-me/CLIProxyAPIPlus issue#111 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/111 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#111,https://github.com/router-for-me/CLIProxyAPIPlus/issues/111,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0050
+"Create or refresh provider quickstart derived from ""大佬,什么时候搞个多账号管理呀"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0051 | Source: router-for-me/CLIProxyAPIPlus issue#108 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/108 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPIPlus,issue#108,https://github.com/router-for-me/CLIProxyAPIPlus/issues/108,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0051
+"Harden ""日志中,一直打印auth file changed (WRITE)"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0052 | Source: router-for-me/CLIProxyAPIPlus issue#105 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/105 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#105,https://github.com/router-for-me/CLIProxyAPIPlus/issues/105,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0052
+"Operationalize ""登录incognito参数无效"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0053 | Source: router-for-me/CLIProxyAPIPlus issue#102 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/102 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#102,https://github.com/router-for-me/CLIProxyAPIPlus/issues/102,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0053
+"Generalize ""OpenAI-compat provider hardcodes /v1/models (breaks Z.ai v4: /api/coding/paas/v4/models)"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0054 | Source: router-for-me/CLIProxyAPIPlus issue#101 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/101 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#101,https://github.com/router-for-me/CLIProxyAPIPlus/issues/101,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0054
+"Extend docs for ""Kiro currently has no authentication available"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0056 | Source: router-for-me/CLIProxyAPIPlus issue#96 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/96 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#96,https://github.com/router-for-me/CLIProxyAPIPlus/issues/96,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0056
+"Prepare safe rollout for ""Bug: Kiro/BuilderId tokens can collide when email/profile_arn are empty; refresh token lifecycle not handled"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0059 | Source: router-for-me/CLIProxyAPIPlus issue#90 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/90 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#90,https://github.com/router-for-me/CLIProxyAPIPlus/issues/90,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0059
+"Standardize naming/metadata affected by ""[Bug] Amazon Q endpoint returns HTTP 400 ValidationException (wrong CLI/KIRO_CLI origin)"" across both repos and docs.","Execution item CP2K-0060 | Source: router-for-me/CLIProxyAPIPlus issue#89 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/89 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#89,https://github.com/router-for-me/CLIProxyAPIPlus/issues/89,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0060
+"Harden ""Cursor Issue"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0062 | Source: router-for-me/CLIProxyAPIPlus issue#86 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/86 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#86,https://github.com/router-for-me/CLIProxyAPIPlus/issues/86,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0062
+"Operationalize ""Feature request: Configurable HTTP request timeout for Extended Thinking models"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0063 | Source: router-for-me/CLIProxyAPIPlus issue#84 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/84 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#84,https://github.com/router-for-me/CLIProxyAPIPlus/issues/84,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0063
+"Generalize ""kiro请求偶尔报错event stream fatal"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0064 | Source: router-for-me/CLIProxyAPIPlus issue#83 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/83 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPIPlus,issue#83,https://github.com/router-for-me/CLIProxyAPIPlus/issues/83,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0064
+"Extend docs for ""[建议] 技术大佬考虑可以有机会新增一堆逆向平台"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0066 | Source: router-for-me/CLIProxyAPIPlus issue#79 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/79 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#79,https://github.com/router-for-me/CLIProxyAPIPlus/issues/79,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0066
+"Create or refresh provider quickstart derived from ""kiro请求的数据好像一大就会出错,导致cc写入文件失败"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0068 | Source: router-for-me/CLIProxyAPIPlus issue#77 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/77 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPIPlus,issue#77,https://github.com/router-for-me/CLIProxyAPIPlus/issues/77,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0068
+"Operationalize ""How to use KIRO with IAM?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0073 | Source: router-for-me/CLIProxyAPIPlus issue#56 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/56 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#56,https://github.com/router-for-me/CLIProxyAPIPlus/issues/56,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0073
+"Generalize ""[Bug] Models from Codex (openai) are not accessible when Copilot is added"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0074 | Source: router-for-me/CLIProxyAPIPlus issue#43 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/43 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#43,https://github.com/router-for-me/CLIProxyAPIPlus/issues/43,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0074
+"Improve CLI UX around ""model gpt-5.1-codex-mini is not accessible via the /chat/completions endpoint"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0075 | Source: router-for-me/CLIProxyAPIPlus issue#41 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/41 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#41,https://github.com/router-for-me/CLIProxyAPIPlus/issues/41,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0075
+"Prepare safe rollout for ""lack of thinking signature in kiro's non-stream response cause incompatibility with some ai clients (specifically cherry studio)"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0079 | Source: router-for-me/CLIProxyAPIPlus issue#27 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/27 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#27,https://github.com/router-for-me/CLIProxyAPIPlus/issues/27,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0079
+"Standardize naming/metadata affected by ""I did not find the Kiro entry in the Web UI"" across both repos and docs.","Execution item CP2K-0080 | Source: router-for-me/CLIProxyAPIPlus issue#26 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/26 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#26,https://github.com/router-for-me/CLIProxyAPIPlus/issues/26,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0080
+"Follow up ""Kiro (AWS CodeWhisperer) - Stream error, status: 400"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0081 | Source: router-for-me/CLIProxyAPIPlus issue#7 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/7 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#7,https://github.com/router-for-me/CLIProxyAPIPlus/issues/7,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0081
+"Follow up ""Why a separate repo?"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0251 | Source: router-for-me/CLIProxyAPIPlus discussion#170 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/discussions/170 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPIPlus,discussion#170,https://github.com/router-for-me/CLIProxyAPIPlus/discussions/170,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-0251
+"Harden ""How do I perform GitHub OAuth authentication? I can't find the entrance."" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0252 | Source: router-for-me/CLIProxyAPIPlus discussion#215 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/discussions/215 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPIPlus,discussion#215,https://github.com/router-for-me/CLIProxyAPIPlus/discussions/215,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-0252
+"Create or refresh provider quickstart derived from ""feat: support image content in tool result messages (OpenAI ↔ Claude translation)"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0255 | Source: router-for-me/CLIProxyAPI issue#1670 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1670 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1670,https://github.com/router-for-me/CLIProxyAPI/issues/1670,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0255
+"Add robust stream/non-stream parity tests for ""Need maintainer-handled codex translator compatibility for Responses compaction fields"" across supported providers.",Execution item CP2K-0257 | Source: router-for-me/CLIProxyAPI issue#1667 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1667 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1667,https://github.com/router-for-me/CLIProxyAPI/issues/1667,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0257
+"Refactor internals touched by ""codex: usage_limit_reached (429) should honor resets_at/resets_in_seconds as next_retry_after"" to reduce coupling and improve maintainability.",Execution item CP2K-0258 | Source: router-for-me/CLIProxyAPI issue#1666 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1666 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1666,https://github.com/router-for-me/CLIProxyAPI/issues/1666,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0258
+"Standardize naming/metadata affected by ""fix(claude): token exchange blocked by Cloudflare managed challenge on console.anthropic.com"" across both repos and docs.","Execution item CP2K-0260 | Source: router-for-me/CLIProxyAPI issue#1659 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1659 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1659,https://github.com/router-for-me/CLIProxyAPI/issues/1659,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0260
+"Operationalize ""All credentials for model claude-sonnet-4-6 are cooling down"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0263 | Source: router-for-me/CLIProxyAPI issue#1655 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1655 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1655,https://github.com/router-for-me/CLIProxyAPI/issues/1655,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0263
+"Improve CLI UX around ""Claude Sonnet 4.5 models are deprecated - please remove from panel"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0265 | Source: router-for-me/CLIProxyAPI issue#1651 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1651 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1651,https://github.com/router-for-me/CLIProxyAPI/issues/1651,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0265
+"Add robust stream/non-stream parity tests for ""codex 返回 Unsupported parameter: response_format"" across supported providers.",Execution item CP2K-0267 | Source: router-for-me/CLIProxyAPI issue#1647 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1647 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1647,https://github.com/router-for-me/CLIProxyAPI/issues/1647,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0267
+"Refactor internals touched by ""Bug: Invalid JSON payload when tool_result has no content field (antigravity translator)"" to reduce coupling and improve maintainability.",Execution item CP2K-0268 | Source: router-for-me/CLIProxyAPI issue#1646 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1646 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1646,https://github.com/router-for-me/CLIProxyAPI/issues/1646,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0268
+"Create or refresh provider quickstart derived from ""是否支持微软账号的反代?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0272 | Source: router-for-me/CLIProxyAPI issue#1632 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1632 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1632,https://github.com/router-for-me/CLIProxyAPI/issues/1632,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0272
+"Generalize ""Claude Sonnet 4.5 is no longer available. Please switch to Claude Sonnet 4.6."" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0274 | Source: router-for-me/CLIProxyAPI issue#1630 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1630 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1630,https://github.com/router-for-me/CLIProxyAPI/issues/1630,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0274
+"Add robust stream/non-stream parity tests for ""Question: applyClaudeHeaders() — how were these defaults chosen?"" across supported providers.",Execution item CP2K-0277 | Source: router-for-me/CLIProxyAPI issue#1621 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1621 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1621,https://github.com/router-for-me/CLIProxyAPI/issues/1621,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0277
+"Refactor internals touched by ""[BUG] claude code 接入 cliproxyapi 使用时,模型的输出没有呈现流式,而是一下子蹦出来回答结果"" to reduce coupling and improve maintainability.",Execution item CP2K-0278 | Source: router-for-me/CLIProxyAPI issue#1620 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1620 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1620,https://github.com/router-for-me/CLIProxyAPI/issues/1620,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0278
+"Follow up ""[bug] codex oauth登录流程失败"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0281 | Source: router-for-me/CLIProxyAPI issue#1612 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1612 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1612,https://github.com/router-for-me/CLIProxyAPI/issues/1612,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0281
+"Harden ""qwen auth 里获取到了 qwen3.5,但是 ai 客户端获取不到这个模型"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0282 | Source: router-for-me/CLIProxyAPI issue#1611 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1611 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1611,https://github.com/router-for-me/CLIProxyAPI/issues/1611,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0282
+"Operationalize ""fix: handle response.function_call_arguments.done in codex→claude streaming translator"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0283 | Source: router-for-me/CLIProxyAPI issue#1609 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1609 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1609,https://github.com/router-for-me/CLIProxyAPI/issues/1609,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0283
+"Extend docs for ""[Feature Request] Antigravity channel should support routing claude-haiku-4-5-20251001 model (used by Claude Code pre-flight checks)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0286 | Source: router-for-me/CLIProxyAPI issue#1596 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1596 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1596,https://github.com/router-for-me/CLIProxyAPI/issues/1596,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0286
+"Create or refresh provider quickstart derived from ""[Bug] Claude Code 2.1.37 random cch in x-anthropic-billing-header causes severe prompt-cache miss on third-party upstreams"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0289 | Source: router-for-me/CLIProxyAPI issue#1592 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1592 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1592,https://github.com/router-for-me/CLIProxyAPI/issues/1592,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0289
+"Follow up ""配额管理可以刷出额度,但是调用的时候提示额度不足"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0291 | Source: router-for-me/CLIProxyAPI issue#1590 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1590 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1590,https://github.com/router-for-me/CLIProxyAPI/issues/1590,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0291
+"Operationalize ""iflow GLM 5 时不时会返回 406"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0293 | Source: router-for-me/CLIProxyAPI issue#1588 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1588 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1588,https://github.com/router-for-me/CLIProxyAPI/issues/1588,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0293
+"Extend docs for ""bug: Invalid thinking block signature when switching from Gemini CLI to Claude OAuth mid-conversation"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0296 | Source: router-for-me/CLIProxyAPI issue#1584 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1584 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1584,https://github.com/router-for-me/CLIProxyAPI/issues/1584,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0296
+"Add robust stream/non-stream parity tests for ""I saved 10M tokens (89%) on my Claude Code sessions with a CLI proxy"" across supported providers.",Execution item CP2K-0297 | Source: router-for-me/CLIProxyAPI issue#1583 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1583 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1583,https://github.com/router-for-me/CLIProxyAPI/issues/1583,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0297
+"Refactor internals touched by ""[bug]? gpt-5.3-codex-spark 在 team 账户上报错 400"" to reduce coupling and improve maintainability.",Execution item CP2K-0298 | Source: router-for-me/CLIProxyAPI issue#1582 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1582 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1582,https://github.com/router-for-me/CLIProxyAPI/issues/1582,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0298
+"Harden ""Port 8317 becomes unreachable after running for some time, recovers immediately after SSH login"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0302 | Source: router-for-me/CLIProxyAPI issue#1575 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1575 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1575,https://github.com/router-for-me/CLIProxyAPI/issues/1575,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0302
+"Operationalize ""Support for gpt-5.3-codex-spark"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0303 | Source: router-for-me/CLIProxyAPI issue#1573 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1573 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1573,https://github.com/router-for-me/CLIProxyAPI/issues/1573,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0303
+"Create or refresh provider quickstart derived from ""能否再难用一点?!"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0306 | Source: router-for-me/CLIProxyAPI issue#1564 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1564 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1564,https://github.com/router-for-me/CLIProxyAPI/issues/1564,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0306
+"Add robust stream/non-stream parity tests for ""Cache usage through Claude oAuth always 0"" across supported providers.",Execution item CP2K-0307 | Source: router-for-me/CLIProxyAPI issue#1562 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1562 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1562,https://github.com/router-for-me/CLIProxyAPI/issues/1562,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0307
+"Refactor internals touched by ""antigravity 无法使用"" to reduce coupling and improve maintainability.",Execution item CP2K-0308 | Source: router-for-me/CLIProxyAPI issue#1561 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1561 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1561,https://github.com/router-for-me/CLIProxyAPI/issues/1561,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0308
+"Standardize naming/metadata affected by ""Claude Code 调用 nvidia 发现 无法正常使用bash grep类似的工具"" across both repos and docs.","Execution item CP2K-0310 | Source: router-for-me/CLIProxyAPI issue#1557 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1557 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1557,https://github.com/router-for-me/CLIProxyAPI/issues/1557,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0310
+"Follow up ""Gemini CLI: 额度获取失败:请检查凭证状态"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0311 | Source: router-for-me/CLIProxyAPI issue#1556 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1556 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1556,https://github.com/router-for-me/CLIProxyAPI/issues/1556,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0311
+"Generalize ""Kimi的OAuth无法使用"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0314 | Source: router-for-me/CLIProxyAPI issue#1553 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1553 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1553,https://github.com/router-for-me/CLIProxyAPI/issues/1553,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0314
+"Improve CLI UX around ""grok的OAuth登录认证可以支持下吗? 谢谢!"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0315 | Source: router-for-me/CLIProxyAPI issue#1552 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1552 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1552,https://github.com/router-for-me/CLIProxyAPI/issues/1552,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0315
+"Extend docs for ""iflow executor: token refresh failed"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0316 | Source: router-for-me/CLIProxyAPI issue#1551 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1551 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1551,https://github.com/router-for-me/CLIProxyAPI/issues/1551,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0316
+"Add robust stream/non-stream parity tests for ""为什么gemini3会报错"" across supported providers.",Execution item CP2K-0317 | Source: router-for-me/CLIProxyAPI issue#1549 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1549 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1549,https://github.com/router-for-me/CLIProxyAPI/issues/1549,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0317
+"Create or refresh provider quickstart derived from ""佬们,隔壁很多账号403啦,这里一切正常吗?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0323 | Source: router-for-me/CLIProxyAPI issue#1541 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1541 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1541,https://github.com/router-for-me/CLIProxyAPI/issues/1541,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0323
+"Generalize ""feat(thinking): support Claude output_config.effort parameter (Opus 4.6)"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0324 | Source: router-for-me/CLIProxyAPI issue#1540 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1540 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1540,https://github.com/router-for-me/CLIProxyAPI/issues/1540,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0324
+"Add robust stream/non-stream parity tests for ""[Bug] Persistent 400 ""Invalid Argument"" error with claude-opus-4-6-thinking model (with and without thinking budget)"" across supported providers.",Execution item CP2K-0327 | Source: router-for-me/CLIProxyAPI issue#1533 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1533 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1533,https://github.com/router-for-me/CLIProxyAPI/issues/1533,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0327
+"Prepare safe rollout for ""bug: proxy_ prefix applied to tool_choice.name but not tools[].name causes 400 errors on OAuth requests"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0329 | Source: router-for-me/CLIProxyAPI issue#1530 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1530 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1530,https://github.com/router-for-me/CLIProxyAPI/issues/1530,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0329
+"Operationalize ""The account has available credit, but a 503 or 429 error is occurring."" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0333 | Source: router-for-me/CLIProxyAPI issue#1521 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1521 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1521,https://github.com/router-for-me/CLIProxyAPI/issues/1521,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0333
+"Generalize ""openclaw调用CPA 中的codex5.2 报错。"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0334 | Source: router-for-me/CLIProxyAPI issue#1517 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1517 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1517,https://github.com/router-for-me/CLIProxyAPI/issues/1517,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0334
+"Extend docs for ""Token refresh logic fails with generic 500 error (""server busy"") from iflow provider"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0336 | Source: router-for-me/CLIProxyAPI issue#1514 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1514 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1514,https://github.com/router-for-me/CLIProxyAPI/issues/1514,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0336
+"Add robust stream/non-stream parity tests for ""bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory"" across supported providers.",Execution item CP2K-0337 | Source: router-for-me/CLIProxyAPI issue#1513 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1513 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1513,https://github.com/router-for-me/CLIProxyAPI/issues/1513,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0337
+"Create or refresh provider quickstart derived from ""反重力 claude-opus-4-6-thinking 模型如何通过 () 实现强行思考"" with setup/auth/model/sanity-check flow.","Execution item CP2K-0340 | Source: router-for-me/CLIProxyAPI issue#1509 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1509 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1509,https://github.com/router-for-me/CLIProxyAPI/issues/1509,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0340
+"Follow up ""Feature: Per-OAuth-Account Outbound Proxy Enforcement for Google (Gemini/Antigravity) + OpenAI Codex – incl. Token Refresh and optional Strict/Fail-Closed Mode"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0341 | Source: router-for-me/CLIProxyAPI issue#1508 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1508 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1508,https://github.com/router-for-me/CLIProxyAPI/issues/1508,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0341
+"Operationalize ""Feature request [allow to configure RPM, TPM, RPD, TPD]"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0353 | Source: router-for-me/CLIProxyAPI issue#1493 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1493 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1493,https://github.com/router-for-me/CLIProxyAPI/issues/1493,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0353
+"Generalize ""Antigravity using Ultra plan: Opus 4.6 gets 429 on CLIProxy but runs with Opencode-Auth"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0354 | Source: router-for-me/CLIProxyAPI issue#1486 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1486 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1486,https://github.com/router-for-me/CLIProxyAPI/issues/1486,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0354
+"Create or refresh provider quickstart derived from ""Amp code doesn't route through CLIProxyAPI"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0357 | Source: router-for-me/CLIProxyAPI issue#1481 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1481 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1481,https://github.com/router-for-me/CLIProxyAPI/issues/1481,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0357
+"Refactor internals touched by ""导入kiro账户,过一段时间就失效了"" to reduce coupling and improve maintainability.",Execution item CP2K-0358 | Source: router-for-me/CLIProxyAPI issue#1480 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1480 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1480,https://github.com/router-for-me/CLIProxyAPI/issues/1480,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0358
+"Prepare safe rollout for ""openai-compatibility: streaming response empty when translating Codex protocol (/v1/responses) to OpenAI chat/completions"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0359 | Source: router-for-me/CLIProxyAPI issue#1478 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1478 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1478,https://github.com/router-for-me/CLIProxyAPI/issues/1478,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0359
+"Standardize naming/metadata affected by ""bug: request-level metadata fields injected into contents[] causing Gemini API rejection (v6.8.4)"" across both repos and docs.","Execution item CP2K-0360 | Source: router-for-me/CLIProxyAPI issue#1477 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1477 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1477,https://github.com/router-for-me/CLIProxyAPI/issues/1477,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0360
+"Extend docs for ""model not found for gpt-5.3-codex"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0366 | Source: router-for-me/CLIProxyAPI issue#1463 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1463 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1463,https://github.com/router-for-me/CLIProxyAPI/issues/1463,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0366
+"Standardize naming/metadata affected by ""When I don’t add the authentication file, opening Claude Code keeps throwing a 500 error, instead of directly using the AI provider I’ve configured."" across both repos and docs.","Execution item CP2K-0370 | Source: router-for-me/CLIProxyAPI issue#1455 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1455 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1455,https://github.com/router-for-me/CLIProxyAPI/issues/1455,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0370
+"Follow up ""6.7.53版本反重力无法看到opus-4.6模型"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0371 | Source: router-for-me/CLIProxyAPI issue#1453 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1453 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1453,https://github.com/router-for-me/CLIProxyAPI/issues/1453,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0371
+"Harden ""Codex OAuth failed"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0372 | Source: router-for-me/CLIProxyAPI issue#1451 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1451 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1451,https://github.com/router-for-me/CLIProxyAPI/issues/1451,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0372
+"Operationalize ""Google asking to Verify account"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0373 | Source: router-for-me/CLIProxyAPI issue#1447 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1447 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1447,https://github.com/router-for-me/CLIProxyAPI/issues/1447,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0373
+"Create or refresh provider quickstart derived from ""API Error"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0374 | Source: router-for-me/CLIProxyAPI issue#1445 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1445 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1445,https://github.com/router-for-me/CLIProxyAPI/issues/1445,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0374
+"Improve CLI UX around ""Unable to use GPT 5.3 codex (model_not_found)"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0375 | Source: router-for-me/CLIProxyAPI issue#1443 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1443 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1443,https://github.com/router-for-me/CLIProxyAPI/issues/1443,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0375
+"Extend docs for ""gpt-5.3-codex 请求400 显示不存在该模型"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0376 | Source: router-for-me/CLIProxyAPI issue#1442 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1442 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1442,https://github.com/router-for-me/CLIProxyAPI/issues/1442,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0376
+"Follow up ""[BUG] Invalid JSON payload with large requests (~290KB) - truncated body"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0381 | Source: router-for-me/CLIProxyAPI issue#1433 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1433 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1433,https://github.com/router-for-me/CLIProxyAPI/issues/1433,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0381
+"Generalize ""[v6.7.47] 接入智谱 Plan 计划后请求报错"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0384 | Source: router-for-me/CLIProxyAPI issue#1430 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1430 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1430,https://github.com/router-for-me/CLIProxyAPI/issues/1430,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0384
+"Add robust stream/non-stream parity tests for ""bug: Claude → Gemini translation fails due to unsupported JSON Schema fields ($id, patternProperties)"" across supported providers.",Execution item CP2K-0387 | Source: router-for-me/CLIProxyAPI issue#1424 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1424 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1424,https://github.com/router-for-me/CLIProxyAPI/issues/1424,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0387
+"Standardize naming/metadata affected by ""Security Review: Apply Lessons from Supermemory Security Findings"" across both repos and docs.","Execution item CP2K-0390 | Source: router-for-me/CLIProxyAPI issue#1418 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1418 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1418,https://github.com/router-for-me/CLIProxyAPI/issues/1418,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0390
+"Create or refresh provider quickstart derived from ""Add Webhook Support for Document Lifecycle Events"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0391 | Source: router-for-me/CLIProxyAPI issue#1417 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1417 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1417,https://github.com/router-for-me/CLIProxyAPI/issues/1417,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0391
+"Generalize ""Add Document Processor for PDF and URL Content Extraction"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0394 | Source: router-for-me/CLIProxyAPI issue#1414 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1414 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1414,https://github.com/router-for-me/CLIProxyAPI/issues/1414,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0394
+"Refactor internals touched by ""Implement MCP Server for Memory Operations"" to reduce coupling and improve maintainability.",Execution item CP2K-0398 | Source: router-for-me/CLIProxyAPI issue#1410 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1410 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1410,https://github.com/router-for-me/CLIProxyAPI/issues/1410,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0398
+"Standardize naming/metadata affected by ""Bug: /v1/responses returns 400 ""Input must be a list"" when input is string (regression 6.7.42, Droid auto-compress broken)"" across both repos and docs.","Execution item CP2K-0400 | Source: router-for-me/CLIProxyAPI issue#1403 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1403 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1403,https://github.com/router-for-me/CLIProxyAPI/issues/1403,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0400
+"Follow up ""Factory Droid CLI got 404"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0401 | Source: router-for-me/CLIProxyAPI issue#1401 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1401 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1401,https://github.com/router-for-me/CLIProxyAPI/issues/1401,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0401
+"Operationalize ""Feature request: Cursor CLI support"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0403 | Source: router-for-me/CLIProxyAPI issue#1399 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1399 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1399,https://github.com/router-for-me/CLIProxyAPI/issues/1399,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0403
+"Generalize ""bug: Invalid signature in thinking block (API 400) on follow-up requests"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0404 | Source: router-for-me/CLIProxyAPI issue#1398 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1398 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1398,https://github.com/router-for-me/CLIProxyAPI/issues/1398,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0404
+"Add robust stream/non-stream parity tests for ""Session title generation fails for Claude models via Antigravity provider (OpenCode)"" across supported providers.",Execution item CP2K-0407 | Source: router-for-me/CLIProxyAPI issue#1394 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1394 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1394,https://github.com/router-for-me/CLIProxyAPI/issues/1394,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0407
+"Create or refresh provider quickstart derived from ""反代反重力请求gemini-3-pro-image-preview接口报错"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0408 | Source: router-for-me/CLIProxyAPI issue#1393 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1393 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1393,https://github.com/router-for-me/CLIProxyAPI/issues/1393,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0408
+"Prepare safe rollout for ""[Feature Request] Implement automatic account rotation on VALIDATION_REQUIRED errors"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0409 | Source: router-for-me/CLIProxyAPI issue#1392 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1392 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1392,https://github.com/router-for-me/CLIProxyAPI/issues/1392,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0409
+"Operationalize ""在codex运行报错"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0413 | Source: router-for-me/CLIProxyAPI issue#1406 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1406 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1406,https://github.com/router-for-me/CLIProxyAPI/issues/1406,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0413
+"Improve CLI UX around ""Claude authentication failed in v6.7.41 (works in v6.7.25)"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0415 | Source: router-for-me/CLIProxyAPI issue#1383 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1383 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1383,https://github.com/router-for-me/CLIProxyAPI/issues/1383,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0415
+"Extend docs for ""Question: Does load balancing work with 2 Codex accounts for the Responses API?"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0416 | Source: router-for-me/CLIProxyAPI issue#1382 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1382 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1382,https://github.com/router-for-me/CLIProxyAPI/issues/1382,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0416
+"Add robust stream/non-stream parity tests for ""登陆提示“登录失败: 访问被拒绝,权限不足”"" across supported providers.",Execution item CP2K-0417 | Source: router-for-me/CLIProxyAPI issue#1381 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1381 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1381,https://github.com/router-for-me/CLIProxyAPI/issues/1381,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0417
+"Prepare safe rollout for ""antigravity无法登录"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0419 | Source: router-for-me/CLIProxyAPI issue#1376 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1376 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1376,https://github.com/router-for-me/CLIProxyAPI/issues/1376,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0419
+"Follow up ""API Error: 403"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0421 | Source: router-for-me/CLIProxyAPI issue#1374 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1374 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1374,https://github.com/router-for-me/CLIProxyAPI/issues/1374,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0421
+"Generalize ""Bad processing of Claude prompt caching that is already implemented by client app"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0424 | Source: router-for-me/CLIProxyAPI issue#1366 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1366 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1366,https://github.com/router-for-me/CLIProxyAPI/issues/1366,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0424
+"Create or refresh provider quickstart derived from ""[Bug] OpenAI-compatible provider: message_start.usage always returns 0 tokens (kimi-for-coding)"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0425 | Source: router-for-me/CLIProxyAPI issue#1365 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1365 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1365,https://github.com/router-for-me/CLIProxyAPI/issues/1365,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0425
+"Extend docs for ""iflow Cli官方针对terminal有Oauth 登录方式"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0426 | Source: router-for-me/CLIProxyAPI issue#1364 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1364 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1364,https://github.com/router-for-me/CLIProxyAPI/issues/1364,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0426
+"Refactor internals touched by ""“Error 404: Requested entity was not found"" for gemini 3 by gemini-cli"" to reduce coupling and improve maintainability.",Execution item CP2K-0428 | Source: router-for-me/CLIProxyAPI issue#1325 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1325 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1325,https://github.com/router-for-me/CLIProxyAPI/issues/1325,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0428
+"Standardize naming/metadata affected by ""Feature Request: Add generateImages endpoint support for Gemini API"" across both repos and docs.","Execution item CP2K-0430 | Source: router-for-me/CLIProxyAPI issue#1322 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1322 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1322,https://github.com/router-for-me/CLIProxyAPI/issues/1322,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0430
+"Follow up ""iFlow Error: LLM returned 200 OK but response body was empty (possible rate limit)"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0431 | Source: router-for-me/CLIProxyAPI issue#1321 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1321 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1321,https://github.com/router-for-me/CLIProxyAPI/issues/1321,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0431
+"Harden ""feat: add code_execution and url_context tool passthrough for Gemini"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0432 | Source: router-for-me/CLIProxyAPI issue#1318 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1318 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1318,https://github.com/router-for-me/CLIProxyAPI/issues/1318,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0432
+"Extend docs for ""Claude Opus 4.5 returns ""Internal server error"" in response body via Anthropic OAuth (Sonnet works)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0436 | Source: router-for-me/CLIProxyAPI issue#1306 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1306 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1306,https://github.com/router-for-me/CLIProxyAPI/issues/1306,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0436
+"Prepare safe rollout for ""版本: v6.7.27 添加openai-compatibility的时候出现 malformed HTTP response 错误"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0439 | Source: router-for-me/CLIProxyAPI issue#1301 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1301 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1301,https://github.com/router-for-me/CLIProxyAPI/issues/1301,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0439
+"Standardize naming/metadata affected by ""fix(logging): request and API response timestamps are inaccurate in error logs"" across both repos and docs.","Execution item CP2K-0440 | Source: router-for-me/CLIProxyAPI issue#1299 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1299 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1299,https://github.com/router-for-me/CLIProxyAPI/issues/1299,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0440
+"Follow up ""cpaUsageMetadata leaks to Gemini API responses when using Antigravity backend"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0441 | Source: router-for-me/CLIProxyAPI issue#1297 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1297 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1297,https://github.com/router-for-me/CLIProxyAPI/issues/1297,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0441
+"Create or refresh provider quickstart derived from ""Gemini API error: empty text content causes 'required oneof field data must have one initialized field'"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0442 | Source: router-for-me/CLIProxyAPI issue#1293 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1293 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1293,https://github.com/router-for-me/CLIProxyAPI/issues/1293,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0442
+"Operationalize ""Gemini API error: empty text content causes 'required oneof field data must have one initialized field'"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0443 | Source: router-for-me/CLIProxyAPI issue#1292 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1292 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1292,https://github.com/router-for-me/CLIProxyAPI/issues/1292,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0443
+"Extend docs for ""Request takes over a minute to get sent with Antigravity"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0446 | Source: router-for-me/CLIProxyAPI issue#1289 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1289 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1289,https://github.com/router-for-me/CLIProxyAPI/issues/1289,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0446
+"Add robust stream/non-stream parity tests for ""Antigravity auth requires daily re-login - sessions expire unexpectedly"" across supported providers.",Execution item CP2K-0447 | Source: router-for-me/CLIProxyAPI issue#1288 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1288 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1288,https://github.com/router-for-me/CLIProxyAPI/issues/1288,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0447
+"Prepare safe rollout for ""429 RESOURCE_EXHAUSTED for Claude Opus 4.5 Thinking with Google AI Pro Account"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0449 | Source: router-for-me/CLIProxyAPI issue#1284 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1284 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1284,https://github.com/router-for-me/CLIProxyAPI/issues/1284,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0449
+"Harden ""Support request: Kimi For Coding (Kimi Code / K2.5) behind CLIProxyAPI"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0452 | Source: router-for-me/CLIProxyAPI issue#1280 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1280 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1280,https://github.com/router-for-me/CLIProxyAPI/issues/1280,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0452
+"Create or refresh provider quickstart derived from ""[Improvement] Pre-bundle Management UI in Docker Image"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0459 | Source: router-for-me/CLIProxyAPI issue#1266 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1266 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1266,https://github.com/router-for-me/CLIProxyAPI/issues/1266,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0459
+"Add robust stream/non-stream parity tests for ""CLIProxyAPI goes down after some time, only recovers when SSH into server"" across supported providers.",Execution item CP2K-0467 | Source: router-for-me/CLIProxyAPI issue#1253 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1253 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1253,https://github.com/router-for-me/CLIProxyAPI/issues/1253,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0467
+"Refactor internals touched by ""kiro hope"" to reduce coupling and improve maintainability.",Execution item CP2K-0468 | Source: router-for-me/CLIProxyAPI issue#1252 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1252 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1252,https://github.com/router-for-me/CLIProxyAPI/issues/1252,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0468
+"Prepare safe rollout for """"Requested entity was not found"" for all antigravity models"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0469 | Source: router-for-me/CLIProxyAPI issue#1251 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1251 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1251,https://github.com/router-for-me/CLIProxyAPI/issues/1251,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0469
+"Create or refresh provider quickstart derived from ""GLM Coding Plan"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0476 | Source: router-for-me/CLIProxyAPI issue#1226 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1226 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1226,https://github.com/router-for-me/CLIProxyAPI/issues/1226,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0476
+"Prepare safe rollout for ""auth_unavailable: no auth available in claude code cli, 使用途中经常500"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0479 | Source: router-for-me/CLIProxyAPI issue#1222 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1222 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1222,https://github.com/router-for-me/CLIProxyAPI/issues/1222,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0479
+"Harden ""openai codex 认证失败: Failed to exchange authorization code for tokens"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0482 | Source: router-for-me/CLIProxyAPI issue#1217 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1217 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1217,https://github.com/router-for-me/CLIProxyAPI/issues/1217,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0482
+"Generalize ""Error 403"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0484 | Source: router-for-me/CLIProxyAPI issue#1214 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1214 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1214,https://github.com/router-for-me/CLIProxyAPI/issues/1214,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0484
+"Improve CLI UX around ""Gemini CLI OAuth 认证失败: failed to start callback server"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0485 | Source: router-for-me/CLIProxyAPI issue#1213 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1213 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1213,https://github.com/router-for-me/CLIProxyAPI/issues/1213,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0485
+"Extend docs for ""bug: Thinking budget ignored in cross-provider conversations (Antigravity)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0486 | Source: router-for-me/CLIProxyAPI issue#1199 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1199 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1199,https://github.com/router-for-me/CLIProxyAPI/issues/1199,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0486
+"Standardize naming/metadata affected by ""codex总是有失败"" across both repos and docs.","Execution item CP2K-0490 | Source: router-for-me/CLIProxyAPI issue#1193 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1193 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1193,https://github.com/router-for-me/CLIProxyAPI/issues/1193,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0490
+"Create or refresh provider quickstart derived from ""🚨🔥 CRITICAL BUG REPORT: Invalid Function Declaration Schema in API Request 🔥🚨"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0493 | Source: router-for-me/CLIProxyAPI issue#1189 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1189 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1189,https://github.com/router-for-me/CLIProxyAPI/issues/1189,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0493
+"Extend docs for ""使用 Antigravity OAuth 使用openai格式调用opencode问题"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0496 | Source: router-for-me/CLIProxyAPI issue#1173 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1173 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1173,https://github.com/router-for-me/CLIProxyAPI/issues/1173,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0496
+"Add robust stream/non-stream parity tests for ""今天中午开始一直429"" across supported providers.",Execution item CP2K-0497 | Source: router-for-me/CLIProxyAPI issue#1172 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1172 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1172,https://github.com/router-for-me/CLIProxyAPI/issues/1172,"board-2000,theme:error-handling-retries,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0497
+"Refactor internals touched by ""[Bug] v6.7.x Regression: thinking parameter not recognized, causing Cherry Studio and similar clients to fail displaying extended thinking content"" to reduce coupling and improve maintainability.",Execution item CP2K-0508 | Source: router-for-me/CLIProxyAPI issue#1155 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1155 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1155,https://github.com/router-for-me/CLIProxyAPI/issues/1155,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0508
+"Create or refresh provider quickstart derived from ""Antigravity OAuth认证失败"" with setup/auth/model/sanity-check flow.","Execution item CP2K-0510 | Source: router-for-me/CLIProxyAPI issue#1153 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1153 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1153,https://github.com/router-for-me/CLIProxyAPI/issues/1153,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0510
+"Extend docs for ""cc 使用 zai-glm-4.7 报错 body.reasoning"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0516 | Source: router-for-me/CLIProxyAPI issue#1143 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1143 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1143,https://github.com/router-for-me/CLIProxyAPI/issues/1143,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0516
+"Add robust stream/non-stream parity tests for ""NVIDIA不支持,转发成claude和gpt都用不了"" across supported providers.",Execution item CP2K-0517 | Source: router-for-me/CLIProxyAPI issue#1139 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1139 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1139,https://github.com/router-for-me/CLIProxyAPI/issues/1139,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0517
+"Standardize naming/metadata affected by ""tool_choice not working for Gemini models via Claude API endpoint"" across both repos and docs.","Execution item CP2K-0520 | Source: router-for-me/CLIProxyAPI issue#1135 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1135 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1135,https://github.com/router-for-me/CLIProxyAPI/issues/1135,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0520
+"Create or refresh provider quickstart derived from ""gpt-5.2-codex ""System messages are not allowed"""" with setup/auth/model/sanity-check flow.",Execution item CP2K-0527 | Source: router-for-me/CLIProxyAPI issue#1122 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1122 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1122,https://github.com/router-for-me/CLIProxyAPI/issues/1122,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0527
+"Follow up ""gemini-3-pro-high (Antigravity): malformed_function_call error with tools"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0531 | Source: router-for-me/CLIProxyAPI issue#1113 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1113 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1113,https://github.com/router-for-me/CLIProxyAPI/issues/1113,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0531
+"Operationalize ""香蕉pro 图片一下将所有图片额度都消耗没了"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0533 | Source: router-for-me/CLIProxyAPI issue#1110 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1110 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1110,https://github.com/router-for-me/CLIProxyAPI/issues/1110,"board-2000,theme:error-handling-retries,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0533
+"Extend docs for ""gemini-3-pro-high returns empty response when subagent uses tools"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0536 | Source: router-for-me/CLIProxyAPI issue#1106 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1106 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1106,https://github.com/router-for-me/CLIProxyAPI/issues/1106,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0536
+"Add robust stream/non-stream parity tests for ""GitStore local repo fills tmpfs due to accumulating loose git objects (no GC/repack)"" across supported providers.",Execution item CP2K-0537 | Source: router-for-me/CLIProxyAPI issue#1104 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1104 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1104,https://github.com/router-for-me/CLIProxyAPI/issues/1104,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0537
+"Follow up ""Wrong workspace selected for OpenAI accounts"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0541 | Source: router-for-me/CLIProxyAPI issue#1095 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1095 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1095,https://github.com/router-for-me/CLIProxyAPI/issues/1095,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0541
+"Operationalize ""Antigravity 生图无法指定分辨率"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0543 | Source: router-for-me/CLIProxyAPI issue#1093 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1093 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1093,https://github.com/router-for-me/CLIProxyAPI/issues/1093,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0543
+"Create or refresh provider quickstart derived from ""文件写方式在docker下容易出现Inode变更问题"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0544 | Source: router-for-me/CLIProxyAPI issue#1092 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1092 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1092,https://github.com/router-for-me/CLIProxyAPI/issues/1092,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0544
+"Refactor internals touched by ""Streaming Response Translation Fails to Emit Completion Events on `[DONE]` Marker"" to reduce coupling and improve maintainability.",Execution item CP2K-0548 | Source: router-for-me/CLIProxyAPI issue#1085 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1085 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1085,https://github.com/router-for-me/CLIProxyAPI/issues/1085,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0548
+"Prepare safe rollout for ""Feature Request: Add support for Text Embedding API (/v1/embeddings)"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0549 | Source: router-for-me/CLIProxyAPI issue#1084 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1084 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1084,https://github.com/router-for-me/CLIProxyAPI/issues/1084,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0549
+"Operationalize ""配额管理中可否新增Claude OAuth认证方式号池的配额信息"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0553 | Source: router-for-me/CLIProxyAPI issue#1079 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1079 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1079,https://github.com/router-for-me/CLIProxyAPI/issues/1079,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0553
+"Generalize ""Extended thinking model fails with ""Expected thinking or redacted_thinking, but found tool_use"" on multi-turn conversations"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0554 | Source: router-for-me/CLIProxyAPI issue#1078 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1078 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1078,https://github.com/router-for-me/CLIProxyAPI/issues/1078,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0554
+"Improve CLI UX around ""functionDeclarations 和 googleSearch 合并到同一个 tool 对象导致 Gemini API 报错"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0555 | Source: router-for-me/CLIProxyAPI issue#1077 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1077 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1077,https://github.com/router-for-me/CLIProxyAPI/issues/1077,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0555
+"Refactor internals touched by ""image generation 429"" to reduce coupling and improve maintainability.",Execution item CP2K-0558 | Source: router-for-me/CLIProxyAPI issue#1073 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1073 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1073,https://github.com/router-for-me/CLIProxyAPI/issues/1073,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0558
+"Prepare safe rollout for ""No Auth Available"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0559 | Source: router-for-me/CLIProxyAPI issue#1072 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1072 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1072,https://github.com/router-for-me/CLIProxyAPI/issues/1072,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0559
+"Standardize naming/metadata affected by ""配置OpenAI兼容格式的API,用Anthropic接口 OpenAI接口都调用不成功"" across both repos and docs.","Execution item CP2K-0560 | Source: router-for-me/CLIProxyAPI issue#1066 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1066 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1066,https://github.com/router-for-me/CLIProxyAPI/issues/1066,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0560
+"Create or refresh provider quickstart derived from """"Think Mode"" Reasoning models are not visible in GitHub Copilot interface"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0561 | Source: router-for-me/CLIProxyAPI issue#1065 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1065 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1065,https://github.com/router-for-me/CLIProxyAPI/issues/1065,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0561
+"Harden ""Gemini 和 Claude 多条 system 提示词时,只有最后一条生效 / When Gemini and Claude have multiple system prompt words, only the last one takes effect"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0562 | Source: router-for-me/CLIProxyAPI issue#1064 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1064 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1064,https://github.com/router-for-me/CLIProxyAPI/issues/1064,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0562
+"Operationalize ""OAuth issue with Qwen using Google Social Login"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0563 | Source: router-for-me/CLIProxyAPI issue#1063 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1063 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1063,https://github.com/router-for-me/CLIProxyAPI/issues/1063,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0563
+"Generalize ""[Feature] allow to disable auth files from UI (management)"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0564 | Source: router-for-me/CLIProxyAPI issue#1062 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1062 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1062,https://github.com/router-for-me/CLIProxyAPI/issues/1062,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0564
+"Add robust stream/non-stream parity tests for ""OpenAI 兼容提供商 由于客户端没有兼容OpenAI接口,导致调用失败"" across supported providers.",Execution item CP2K-0567 | Source: router-for-me/CLIProxyAPI issue#1059 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1059 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1059,https://github.com/router-for-me/CLIProxyAPI/issues/1059,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0567
+"Prepare safe rollout for ""[bug]在 opencode 多次正常请求后出现 500 Unknown Error 后紧接着 No Auth Available"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0569 | Source: router-for-me/CLIProxyAPI issue#1057 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1057 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1057,https://github.com/router-for-me/CLIProxyAPI/issues/1057,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0569
+"Operationalize ""Codex authentication cannot be detected"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0573 | Source: router-for-me/CLIProxyAPI issue#1052 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1052 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1052,https://github.com/router-for-me/CLIProxyAPI/issues/1052,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0573
+"Generalize ""v6.7.3 OAuth 模型映射 新增或修改存在问题"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0574 | Source: router-for-me/CLIProxyAPI issue#1051 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1051 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1051,https://github.com/router-for-me/CLIProxyAPI/issues/1051,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0574
+"Extend docs for ""最新版本CPA,OAuths模型映射功能失败?"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0576 | Source: router-for-me/CLIProxyAPI issue#1048 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1048 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1048,https://github.com/router-for-me/CLIProxyAPI/issues/1048,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0576
+"Add robust stream/non-stream parity tests for ""新增的Antigravity文件会报错429"" across supported providers.",Execution item CP2K-0577 | Source: router-for-me/CLIProxyAPI issue#1047 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1047 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1047,https://github.com/router-for-me/CLIProxyAPI/issues/1047,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0577
+"Create or refresh provider quickstart derived from ""Docker部署缺失gemini-web-auth功能"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0578 | Source: router-for-me/CLIProxyAPI issue#1045 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1045 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1045,https://github.com/router-for-me/CLIProxyAPI/issues/1045,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0578
+"Extend docs for ""macos webui Codex OAuth error"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0586 | Source: router-for-me/CLIProxyAPI issue#1037 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1037 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1037,https://github.com/router-for-me/CLIProxyAPI/issues/1037,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0586
+"Add robust stream/non-stream parity tests for ""antigravity 无法获取登录链接"" across supported providers.",Execution item CP2K-0587 | Source: router-for-me/CLIProxyAPI issue#1035 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1035 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1035,https://github.com/router-for-me/CLIProxyAPI/issues/1035,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0587
+"Standardize naming/metadata affected by ""Antigravity auth causes infinite refresh loop when project_id cannot be fetched"" across both repos and docs.","Execution item CP2K-0590 | Source: router-for-me/CLIProxyAPI issue#1030 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1030 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1030,https://github.com/router-for-me/CLIProxyAPI/issues/1030,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0590
+"Create or refresh provider quickstart derived from ""Vertex Credential Doesn't Work with gemini-3-pro-image-preview"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0595 | Source: router-for-me/CLIProxyAPI issue#1024 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1024 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1024,https://github.com/router-for-me/CLIProxyAPI/issues/1024,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0595
+"Follow up ""Antigravity Accounts Rate Limited (HTTP 429) Despite Available Quota"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0601 | Source: router-for-me/CLIProxyAPI issue#1015 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1015 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1015,https://github.com/router-for-me/CLIProxyAPI/issues/1015,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0601
+"Improve CLI UX around ""「建议」希望能添加一个手动控制某 oauth 认证是否参与反代的功能"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0605 | Source: router-for-me/CLIProxyAPI issue#1010 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1010 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1010,https://github.com/router-for-me/CLIProxyAPI/issues/1010,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0605
+"Add robust stream/non-stream parity tests for ""添加openai v1 chat接口,使用responses调用,出现截断,最后几个字不显示"" across supported providers.",Execution item CP2K-0607 | Source: router-for-me/CLIProxyAPI issue#1008 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1008 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1008,https://github.com/router-for-me/CLIProxyAPI/issues/1008,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0607
+"Standardize naming/metadata affected by ""Feature: Add Veo 3.1 Video Generation Support"" across both repos and docs.","Execution item CP2K-0610 | Source: router-for-me/CLIProxyAPI issue#1005 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1005 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1005,https://github.com/router-for-me/CLIProxyAPI/issues/1005,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0610
+"Follow up ""Bug: Streaming response.output_item.done missing function name"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0611 | Source: router-for-me/CLIProxyAPI issue#1004 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1004 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1004,https://github.com/router-for-me/CLIProxyAPI/issues/1004,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0611
+"Create or refresh provider quickstart derived from ""Close"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0612 | Source: router-for-me/CLIProxyAPI issue#1003 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1003 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1003,https://github.com/router-for-me/CLIProxyAPI/issues/1003,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0612
+"Generalize ""[Bug] Codex Responses API: item_reference in `input` not cleaned, causing 404 errors and incorrect client suspension"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0614 | Source: router-for-me/CLIProxyAPI issue#999 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/999 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#999,https://github.com/router-for-me/CLIProxyAPI/issues/999,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0614
+"Improve CLI UX around ""[Bug] Codex Responses API: `input` 中的 item_reference 未清理,导致 404 错误和客户端被误暂停"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0615 | Source: router-for-me/CLIProxyAPI issue#998 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/998 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#998,https://github.com/router-for-me/CLIProxyAPI/issues/998,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0615
+"Extend docs for ""【建议】保留Gemini格式请求的思考签名"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0616 | Source: router-for-me/CLIProxyAPI issue#997 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/997 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#997,https://github.com/router-for-me/CLIProxyAPI/issues/997,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0616
+"Generalize ""New OpenAI API: /responses/compact"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0624 | Source: router-for-me/CLIProxyAPI issue#986 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/986 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#986,https://github.com/router-for-me/CLIProxyAPI/issues/986,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0624
+"Improve CLI UX around ""Bug Report: OAuth Login Failure on Windows due to Port 51121 Conflict"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0625 | Source: router-for-me/CLIProxyAPI issue#985 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/985 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#985,https://github.com/router-for-me/CLIProxyAPI/issues/985,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0625
+"Extend docs for ""Claude model reports wrong/unknown model when accessed via API (Claude Code OAuth)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0626 | Source: router-for-me/CLIProxyAPI issue#984 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/984 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#984,https://github.com/router-for-me/CLIProxyAPI/issues/984,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0626
+"Refactor internals touched by ""[建议]Codex渠道将System角色映射为Developer角色"" to reduce coupling and improve maintainability.",Execution item CP2K-0628 | Source: router-for-me/CLIProxyAPI issue#982 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/982 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#982,https://github.com/router-for-me/CLIProxyAPI/issues/982,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0628
+"Create or refresh provider quickstart derived from ""No Image Generation Models Available After Gemini CLI Setup"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0629 | Source: router-for-me/CLIProxyAPI issue#978 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/978 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#978,https://github.com/router-for-me/CLIProxyAPI/issues/978,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0629
+"Follow up ""GPT5.2模型异常报错 auth_unavailable: no auth available"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0631 | Source: router-for-me/CLIProxyAPI issue#976 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/976 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#976,https://github.com/router-for-me/CLIProxyAPI/issues/976,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0631
+"Operationalize ""Auth files permanently deleted from S3 on service restart due to race condition"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0633 | Source: router-for-me/CLIProxyAPI issue#973 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/973 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#973,https://github.com/router-for-me/CLIProxyAPI/issues/973,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0633
+"Add robust stream/non-stream parity tests for ""初次运行运行.exe文件报错"" across supported providers.",Execution item CP2K-0637 | Source: router-for-me/CLIProxyAPI issue#966 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/966 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#966,https://github.com/router-for-me/CLIProxyAPI/issues/966,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0637
+"Follow up ""Antigravity using Flash 2.0 Model for Sonet"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0641 | Source: router-for-me/CLIProxyAPI issue#960 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/960 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#960,https://github.com/router-for-me/CLIProxyAPI/issues/960,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0641
+"Improve CLI UX around ""[Feature] Allow define log filepath in config"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0645 | Source: router-for-me/CLIProxyAPI issue#954 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/954 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#954,https://github.com/router-for-me/CLIProxyAPI/issues/954,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0645
+"Create or refresh provider quickstart derived from ""[建议]希望OpenAI 兼容提供商支持启用停用功能"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0646 | Source: router-for-me/CLIProxyAPI issue#953 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/953 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#953,https://github.com/router-for-me/CLIProxyAPI/issues/953,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0646
+"Add robust stream/non-stream parity tests for ""Reasoning field missing for gpt-5.1-codex-max at xhigh reasoning level (while gpt-5.2-codex works as expected)"" across supported providers.",Execution item CP2K-0647 | Source: router-for-me/CLIProxyAPI issue#952 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/952 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#952,https://github.com/router-for-me/CLIProxyAPI/issues/952,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0647
+"Standardize naming/metadata affected by ""Internal Server Error: {""error"":{""message"":""auth_unavailable: no auth available""... (click to expand) [retrying in 8s attempt #4]"" across both repos and docs.","Execution item CP2K-0650 | Source: router-for-me/CLIProxyAPI issue#949 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/949 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#949,https://github.com/router-for-me/CLIProxyAPI/issues/949,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0650
+"Follow up ""[BUG] Multi-part Gemini response loses content - only last part preserved in OpenAI translation"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0651 | Source: router-for-me/CLIProxyAPI issue#948 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/948 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#948,https://github.com/router-for-me/CLIProxyAPI/issues/948,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0651
+"Operationalize ""接入openroute成功,但是下游使用异常"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0653 | Source: router-for-me/CLIProxyAPI issue#942 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/942 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#942,https://github.com/router-for-me/CLIProxyAPI/issues/942,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0653
+"Generalize ""fix: use original request JSON for echoed fields in OpenAI Responses translator"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0654 | Source: router-for-me/CLIProxyAPI issue#941 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/941 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#941,https://github.com/router-for-me/CLIProxyAPI/issues/941,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0654
+"Extend docs for ""[Feature Request] Support Priority Failover Strategy (Priority Queue) Instead of all Round-Robin"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0656 | Source: router-for-me/CLIProxyAPI issue#937 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/937 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#937,https://github.com/router-for-me/CLIProxyAPI/issues/937,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0656
+"Add robust stream/non-stream parity tests for ""[Feature Request] Support multiple aliases for a single model name in oauth-model-mappings"" across supported providers.",Execution item CP2K-0657 | Source: router-for-me/CLIProxyAPI issue#936 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/936 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#936,https://github.com/router-for-me/CLIProxyAPI/issues/936,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0657
+"Refactor internals touched by ""新手登陆认证问题"" to reduce coupling and improve maintainability.",Execution item CP2K-0658 | Source: router-for-me/CLIProxyAPI issue#934 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/934 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#934,https://github.com/router-for-me/CLIProxyAPI/issues/934,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0658
+"Follow up ""Gemini 3 Pro cannot perform native tool calls in Roo Code"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0661 | Source: router-for-me/CLIProxyAPI issue#931 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/931 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#931,https://github.com/router-for-me/CLIProxyAPI/issues/931,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0661
+"Harden ""Qwen OAuth Request Error"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0662 | Source: router-for-me/CLIProxyAPI issue#930 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/930 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#930,https://github.com/router-for-me/CLIProxyAPI/issues/930,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0662
+"Create or refresh provider quickstart derived from ""无法在 api 代理中使用 Anthropic 模型,报错 429"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0663 | Source: router-for-me/CLIProxyAPI issue#929 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/929 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#929,https://github.com/router-for-me/CLIProxyAPI/issues/929,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0663
+"Extend docs for ""同一个chatgpt账号加入了多个工作空间,同时个人账户也有gptplus,他们的codex认证文件在cliproxyapi不能同时使用"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0666 | Source: router-for-me/CLIProxyAPI issue#926 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/926 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#926,https://github.com/router-for-me/CLIProxyAPI/issues/926,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0666
+"Prepare safe rollout for ""Help for setting mistral"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0669 | Source: router-for-me/CLIProxyAPI issue#920 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/920 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#920,https://github.com/router-for-me/CLIProxyAPI/issues/920,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0669
+"Follow up ""How to run this?"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0671 | Source: router-for-me/CLIProxyAPI issue#917 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/917 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#917,https://github.com/router-for-me/CLIProxyAPI/issues/917,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0671
+"Add robust stream/non-stream parity tests for ""Antigravity models return 429 RESOURCE_EXHAUSTED via cURL, but Antigravity IDE still works (started ~18:00 GMT+7)"" across supported providers.",Execution item CP2K-0677 | Source: router-for-me/CLIProxyAPI issue#910 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/910 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#910,https://github.com/router-for-me/CLIProxyAPI/issues/910,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0677
+"Refactor internals touched by ""gemini3p报429,其他的都好好的"" to reduce coupling and improve maintainability.",Execution item CP2K-0678 | Source: router-for-me/CLIProxyAPI issue#908 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/908 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#908,https://github.com/router-for-me/CLIProxyAPI/issues/908,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0678
+"Create or refresh provider quickstart derived from ""新版本运行闪退"" with setup/auth/model/sanity-check flow.","Execution item CP2K-0680 | Source: router-for-me/CLIProxyAPI issue#906 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/906 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#906,https://github.com/router-for-me/CLIProxyAPI/issues/906,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0680
+"Harden ""⎿ 429 {""error"":{""code"":""model_cooldown"",""message"":""All credentials for model gemini-claude-opus-4-5-thinking are cooling down via provider antigravity"",""model"":""gemini-claude-opus-4-5-thinking"",""provider"":""antigravity"",""reset_seconds"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0682 | Source: router-for-me/CLIProxyAPI issue#904 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/904 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#904,https://github.com/router-for-me/CLIProxyAPI/issues/904,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0682
+"Improve CLI UX around ""OpenAI Codex returns 400: Unsupported parameter: prompt_cache_retention"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0685 | Source: router-for-me/CLIProxyAPI issue#897 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/897 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#897,https://github.com/router-for-me/CLIProxyAPI/issues/897,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0685
+"Add robust stream/non-stream parity tests for ""Apply Routing Strategy also to Auth Files"" across supported providers.",Execution item CP2K-0687 | Source: router-for-me/CLIProxyAPI issue#893 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/893 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#893,https://github.com/router-for-me/CLIProxyAPI/issues/893,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0687
+"Prepare safe rollout for ""Cursor subscription support"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0689 | Source: router-for-me/CLIProxyAPI issue#891 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/891 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#891,https://github.com/router-for-me/CLIProxyAPI/issues/891,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0689
+"Follow up ""[Bug] Codex auth file overwritten when account has both Plus and Team plans"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0691 | Source: router-for-me/CLIProxyAPI issue#887 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/887 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#887,https://github.com/router-for-me/CLIProxyAPI/issues/887,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0691
+"Operationalize ""can not work with mcp:ncp on antigravity auth"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0693 | Source: router-for-me/CLIProxyAPI issue#885 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/885 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#885,https://github.com/router-for-me/CLIProxyAPI/issues/885,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0693
+"Generalize ""Gemini Cli Oauth 认证失败"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0694 | Source: router-for-me/CLIProxyAPI issue#884 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/884 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#884,https://github.com/router-for-me/CLIProxyAPI/issues/884,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0694
+"Create or refresh provider quickstart derived from ""同时使用GPT账号个人空间和团队空间"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0697 | Source: router-for-me/CLIProxyAPI issue#875 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/875 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#875,https://github.com/router-for-me/CLIProxyAPI/issues/875,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0697
+"Add robust stream/non-stream parity tests for ""[Bug] Infinite hanging and quota surge with gemini-claude-opus-4-5-thinking in Claude Code"" across supported providers.",Execution item CP2K-0707 | Source: router-for-me/CLIProxyAPI issue#852 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/852 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#852,https://github.com/router-for-me/CLIProxyAPI/issues/852,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0707
+"Prepare safe rollout for ""功能请求:为 OAuth 账户添加独立代理配置支持"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0709 | Source: router-for-me/CLIProxyAPI issue#847 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/847 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#847,https://github.com/router-for-me/CLIProxyAPI/issues/847,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0709
+"Standardize naming/metadata affected by ""Promt caching"" across both repos and docs.","Execution item CP2K-0710 | Source: router-for-me/CLIProxyAPI issue#845 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/845 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#845,https://github.com/router-for-me/CLIProxyAPI/issues/845,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0710
+"Create or refresh provider quickstart derived from ""Image Generation 504 Timeout Investigation"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0714 | Source: router-for-me/CLIProxyAPI issue#839 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/839 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#839,https://github.com/router-for-me/CLIProxyAPI/issues/839,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0714
+"Add robust stream/non-stream parity tests for ""[Bug] Antigravity token refresh loop caused by metadataEqualIgnoringTimestamps skipping critical field updates"" across supported providers.",Execution item CP2K-0717 | Source: router-for-me/CLIProxyAPI issue#833 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/833 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#833,https://github.com/router-for-me/CLIProxyAPI/issues/833,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0717
+"Follow up ""windows环境下,认证文件显示重复的BUG"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0721 | Source: router-for-me/CLIProxyAPI issue#822 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/822 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#822,https://github.com/router-for-me/CLIProxyAPI/issues/822,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0721
+"Generalize ""模型带前缀并开启force_model_prefix后,以gemini格式获取模型列表中没有带前缀的模型"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0724 | Source: router-for-me/CLIProxyAPI issue#816 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/816 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#816,https://github.com/router-for-me/CLIProxyAPI/issues/816,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0724
+"Extend docs for ""代理的codex 404"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0726 | Source: router-for-me/CLIProxyAPI issue#812 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/812 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#812,https://github.com/router-for-me/CLIProxyAPI/issues/812,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0726
+"Refactor internals touched by ""Request for maintenance team intervention: Changes in internal/translator needed"" to reduce coupling and improve maintainability.",Execution item CP2K-0728 | Source: router-for-me/CLIProxyAPI issue#806 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/806 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#806,https://github.com/router-for-me/CLIProxyAPI/issues/806,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0728
+"Prepare safe rollout for ""feat(translator): integrate SanitizeFunctionName across Claude translators"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0729 | Source: router-for-me/CLIProxyAPI issue#804 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/804 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#804,https://github.com/router-for-me/CLIProxyAPI/issues/804,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0729
+"Create or refresh provider quickstart derived from ""在cherry-studio中的流失响应似乎未生效"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0731 | Source: router-for-me/CLIProxyAPI issue#798 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/798 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#798,https://github.com/router-for-me/CLIProxyAPI/issues/798,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0731
+"Harden ""Bug: ModelStates (BackoffLevel) lost when auth is reloaded or refreshed"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0732 | Source: router-for-me/CLIProxyAPI issue#797 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/797 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#797,https://github.com/router-for-me/CLIProxyAPI/issues/797,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0732
+"Operationalize ""[Bug] Stream usage data is merged with finish_reason: ""stop"", causing Letta AI to crash (OpenAI Stream Options incompatibility)"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0733 | Source: router-for-me/CLIProxyAPI issue#796 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/796 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#796,https://github.com/router-for-me/CLIProxyAPI/issues/796,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0733
+"Generalize ""[BUG] Codex 默认回调端口 1455 位于 Hyper-v 保留端口段内"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0734 | Source: router-for-me/CLIProxyAPI issue#793 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/793 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#793,https://github.com/router-for-me/CLIProxyAPI/issues/793,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0734
+"Improve CLI UX around ""【Bug】: High CPU usage when managing 50+ OAuth accounts"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0735 | Source: router-for-me/CLIProxyAPI issue#792 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/792 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#792,https://github.com/router-for-me/CLIProxyAPI/issues/792,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0735
+"Add robust stream/non-stream parity tests for ""当在codex exec 中使用gemini 或claude 模型时 codex 无输出结果"" across supported providers.",Execution item CP2K-0737 | Source: router-for-me/CLIProxyAPI issue#790 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/790 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#790,https://github.com/router-for-me/CLIProxyAPI/issues/790,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0737
+"Prepare safe rollout for ""[Bug]: Gemini Models Output Truncated - Database Schema Exceeds Maximum Allowed Tokens (140k+ chars) in Claude Code"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0739 | Source: router-for-me/CLIProxyAPI issue#788 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/788 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#788,https://github.com/router-for-me/CLIProxyAPI/issues/788,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0739
+"Operationalize ""当认证账户消耗完之后,不会自动切换到 AI 提供商账户"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0743 | Source: router-for-me/CLIProxyAPI issue#777 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/777 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#777,https://github.com/router-for-me/CLIProxyAPI/issues/777,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0743
+"Create or refresh provider quickstart derived from ""support proxy for opencode"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0748 | Source: router-for-me/CLIProxyAPI issue#753 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/753 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#753,https://github.com/router-for-me/CLIProxyAPI/issues/753,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0748
+"Prepare safe rollout for ""[BUG] thinking/思考链在 antigravity 反代下被截断/丢失(stream 分块处理过严)"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0749 | Source: router-for-me/CLIProxyAPI issue#752 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/752 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#752,https://github.com/router-for-me/CLIProxyAPI/issues/752,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0749
+"Standardize naming/metadata affected by ""api-keys 필드에 placeholder 값이 있으면 invalid api key 에러 발생"" across both repos and docs.","Execution item CP2K-0750 | Source: router-for-me/CLIProxyAPI issue#751 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/751 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#751,https://github.com/router-for-me/CLIProxyAPI/issues/751,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0750
+"Follow up ""[Bug]Fix `invalid_request_error` (Field required) when assistant message has empty content with tool_calls"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0751 | Source: router-for-me/CLIProxyAPI issue#749 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/749 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#749,https://github.com/router-for-me/CLIProxyAPI/issues/749,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0751
+"Operationalize ""[Bug] Streaming response 'message_start' event missing token counts (affects OpenCode/Vercel AI SDK)"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0753 | Source: router-for-me/CLIProxyAPI issue#747 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/747 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#747,https://github.com/router-for-me/CLIProxyAPI/issues/747,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0753
+"Improve CLI UX around ""Add output_tokens_details.reasoning_tokens for thinking models on /v1/messages"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0755 | Source: router-for-me/CLIProxyAPI issue#744 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/744 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#744,https://github.com/router-for-me/CLIProxyAPI/issues/744,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0755
+"Extend docs for ""qwen-code-plus not supoort guided-json Structured Output"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0756 | Source: router-for-me/CLIProxyAPI issue#743 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/743 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#743,https://github.com/router-for-me/CLIProxyAPI/issues/743,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0756
+"Add robust stream/non-stream parity tests for ""Bash tool too slow"" across supported providers.",Execution item CP2K-0757 | Source: router-for-me/CLIProxyAPI issue#742 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/742 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#742,https://github.com/router-for-me/CLIProxyAPI/issues/742,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0757
+"Generalize ""Bug: /v1/responses endpoint does not correctly convert message format for Anthropic API"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0764 | Source: router-for-me/CLIProxyAPI issue#736 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/736 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#736,https://github.com/router-for-me/CLIProxyAPI/issues/736,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0764
+"Create or refresh provider quickstart derived from ""请问有计划支持显示目前剩余额度吗"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0765 | Source: router-for-me/CLIProxyAPI issue#734 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/734 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#734,https://github.com/router-for-me/CLIProxyAPI/issues/734,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0765
+"Extend docs for ""reasoning_content is null for extended thinking models (thinking goes to content instead)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0766 | Source: router-for-me/CLIProxyAPI issue#732 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/732 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#732,https://github.com/router-for-me/CLIProxyAPI/issues/732,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0766
+"Add robust stream/non-stream parity tests for ""Use actual Anthropic token counts instead of estimation for reasoning_tokens"" across supported providers.",Execution item CP2K-0767 | Source: router-for-me/CLIProxyAPI issue#731 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/731 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#731,https://github.com/router-for-me/CLIProxyAPI/issues/731,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0767
+"Refactor internals touched by ""400 error: messages.X.content.0.text.text: Field required"" to reduce coupling and improve maintainability.",Execution item CP2K-0768 | Source: router-for-me/CLIProxyAPI issue#730 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/730 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#730,https://github.com/router-for-me/CLIProxyAPI/issues/730,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0768
+"Generalize ""最新的版本无法构建成镜像"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0774 | Source: router-for-me/CLIProxyAPI issue#721 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/721 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#721,https://github.com/router-for-me/CLIProxyAPI/issues/721,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0774
+"Extend docs for ""是否可以支持/openai/v1/responses端点"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0776 | Source: router-for-me/CLIProxyAPI issue#718 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/718 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#718,https://github.com/router-for-me/CLIProxyAPI/issues/718,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0776
+"Create or refresh provider quickstart derived from ""iFlow models don't work in CC anymore"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0782 | Source: router-for-me/CLIProxyAPI issue#710 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/710 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#710,https://github.com/router-for-me/CLIProxyAPI/issues/710,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0782
+"Refactor internals touched by ""[功能请求] 支持使用 Vertex AI的API Key 模式调用"" to reduce coupling and improve maintainability.",Execution item CP2K-0788 | Source: router-for-me/CLIProxyAPI issue#699 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/699 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#699,https://github.com/router-for-me/CLIProxyAPI/issues/699,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0788
+"Follow up ""Translator: support first-class system prompt override for codex"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0791 | Source: router-for-me/CLIProxyAPI issue#694 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/694 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#694,https://github.com/router-for-me/CLIProxyAPI/issues/694,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0791
+"Improve CLI UX around ""Feature Request: Priority-based Auth Selection for Specific Models"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0795 | Source: router-for-me/CLIProxyAPI issue#685 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/685 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#685,https://github.com/router-for-me/CLIProxyAPI/issues/685,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0795
+"Create or refresh provider quickstart derived from ""Support developer role"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0799 | Source: router-for-me/CLIProxyAPI issue#680 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/680 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#680,https://github.com/router-for-me/CLIProxyAPI/issues/680,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0799
+"Harden ""Translator: remove Copilot mention in OpenAI->Claude stream comment"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0802 | Source: router-for-me/CLIProxyAPI issue#677 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/677 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#677,https://github.com/router-for-me/CLIProxyAPI/issues/677,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0802
+"Operationalize ""iflow渠道凭证报错"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0803 | Source: router-for-me/CLIProxyAPI issue#669 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/669 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#669,https://github.com/router-for-me/CLIProxyAPI/issues/669,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0803
+"Extend docs for ""Filter OTLP telemetry from Amp VS Code hitting /api/otel/v1/metrics"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0806 | Source: router-for-me/CLIProxyAPI issue#660 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/660 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#660,https://github.com/router-for-me/CLIProxyAPI/issues/660,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0806
+"Add robust stream/non-stream parity tests for ""Handle OpenAI Responses-format payloads hitting /v1/chat/completions"" across supported providers.",Execution item CP2K-0807 | Source: router-for-me/CLIProxyAPI issue#659 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/659 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#659,https://github.com/router-for-me/CLIProxyAPI/issues/659,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0807
+"Improve CLI UX around ""get error when tools call in jetbrains ai assistant with openai BYOK"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0815 | Source: router-for-me/CLIProxyAPI issue#639 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/639 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#639,https://github.com/router-for-me/CLIProxyAPI/issues/639,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0815
+"Create or refresh provider quickstart derived from ""[Bug] OAuth tokens have insufficient scopes for Gemini/Antigravity API - 401 ""Invalid API key"""" with setup/auth/model/sanity-check flow.",Execution item CP2K-0816 | Source: router-for-me/CLIProxyAPI issue#637 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/637 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#637,https://github.com/router-for-me/CLIProxyAPI/issues/637,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0816
+"Refactor internals touched by ""Spam about server clients and configuration updated"" to reduce coupling and improve maintainability.",Execution item CP2K-0818 | Source: router-for-me/CLIProxyAPI issue#635 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/635 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#635,https://github.com/router-for-me/CLIProxyAPI/issues/635,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0818
+"Follow up ""[Feature Request] Add support for AWS Bedrock API"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0821 | Source: router-for-me/CLIProxyAPI issue#626 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/626 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#626,https://github.com/router-for-me/CLIProxyAPI/issues/626,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0821
+"Operationalize """"Requested entity was not found"" for Gemini 3"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0823 | Source: router-for-me/CLIProxyAPI issue#620 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/620 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#620,https://github.com/router-for-me/CLIProxyAPI/issues/620,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0823
+"Improve CLI UX around ""Management routes (threads, user, auth) fail with 401/402 because proxy strips client auth and injects provider-only credentials"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0825 | Source: router-for-me/CLIProxyAPI issue#614 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/614 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#614,https://github.com/router-for-me/CLIProxyAPI/issues/614,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0825
+"Extend docs for ""Amp client fails with ""unexpected EOF"" when creating large files, while OpenAI-compatible clients succeed"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0826 | Source: router-for-me/CLIProxyAPI issue#613 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/613 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#613,https://github.com/router-for-me/CLIProxyAPI/issues/613,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0826
+"Harden ""[Bug] gpt-5.1-codex models return 400 error (no body) while other OpenAI models succeed"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0832 | Source: router-for-me/CLIProxyAPI issue#600 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/600 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#600,https://github.com/router-for-me/CLIProxyAPI/issues/600,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0832
+"Create or refresh provider quickstart derived from ""调用deepseek-chat报错"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0833 | Source: router-for-me/CLIProxyAPI issue#599 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/599 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#599,https://github.com/router-for-me/CLIProxyAPI/issues/599,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0833
+"Add robust stream/non-stream parity tests for ""[Bug] Antigravity prompt caching broken by random sessionId per request"" across supported providers.",Execution item CP2K-0837 | Source: router-for-me/CLIProxyAPI issue#592 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/592 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#592,https://github.com/router-for-me/CLIProxyAPI/issues/592,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0837
+"Refactor internals touched by ""Important Security & Integrity Alert regarding @Eric Tech"" to reduce coupling and improve maintainability.",Execution item CP2K-0838 | Source: router-for-me/CLIProxyAPI issue#591 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/591 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#591,https://github.com/router-for-me/CLIProxyAPI/issues/591,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0838
+"Prepare safe rollout for ""[Bug] Models from Codex (openai) are not accessible when Copilot is added"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0839 | Source: router-for-me/CLIProxyAPI issue#590 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/590 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#590,https://github.com/router-for-me/CLIProxyAPI/issues/590,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0839
+"Harden ""github copilot problem"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0842 | Source: router-for-me/CLIProxyAPI issue#578 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/578 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#578,https://github.com/router-for-me/CLIProxyAPI/issues/578,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0842
+"Operationalize ""amp使用时日志频繁出现下面报错"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0843 | Source: router-for-me/CLIProxyAPI issue#576 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/576 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#576,https://github.com/router-for-me/CLIProxyAPI/issues/576,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0843
+"Extend docs for ""Qwen CLI often stops working before finishing the task"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0846 | Source: router-for-me/CLIProxyAPI issue#567 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/567 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#567,https://github.com/router-for-me/CLIProxyAPI/issues/567,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0846
+"Add robust stream/non-stream parity tests for ""gemini cli接入后,可以正常调用所属大模型;Antigravity通过OAuth成功认证接入后,无法调用所属的模型"" across supported providers.",Execution item CP2K-0847 | Source: router-for-me/CLIProxyAPI issue#566 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/566 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#566,https://github.com/router-for-me/CLIProxyAPI/issues/566,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0847
+"Prepare safe rollout for ""fix(translator): emit message_start on first chunk regardless of role field"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0849 | Source: router-for-me/CLIProxyAPI issue#563 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/563 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#563,https://github.com/router-for-me/CLIProxyAPI/issues/563,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0849
+"Create or refresh provider quickstart derived from ""Bug: OpenAI→Anthropic streaming translation fails with tool calls - missing message_start"" with setup/auth/model/sanity-check flow.","Execution item CP2K-0850 | Source: router-for-me/CLIProxyAPI issue#561 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/561 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#561,https://github.com/router-for-me/CLIProxyAPI/issues/561,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0850
+"Operationalize ""Bug: AmpCode login routes incorrectly require API key authentication since v6.6.15"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0853 | Source: router-for-me/CLIProxyAPI issue#554 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/554 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#554,https://github.com/router-for-me/CLIProxyAPI/issues/554,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0853
+"Generalize ""Github Copilot"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0854 | Source: router-for-me/CLIProxyAPI issue#551 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/551 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#551,https://github.com/router-for-me/CLIProxyAPI/issues/551,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0854
+"Extend docs for ""Antigravity has no gemini-2.5-pro"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0856 | Source: router-for-me/CLIProxyAPI issue#548 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/548 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#548,https://github.com/router-for-me/CLIProxyAPI/issues/548,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0856
+"Refactor internals touched by ""The token file was not generated."" to reduce coupling and improve maintainability.",Execution item CP2K-0858 | Source: router-for-me/CLIProxyAPI issue#544 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/544 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#544,https://github.com/router-for-me/CLIProxyAPI/issues/544,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0858
+"Standardize naming/metadata affected by ""Bug: Codex→Claude SSE content_block.index collisions break Claude clients"" across both repos and docs.","Execution item CP2K-0860 | Source: router-for-me/CLIProxyAPI issue#539 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/539 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#539,https://github.com/router-for-me/CLIProxyAPI/issues/539,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0860
+"Operationalize ""Feature: Add copilot-unlimited-mode config for copilot-api compatibility"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0863 | Source: router-for-me/CLIProxyAPI issue#532 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/532 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#532,https://github.com/router-for-me/CLIProxyAPI/issues/532,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0863
+"Generalize ""Bug: content_block_start sent before message_start in OpenAI→Anthropic translation"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0864 | Source: router-for-me/CLIProxyAPI issue#530 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/530 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#530,https://github.com/router-for-me/CLIProxyAPI/issues/530,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0864
+"Improve CLI UX around ""CLIProxyAPI,通过gemini cli来实现对gemini-2.5-pro的调用,如果遇到输出长度在上万字的情况,总是遇到429错误"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0865 | Source: router-for-me/CLIProxyAPI issue#518 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/518 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#518,https://github.com/router-for-me/CLIProxyAPI/issues/518,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0865
+"Extend docs for ""Antigravity Error 400"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0866 | Source: router-for-me/CLIProxyAPI issue#517 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/517 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#517,https://github.com/router-for-me/CLIProxyAPI/issues/517,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0866
+"Create or refresh provider quickstart derived from ""Add AiStudio error"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0867 | Source: router-for-me/CLIProxyAPI issue#513 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/513 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#513,https://github.com/router-for-me/CLIProxyAPI/issues/513,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0867
+"Refactor internals touched by ""Claude Code with Antigravity gemini-claude-sonnet-4-5-thinking error: Extra inputs are not permitted"" to reduce coupling and improve maintainability.",Execution item CP2K-0868 | Source: router-for-me/CLIProxyAPI issue#512 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/512 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#512,https://github.com/router-for-me/CLIProxyAPI/issues/512,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0868
+"Follow up ""GET /v1/models does not expose model capabilities (e.g. gpt-5.2 supports (xhigh) but cannot be discovered)"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0871 | Source: router-for-me/CLIProxyAPI issue#508 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/508 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#508,https://github.com/router-for-me/CLIProxyAPI/issues/508,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0871
+"Extend docs for ""gpt5.2 cherry 报错"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0876 | Source: router-for-me/CLIProxyAPI issue#496 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/496 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#496,https://github.com/router-for-me/CLIProxyAPI/issues/496,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0876
+"Create or refresh provider quickstart derived from ""How to configure thinking for Claude and Codex?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0884 | Source: router-for-me/CLIProxyAPI issue#483 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/483 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#483,https://github.com/router-for-me/CLIProxyAPI/issues/483,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0884
+"Extend docs for ""CLIProxyAPI配置 Gemini CLI最后一步失败:Google账号权限设置不够"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0886 | Source: router-for-me/CLIProxyAPI issue#480 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/480 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#480,https://github.com/router-for-me/CLIProxyAPI/issues/480,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0886
+"Standardize naming/metadata affected by ""fix(translator): skip empty functionResponse in OpenAI-to-Antigravity path"" across both repos and docs.","Execution item CP2K-0890 | Source: router-for-me/CLIProxyAPI issue#475 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/475 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#475,https://github.com/router-for-me/CLIProxyAPI/issues/475,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0890
+"Harden ""fix(translator): preserve tool_use blocks on args parse failure"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0892 | Source: router-for-me/CLIProxyAPI issue#471 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/471 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#471,https://github.com/router-for-me/CLIProxyAPI/issues/471,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0892
+"Improve CLI UX around ""Streaming fails for ""preview"" and ""thinking"" models (response is buffered)"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0895 | Source: router-for-me/CLIProxyAPI issue#460 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/460 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#460,https://github.com/router-for-me/CLIProxyAPI/issues/460,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0895
+"Extend docs for ""failed to unmarshal function response: invalid character 'm' looking for beginning of value on droid"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0896 | Source: router-for-me/CLIProxyAPI issue#451 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/451 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#451,https://github.com/router-for-me/CLIProxyAPI/issues/451,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0896
+"Refactor internals touched by ""[Suggestion] Add ingress rate limiting and 403 circuit breaker for /v1/messages"" to reduce coupling and improve maintainability.",Execution item CP2K-0898 | Source: router-for-me/CLIProxyAPI issue#443 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/443 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#443,https://github.com/router-for-me/CLIProxyAPI/issues/443,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0898
+"Standardize naming/metadata affected by ""【BUG】Infinite loop on startup if an auth file is removed (Windows)"" across both repos and docs.","Execution item CP2K-0900 | Source: router-for-me/CLIProxyAPI issue#440 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/440 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#440,https://github.com/router-for-me/CLIProxyAPI/issues/440,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0900
+"Create or refresh provider quickstart derived from ""can I use models of droid in Claude Code?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0901 | Source: router-for-me/CLIProxyAPI issue#438 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/438 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#438,https://github.com/router-for-me/CLIProxyAPI/issues/438,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0901
+"Harden ""`[Bug/Question]: Antigravity models looping in Plan Mode & 400 Invalid Argument errors`"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0902 | Source: router-for-me/CLIProxyAPI issue#437 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/437 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#437,https://github.com/router-for-me/CLIProxyAPI/issues/437,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0902
+"Operationalize ""[Bug] 400 Invalid Argument: 'thinking' block missing in ConvertClaudeRequestToAntigravity"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0903 | Source: router-for-me/CLIProxyAPI issue#436 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/436 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#436,https://github.com/router-for-me/CLIProxyAPI/issues/436,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0903
+"Generalize ""gemini等模型没有按openai api的格式返回呀"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0904 | Source: router-for-me/CLIProxyAPI issue#433 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/433 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#433,https://github.com/router-for-me/CLIProxyAPI/issues/433,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0904
+"Extend docs for ""Antigravity Claude *-thinking + tools only stream reasoning (no assistant content/tool_calls) via OpenAI-compatible API"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0906 | Source: router-for-me/CLIProxyAPI issue#425 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/425 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#425,https://github.com/router-for-me/CLIProxyAPI/issues/425,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0906
+"Add robust stream/non-stream parity tests for ""Antigravity Claude by Claude Code `max_tokens` must be greater than `thinking.budget_tokens`"" across supported providers.",Execution item CP2K-0907 | Source: router-for-me/CLIProxyAPI issue#424 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/424 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#424,https://github.com/router-for-me/CLIProxyAPI/issues/424,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0907
+"Prepare safe rollout for ""Extended thinking blocks not preserved during tool use, causing API rejection"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0909 | Source: router-for-me/CLIProxyAPI issue#420 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/420 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#420,https://github.com/router-for-me/CLIProxyAPI/issues/420,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0909
+"Standardize naming/metadata affected by ""Antigravity Claude via CLIProxyAPI: browsing enabled in Cherry but no actual web requests"" across both repos and docs.","Execution item CP2K-0910 | Source: router-for-me/CLIProxyAPI issue#419 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/419 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#419,https://github.com/router-for-me/CLIProxyAPI/issues/419,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0910
+"Operationalize ""Gemini-CLI,gemini-2.5-pro调用触发限流之后(You have exhausted your capacity on this model. Your quota will reset after 51s.),会自动切换请求gemini-2.5-pro-preview-06-05,但是这个模型貌似已经不存在了"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0913 | Source: router-for-me/CLIProxyAPI issue#414 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/414 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#414,https://github.com/router-for-me/CLIProxyAPI/issues/414,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0913
+"Extend docs for ""[Feature Request] Dynamic Model Mapping & Custom Parameter Injection (e.g., iflow /tab)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0916 | Source: router-for-me/CLIProxyAPI issue#411 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/411 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#411,https://github.com/router-for-me/CLIProxyAPI/issues/411,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0916
+"Create or refresh provider quickstart derived from ""Antigravity not working"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0918 | Source: router-for-me/CLIProxyAPI issue#407 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/407 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#407,https://github.com/router-for-me/CLIProxyAPI/issues/407,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0918
+"Prepare safe rollout for ""大佬能不能出个zeabur部署的教程"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0919 | Source: router-for-me/CLIProxyAPI issue#403 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/403 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#403,https://github.com/router-for-me/CLIProxyAPI/issues/403,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0919
+"Follow up ""HTTP Proxy Not Effective: Token Unobtainable After Google Account Authentication Success"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0921 | Source: router-for-me/CLIProxyAPI issue#397 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/397 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#397,https://github.com/router-for-me/CLIProxyAPI/issues/397,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0921
+"Prepare safe rollout for ""能否为kiro oauth提供支持?(附实现项目链接)"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0929 | Source: router-for-me/CLIProxyAPI issue#368 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/368 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#368,https://github.com/router-for-me/CLIProxyAPI/issues/368,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0929
+"Standardize naming/metadata affected by ""antigravity 无法配置?"" across both repos and docs.","Execution item CP2K-0930 | Source: router-for-me/CLIProxyAPI issue#367 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/367 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#367,https://github.com/router-for-me/CLIProxyAPI/issues/367,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0930
+"Create or refresh provider quickstart derived from ""[Bug] Codex Reasponses Sometimes Omit Reasoning Tokens"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0935 | Source: router-for-me/CLIProxyAPI issue#356 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/356 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#356,https://github.com/router-for-me/CLIProxyAPI/issues/356,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0935
+"Extend docs for ""[Bug] Codex Max Does Not Utilize XHigh Reasoning Effort"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0936 | Source: router-for-me/CLIProxyAPI issue#354 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/354 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#354,https://github.com/router-for-me/CLIProxyAPI/issues/354,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0936
+"Add robust stream/non-stream parity tests for ""[Bug] Gemini 3 Does Not Utilize Reasoning Effort"" across supported providers.",Execution item CP2K-0937 | Source: router-for-me/CLIProxyAPI issue#353 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/353 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#353,https://github.com/router-for-me/CLIProxyAPI/issues/353,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0937
+"Refactor internals touched by ""API for iflow-cli is not work anymore: iflow executor: token refresh failed: iflow token: missing access token in response"" to reduce coupling and improve maintainability.",Execution item CP2K-0938 | Source: router-for-me/CLIProxyAPI issue#352 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/352 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#352,https://github.com/router-for-me/CLIProxyAPI/issues/352,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0938
+"Prepare safe rollout for ""[Bug] Antigravity/Claude Code: ""tools.0.custom.input_schema: Field required"" error on all antigravity models"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0939 | Source: router-for-me/CLIProxyAPI issue#351 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/351 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#351,https://github.com/router-for-me/CLIProxyAPI/issues/351,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0939
+"Harden ""Gemini 3 Pro + Codex CLI"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0942 | Source: router-for-me/CLIProxyAPI issue#346 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/346 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#346,https://github.com/router-for-me/CLIProxyAPI/issues/346,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0942
+"Add robust stream/non-stream parity tests for ""OpenAI and Gemini API: thinking/chain-of-thought broken or 400 error (max_tokens vs thinking.budget_tokens) for thinking models"" across supported providers.",Execution item CP2K-0947 | Source: router-for-me/CLIProxyAPI issue#338 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/338 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#338,https://github.com/router-for-me/CLIProxyAPI/issues/338,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0947
+"Refactor internals touched by ""[Bug] Commit 52c17f0 breaks OAuth authentication for Anthropic models"" to reduce coupling and improve maintainability.",Execution item CP2K-0948 | Source: router-for-me/CLIProxyAPI issue#337 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/337 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#337,https://github.com/router-for-me/CLIProxyAPI/issues/337,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0948
+"Follow up ""gemini-claude-sonnet-4-5-thinking: Chain-of-Thought (thinking) does not work on any API (OpenAI/Gemini/Claude)"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0951 | Source: router-for-me/CLIProxyAPI issue#332 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/332 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#332,https://github.com/router-for-me/CLIProxyAPI/issues/332,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0951
+"Create or refresh provider quickstart derived from ""docker方式部署后,怎么登陆gemini账号呢?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0952 | Source: router-for-me/CLIProxyAPI issue#328 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/328 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#328,https://github.com/router-for-me/CLIProxyAPI/issues/328,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0952
+"Operationalize ""Gemini not stream thinking result"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0963 | Source: router-for-me/CLIProxyAPI issue#308 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/308 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#308,https://github.com/router-for-me/CLIProxyAPI/issues/308,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0963
+"Improve CLI UX around ""docker-compose启动错误"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0965 | Source: router-for-me/CLIProxyAPI issue#305 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/305 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#305,https://github.com/router-for-me/CLIProxyAPI/issues/305,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0965
+"Create or refresh provider quickstart derived from ""token无计数"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0969 | Source: router-for-me/CLIProxyAPI issue#300 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/300 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#300,https://github.com/router-for-me/CLIProxyAPI/issues/300,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0969
+"Harden ""[Feature Request] Add --manual-callback mode for headless/remote OAuth (especially for users behind proxy / Clash TUN in China)"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0972 | Source: router-for-me/CLIProxyAPI issue#295 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/295 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#295,https://github.com/router-for-me/CLIProxyAPI/issues/295,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0972
+"Operationalize ""Regression: gemini-3-pro-preview unusable due to removal of 429 retry logic in d50b0f7"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0973 | Source: router-for-me/CLIProxyAPI issue#293 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/293 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#293,https://github.com/router-for-me/CLIProxyAPI/issues/293,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0973
+"Generalize ""Gemini 3 Pro no response in Roo Code with AI Studio setup"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0974 | Source: router-for-me/CLIProxyAPI issue#291 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/291 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#291,https://github.com/router-for-me/CLIProxyAPI/issues/291,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0974
+"Extend docs for ""Post ""https://chatgpt.com/backend-api/codex/responses"": Not Found"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0976 | Source: router-for-me/CLIProxyAPI issue#286 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/286 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#286,https://github.com/router-for-me/CLIProxyAPI/issues/286,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0976
+"Refactor internals touched by ""Bug: Gemini 3 Thinking Budget requires normalization in CLI Translator"" to reduce coupling and improve maintainability.",Execution item CP2K-0978 | Source: router-for-me/CLIProxyAPI issue#282 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/282 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#282,https://github.com/router-for-me/CLIProxyAPI/issues/282,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0978
+"Prepare safe rollout for ""Feature Request: Support for Gemini 3 Pro Preview"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0979 | Source: router-for-me/CLIProxyAPI issue#278 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/278 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#278,https://github.com/router-for-me/CLIProxyAPI/issues/278,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0979
+"Operationalize ""`gemini-3-pro-preview` is missing"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0983 | Source: router-for-me/CLIProxyAPI issue#271 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/271 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#271,https://github.com/router-for-me/CLIProxyAPI/issues/271,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0983
+"Generalize ""Adjust gemini-3-pro-preview`s doc"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0984 | Source: router-for-me/CLIProxyAPI issue#269 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/269 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#269,https://github.com/router-for-me/CLIProxyAPI/issues/269,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0984
+"Create or refresh provider quickstart derived from ""Bug: config.example.yaml has incorrect auth-dir default, causes auth files to be saved in wrong location"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0986 | Source: router-for-me/CLIProxyAPI issue#265 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/265 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#265,https://github.com/router-for-me/CLIProxyAPI/issues/265,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0986
+"Add robust stream/non-stream parity tests for ""Security: Auth directory created with overly permissive 0o755 instead of 0o700"" across supported providers.",Execution item CP2K-0987 | Source: router-for-me/CLIProxyAPI issue#264 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/264 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#264,https://github.com/router-for-me/CLIProxyAPI/issues/264,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0987
+"Follow up ""Factory Droid: /compress (session compact) fails on Gemini 2.5 via CLIProxyAPI"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0991 | Source: router-for-me/CLIProxyAPI issue#260 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/260 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#260,https://github.com/router-for-me/CLIProxyAPI/issues/260,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0991
+"Operationalize ""gemini oauth in droid cli: unknown provider"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0993 | Source: router-for-me/CLIProxyAPI issue#258 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/258 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#258,https://github.com/router-for-me/CLIProxyAPI/issues/258,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0993
+"Refactor internals touched by ""Feature: scoped `auto` model (provider + pattern)"" to reduce coupling and improve maintainability.",Execution item CP2K-0998 | Source: router-for-me/CLIProxyAPI issue#251 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/251 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#251,https://github.com/router-for-me/CLIProxyAPI/issues/251,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0998
+"Prepare safe rollout for ""wss 链接失败"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0999 | Source: router-for-me/CLIProxyAPI issue#250 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/250 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#250,https://github.com/router-for-me/CLIProxyAPI/issues/250,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-0999
+"Follow up ""不支持 candidate_count 功能,设置需要多版本回复的时候,只会输出1条"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1001 | Source: router-for-me/CLIProxyAPI issue#247 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/247 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#247,https://github.com/router-for-me/CLIProxyAPI/issues/247,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1001
+"Create or refresh provider quickstart derived from ""cli-proxy-api --gemini-web-auth"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1003 | Source: router-for-me/CLIProxyAPI issue#244 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/244 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#244,https://github.com/router-for-me/CLIProxyAPI/issues/244,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1003
+"Prepare safe rollout for ""Feature Request: Support ""auto"" Model Selection for Seamless Provider Updates"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1009 | Source: router-for-me/CLIProxyAPI issue#236 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/236 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#236,https://github.com/router-for-me/CLIProxyAPI/issues/236,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1009
+"Operationalize ""Feature Request : Token Caching for Codex"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1013 | Source: router-for-me/CLIProxyAPI issue#231 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/231 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#231,https://github.com/router-for-me/CLIProxyAPI/issues/231,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1013
+"Generalize ""agentrouter problem"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1014 | Source: router-for-me/CLIProxyAPI issue#228 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/228 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#228,https://github.com/router-for-me/CLIProxyAPI/issues/228,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1014
+"Prepare safe rollout for ""/v1/responese connection error for version 0.55.0 of codex"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1019 | Source: router-for-me/CLIProxyAPI issue#216 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/216 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#216,https://github.com/router-for-me/CLIProxyAPI/issues/216,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1019
+"Create or refresh provider quickstart derived from ""https://huggingface.co/chat"" with setup/auth/model/sanity-check flow.","Execution item CP2K-1020 | Source: router-for-me/CLIProxyAPI issue#212 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/212 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#212,https://github.com/router-for-me/CLIProxyAPI/issues/212,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1020
+"Standardize naming/metadata affected by ""Feature Request: OAuth Aliases & Multiple Aliases"" across both repos and docs.","Execution item CP2K-1030 | Source: router-for-me/CLIProxyAPI issue#192 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/192 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#192,https://github.com/router-for-me/CLIProxyAPI/issues/192,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1030
+"Operationalize ""internal/translator下的翻译器对外暴露了吗?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1033 | Source: router-for-me/CLIProxyAPI issue#188 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/188 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#188,https://github.com/router-for-me/CLIProxyAPI/issues/188,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1033
+"Generalize ""API Key issue"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1034 | Source: router-for-me/CLIProxyAPI issue#181 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/181 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#181,https://github.com/router-for-me/CLIProxyAPI/issues/181,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1034
+"Create or refresh provider quickstart derived from ""gemini-cli `Request Failed: 400` exception"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1037 | Source: router-for-me/CLIProxyAPI issue#176 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/176 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#176,https://github.com/router-for-me/CLIProxyAPI/issues/176,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1037
+"Follow up ""[feature request] pass model names without defining them [HAS PR]"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1041 | Source: router-for-me/CLIProxyAPI issue#171 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/171 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#171,https://github.com/router-for-me/CLIProxyAPI/issues/171,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1041
+"Operationalize ""Troublesome First Instruction"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1043 | Source: router-for-me/CLIProxyAPI issue#169 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/169 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#169,https://github.com/router-for-me/CLIProxyAPI/issues/169,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1043
+"Operationalize ""All-in-WSL2: Claude Code (sub-agents + MCP) via CLIProxyAPI — token-only Codex, gpt-5-high / gpt-5-low mapping, multi-account"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1053 | Source: router-for-me/CLIProxyAPI issue#154 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/154 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#154,https://github.com/router-for-me/CLIProxyAPI/issues/154,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1053
+"Create or refresh provider quickstart derived from ""OpenAI-compatible API not working properly with certain models (e.g. glm-4.6, kimi-k2, DeepSeek-V3.2)"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1054 | Source: router-for-me/CLIProxyAPI issue#153 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/153 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#153,https://github.com/router-for-me/CLIProxyAPI/issues/153,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1054
+"Extend docs for ""Question about models:"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1056 | Source: router-for-me/CLIProxyAPI issue#150 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/150 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#150,https://github.com/router-for-me/CLIProxyAPI/issues/150,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1056
+"Add robust stream/non-stream parity tests for ""Feature Request: Add rovodev CLI Support"" across supported providers.",Execution item CP2K-1057 | Source: router-for-me/CLIProxyAPI issue#149 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/149 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#149,https://github.com/router-for-me/CLIProxyAPI/issues/149,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1057
+"Prepare safe rollout for ""Cannot create Auth files in docker container webui management page"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1059 | Source: router-for-me/CLIProxyAPI issue#144 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/144 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#144,https://github.com/router-for-me/CLIProxyAPI/issues/144,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1059
+"Operationalize ""API Error"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1063 | Source: router-for-me/CLIProxyAPI issue#137 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/137 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#137,https://github.com/router-for-me/CLIProxyAPI/issues/137,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1063
+"Improve CLI UX around ""droid cli with CLIProxyAPI [codex,zai]"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1065 | Source: router-for-me/CLIProxyAPI issue#135 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/135 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#135,https://github.com/router-for-me/CLIProxyAPI/issues/135,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1065
+"Refactor internals touched by ""Agentrouter.org Support"" to reduce coupling and improve maintainability.",Execution item CP2K-1068 | Source: router-for-me/CLIProxyAPI issue#131 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/131 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#131,https://github.com/router-for-me/CLIProxyAPI/issues/131,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1068
+"Create or refresh provider quickstart derived from ""Add Z.ai / GLM API Configuration"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1071 | Source: router-for-me/CLIProxyAPI issue#124 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/124 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#124,https://github.com/router-for-me/CLIProxyAPI/issues/124,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1071
+"Harden ""Gemini + Droid = Bug"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1072 | Source: router-for-me/CLIProxyAPI issue#123 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/123 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#123,https://github.com/router-for-me/CLIProxyAPI/issues/123,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1072
+"Generalize ""Web Search and other network tools"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1074 | Source: router-for-me/CLIProxyAPI issue#121 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/121 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#121,https://github.com/router-for-me/CLIProxyAPI/issues/121,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1074
+"Refactor internals touched by ""Feat Request: Usage Limit Notifications + Timers + Per-Auth Usage"" to reduce coupling and improve maintainability.",Execution item CP2K-1078 | Source: router-for-me/CLIProxyAPI issue#112 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/112 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#112,https://github.com/router-for-me/CLIProxyAPI/issues/112,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1078
+"Create or refresh provider quickstart derived from ""Huge error message when connecting to Gemini via Opencode, SanitizeSchemaForGemini not being used?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1088 | Source: router-for-me/CLIProxyAPI issue#97 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/97 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#97,https://github.com/router-for-me/CLIProxyAPI/issues/97,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1088
+"Operationalize ""Gemini Web Auto Refresh Token"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1093 | Source: router-for-me/CLIProxyAPI issue#89 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/89 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#89,https://github.com/router-for-me/CLIProxyAPI/issues/89,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1093
+"Add robust stream/non-stream parity tests for ""Add more model selection options"" across supported providers.",Execution item CP2K-1097 | Source: router-for-me/CLIProxyAPI issue#84 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/84 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#84,https://github.com/router-for-me/CLIProxyAPI/issues/84,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1097
+"Refactor internals touched by ""Error on switching models in Droid after hitting Usage Limit"" to reduce coupling and improve maintainability.",Execution item CP2K-1098 | Source: router-for-me/CLIProxyAPI issue#81 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/81 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#81,https://github.com/router-for-me/CLIProxyAPI/issues/81,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1098
+"Follow up ""[Feature Request] - Adding OAuth support of Z.AI and Kimi"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1101 | Source: router-for-me/CLIProxyAPI issue#76 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/76 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#76,https://github.com/router-for-me/CLIProxyAPI/issues/76,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1101
+"Create or refresh provider quickstart derived from ""添加回调链接输入认证"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1105 | Source: router-for-me/CLIProxyAPI issue#56 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/56 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#56,https://github.com/router-for-me/CLIProxyAPI/issues/56,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1105
+"Add robust stream/non-stream parity tests for ""Error walking auth directory: open C:\Users\xiaohu\AppData\Local\ElevatedDiagnostics: Access is denied"" across supported providers.",Execution item CP2K-1107 | Source: router-for-me/CLIProxyAPI issue#42 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/42 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#42,https://github.com/router-for-me/CLIProxyAPI/issues/42,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1107
+"Prepare safe rollout for ""lobechat 添加自定义API服务商后无法使用"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1109 | Source: router-for-me/CLIProxyAPI issue#38 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/38 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#38,https://github.com/router-for-me/CLIProxyAPI/issues/38,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1109
+"Standardize naming/metadata affected by ""Missing API key"" across both repos and docs.","Execution item CP2K-1110 | Source: router-for-me/CLIProxyAPI issue#37 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/37 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#37,https://github.com/router-for-me/CLIProxyAPI/issues/37,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1110
+"Add robust stream/non-stream parity tests for ""客户端/终端可以正常访问该代理,但无法输出回复"" across supported providers.",Execution item CP2K-1117 | Source: router-for-me/CLIProxyAPI issue#21 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/21 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#21,https://github.com/router-for-me/CLIProxyAPI/issues/21,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1117
+"Prepare safe rollout for ""希望可以加入对responses的支持。"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1119 | Source: router-for-me/CLIProxyAPI issue#19 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/19 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#19,https://github.com/router-for-me/CLIProxyAPI/issues/19,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1119
+"Standardize naming/metadata affected by ""关于gpt5"" across both repos and docs.","Execution item CP2K-1120 | Source: router-for-me/CLIProxyAPI issue#18 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/18 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#18,https://github.com/router-for-me/CLIProxyAPI/issues/18,"board-2000,theme:error-handling-retries,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1120
+"Create or refresh provider quickstart derived from ""gemini使用project_id登录,会无限要求跳转链接,使用配置更改auth_dir无效"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1122 | Source: router-for-me/CLIProxyAPI issue#14 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/14 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#14,https://github.com/router-for-me/CLIProxyAPI/issues/14,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1122
+"Operationalize ""新认证生成的auth文件,使用的时候提示:400 API key not valid."" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1123 | Source: router-for-me/CLIProxyAPI issue#13 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/13 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#13,https://github.com/router-for-me/CLIProxyAPI/issues/13,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1123
+"Prepare safe rollout for ""如果一个项目需要指定ID认证,则指定后一定也会失败"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1129 | Source: router-for-me/CLIProxyAPI issue#6 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/6 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#6,https://github.com/router-for-me/CLIProxyAPI/issues/6,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1129
+"Standardize naming/metadata affected by ""指定project_id登录,无限跳转登陆页面"" across both repos and docs.","Execution item CP2K-1130 | Source: router-for-me/CLIProxyAPI issue#5 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/5 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#5,https://github.com/router-for-me/CLIProxyAPI/issues/5,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1130
+"Harden ""Login error.win11"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1132 | Source: router-for-me/CLIProxyAPI issue#3 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/3 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#3,https://github.com/router-for-me/CLIProxyAPI/issues/3,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1132
+"Generalize ""429 RESOURCE_EXHAUSTED for Claude Opus 4.5 Thinking with Google AI Pro Account"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1714 | Source: router-for-me/CLIProxyAPI discussion#1471 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1471 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1471,https://github.com/router-for-me/CLIProxyAPI/discussions/1471,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1714
+"Create or refresh provider quickstart derived from ""是否支持微软账号的反代?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1717 | Source: router-for-me/CLIProxyAPI discussion#1636 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1636 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#1636,https://github.com/router-for-me/CLIProxyAPI/discussions/1636,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1717
+"Refactor internals touched by ""[Feature Request] Antigravity channel should support routing claude-haiku-4-5-20251001 model (used by Claude Code pre-flight checks)"" to reduce coupling and improve maintainability.",Execution item CP2K-1718 | Source: router-for-me/CLIProxyAPI discussion#1619 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1619 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1619,https://github.com/router-for-me/CLIProxyAPI/discussions/1619,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1718
+"Prepare safe rollout for ""new project"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1719 | Source: router-for-me/CLIProxyAPI discussion#1602 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1602 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPI,discussion#1602,https://github.com/router-for-me/CLIProxyAPI/discussions/1602,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1719
+"Generalize ""[功能请求] 支持使用 Vertex AI的API Key 模式调用"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1724 | Source: router-for-me/CLIProxyAPI discussion#1212 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1212 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1212,https://github.com/router-for-me/CLIProxyAPI/discussions/1212,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1724
+"Extend docs for ""grok的OAuth登录认证可以支持下吗? 谢谢!"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1726 | Source: router-for-me/CLIProxyAPI discussion#1569 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1569 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPI,discussion#1569,https://github.com/router-for-me/CLIProxyAPI/discussions/1569,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1726
+"Add robust stream/non-stream parity tests for ""400 Bad Request when reasoning_effort=""xhigh"" with kimi k2.5 (OpenAI-compatible API)"" across supported providers.",Execution item CP2K-1727 | Source: router-for-me/CLIProxyAPI discussion#1309 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1309 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1309,https://github.com/router-for-me/CLIProxyAPI/discussions/1309,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1727
+"Standardize naming/metadata affected by ""为什么gemini3会报错"" across both repos and docs.","Execution item CP2K-1730 | Source: router-for-me/CLIProxyAPI discussion#1550 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1550 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1550,https://github.com/router-for-me/CLIProxyAPI/discussions/1550,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1730
+"Harden ""Feat Request: Usage Limit Notifications + Timers + Per-Auth Usage"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1732 | Source: router-for-me/CLIProxyAPI discussion#519 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/519 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#519,https://github.com/router-for-me/CLIProxyAPI/discussions/519,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1732
+"Create or refresh provider quickstart derived from ""Will using this claude code subscription lead to account suspension?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1734 | Source: router-for-me/CLIProxyAPI discussion#1520 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1520 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#1520,https://github.com/router-for-me/CLIProxyAPI/discussions/1520,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1734
+"Improve CLI UX around ""After logging in with iFlowOAuth, most models cannot be used, only non-CLI models can be used."" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1735 | Source: router-for-me/CLIProxyAPI discussion#1498 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1498 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1498,https://github.com/router-for-me/CLIProxyAPI/discussions/1498,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1735
+"Extend docs for ""CLIProxyAPI woth opencode and google, qwen, antigravity, amp - how to do it?"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1736 | Source: router-for-me/CLIProxyAPI discussion#1489 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1489 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPI,discussion#1489,https://github.com/router-for-me/CLIProxyAPI/discussions/1489,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1736
+"Prepare safe rollout for ""NVIDIA不支持,转发成claude和gpt都用不了"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1739 | Source: router-for-me/CLIProxyAPI discussion#1145 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1145 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1145,https://github.com/router-for-me/CLIProxyAPI/discussions/1145,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1739
+"Create or refresh provider quickstart derived from ""mac使用brew安装的cpa,请问配置文件在哪?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1751 | Source: router-for-me/CLIProxyAPI discussion#843 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/843 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#843,https://github.com/router-for-me/CLIProxyAPI/discussions/843,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1751
+"Extend docs for ""New OpenAI API: /responses/compact"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1756 | Source: router-for-me/CLIProxyAPI discussion#1202 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1202 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,discussion,router-for-me/CLIProxyAPI,discussion#1202,https://github.com/router-for-me/CLIProxyAPI/discussions/1202,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1756
+"Operationalize ""openai codex 认证失败: Failed to exchange authorization code for tokens"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1763 | Source: router-for-me/CLIProxyAPI discussion#1221 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1221 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1221,https://github.com/router-for-me/CLIProxyAPI/discussions/1221,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1763
+"Create or refresh provider quickstart derived from ""询问 AI Studio Build Proxy 的 每日大概额度"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1768 | Source: router-for-me/CLIProxyAPI discussion#1158 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1158 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#1158,https://github.com/router-for-me/CLIProxyAPI/discussions/1158,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1768
+"Generalize ""Feature: Add Veo 3.1 Video Generation Support"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1774 | Source: router-for-me/CLIProxyAPI discussion#1016 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1016 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,discussion,router-for-me/CLIProxyAPI,discussion#1016,https://github.com/router-for-me/CLIProxyAPI/discussions/1016,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1774
+"Improve CLI UX around ""Gemini Cli Oauth 认证失败"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1775 | Source: router-for-me/CLIProxyAPI discussion#890 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/890 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPI,discussion#890,https://github.com/router-for-me/CLIProxyAPI/discussions/890,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1775
+"Extend docs for ""配额管理中可否新增Claude OAuth认证方式号池的配额信息"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1776 | Source: router-for-me/CLIProxyAPI discussion#1178 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1178 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPI,discussion#1178,https://github.com/router-for-me/CLIProxyAPI/discussions/1178,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1776
+"Prepare safe rollout for ""windmill-sse-support"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1779 | Source: router-for-me/CLIProxyAPI discussion#1046 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1046 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,discussion,router-for-me/CLIProxyAPI,discussion#1046,https://github.com/router-for-me/CLIProxyAPI/discussions/1046,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1779
+"Follow up ""antigravity 无法获取登录链接"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1781 | Source: router-for-me/CLIProxyAPI discussion#1036 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1036 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPI,discussion#1036,https://github.com/router-for-me/CLIProxyAPI/discussions/1036,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1781
+"Create or refresh provider quickstart derived from ""主负责人们你们好!非常喜欢你们的作品,给我的日常工作带来了巨大的帮助!最近项目是被其他提交者们刷年底开源kpi了吗?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1785 | Source: router-for-me/CLIProxyAPI discussion#1000 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1000 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#1000,https://github.com/router-for-me/CLIProxyAPI/discussions/1000,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1785
+"Refactor internals touched by ""No Image Generation Models Available After Gemini CLI Setup"" to reduce coupling and improve maintainability.",Execution item CP2K-1788 | Source: router-for-me/CLIProxyAPI discussion#1207 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1207 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#1207,https://github.com/router-for-me/CLIProxyAPI/discussions/1207,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1788
+"Follow up ""Does CLIProxyAPI support Google Antigravity OAuth?"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1791 | Source: router-for-me/CLIProxyAPI discussion#979 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/979 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPI,discussion#979,https://github.com/router-for-me/CLIProxyAPI/discussions/979,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1791
+"Add robust stream/non-stream parity tests for ""目前所有凭证完好,其他模型都能请求成功,除了Gemini3.0Pro,报429"" across supported providers.",Execution item CP2K-1797 | Source: router-for-me/CLIProxyAPI discussion#909 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/909 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,error-handling-retries,yes,discussion,router-for-me/CLIProxyAPI,discussion#909,https://github.com/router-for-me/CLIProxyAPI/discussions/909,"board-2000,theme:error-handling-retries,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1797
+"Create or refresh provider quickstart derived from ""antigravity and gemini cli duplicated model names"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1802 | Source: router-for-me/CLIProxyAPI discussion#882 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/882 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#882,https://github.com/router-for-me/CLIProxyAPI/discussions/882,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1802
+"Refactor internals touched by ""代理的codex 404"" to reduce coupling and improve maintainability.",Execution item CP2K-1808 | Source: router-for-me/CLIProxyAPI discussion#813 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/813 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#813,https://github.com/router-for-me/CLIProxyAPI/discussions/813,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1808
+"Prepare safe rollout for ""Feature Request: Priority-based Auth Selection for Specific Models"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1809 | Source: router-for-me/CLIProxyAPI discussion#692 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/692 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#692,https://github.com/router-for-me/CLIProxyAPI/discussions/692,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1809
+"Harden ""github copilot problem"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1812 | Source: router-for-me/CLIProxyAPI discussion#640 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/640 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,discussion,router-for-me/CLIProxyAPI,discussion#640,https://github.com/router-for-me/CLIProxyAPI/discussions/640,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1812
+"Extend docs for ""Antigravity"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1816 | Source: router-for-me/CLIProxyAPI discussion#674 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/674 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#674,https://github.com/router-for-me/CLIProxyAPI/discussions/674,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1816
+"Create or refresh provider quickstart derived from ""Filter OTLP telemetry from Amp VS Code hitting /api/otel/v1/metrics"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1819 | Source: router-for-me/CLIProxyAPI discussion#672 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/672 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#672,https://github.com/router-for-me/CLIProxyAPI/discussions/672,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1819
+"Standardize naming/metadata affected by ""[Feature Request] Add support for AWS Bedrock API"" across both repos and docs.","Execution item CP2K-1820 | Source: router-for-me/CLIProxyAPI discussion#643 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/643 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#643,https://github.com/router-for-me/CLIProxyAPI/discussions/643,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1820
+"Improve CLI UX around ""The token file was not generated."" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1825 | Source: router-for-me/CLIProxyAPI discussion#555 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/555 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#555,https://github.com/router-for-me/CLIProxyAPI/discussions/555,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1825
+"Refactor internals touched by ""gemini cli接入后,可以正常调用所属大模型;Antigravity通过OAuth成功认证接入后,无法调用所属的模型"" to reduce coupling and improve maintainability.",Execution item CP2K-1828 | Source: router-for-me/CLIProxyAPI discussion#568 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/568 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPI,discussion#568,https://github.com/router-for-me/CLIProxyAPI/discussions/568,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1828
+"Standardize naming/metadata affected by ""Where does it take my limits from when using ""gemini-3-pro-preview"" model?"" across both repos and docs.","Execution item CP2K-1830 | Source: router-for-me/CLIProxyAPI discussion#540 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/540 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#540,https://github.com/router-for-me/CLIProxyAPI/discussions/540,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1830
+"Create or refresh provider quickstart derived from ""支持一下https://gemini.google.com/app"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1836 | Source: router-for-me/CLIProxyAPI discussion#469 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/469 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#469,https://github.com/router-for-me/CLIProxyAPI/discussions/469,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1836
+"Prepare safe rollout for ""[Suggestion] Add ingress rate limiting and 403 circuit breaker for /v1/messages"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1839 | Source: router-for-me/CLIProxyAPI discussion#651 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/651 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,discussion,router-for-me/CLIProxyAPI,discussion#651,https://github.com/router-for-me/CLIProxyAPI/discussions/651,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1839
+"Follow up ""[Feature Request] Dynamic Model Mapping & Custom Parameter Injection (e.g., iflow /tab)"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1841 | Source: router-for-me/CLIProxyAPI discussion#527 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/527 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#527,https://github.com/router-for-me/CLIProxyAPI/discussions/527,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1841
+"Add robust stream/non-stream parity tests for ""Feature: Add tier-based provider prioritization"" across supported providers.",Execution item CP2K-1847 | Source: router-for-me/CLIProxyAPI discussion#526 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/526 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#526,https://github.com/router-for-me/CLIProxyAPI/discussions/526,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1847
+"Create or refresh provider quickstart derived from ""Questions About Accessing the New Model"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1853 | Source: router-for-me/CLIProxyAPI discussion#267 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/267 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#267,https://github.com/router-for-me/CLIProxyAPI/discussions/267,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1853
+"Improve CLI UX around ""Question about connecting to AI Studio"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1855 | Source: router-for-me/CLIProxyAPI discussion#276 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/276 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#276,https://github.com/router-for-me/CLIProxyAPI/discussions/276,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1855
+"Add robust stream/non-stream parity tests for ""agentrouter problem"" across supported providers.",Execution item CP2K-1857 | Source: router-for-me/CLIProxyAPI discussion#229 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/229 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,discussion,router-for-me/CLIProxyAPI,discussion#229,https://github.com/router-for-me/CLIProxyAPI/discussions/229,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1857
+"Generalize ""Feature Request: OAuth Aliases & Multiple Aliases"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1864 | Source: router-for-me/CLIProxyAPI discussion#523 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/523 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#523,https://github.com/router-for-me/CLIProxyAPI/discussions/523,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1864
+"Improve CLI UX around ""No Auth Status"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1865 | Source: router-for-me/CLIProxyAPI discussion#521 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/521 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,discussion,router-for-me/CLIProxyAPI,discussion#521,https://github.com/router-for-me/CLIProxyAPI/discussions/521,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:discussion",CP2K-1865
+"Extend docs for ""Support `variant` parameter as fallback for `reasoning_effort` in codex models"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1866 | Source: router-for-me/CLIProxyAPIPlus issue#258 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/258 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#258,https://github.com/router-for-me/CLIProxyAPIPlus/issues/258,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1866
+"Prepare safe rollout for ""Codex support"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1869 | Source: router-for-me/CLIProxyAPIPlus issue#253 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/253 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#253,https://github.com/router-for-me/CLIProxyAPIPlus/issues/253,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1869
+"Create or refresh provider quickstart derived from ""Bug thinking"" with setup/auth/model/sanity-check flow.","Execution item CP2K-1870 | Source: router-for-me/CLIProxyAPIPlus issue#251 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/251 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPIPlus,issue#251,https://github.com/router-for-me/CLIProxyAPIPlus/issues/251,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1870
+"Follow up ""fix(cline): add grantType to token refresh and extension headers"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1871 | Source: router-for-me/CLIProxyAPIPlus issue#246 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/246 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#246,https://github.com/router-for-me/CLIProxyAPIPlus/issues/246,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1871
+"Harden ""fix(cline): add grantType to token refresh and extension headers"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1872 | Source: router-for-me/CLIProxyAPIPlus issue#245 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/245 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#245,https://github.com/router-for-me/CLIProxyAPIPlus/issues/245,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1872
+"Generalize ""Add AMP auth as Kiro"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1874 | Source: router-for-me/CLIProxyAPIPlus issue#232 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/232 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#232,https://github.com/router-for-me/CLIProxyAPIPlus/issues/232,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1874
+"Improve CLI UX around ""[Bug] Unable to disable default kiro model aliases; configuration persists in memory after deletion"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1875 | Source: router-for-me/CLIProxyAPIPlus issue#222 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/222 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#222,https://github.com/router-for-me/CLIProxyAPIPlus/issues/222,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1875
+"Extend docs for ""kiro账号被封"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1876 | Source: router-for-me/CLIProxyAPIPlus issue#221 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/221 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#221,https://github.com/router-for-me/CLIProxyAPIPlus/issues/221,"board-2000,theme:general-polish,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1876
+"Prepare safe rollout for ""Add support for proxying models from kilocode CLI"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1879 | Source: router-for-me/CLIProxyAPIPlus issue#213 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/213 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#213,https://github.com/router-for-me/CLIProxyAPIPlus/issues/213,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1879
+"Standardize naming/metadata affected by ""[Bug] Kiro 与 Ampcode 的 Bash 工具参数不兼容"" across both repos and docs.","Execution item CP2K-1880 | Source: router-for-me/CLIProxyAPIPlus issue#210 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/210 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#210,https://github.com/router-for-me/CLIProxyAPIPlus/issues/210,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1880
+"Harden ""bug: Nullable type arrays in tool schemas cause 400 error on Antigravity/Droid Factory"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1882 | Source: router-for-me/CLIProxyAPIPlus issue#206 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/206 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#206,https://github.com/router-for-me/CLIProxyAPIPlus/issues/206,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1882
+"Operationalize ""GitHub Copilot CLI 使用方法"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1883 | Source: router-for-me/CLIProxyAPIPlus issue#202 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/202 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#202,https://github.com/router-for-me/CLIProxyAPIPlus/issues/202,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1883
+"Create or refresh provider quickstart derived from ""Why no opus 4.6 on github copilot auth"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1887 | Source: router-for-me/CLIProxyAPIPlus issue#196 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/196 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPIPlus,issue#196,https://github.com/router-for-me/CLIProxyAPIPlus/issues/196,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1887
+"Standardize naming/metadata affected by ""Claude thought_signature forwarded to Gemini causes Base64 decode error"" across both repos and docs.","Execution item CP2K-1890 | Source: router-for-me/CLIProxyAPIPlus issue#178 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/178 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#178,https://github.com/router-for-me/CLIProxyAPIPlus/issues/178,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1890
+"Improve CLI UX around ""fix(kiro): handle empty content in messages to prevent Bad Request errors"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1895 | Source: router-for-me/CLIProxyAPIPlus issue#163 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/163 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#163,https://github.com/router-for-me/CLIProxyAPIPlus/issues/163,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1895
+"Extend docs for ""在配置文件中支持为所有 OAuth 渠道自定义上游 URL"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1896 | Source: router-for-me/CLIProxyAPIPlus issue#158 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/158 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#158,https://github.com/router-for-me/CLIProxyAPIPlus/issues/158,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1896
+"Follow up ""[Bug]进一步完善 openai兼容模式对 claude 模型的支持(完善 协议格式转换 )"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1901 | Source: router-for-me/CLIProxyAPIPlus issue#145 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/145 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#145,https://github.com/router-for-me/CLIProxyAPIPlus/issues/145,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1901
+"Harden ""完善 claude openai兼容渠道的格式转换"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1902 | Source: router-for-me/CLIProxyAPIPlus issue#142 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/142 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#142,https://github.com/router-for-me/CLIProxyAPIPlus/issues/142,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1902
+"Create or refresh provider quickstart derived from ""kiro idc登录需要手动刷新状态"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1904 | Source: router-for-me/CLIProxyAPIPlus issue#136 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/136 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPIPlus,issue#136,https://github.com/router-for-me/CLIProxyAPIPlus/issues/136,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1904
+"Improve CLI UX around ""[Bug Fix] 修复 Kiro 的Claude模型非流式请求 output_tokens 为 0 导致的用量统计缺失"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1905 | Source: router-for-me/CLIProxyAPIPlus issue#134 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/134 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#134,https://github.com/router-for-me/CLIProxyAPIPlus/issues/134,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1905
+"Standardize naming/metadata affected by ""Error 403"" across both repos and docs.","Execution item CP2K-1910 | Source: router-for-me/CLIProxyAPIPlus issue#125 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/125 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#125,https://github.com/router-for-me/CLIProxyAPIPlus/issues/125,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1910
+"Harden ""enterprise 账号 Kiro不是很稳定,很容易就403不可用了"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1912 | Source: router-for-me/CLIProxyAPIPlus issue#118 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/118 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#118,https://github.com/router-for-me/CLIProxyAPIPlus/issues/118,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1912
+"Operationalize ""-kiro-aws-login 登录后一直封号"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1913 | Source: router-for-me/CLIProxyAPIPlus issue#115 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/115 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#115,https://github.com/router-for-me/CLIProxyAPIPlus/issues/115,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1913
+"Improve CLI UX around ""Antigravity authentication failed"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1915 | Source: router-for-me/CLIProxyAPIPlus issue#111 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/111 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#111,https://github.com/router-for-me/CLIProxyAPIPlus/issues/111,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1915
+"Add robust stream/non-stream parity tests for ""日志中,一直打印auth file changed (WRITE)"" across supported providers.",Execution item CP2K-1917 | Source: router-for-me/CLIProxyAPIPlus issue#105 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/105 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#105,https://github.com/router-for-me/CLIProxyAPIPlus/issues/105,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1917
+"Refactor internals touched by ""登录incognito参数无效"" to reduce coupling and improve maintainability.",Execution item CP2K-1918 | Source: router-for-me/CLIProxyAPIPlus issue#102 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/102 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#102,https://github.com/router-for-me/CLIProxyAPIPlus/issues/102,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1918
+"Create or refresh provider quickstart derived from ""Kiro currently has no authentication available"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1921 | Source: router-for-me/CLIProxyAPIPlus issue#96 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/96 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPIPlus,issue#96,https://github.com/router-for-me/CLIProxyAPIPlus/issues/96,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1921
+"Operationalize ""Feature: Add Veo Video Generation Support (Similar to Image Generation)"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1923 | Source: router-for-me/CLIProxyAPIPlus issue#94 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/94 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#94,https://github.com/router-for-me/CLIProxyAPIPlus/issues/94,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1923
+"Generalize ""Bug: Kiro/BuilderId tokens can collide when email/profile_arn are empty; refresh token lifecycle not handled"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1924 | Source: router-for-me/CLIProxyAPIPlus issue#90 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/90 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#90,https://github.com/router-for-me/CLIProxyAPIPlus/issues/90,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1924
+"Improve CLI UX around ""[Bug] Amazon Q endpoint returns HTTP 400 ValidationException (wrong CLI/KIRO_CLI origin)"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1925 | Source: router-for-me/CLIProxyAPIPlus issue#89 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/89 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#89,https://github.com/router-for-me/CLIProxyAPIPlus/issues/89,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1925
+"Add robust stream/non-stream parity tests for ""Cursor Issue"" across supported providers.",Execution item CP2K-1927 | Source: router-for-me/CLIProxyAPIPlus issue#86 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/86 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#86,https://github.com/router-for-me/CLIProxyAPIPlus/issues/86,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1927
+"Refactor internals touched by ""Feature request: Configurable HTTP request timeout for Extended Thinking models"" to reduce coupling and improve maintainability.",Execution item CP2K-1928 | Source: router-for-me/CLIProxyAPIPlus issue#84 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/84 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#84,https://github.com/router-for-me/CLIProxyAPIPlus/issues/84,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1928
+"Prepare safe rollout for ""kiro请求偶尔报错event stream fatal"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1929 | Source: router-for-me/CLIProxyAPIPlus issue#83 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/83 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPIPlus,issue#83,https://github.com/router-for-me/CLIProxyAPIPlus/issues/83,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1929
+"Follow up ""[建议] 技术大佬考虑可以有机会新增一堆逆向平台"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1931 | Source: router-for-me/CLIProxyAPIPlus issue#79 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/79 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#79,https://github.com/router-for-me/CLIProxyAPIPlus/issues/79,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1931
+"Operationalize ""kiro请求的数据好像一大就会出错,导致cc写入文件失败"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1933 | Source: router-for-me/CLIProxyAPIPlus issue#77 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/77 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPIPlus,issue#77,https://github.com/router-for-me/CLIProxyAPIPlus/issues/77,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1933
+"Generalize ""[Bug] Kiro multi-account support broken - auth file overwritten on re-login"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1934 | Source: router-for-me/CLIProxyAPIPlus issue#76 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/76 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#76,https://github.com/router-for-me/CLIProxyAPIPlus/issues/76,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1934
+"Create or refresh provider quickstart derived from ""How to use KIRO with IAM?"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1938 | Source: router-for-me/CLIProxyAPIPlus issue#56 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/56 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPIPlus,issue#56,https://github.com/router-for-me/CLIProxyAPIPlus/issues/56,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1938
+"Prepare safe rollout for ""[Bug] Models from Codex (openai) are not accessible when Copilot is added"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1939 | Source: router-for-me/CLIProxyAPIPlus issue#43 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/43 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#43,https://github.com/router-for-me/CLIProxyAPIPlus/issues/43,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1939
+"Standardize naming/metadata affected by ""model gpt-5.1-codex-mini is not accessible via the /chat/completions endpoint"" across both repos and docs.","Execution item CP2K-1940 | Source: router-for-me/CLIProxyAPIPlus issue#41 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/41 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#41,https://github.com/router-for-me/CLIProxyAPIPlus/issues/41,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1940
+"Generalize ""lack of thinking signature in kiro's non-stream response cause incompatibility with some ai clients (specifically cherry studio)"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1944 | Source: router-for-me/CLIProxyAPIPlus issue#27 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/27 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#27,https://github.com/router-for-me/CLIProxyAPIPlus/issues/27,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1944
+"Improve CLI UX around ""I did not find the Kiro entry in the Web UI"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1945 | Source: router-for-me/CLIProxyAPIPlus issue#26 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/26 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPIPlus,issue#26,https://github.com/router-for-me/CLIProxyAPIPlus/issues/26,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1945
+"Extend docs for ""Kiro (AWS CodeWhisperer) - Stream error, status: 400"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1946 | Source: router-for-me/CLIProxyAPIPlus issue#7 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/7 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#7,https://github.com/router-for-me/CLIProxyAPIPlus/issues/7,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:s,kind:issue",CP2K-1946
+"Add process-compose dev profile with HMR-style reload, config watcher, and explicit `cliproxy refresh` command.",Execution item CP2K-0003 | Source: cross-repo synthesis | Source URL: | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,strategy,cross-repo,synthesis,,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:strategy",CP2K-0003
+Publish provider-specific 5-minute quickstarts with auth + model selection + sanity-check commands.,Execution item CP2K-0004 | Source: cross-repo synthesis | Source URL: | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,strategy,cross-repo,synthesis,,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:strategy",CP2K-0004
+"Add troubleshooting matrix for auth, model mapping, thinking normalization, stream parsing, and retry semantics.",Execution item CP2K-0005 | Source: cross-repo synthesis | Source URL: | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,strategy,cross-repo,synthesis,,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:strategy",CP2K-0005
+Ship interactive setup wizard and `doctor --fix` with machine-readable JSON output and deterministic remediation.,Execution item CP2K-0006 | Source: cross-repo synthesis | Source URL: | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,cli-ux-dx,yes,strategy,cross-repo,synthesis,,"board-2000,theme:cli-ux-dx,prio:p1,wave:wave-1,effort:m,kind:strategy",CP2K-0006
+"Add dedicated reasoning controls tests (`variant`, `reasoning_effort`, `reasoning.effort`, suffix forms).",Execution item CP2K-0008 | Source: cross-repo synthesis | Source URL: | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,testing-and-quality,yes,strategy,cross-repo,synthesis,,"board-2000,theme:testing-and-quality,prio:p1,wave:wave-1,effort:m,kind:strategy",CP2K-0008
+"Port relevant thegent-managed behavior implied by ""failed to save config: open /CLIProxyAPI/config.yaml: read-only file system"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0019 | Source: router-for-me/CLIProxyAPIPlus issue#201 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/201 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPIPlus,issue#201,https://github.com/router-for-me/CLIProxyAPIPlus/issues/201,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0019
+"Design non-subprocess integration contract related to ""why no kiro in dashboard"" with Go bindings primary and API fallback.",Execution item CP2K-0023 | Source: router-for-me/CLIProxyAPIPlus issue#183 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/183 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPIPlus,issue#183,https://github.com/router-for-me/CLIProxyAPIPlus/issues/183,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0023
+"Add process-compose/HMR refresh workflow linked to ""kiro反代的Write工具json截断问题,返回的文件路径经常是错误的"" for deterministic local runtime reload.",Execution item CP2K-0029 | Source: router-for-me/CLIProxyAPIPlus issue#164 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/164 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPIPlus,issue#164,https://github.com/router-for-me/CLIProxyAPIPlus/issues/164,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0029
+"Port relevant thegent-managed behavior implied by ""Kimi For Coding Support / 请求为 Kimi 添加编程支持"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0038 | Source: router-for-me/CLIProxyAPIPlus issue#141 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/141 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPIPlus,issue#141,https://github.com/router-for-me/CLIProxyAPIPlus/issues/141,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0038
+"Design non-subprocess integration contract related to ""Gemini3无法生图"" with Go bindings primary and API fallback.",Execution item CP2K-0046 | Source: router-for-me/CLIProxyAPIPlus issue#122 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/122 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPIPlus,issue#122,https://github.com/router-for-me/CLIProxyAPIPlus/issues/122,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0046
+"Port relevant thegent-managed behavior implied by ""GitHub Copilot Model Call Failure"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0057 | Source: router-for-me/CLIProxyAPIPlus issue#99 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/99 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPIPlus,issue#99,https://github.com/router-for-me/CLIProxyAPIPlus/issues/99,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0057
+"Add process-compose/HMR refresh workflow linked to ""Feature: Add Veo Video Generation Support (Similar to Image Generation)"" for deterministic local runtime reload.",Execution item CP2K-0058 | Source: router-for-me/CLIProxyAPIPlus issue#94 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/94 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPIPlus,issue#94,https://github.com/router-for-me/CLIProxyAPIPlus/issues/94,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0058
+"Design non-subprocess integration contract related to ""[Bug] Kiro multi-account support broken - auth file overwritten on re-login"" with Go bindings primary and API fallback.",Execution item CP2K-0069 | Source: router-for-me/CLIProxyAPIPlus issue#76 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/76 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPIPlus,issue#76,https://github.com/router-for-me/CLIProxyAPIPlus/issues/76,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0069
+"Port relevant thegent-managed behavior implied by ""GitHub Copilot models seem to be hardcoded"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0076 | Source: router-for-me/CLIProxyAPIPlus issue#37 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/37 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPIPlus,issue#37,https://github.com/router-for-me/CLIProxyAPIPlus/issues/37,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0076
+"Operationalize ""fix: add default copilot claude model aliases for oauth routing"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0083 | Source: router-for-me/CLIProxyAPIPlus pr#256 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/256 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#256,https://github.com/router-for-me/CLIProxyAPIPlus/pull/256,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0083
+"Create or refresh provider quickstart derived from ""fix(kiro): stop duplicated thinking on OpenAI and preserve Claude multi-turn thinking"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0085 | Source: router-for-me/CLIProxyAPIPlus pr#252 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/252 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#252,https://github.com/router-for-me/CLIProxyAPIPlus/pull/252,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0085
+"Add process-compose/HMR refresh workflow linked to ""v6.8.22"" for deterministic local runtime reload.",Execution item CP2K-0087 | Source: router-for-me/CLIProxyAPIPlus pr#249 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/249 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPIPlus,pr#249,https://github.com/router-for-me/CLIProxyAPIPlus/pull/249,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0087
+"Prepare safe rollout for ""fix(cline): add grantType to token refresh and extension headers"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0089 | Source: router-for-me/CLIProxyAPIPlus pr#247 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/247 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#247,https://github.com/router-for-me/CLIProxyAPIPlus/pull/247,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0089
+"Follow up ""feat(registry): add Claude Sonnet 4.6 model definitions"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0091 | Source: router-for-me/CLIProxyAPIPlus pr#243 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/243 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#243,https://github.com/router-for-me/CLIProxyAPIPlus/pull/243,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0091
+"Design non-subprocess integration contract related to ""Improve Copilot provider based on ericc-ch/copilot-api comparison"" with Go bindings primary and API fallback.",Execution item CP2K-0092 | Source: router-for-me/CLIProxyAPIPlus pr#242 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/242 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPIPlus,pr#242,https://github.com/router-for-me/CLIProxyAPIPlus/pull/242,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0092
+"Port relevant thegent-managed behavior implied by ""Fix Copilot 0x model incorrectly consuming premium requests"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0095 | Source: router-for-me/CLIProxyAPIPlus pr#238 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/238 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#238,https://github.com/router-for-me/CLIProxyAPIPlus/pull/238,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0095
+"Add robust stream/non-stream parity tests for ""fix: add proxy_ prefix handling for tool_reference content blocks"" across supported providers.",Execution item CP2K-0097 | Source: router-for-me/CLIProxyAPIPlus pr#236 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/236 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#236,https://github.com/router-for-me/CLIProxyAPIPlus/pull/236,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0097
+"Refactor internals touched by ""fix(codex): handle function_call_arguments streaming for both spark and non-spark models"" to reduce coupling and improve maintainability.",Execution item CP2K-0098 | Source: router-for-me/CLIProxyAPIPlus pr#235 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/235 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#235,https://github.com/router-for-me/CLIProxyAPIPlus/pull/235,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0098
+"Prepare safe rollout for ""Add Kilo Code provider with dynamic model fetching"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0099 | Source: router-for-me/CLIProxyAPIPlus pr#234 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/234 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#234,https://github.com/router-for-me/CLIProxyAPIPlus/pull/234,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0099
+"Standardize naming/metadata affected by ""Fix Copilot codex model Responses API translation for Claude Code"" across both repos and docs.","Execution item CP2K-0100 | Source: router-for-me/CLIProxyAPIPlus pr#233 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/233 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#233,https://github.com/router-for-me/CLIProxyAPIPlus/pull/233,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0100
+"Follow up ""feat(models): add Thinking support to GitHub Copilot models"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0101 | Source: router-for-me/CLIProxyAPIPlus pr#231 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/231 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#231,https://github.com/router-for-me/CLIProxyAPIPlus/pull/231,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0101
+"Create or refresh provider quickstart derived from ""fix(copilot): forward Claude-format tools to Copilot Responses API"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0102 | Source: router-for-me/CLIProxyAPIPlus pr#230 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/230 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#230,https://github.com/router-for-me/CLIProxyAPIPlus/pull/230,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0102
+"Operationalize ""fix: preserve explicitly deleted kiro aliases across config reload"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0103 | Source: router-for-me/CLIProxyAPIPlus pr#229 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/229 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#229,https://github.com/router-for-me/CLIProxyAPIPlus/pull/229,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0103
+"Generalize ""fix(antigravity): add warn-level logging to silent failure paths in FetchAntigravityModels"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0104 | Source: router-for-me/CLIProxyAPIPlus pr#228 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/228 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#228,https://github.com/router-for-me/CLIProxyAPIPlus/pull/228,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0104
+"Extend docs for ""refactor(kiro): Kiro Web Search Logic & Executor Alignment"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0106 | Source: router-for-me/CLIProxyAPIPlus pr#226 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/226 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#226,https://github.com/router-for-me/CLIProxyAPIPlus/pull/226,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0106
+"Refactor internals touched by ""fix(kiro): prepend placeholder user message when conversation starts with assistant role"" to reduce coupling and improve maintainability.",Execution item CP2K-0108 | Source: router-for-me/CLIProxyAPIPlus pr#224 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/224 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#224,https://github.com/router-for-me/CLIProxyAPIPlus/pull/224,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0108
+"Prepare safe rollout for ""fix(kiro): prepend placeholder user message when conversation starts with assistant role"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0109 | Source: router-for-me/CLIProxyAPIPlus pr#223 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/223 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#223,https://github.com/router-for-me/CLIProxyAPIPlus/pull/223,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0109
+"Operationalize ""fix(auth): strip model suffix in GitHub Copilot executor before upstream call"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0113 | Source: router-for-me/CLIProxyAPIPlus pr#214 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/214 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#214,https://github.com/router-for-me/CLIProxyAPIPlus/pull/214,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0113
+"Port relevant thegent-managed behavior implied by ""fix(kiro): filter orphaned tool_results from compacted conversations"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0114 | Source: router-for-me/CLIProxyAPIPlus pr#212 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/212 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#212,https://github.com/router-for-me/CLIProxyAPIPlus/pull/212,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0114
+"Design non-subprocess integration contract related to ""fix(kiro): fully implement Kiro web search tool via MCP integration"" with Go bindings primary and API fallback.",Execution item CP2K-0115 | Source: router-for-me/CLIProxyAPIPlus pr#211 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/211 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPIPlus,pr#211,https://github.com/router-for-me/CLIProxyAPIPlus/pull/211,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0115
+"Add process-compose/HMR refresh workflow linked to ""feat(config): add default Kiro model aliases for standard Claude model names"" for deterministic local runtime reload.",Execution item CP2K-0116 | Source: router-for-me/CLIProxyAPIPlus pr#209 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/209 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPIPlus,pr#209,https://github.com/router-for-me/CLIProxyAPIPlus/pull/209,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0116
+"Refactor internals touched by ""fix(translator): fix nullable type arrays breaking Gemini/Antigravity API"" to reduce coupling and improve maintainability.",Execution item CP2K-0118 | Source: router-for-me/CLIProxyAPIPlus pr#205 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/205 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#205,https://github.com/router-for-me/CLIProxyAPIPlus/pull/205,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0118
+"Create or refresh provider quickstart derived from ""v6.8.7"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0119 | Source: router-for-me/CLIProxyAPIPlus pr#204 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/204 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#204,https://github.com/router-for-me/CLIProxyAPIPlus/pull/204,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0119
+"Follow up ""feat: add Claude Opus 4.6 to GitHub Copilot models"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0121 | Source: router-for-me/CLIProxyAPIPlus pr#199 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/199 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#199,https://github.com/router-for-me/CLIProxyAPIPlus/pull/199,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0121
+"Generalize ""fix: replace assistant placeholder text to prevent model parroting"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0124 | Source: router-for-me/CLIProxyAPIPlus pr#194 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/194 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#194,https://github.com/router-for-me/CLIProxyAPIPlus/pull/194,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0124
+"Improve CLI UX around ""Add management OAuth quota endpoints"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0125 | Source: router-for-me/CLIProxyAPIPlus pr#193 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/193 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPIPlus,pr#193,https://github.com/router-for-me/CLIProxyAPIPlus/pull/193,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0125
+"Add robust stream/non-stream parity tests for ""feat(kiro): add contextUsageEvent handler"" across supported providers.",Execution item CP2K-0127 | Source: router-for-me/CLIProxyAPIPlus pr#191 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/191 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPIPlus,pr#191,https://github.com/router-for-me/CLIProxyAPIPlus/pull/191,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0127
+"Standardize naming/metadata affected by ""Codex executor: bump client headers for GPT-5.3 compatibility"" across both repos and docs.","Execution item CP2K-0130 | Source: router-for-me/CLIProxyAPIPlus pr#188 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/188 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#188,https://github.com/router-for-me/CLIProxyAPIPlus/pull/188,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0130
+"Follow up ""Fix Codex gpt-5.3-codex routing by normalizing backend model"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0131 | Source: router-for-me/CLIProxyAPIPlus pr#187 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/187 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#187,https://github.com/router-for-me/CLIProxyAPIPlus/pull/187,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0131
+"Port relevant thegent-managed behavior implied by ""v6.7.48"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0133 | Source: router-for-me/CLIProxyAPIPlus pr#185 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/185 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#185,https://github.com/router-for-me/CLIProxyAPIPlus/pull/185,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0133
+"Improve CLI UX around ""Add Kimi (Moonshot AI) provider support"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0135 | Source: router-for-me/CLIProxyAPIPlus pr#182 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/182 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#182,https://github.com/router-for-me/CLIProxyAPIPlus/pull/182,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0135
+"Create or refresh provider quickstart derived from ""fix(kiro): handle tool_use in content array for compaction requests"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0136 | Source: router-for-me/CLIProxyAPIPlus pr#181 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/181 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#181,https://github.com/router-for-me/CLIProxyAPIPlus/pull/181,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0136
+"Add robust stream/non-stream parity tests for ""Add Kimi (Moonshot AI) provider support"" across supported providers.",Execution item CP2K-0137 | Source: router-for-me/CLIProxyAPIPlus pr#180 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/180 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#180,https://github.com/router-for-me/CLIProxyAPIPlus/pull/180,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0137
+"Design non-subprocess integration contract related to ""v6.7.45"" with Go bindings primary and API fallback.",Execution item CP2K-0138 | Source: router-for-me/CLIProxyAPIPlus pr#176 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/176 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPIPlus,pr#176,https://github.com/router-for-me/CLIProxyAPIPlus/pull/176,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0138
+"Prepare safe rollout for ""fix(kiro): Rework JSON Truncation Handling with SOFT_LIMIT_REACHED"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0139 | Source: router-for-me/CLIProxyAPIPlus pr#175 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/175 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#175,https://github.com/router-for-me/CLIProxyAPIPlus/pull/175,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0139
+"Follow up ""修复:docker镜像上传时用户名使用变量并增加手动构建,修复OAuth 排除列表与OAuth 模型别名中kiro无法获取模型问题"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0141 | Source: router-for-me/CLIProxyAPIPlus pr#173 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/173 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#173,https://github.com/router-for-me/CLIProxyAPIPlus/pull/173,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0141
+"Harden ""fix(kiro): prioritize email for filename to prevent collisions"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0142 | Source: router-for-me/CLIProxyAPIPlus pr#172 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/172 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#172,https://github.com/router-for-me/CLIProxyAPIPlus/pull/172,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0142
+"Generalize ""fix(logging): expand tilde in auth-dir path for log directory"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0144 | Source: router-for-me/CLIProxyAPIPlus pr#168 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/168 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPIPlus,pr#168,https://github.com/router-for-me/CLIProxyAPIPlus/pull/168,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0144
+"Add process-compose/HMR refresh workflow linked to ""fix: add copilot- prefix to GitHub Copilot model IDs to prevent naming collisions"" for deterministic local runtime reload.",Execution item CP2K-0145 | Source: router-for-me/CLIProxyAPIPlus pr#167 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/167 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPIPlus,pr#167,https://github.com/router-for-me/CLIProxyAPIPlus/pull/167,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0145
+"Extend docs for ""feat: add .air.toml configuration file and update .gitignore for build artifacts"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0146 | Source: router-for-me/CLIProxyAPIPlus pr#166 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/166 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#166,https://github.com/router-for-me/CLIProxyAPIPlus/pull/166,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0146
+"Prepare safe rollout for ""fix(kiro): filter web search tool"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0149 | Source: router-for-me/CLIProxyAPIPlus pr#159 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/159 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#159,https://github.com/router-for-me/CLIProxyAPIPlus/pull/159,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0149
+"Standardize naming/metadata affected by ""fix(kiro): Support token extraction from Metadata for file-based authentication"" across both repos and docs.","Execution item CP2K-0150 | Source: router-for-me/CLIProxyAPIPlus pr#157 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/157 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#157,https://github.com/router-for-me/CLIProxyAPIPlus/pull/157,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0150
+"Follow up ""fix(kiro): Do not use OIDC region for API endpoint"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0151 | Source: router-for-me/CLIProxyAPIPlus pr#156 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/156 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#156,https://github.com/router-for-me/CLIProxyAPIPlus/pull/156,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0151
+"Port relevant thegent-managed behavior implied by ""feat(kiro): switch to Amazon Q endpoint as primary"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0152 | Source: router-for-me/CLIProxyAPIPlus pr#155 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/155 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#155,https://github.com/router-for-me/CLIProxyAPIPlus/pull/155,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0152
+"Create or refresh provider quickstart derived from ""v6.7.32"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0153 | Source: router-for-me/CLIProxyAPIPlus pr#154 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/154 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#154,https://github.com/router-for-me/CLIProxyAPIPlus/pull/154,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0153
+"Improve CLI UX around ""feat(kiro): Add dynamic region support for API endpoints"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0155 | Source: router-for-me/CLIProxyAPIPlus pr#152 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/152 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#152,https://github.com/router-for-me/CLIProxyAPIPlus/pull/152,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0155
+"Extend docs for ""fix: Use Firefox TLS fingerprint for Claude OAuth to bypass Cloudflare"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0156 | Source: router-for-me/CLIProxyAPIPlus pr#151 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/151 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#151,https://github.com/router-for-me/CLIProxyAPIPlus/pull/151,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0156
+"Add robust stream/non-stream parity tests for ""fix: handle Write tool truncation when content exceeds API limits"" across supported providers.",Execution item CP2K-0157 | Source: router-for-me/CLIProxyAPIPlus pr#150 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/150 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#150,https://github.com/router-for-me/CLIProxyAPIPlus/pull/150,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0157
+"Refactor internals touched by ""fix: explicitly check built-in tool types to prevent proxy_ prefix"" to reduce coupling and improve maintainability.",Execution item CP2K-0158 | Source: router-for-me/CLIProxyAPIPlus pr#148 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/148 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#148,https://github.com/router-for-me/CLIProxyAPIPlus/pull/148,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0158
+"Prepare safe rollout for ""fix: handle zero output_tokens for kiro non-streaming requests"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0159 | Source: router-for-me/CLIProxyAPIPlus pr#144 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/144 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#144,https://github.com/router-for-me/CLIProxyAPIPlus/pull/144,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0159
+"Design non-subprocess integration contract related to ""fix: support github-copilot provider in AccountInfo logging"" with Go bindings primary and API fallback.",Execution item CP2K-0161 | Source: router-for-me/CLIProxyAPIPlus pr#140 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/140 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPIPlus,pr#140,https://github.com/router-for-me/CLIProxyAPIPlus/pull/140,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0161
+"Generalize ""fix: case-insensitive auth_method comparison for IDC tokens"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0164 | Source: router-for-me/CLIProxyAPIPlus pr#137 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/137 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#137,https://github.com/router-for-me/CLIProxyAPIPlus/pull/137,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0164
+"Refactor internals touched by ""Bien/validate auth files"" to reduce coupling and improve maintainability.",Execution item CP2K-0168 | Source: router-for-me/CLIProxyAPIPlus pr#127 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/127 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPIPlus,pr#127,https://github.com/router-for-me/CLIProxyAPIPlus/pull/127,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0168
+"Create or refresh provider quickstart derived from ""fix(kiro): always attempt token refresh on 401 before checking retry …"" with setup/auth/model/sanity-check flow.","Execution item CP2K-0170 | Source: router-for-me/CLIProxyAPIPlus pr#124 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/124 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#124,https://github.com/router-for-me/CLIProxyAPIPlus/pull/124,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0170
+"Port relevant thegent-managed behavior implied by ""v6.7.20"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0171 | Source: router-for-me/CLIProxyAPIPlus pr#123 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/123 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#123,https://github.com/router-for-me/CLIProxyAPIPlus/pull/123,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0171
+"Operationalize ""fix(auth): normalize Kiro authMethod to lowercase on token import"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0173 | Source: router-for-me/CLIProxyAPIPlus pr#120 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/120 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#120,https://github.com/router-for-me/CLIProxyAPIPlus/pull/120,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0173
+"Add process-compose/HMR refresh workflow linked to ""支持Kiro sso idc"" for deterministic local runtime reload.",Execution item CP2K-0174 | Source: router-for-me/CLIProxyAPIPlus pr#119 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/119 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPIPlus,pr#119,https://github.com/router-for-me/CLIProxyAPIPlus/pull/119,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0174
+"Harden ""fix(codex): drop unsupported responses metadata"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0182 | Source: router-for-me/CLIProxyAPIPlus pr#106 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/106 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#106,https://github.com/router-for-me/CLIProxyAPIPlus/pull/106,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0182
+"Design non-subprocess integration contract related to ""feat(openai): responses API support for GitHub Copilot provider"" with Go bindings primary and API fallback.",Execution item CP2K-0184 | Source: router-for-me/CLIProxyAPIPlus pr#103 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/103 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPIPlus,pr#103,https://github.com/router-for-me/CLIProxyAPIPlus/pull/103,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0184
+"Create or refresh provider quickstart derived from ""feat(kiro): 实现动态工具压缩功能"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0187 | Source: router-for-me/CLIProxyAPIPlus pr#95 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/95 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#95,https://github.com/router-for-me/CLIProxyAPIPlus/pull/95,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0187
+"Refactor internals touched by ""feat(config): add github-copilot support to oauth-model-mappings and oauth-excluded-models"" to reduce coupling and improve maintainability.",Execution item CP2K-0188 | Source: router-for-me/CLIProxyAPIPlus pr#93 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/93 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#93,https://github.com/router-for-me/CLIProxyAPIPlus/pull/93,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0188
+"Port relevant thegent-managed behavior implied by ""v6.6.93"" into cliproxy Go CLI commands and interactive setup.","Execution item CP2K-0190 | Source: router-for-me/CLIProxyAPIPlus pr#91 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/91 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#91,https://github.com/router-for-me/CLIProxyAPIPlus/pull/91,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0190
+"Harden ""feat(config): add configurable request-timeout for upstream provider requests"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0192 | Source: router-for-me/CLIProxyAPIPlus pr#85 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/85 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#85,https://github.com/router-for-me/CLIProxyAPIPlus/pull/85,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0192
+"Operationalize ""feat(kiro): add OAuth model name mappings support for Kiro"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0193 | Source: router-for-me/CLIProxyAPIPlus pr#82 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/82 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#82,https://github.com/router-for-me/CLIProxyAPIPlus/pull/82,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0193
+"Extend docs for ""feat: Add provided_by field to /v1/models response"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0196 | Source: router-for-me/CLIProxyAPIPlus pr#74 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/74 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#74,https://github.com/router-for-me/CLIProxyAPIPlus/pull/74,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0196
+"Add process-compose/HMR refresh workflow linked to ""fix(openai): add index field to image response for LiteLLM compatibility"" for deterministic local runtime reload.",Execution item CP2K-0203 | Source: router-for-me/CLIProxyAPIPlus pr#63 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/63 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPIPlus,pr#63,https://github.com/router-for-me/CLIProxyAPIPlus/pull/63,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0203
+"Create or refresh provider quickstart derived from ""v6.6.50"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0204 | Source: router-for-me/CLIProxyAPIPlus pr#62 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/62 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#62,https://github.com/router-for-me/CLIProxyAPIPlus/pull/62,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0204
+"Improve CLI UX around ""fix(kiro): Handle tool results correctly in OpenAI format translation"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0205 | Source: router-for-me/CLIProxyAPIPlus pr#61 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/61 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#61,https://github.com/router-for-me/CLIProxyAPIPlus/pull/61,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0205
+"Design non-subprocess integration contract related to ""v6.6.50"" with Go bindings primary and API fallback.",Execution item CP2K-0207 | Source: router-for-me/CLIProxyAPIPlus pr#59 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/59 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPIPlus,pr#59,https://github.com/router-for-me/CLIProxyAPIPlus/pull/59,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0207
+"Port relevant thegent-managed behavior implied by ""feat: add AWS Identity Center (IDC) authentication support"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0209 | Source: router-for-me/CLIProxyAPIPlus pr#57 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/57 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#57,https://github.com/router-for-me/CLIProxyAPIPlus/pull/57,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0209
+"Follow up ""add missing Kiro config synthesis"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0211 | Source: router-for-me/CLIProxyAPIPlus pr#54 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/54 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#54,https://github.com/router-for-me/CLIProxyAPIPlus/pull/54,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0211
+"Harden ""docs: operations guide + config examples"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0212 | Source: router-for-me/CLIProxyAPIPlus pr#53 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/53 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#53,https://github.com/router-for-me/CLIProxyAPIPlus/pull/53,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0212
+"Operationalize ""fix(auth): secure token persistence + git-repo warning"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0213 | Source: router-for-me/CLIProxyAPIPlus pr#52 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/52 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#52,https://github.com/router-for-me/CLIProxyAPIPlus/pull/52,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0213
+"Generalize ""fix(api): improve streaming bootstrap resilience"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0214 | Source: router-for-me/CLIProxyAPIPlus pr#51 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/51 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#51,https://github.com/router-for-me/CLIProxyAPIPlus/pull/51,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0214
+"Improve CLI UX around ""feat(routing): add fill-first credential selection strategy"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0215 | Source: router-for-me/CLIProxyAPIPlus pr#50 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/50 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#50,https://github.com/router-for-me/CLIProxyAPIPlus/pull/50,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0215
+"Extend docs for ""feat(oauth): harden provider flows + oauthhttp + oauth proxy override"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0216 | Source: router-for-me/CLIProxyAPIPlus pr#49 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/49 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#49,https://github.com/router-for-me/CLIProxyAPIPlus/pull/49,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0216
+"Add robust stream/non-stream parity tests for ""feat(kiro): 新增授权码登录流程,优化邮箱获取与官方 Thinking 模式解析 预支持"" across supported providers.",Execution item CP2K-0217 | Source: router-for-me/CLIProxyAPIPlus pr#42 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/42 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#42,https://github.com/router-for-me/CLIProxyAPIPlus/pull/42,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0217
+"Create or refresh provider quickstart derived from ""Add GPT-5.2 model support for GitHub Copilot"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0221 | Source: router-for-me/CLIProxyAPIPlus pr#36 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/36 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#36,https://github.com/router-for-me/CLIProxyAPIPlus/pull/36,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0221
+"Generalize ""feat: enhance thinking mode support for Kiro translator"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0224 | Source: router-for-me/CLIProxyAPIPlus pr#32 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/32 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#32,https://github.com/router-for-me/CLIProxyAPIPlus/pull/32,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0224
+"Add robust stream/non-stream parity tests for ""fix(kiro): remove the extra quotation marks from the protocol handler"" across supported providers.",Execution item CP2K-0227 | Source: router-for-me/CLIProxyAPIPlus pr#28 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/28 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPIPlus,pr#28,https://github.com/router-for-me/CLIProxyAPIPlus/pull/28,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0227
+"Port relevant thegent-managed behavior implied by ""fix(kiro): Always parse thinking tags from Kiro API responses"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0228 | Source: router-for-me/CLIProxyAPIPlus pr#25 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/25 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#25,https://github.com/router-for-me/CLIProxyAPIPlus/pull/25,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0228
+"Prepare safe rollout for ""feat(kiro): Major Refactoring + OpenAI Translator Implementation + Streaming Fixes"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0229 | Source: router-for-me/CLIProxyAPIPlus pr#24 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/24 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#24,https://github.com/router-for-me/CLIProxyAPIPlus/pull/24,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0229
+"Design non-subprocess integration contract related to ""v6.6.9"" with Go bindings primary and API fallback.","Execution item CP2K-0230 | Source: router-for-me/CLIProxyAPIPlus pr#23 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/23 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPIPlus,pr#23,https://github.com/router-for-me/CLIProxyAPIPlus/pull/23,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0230
+"Follow up ""feat(kiro): enhance thinking support and fix truncation issues"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0231 | Source: router-for-me/CLIProxyAPIPlus pr#22 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/22 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#22,https://github.com/router-for-me/CLIProxyAPIPlus/pull/22,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0231
+"Add process-compose/HMR refresh workflow linked to ""v6.6.6"" for deterministic local runtime reload.",Execution item CP2K-0232 | Source: router-for-me/CLIProxyAPIPlus pr#21 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/21 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPIPlus,pr#21,https://github.com/router-for-me/CLIProxyAPIPlus/pull/21,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0232
+"Operationalize ""feat(kiro): 支持思考模型 (Thinking Mode) 并通过多配额故障转移增强稳定性"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0233 | Source: router-for-me/CLIProxyAPIPlus pr#20 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/20 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#20,https://github.com/router-for-me/CLIProxyAPIPlus/pull/20,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0233
+"Improve CLI UX around ""Kiro Executor Stability and API Compatibility Improvements"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0235 | Source: router-for-me/CLIProxyAPIPlus pr#18 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/18 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#18,https://github.com/router-for-me/CLIProxyAPIPlus/pull/18,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0235
+"Create or refresh provider quickstart derived from ""fix kiro cannot refresh the token"" with setup/auth/model/sanity-check flow.",Execution item CP2K-0238 | Source: router-for-me/CLIProxyAPIPlus pr#15 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/15 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#15,https://github.com/router-for-me/CLIProxyAPIPlus/pull/15,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0238
+"Harden ""fix: handle unexpected 'content_block_start' event order (fixes #4)"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0242 | Source: router-for-me/CLIProxyAPIPlus pr#11 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/11 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#11,https://github.com/router-for-me/CLIProxyAPIPlus/pull/11,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0242
+"Extend docs for ""Feature/copilot oauth support"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0246 | Source: router-for-me/CLIProxyAPIPlus pr#6 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/6 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPIPlus,pr#6,https://github.com/router-for-me/CLIProxyAPIPlus/pull/6,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0246
+"Port relevant thegent-managed behavior implied by ""Sync"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0247 | Source: router-for-me/CLIProxyAPIPlus pr#5 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/5 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#5,https://github.com/router-for-me/CLIProxyAPIPlus/pull/5,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-0247
+"Design non-subprocess integration contract related to ""Does CLIProxyAPIPlus support Kiro multi-account rotation with load balancing?"" with Go bindings primary and API fallback.",Execution item CP2K-0253 | Source: router-for-me/CLIProxyAPIPlus discussion#73 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/discussions/73 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,discussion,router-for-me/CLIProxyAPIPlus,discussion#73,https://github.com/router-for-me/CLIProxyAPIPlus/discussions/73,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-0253
+"Add process-compose/HMR refresh workflow linked to ""Qwen Oauth fails"" for deterministic local runtime reload.",Execution item CP2K-0261 | Source: router-for-me/CLIProxyAPI issue#1658 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1658 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1658,https://github.com/router-for-me/CLIProxyAPI/issues/1658,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0261
+"Port relevant thegent-managed behavior implied by ""Gemini API integration: incorrect renaming of 'parameters' to 'parametersJsonSchema'"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0266 | Source: router-for-me/CLIProxyAPI issue#1649 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1649 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1649,https://github.com/router-for-me/CLIProxyAPI/issues/1649,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0266
+"Design non-subprocess integration contract related to ""Please add support for Claude Sonnet 4.6"" with Go bindings primary and API fallback.",Execution item CP2K-0276 | Source: router-for-me/CLIProxyAPI issue#1622 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1622 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1622,https://github.com/router-for-me/CLIProxyAPI/issues/1622,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0276
+"Port relevant thegent-managed behavior implied by ""速速支持qwen code的qwen3.5"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0285 | Source: router-for-me/CLIProxyAPI issue#1603 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1603 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1603,https://github.com/router-for-me/CLIProxyAPI/issues/1603,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0285
+"Add process-compose/HMR refresh workflow linked to ""()强制思考会在2m左右时返回500错误"" for deterministic local runtime reload.","Execution item CP2K-0290 | Source: router-for-me/CLIProxyAPI issue#1591 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1591 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1591,https://github.com/router-for-me/CLIProxyAPI/issues/1591,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0290
+"Design non-subprocess integration contract related to ""希望能加一个一键清理失效的认证文件功能"" with Go bindings primary and API fallback.",Execution item CP2K-0299 | Source: router-for-me/CLIProxyAPI issue#1580 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1580 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1580,https://github.com/router-for-me/CLIProxyAPI/issues/1580,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0299
+"Port relevant thegent-managed behavior implied by ""Reasoning Error"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0304 | Source: router-for-me/CLIProxyAPI issue#1572 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1572 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1572,https://github.com/router-for-me/CLIProxyAPI/issues/1572,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0304
+"Add process-compose/HMR refresh workflow linked to ""[Claude code] ENABLE_TOOL_SEARCH - MCP not in available tools 400"" for deterministic local runtime reload.",Execution item CP2K-0319 | Source: router-for-me/CLIProxyAPI issue#1547 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1547 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1547,https://github.com/router-for-me/CLIProxyAPI/issues/1547,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0319
+"Design non-subprocess integration contract related to ""删除iflow提供商的过时模型"" with Go bindings primary and API fallback.",Execution item CP2K-0322 | Source: router-for-me/CLIProxyAPI issue#1544 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1544 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1544,https://github.com/router-for-me/CLIProxyAPI/issues/1544,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0322
+"Port relevant thegent-managed behavior implied by ""[BUG] 反重力 Opus-4.5 在 OpenCode 上搭配 DCP 插件使用时会报错"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0342 | Source: router-for-me/CLIProxyAPI issue#1507 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1507 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1507,https://github.com/router-for-me/CLIProxyAPI/issues/1507,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0342
+"Design non-subprocess integration contract related to ""[BUG] sdkaccess.RegisterProvider 逻辑被 syncInlineAccessProvider 破坏"" with Go bindings primary and API fallback.",Execution item CP2K-0345 | Source: router-for-me/CLIProxyAPI issue#1503 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1503 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1503,https://github.com/router-for-me/CLIProxyAPI/issues/1503,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0345
+"Add process-compose/HMR refresh workflow linked to ""After logging in with iFlowOAuth, most models cannot be used, only non-CLI models can be used."" for deterministic local runtime reload.",Execution item CP2K-0348 | Source: router-for-me/CLIProxyAPI issue#1499 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1499 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1499,https://github.com/router-for-me/CLIProxyAPI/issues/1499,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0348
+"Port relevant thegent-managed behavior implied by ""Roo Code v3.47.0 cannot make Gemini API calls anymore"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0361 | Source: router-for-me/CLIProxyAPI issue#1476 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1476 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1476,https://github.com/router-for-me/CLIProxyAPI/issues/1476,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0361
+"Design non-subprocess integration contract related to ""为啥openai的端点可以添加多个密钥,但是a社的端点不能添加"" with Go bindings primary and API fallback.",Execution item CP2K-0368 | Source: router-for-me/CLIProxyAPI issue#1457 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1457 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1457,https://github.com/router-for-me/CLIProxyAPI/issues/1457,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0368
+"Add process-compose/HMR refresh workflow linked to ""The requested model 'gpt-5.3-codex' does not exist."" for deterministic local runtime reload.",Execution item CP2K-0377 | Source: router-for-me/CLIProxyAPI issue#1441 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1441 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1441,https://github.com/router-for-me/CLIProxyAPI/issues/1441,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0377
+"Port relevant thegent-managed behavior implied by ""iflow kimi-k2.5 无法正常统计消耗的token数,一直是0"" into cliproxy Go CLI commands and interactive setup.","Execution item CP2K-0380 | Source: router-for-me/CLIProxyAPI issue#1437 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1437 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1437,https://github.com/router-for-me/CLIProxyAPI/issues/1437,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0380
+"Port relevant thegent-managed behavior implied by ""■ stream disconnected before completion: stream closed before response.completed"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0399 | Source: router-for-me/CLIProxyAPI issue#1407 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1407 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1407,https://github.com/router-for-me/CLIProxyAPI/issues/1407,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0399
+"Add process-compose/HMR refresh workflow linked to ""Vertex AI global 区域端点 URL 格式错误,导致无法访问 Gemini 3 Preview 模型"" for deterministic local runtime reload.",Execution item CP2K-0406 | Source: router-for-me/CLIProxyAPI issue#1395 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1395 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1395,https://github.com/router-for-me/CLIProxyAPI/issues/1395,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0406
+"Design non-subprocess integration contract related to ""[Feature request] Support nested object parameter mapping in payload config"" with Go bindings primary and API fallback.",Execution item CP2K-0414 | Source: router-for-me/CLIProxyAPI issue#1384 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1384 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1384,https://github.com/router-for-me/CLIProxyAPI/issues/1384,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0414
+"Port relevant thegent-managed behavior implied by ""Gemini 3 Flash includeThoughts参数不生效了"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0418 | Source: router-for-me/CLIProxyAPI issue#1378 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1378 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1378,https://github.com/router-for-me/CLIProxyAPI/issues/1378,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0418
+"Add process-compose/HMR refresh workflow linked to ""400 Bad Request when reasoning_effort=""xhigh"" with kimi k2.5 (OpenAI-compatible API)"" for deterministic local runtime reload.",Execution item CP2K-0435 | Source: router-for-me/CLIProxyAPI issue#1307 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1307 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1307,https://github.com/router-for-me/CLIProxyAPI/issues/1307,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0435
+"Port relevant thegent-managed behavior implied by ""CLI Proxy API 版本: v6.7.28,OAuth 模型别名里的antigravity项目无法被删除。"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0437 | Source: router-for-me/CLIProxyAPI issue#1305 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1305 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1305,https://github.com/router-for-me/CLIProxyAPI/issues/1305,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0437
+"Port relevant thegent-managed behavior implied by ""Tool Error on Antigravity Gemini 3 Flash"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0456 | Source: router-for-me/CLIProxyAPI issue#1269 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1269 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1269,https://github.com/router-for-me/CLIProxyAPI/issues/1269,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0456
+"Design non-subprocess integration contract related to ""AMP CLI not working"" with Go bindings primary and API fallback.","Execution item CP2K-0460 | Source: router-for-me/CLIProxyAPI issue#1264 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1264 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1264,https://github.com/router-for-me/CLIProxyAPI/issues/1264,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0460
+"Add process-compose/HMR refresh workflow linked to ""Anthropic via OAuth can not callback URL"" for deterministic local runtime reload.",Execution item CP2K-0464 | Source: router-for-me/CLIProxyAPI issue#1256 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1256 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1256,https://github.com/router-for-me/CLIProxyAPI/issues/1256,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0464
+"Port relevant thegent-managed behavior implied by ""Feature Request:Add support for separate proxy configuration with credentials"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0475 | Source: router-for-me/CLIProxyAPI issue#1236 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1236 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1236,https://github.com/router-for-me/CLIProxyAPI/issues/1236,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0475
+"Design non-subprocess integration contract related to ""tool_use_error InputValidationError: EnterPlanMode failed due to the following issue: An unexpected parameter `reason` was provided"" with Go bindings primary and API fallback.",Execution item CP2K-0483 | Source: router-for-me/CLIProxyAPI issue#1215 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1215 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1215,https://github.com/router-for-me/CLIProxyAPI/issues/1215,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0483
+"Port relevant thegent-managed behavior implied by ""认证失败: Failed to exchange token"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0494 | Source: router-for-me/CLIProxyAPI issue#1186 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1186 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1186,https://github.com/router-for-me/CLIProxyAPI/issues/1186,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0494
+"Design non-subprocess integration contract related to ""[Feature] 添加Github Copilot 的OAuth"" with Go bindings primary and API fallback.",Execution item CP2K-0506 | Source: router-for-me/CLIProxyAPI issue#1159 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1159 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1159,https://github.com/router-for-me/CLIProxyAPI/issues/1159,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0506
+"Port relevant thegent-managed behavior implied by ""OpenAI 兼容模型请求失败问题"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0513 | Source: router-for-me/CLIProxyAPI issue#1149 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1149 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1149,https://github.com/router-for-me/CLIProxyAPI/issues/1149,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0513
+"Add process-compose/HMR refresh workflow linked to ""API Error: 400是怎么回事,之前一直能用"" for deterministic local runtime reload.",Execution item CP2K-0522 | Source: router-for-me/CLIProxyAPI issue#1133 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1133 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1133,https://github.com/router-for-me/CLIProxyAPI/issues/1133,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0522
+"Design non-subprocess integration contract related to ""Error code: 400 - {'detail': 'Unsupported parameter: user'}"" with Go bindings primary and API fallback.",Execution item CP2K-0529 | Source: router-for-me/CLIProxyAPI issue#1119 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1119 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1119,https://github.com/router-for-me/CLIProxyAPI/issues/1119,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0529
+"Port relevant thegent-managed behavior implied by ""该凭证暂无可用模型,这是被封号了的意思吗"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0532 | Source: router-for-me/CLIProxyAPI issue#1111 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1111 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1111,https://github.com/router-for-me/CLIProxyAPI/issues/1111,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0532
+"Port relevant thegent-managed behavior implied by ""修改报错HTTP Status Code"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0551 | Source: router-for-me/CLIProxyAPI issue#1082 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1082 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1082,https://github.com/router-for-me/CLIProxyAPI/issues/1082,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0551
+"Design non-subprocess integration contract related to ""反重力2api无法使用工具"" with Go bindings primary and API fallback.",Execution item CP2K-0552 | Source: router-for-me/CLIProxyAPI issue#1080 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1080 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1080,https://github.com/router-for-me/CLIProxyAPI/issues/1080,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0552
+"Port relevant thegent-managed behavior implied by ""6.7.3报错 claude和cherry 都报错,是配置问题吗?还是模型换名了unknown provider for model gemini-claude-opus-4-"" into cliproxy Go CLI commands and interactive setup.","Execution item CP2K-0570 | Source: router-for-me/CLIProxyAPI issue#1056 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1056 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1056,https://github.com/router-for-me/CLIProxyAPI/issues/1056,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0570
+"Design non-subprocess integration contract related to ""【建议】持久化储存使用统计"" with Go bindings primary and API fallback.",Execution item CP2K-0575 | Source: router-for-me/CLIProxyAPI issue#1050 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1050 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1050,https://github.com/router-for-me/CLIProxyAPI/issues/1050,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0575
+"Add process-compose/HMR refresh workflow linked to ""OpenAI-compatible assistant content arrays dropped in conversion, causing repeated replies"" for deterministic local runtime reload.","Execution item CP2K-0580 | Source: router-for-me/CLIProxyAPI issue#1043 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1043 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1043,https://github.com/router-for-me/CLIProxyAPI/issues/1043,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0580
+"Port relevant thegent-managed behavior implied by ""额度获取失败:Gemini CLI 凭证缺少 Project ID"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0589 | Source: router-for-me/CLIProxyAPI issue#1032 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1032 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1032,https://github.com/router-for-me/CLIProxyAPI/issues/1032,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0589
+"Design non-subprocess integration contract related to ""额度的消耗怎么做到平均分配和限制最多使用量呢?"" with Go bindings primary and API fallback.",Execution item CP2K-0598 | Source: router-for-me/CLIProxyAPI issue#1021 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1021 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#1021,https://github.com/router-for-me/CLIProxyAPI/issues/1021,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0598
+"Port relevant thegent-managed behavior implied by ""iFlow token刷新失败"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0608 | Source: router-for-me/CLIProxyAPI issue#1007 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1007 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#1007,https://github.com/router-for-me/CLIProxyAPI/issues/1007,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0608
+"Add process-compose/HMR refresh workflow linked to ""fix(codex): Codex 流错误格式不符合 OpenAI Responses API 规范导致客户端解析失败"" for deterministic local runtime reload.",Execution item CP2K-0609 | Source: router-for-me/CLIProxyAPI issue#1006 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1006 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#1006,https://github.com/router-for-me/CLIProxyAPI/issues/1006,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0609
+"Design non-subprocess integration contract related to ""`tool_use` ids were found without `tool_result` blocks immediately"" with Go bindings primary and API fallback.",Execution item CP2K-0621 | Source: router-for-me/CLIProxyAPI issue#989 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/989 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#989,https://github.com/router-for-me/CLIProxyAPI/issues/989,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0621
+"Port relevant thegent-managed behavior implied by ""400 Error: Unsupported max_tokens Parameter When Using OpenAI Base URL"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0627 | Source: router-for-me/CLIProxyAPI issue#983 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/983 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#983,https://github.com/router-for-me/CLIProxyAPI/issues/983,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0627
+"Add process-compose/HMR refresh workflow linked to ""登陆后白屏"" for deterministic local runtime reload.",Execution item CP2K-0638 | Source: router-for-me/CLIProxyAPI issue#965 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/965 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#965,https://github.com/router-for-me/CLIProxyAPI/issues/965,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0638
+"Design non-subprocess integration contract related to ""【bug】三方兼容open ai接口 测试会报这个,如何解决呢?"" with Go bindings primary and API fallback.",Execution item CP2K-0644 | Source: router-for-me/CLIProxyAPI issue#956 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/956 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#956,https://github.com/router-for-me/CLIProxyAPI/issues/956,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0644
+"Port relevant thegent-managed behavior implied by ""配置自定义提供商的时候怎么给相同的baseurl一次配置多个API Token呢?"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0665 | Source: router-for-me/CLIProxyAPI issue#927 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/927 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#927,https://github.com/router-for-me/CLIProxyAPI/issues/927,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0665
+"Design non-subprocess integration contract related to ""iFlow 登录失败"" with Go bindings primary and API fallback.",Execution item CP2K-0667 | Source: router-for-me/CLIProxyAPI issue#923 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/923 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#923,https://github.com/router-for-me/CLIProxyAPI/issues/923,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0667
+"Port relevant thegent-managed behavior implied by ""auth_unavailable: no auth available"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0684 | Source: router-for-me/CLIProxyAPI issue#902 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/902 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#902,https://github.com/router-for-me/CLIProxyAPI/issues/902,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0684
+"Design non-subprocess integration contract related to ""增加qodercli"" with Go bindings primary and API fallback.","Execution item CP2K-0690 | Source: router-for-me/CLIProxyAPI issue#889 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/889 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#889,https://github.com/router-for-me/CLIProxyAPI/issues/889,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0690
+"Add process-compose/HMR refresh workflow linked to ""fix(antigravity): Streaming finish_reason 'tool_calls' overwritten by 'stop' - breaks Claude Code tool detection"" for deterministic local runtime reload.",Execution item CP2K-0696 | Source: router-for-me/CLIProxyAPI issue#876 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/876 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#876,https://github.com/router-for-me/CLIProxyAPI/issues/876,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0696
+"Port relevant thegent-managed behavior implied by ""代理 iflow 模型服务的时候频繁出现重复调用同一个请求的情况。一直循环"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0703 | Source: router-for-me/CLIProxyAPI issue#856 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/856 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#856,https://github.com/router-for-me/CLIProxyAPI/issues/856,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0703
+"Design non-subprocess integration contract related to ""[Bug] Antigravity countTokens ignores tools field - always returns content-only token count"" with Go bindings primary and API fallback.",Execution item CP2K-0713 | Source: router-for-me/CLIProxyAPI issue#840 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/840 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#840,https://github.com/router-for-me/CLIProxyAPI/issues/840,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0713
+"Port relevant thegent-managed behavior implied by ""[FQ]增加telegram bot集成和更多管理API命令刷新Providers周期额度"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0722 | Source: router-for-me/CLIProxyAPI issue#820 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/820 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#820,https://github.com/router-for-me/CLIProxyAPI/issues/820,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0722
+"Add process-compose/HMR refresh workflow linked to ""iFlow account error show on terminal"" for deterministic local runtime reload.",Execution item CP2K-0725 | Source: router-for-me/CLIProxyAPI issue#815 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/815 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#815,https://github.com/router-for-me/CLIProxyAPI/issues/815,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0725
+"Design non-subprocess integration contract related to ""使用上游提供的 Gemini API 和 URL 获取到的模型名称不对应"" with Go bindings primary and API fallback.",Execution item CP2K-0736 | Source: router-for-me/CLIProxyAPI issue#791 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/791 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#791,https://github.com/router-for-me/CLIProxyAPI/issues/791,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0736
+"Port relevant thegent-managed behavior implied by ""[功能请求] 新增联网gemini 联网模型"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0741 | Source: router-for-me/CLIProxyAPI issue#779 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/779 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#779,https://github.com/router-for-me/CLIProxyAPI/issues/779,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0741
+"Add process-compose/HMR refresh workflow linked to ""[Bug] Invalid request error when using thinking with multi-turn conversations"" for deterministic local runtime reload.",Execution item CP2K-0754 | Source: router-for-me/CLIProxyAPI issue#746 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/746 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#746,https://github.com/router-for-me/CLIProxyAPI/issues/746,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0754
+"Design non-subprocess integration contract related to ""Claude Code CLI's status line shows zero tokens"" with Go bindings primary and API fallback.",Execution item CP2K-0759 | Source: router-for-me/CLIProxyAPI issue#740 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/740 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#740,https://github.com/router-for-me/CLIProxyAPI/issues/740,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0759
+"Port relevant thegent-managed behavior implied by ""Tool calls not emitted after thinking blocks"" into cliproxy Go CLI commands and interactive setup.","Execution item CP2K-0760 | Source: router-for-me/CLIProxyAPI issue#739 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/739 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#739,https://github.com/router-for-me/CLIProxyAPI/issues/739,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0760
+"Port relevant thegent-managed behavior implied by ""Feature: able to show the remaining quota of antigravity and gemini cli"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0779 | Source: router-for-me/CLIProxyAPI issue#713 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/713 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#713,https://github.com/router-for-me/CLIProxyAPI/issues/713,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0779
+"Add process-compose/HMR refresh workflow linked to ""claude code 的指令/cotnext 裡token 計算不正確"" for deterministic local runtime reload.",Execution item CP2K-0783 | Source: router-for-me/CLIProxyAPI issue#709 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/709 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#709,https://github.com/router-for-me/CLIProxyAPI/issues/709,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0783
+"Port relevant thegent-managed behavior implied by ""Feature: Persist stats to disk (Docker-friendly) instead of in-memory only"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0798 | Source: router-for-me/CLIProxyAPI issue#681 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/681 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#681,https://github.com/router-for-me/CLIProxyAPI/issues/681,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0798
+"Design non-subprocess integration contract related to ""Support Trae"" with Go bindings primary and API fallback.",Execution item CP2K-0805 | Source: router-for-me/CLIProxyAPI issue#666 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/666 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#666,https://github.com/router-for-me/CLIProxyAPI/issues/666,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0805
+"Add process-compose/HMR refresh workflow linked to ""希望能支持 GitHub Copilot"" for deterministic local runtime reload.",Execution item CP2K-0812 | Source: router-for-me/CLIProxyAPI issue#649 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/649 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#649,https://github.com/router-for-me/CLIProxyAPI/issues/649,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0812
+"Port relevant thegent-managed behavior implied by ""Large prompt failures w/ Claude Code vs Codex routes (gpt-5.2): cloudcode 'Prompt is too long' + codex SSE missing response.completed"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0817 | Source: router-for-me/CLIProxyAPI issue#636 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/636 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#636,https://github.com/router-for-me/CLIProxyAPI/issues/636,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0817
+"Design non-subprocess integration contract related to ""SDK Internal Package Dependency Issue"" with Go bindings primary and API fallback.",Execution item CP2K-0828 | Source: router-for-me/CLIProxyAPI issue#607 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/607 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#607,https://github.com/router-for-me/CLIProxyAPI/issues/607,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0828
+"Port relevant thegent-managed behavior implied by ""bug: Streaming not working for Gemini 3 models (Flash/Pro Preview) via Gemini CLI/Antigravity"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0836 | Source: router-for-me/CLIProxyAPI issue#593 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/593 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#593,https://github.com/router-for-me/CLIProxyAPI/issues/593,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0836
+"Add process-compose/HMR refresh workflow linked to ""[Bug] Gemini API rejects ""optional"" field in tool parameters"" for deterministic local runtime reload.",Execution item CP2K-0841 | Source: router-for-me/CLIProxyAPI issue#583 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/583 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#583,https://github.com/router-for-me/CLIProxyAPI/issues/583,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0841
+"Design non-subprocess integration contract related to ""stackTrace.format error in error response handling"" with Go bindings primary and API fallback.",Execution item CP2K-0851 | Source: router-for-me/CLIProxyAPI issue#559 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/559 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#559,https://github.com/router-for-me/CLIProxyAPI/issues/559,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0851
+"Port relevant thegent-managed behavior implied by ""Gemini3配置了thinkingConfig无效,模型调用名称被改为了gemini-3-pro-high"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0855 | Source: router-for-me/CLIProxyAPI issue#550 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/550 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#550,https://github.com/router-for-me/CLIProxyAPI/issues/550,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0855
+"Add process-compose/HMR refresh workflow linked to ""[Feature Request] Global Alias"" for deterministic local runtime reload.","Execution item CP2K-0870 | Source: router-for-me/CLIProxyAPI issue#509 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/509 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#509,https://github.com/router-for-me/CLIProxyAPI/issues/509,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0870
+"Port relevant thegent-managed behavior implied by ""bug: antigravity oauth callback fails on windows due to hard-coded port 51121"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0874 | Source: router-for-me/CLIProxyAPI issue#499 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/499 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#499,https://github.com/router-for-me/CLIProxyAPI/issues/499,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0874
+"Port relevant thegent-managed behavior implied by ""Antigravity API reports API Error: 400 with Claude Code"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0893 | Source: router-for-me/CLIProxyAPI issue#463 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/463 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#463,https://github.com/router-for-me/CLIProxyAPI/issues/463,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0893
+"Design non-subprocess integration contract related to ""iFlow Cookie 登录流程BUG"" with Go bindings primary and API fallback.",Execution item CP2K-0897 | Source: router-for-me/CLIProxyAPI issue#445 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/445 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#445,https://github.com/router-for-me/CLIProxyAPI/issues/445,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0897
+"Add process-compose/HMR refresh workflow linked to ""AGY Claude models"" for deterministic local runtime reload.",Execution item CP2K-0899 | Source: router-for-me/CLIProxyAPI issue#442 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/442 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#442,https://github.com/router-for-me/CLIProxyAPI/issues/442,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0899
+"Port relevant thegent-managed behavior implied by ""Bug: Claude proxy models fail with tools - `tools.0.custom.input_schema: Field required`"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0912 | Source: router-for-me/CLIProxyAPI issue#415 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/415 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#415,https://github.com/router-for-me/CLIProxyAPI/issues/415,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0912
+"Design non-subprocess integration contract related to ""Gemini responses contain non-standard OpenAI fields causing parser failures"" with Go bindings primary and API fallback.","Execution item CP2K-0920 | Source: router-for-me/CLIProxyAPI issue#400 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/400 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#400,https://github.com/router-for-me/CLIProxyAPI/issues/400,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0920
+"Add process-compose/HMR refresh workflow linked to ""1006怎么处理"" for deterministic local runtime reload.",Execution item CP2K-0928 | Source: router-for-me/CLIProxyAPI issue#369 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/369 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#369,https://github.com/router-for-me/CLIProxyAPI/issues/369,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0928
+"Port relevant thegent-managed behavior implied by ""Frequent 500 auth_unavailable and Codex CLI models disappearing from /v1/models"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0931 | Source: router-for-me/CLIProxyAPI issue#365 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/365 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#365,https://github.com/router-for-me/CLIProxyAPI/issues/365,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0931
+"Design non-subprocess integration contract related to ""Add support for anthropic-beta header for Claude thinking models with tool use"" with Go bindings primary and API fallback.",Execution item CP2K-0943 | Source: router-for-me/CLIProxyAPI issue#344 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/344 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#344,https://github.com/router-for-me/CLIProxyAPI/issues/344,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0943
+"Port relevant thegent-managed behavior implied by ""Support for JSON schema / structured output"" into cliproxy Go CLI commands and interactive setup.","Execution item CP2K-0950 | Source: router-for-me/CLIProxyAPI issue#335 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/335 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#335,https://github.com/router-for-me/CLIProxyAPI/issues/335,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0950
+"Add process-compose/HMR refresh workflow linked to ""undefined is not an object (evaluating 'T.match')"" for deterministic local runtime reload.",Execution item CP2K-0957 | Source: router-for-me/CLIProxyAPI issue#317 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/317 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#317,https://github.com/router-for-me/CLIProxyAPI/issues/317,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0957
+"Design non-subprocess integration contract related to ""可以让不同的提供商分别设置代理吗?"" with Go bindings primary and API fallback.",Execution item CP2K-0966 | Source: router-for-me/CLIProxyAPI issue#304 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/304 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#304,https://github.com/router-for-me/CLIProxyAPI/issues/304,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0966
+"Port relevant thegent-managed behavior implied by ""Gemini CLI Oauth with Claude Code"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-0988 | Source: router-for-me/CLIProxyAPI issue#263 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/263 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#263,https://github.com/router-for-me/CLIProxyAPI/issues/263,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0988
+"Design non-subprocess integration contract related to ""Gemini cli使用不了"" with Go bindings primary and API fallback.",Execution item CP2K-0989 | Source: router-for-me/CLIProxyAPI issue#262 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/262 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#262,https://github.com/router-for-me/CLIProxyAPI/issues/262,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-0989
+"Port relevant thegent-managed behavior implied by ""[error] [iflow_executor.go:273] iflow executor: token refresh failed: iflow token: missing access token in response"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1007 | Source: router-for-me/CLIProxyAPI issue#239 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/239 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#239,https://github.com/router-for-me/CLIProxyAPI/issues/239,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1007
+"Design non-subprocess integration contract related to ""添加文件时重复添加"" with Go bindings primary and API fallback.",Execution item CP2K-1012 | Source: router-for-me/CLIProxyAPI issue#233 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/233 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#233,https://github.com/router-for-me/CLIProxyAPI/issues/233,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1012
+"Add process-compose/HMR refresh workflow linked to ""[Suggestion] Add suport iFlow CLI MiniMax-M2"" for deterministic local runtime reload.",Execution item CP2K-1015 | Source: router-for-me/CLIProxyAPI issue#223 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/223 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#223,https://github.com/router-for-me/CLIProxyAPI/issues/223,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1015
+"Port relevant thegent-managed behavior implied by ""docker compose还会继续维护吗"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1026 | Source: router-for-me/CLIProxyAPI issue#201 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/201 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#201,https://github.com/router-for-me/CLIProxyAPI/issues/201,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1026
+"Design non-subprocess integration contract related to ""[Request] Add support for Gemini Embeddings (AI Studio API key) and optional multi-key rotation"" with Go bindings primary and API fallback.",Execution item CP2K-1035 | Source: router-for-me/CLIProxyAPI issue#179 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/179 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#179,https://github.com/router-for-me/CLIProxyAPI/issues/179,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1035
+"Add process-compose/HMR refresh workflow linked to ""No Auth Status"" for deterministic local runtime reload.",Execution item CP2K-1044 | Source: router-for-me/CLIProxyAPI issue#168 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/168 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#168,https://github.com/router-for-me/CLIProxyAPI/issues/168,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1044
+"Port relevant thegent-managed behavior implied by ""Major Bug in transforming anthropic request to openai compatible request"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1045 | Source: router-for-me/CLIProxyAPI issue#167 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/167 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#167,https://github.com/router-for-me/CLIProxyAPI/issues/167,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1045
+"Design non-subprocess integration contract related to ""CC 使用 gpt-5-codex 模型几乎没有走缓存"" with Go bindings primary and API fallback.",Execution item CP2K-1058 | Source: router-for-me/CLIProxyAPI issue#148 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/148 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#148,https://github.com/router-for-me/CLIProxyAPI/issues/148,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1058
+"Port relevant thegent-managed behavior implied by ""代理在生成函数调用请求时使用了 Gemini API 不支持的 ""const"" 字段"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1064 | Source: router-for-me/CLIProxyAPI issue#136 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/136 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#136,https://github.com/router-for-me/CLIProxyAPI/issues/136,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1064
+"Add process-compose/HMR refresh workflow linked to ""Custom models for AI Proviers"" for deterministic local runtime reload.",Execution item CP2K-1073 | Source: router-for-me/CLIProxyAPI issue#122 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/122 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#122,https://github.com/router-for-me/CLIProxyAPI/issues/122,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1073
+"Design non-subprocess integration contract related to ""Homebrew 安装的 CLIProxyAPI 如何设置配置文件?"" with Go bindings primary and API fallback.",Execution item CP2K-1081 | Source: router-for-me/CLIProxyAPI issue#106 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/106 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#106,https://github.com/router-for-me/CLIProxyAPI/issues/106,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1081
+"Port relevant thegent-managed behavior implied by ""gemini能否适配思考预算后缀?"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1083 | Source: router-for-me/CLIProxyAPI issue#103 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/103 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#103,https://github.com/router-for-me/CLIProxyAPI/issues/103,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1083
+"Port relevant thegent-managed behavior implied by ""Bug: 500 Invalid resource field value in the request on OpenAI completion for gemini-cli"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1102 | Source: router-for-me/CLIProxyAPI issue#75 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/75 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#75,https://github.com/router-for-me/CLIProxyAPI/issues/75,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1102
+"Design non-subprocess integration contract related to ""Support audio for gemini-cli"" with Go bindings primary and API fallback.",Execution item CP2K-1104 | Source: router-for-me/CLIProxyAPI issue#73 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/73 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#73,https://github.com/router-for-me/CLIProxyAPI/issues/73,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1104
+"Port relevant thegent-managed behavior implied by ""v1beta接口报错Please use a valid role: user, model."" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1121 | Source: router-for-me/CLIProxyAPI issue#17 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/17 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPI,issue#17,https://github.com/router-for-me/CLIProxyAPI/issues/17,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1121
+"Design non-subprocess integration contract related to ""Unexpected API Response: The language model did not provide any assistant messages. This may indicate an issue with the API or the model's output."" with Go bindings primary and API fallback.",Execution item CP2K-1127 | Source: router-for-me/CLIProxyAPI issue#9 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/9 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPI,issue#9,https://github.com/router-for-me/CLIProxyAPI/issues/9,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1127
+"Add process-compose/HMR refresh workflow linked to ""Error walking auth directory"" for deterministic local runtime reload.",Execution item CP2K-1131 | Source: router-for-me/CLIProxyAPI issue#4 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/4 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPI,issue#4,https://github.com/router-for-me/CLIProxyAPI/issues/4,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1131
+"Generalize ""feat: add sticky-round-robin routing strategy"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1134 | Source: router-for-me/CLIProxyAPI pr#1673 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1673 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1673,https://github.com/router-for-me/CLIProxyAPI/pull/1673,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1134
+"Improve CLI UX around ""fix(responses): prevent JSON tree corruption from literal control chars in function output"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1135 | Source: router-for-me/CLIProxyAPI pr#1672 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1672 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1672,https://github.com/router-for-me/CLIProxyAPI/pull/1672,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1135
+"Extend docs for ""fix(codex): honor usage_limit_reached resets_at for retry_after"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1136 | Source: router-for-me/CLIProxyAPI pr#1668 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1668 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#1668,https://github.com/router-for-me/CLIProxyAPI/pull/1668,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1136
+"Add robust stream/non-stream parity tests for ""feat: add codex responses compatibility for compaction payloads"" across supported providers.",Execution item CP2K-1137 | Source: router-for-me/CLIProxyAPI pr#1664 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1664 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1664,https://github.com/router-for-me/CLIProxyAPI/pull/1664,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1137
+"Refactor internals touched by ""feat: implement credential-based round-robin for gemini-cli"" to reduce coupling and improve maintainability.",Execution item CP2K-1138 | Source: router-for-me/CLIProxyAPI pr#1663 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1663 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#1663,https://github.com/router-for-me/CLIProxyAPI/pull/1663,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1138
+"Create or refresh provider quickstart derived from ""feat: add cache-user-id toggle for Claude cloaking"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1139 | Source: router-for-me/CLIProxyAPI pr#1662 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1662 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1662,https://github.com/router-for-me/CLIProxyAPI/pull/1662,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1139
+"Port relevant thegent-managed behavior implied by ""feat(gemini): add gemini-3.1-pro-preview model definitions"" into cliproxy Go CLI commands and interactive setup.","Execution item CP2K-1140 | Source: router-for-me/CLIProxyAPI pr#1661 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1661 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#1661,https://github.com/router-for-me/CLIProxyAPI/pull/1661,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1140
+"Follow up ""fix(claude): use api.anthropic.com for OAuth token exchange"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1141 | Source: router-for-me/CLIProxyAPI pr#1660 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1660 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1660,https://github.com/router-for-me/CLIProxyAPI/pull/1660,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1141
+"Harden ""Pass file input from /chat/completions and /responses to codex and claude"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1142 | Source: router-for-me/CLIProxyAPI pr#1654 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1654 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1654,https://github.com/router-for-me/CLIProxyAPI/pull/1654,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1142
+"Operationalize ""fix(translator): handle tool call arguments in codex→claude streaming translator"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1143 | Source: router-for-me/CLIProxyAPI pr#1652 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1652 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1652,https://github.com/router-for-me/CLIProxyAPI/pull/1652,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1143
+"Generalize ""fix(iflow): improve 406 handling, stream stability, and auth availability"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1144 | Source: router-for-me/CLIProxyAPI pr#1650 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1650 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#1650,https://github.com/router-for-me/CLIProxyAPI/pull/1650,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1144
+"Refactor internals touched by ""Fix usage convertation from gemini response to openai format"" to reduce coupling and improve maintainability.",Execution item CP2K-1148 | Source: router-for-me/CLIProxyAPI pr#1643 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1643 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1643,https://github.com/router-for-me/CLIProxyAPI/pull/1643,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1148
+"Prepare safe rollout for ""Add strict structured-output mappings for Claude, Gemini, and Codex"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1149 | Source: router-for-me/CLIProxyAPI pr#1642 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1642 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1642,https://github.com/router-for-me/CLIProxyAPI/pull/1642,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1149
+"Design non-subprocess integration contract related to ""fix(codex): only expose gpt-5.3-codex-spark for Pro OAuth"" with Go bindings primary and API fallback.","Execution item CP2K-1150 | Source: router-for-me/CLIProxyAPI pr#1639 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1639 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#1639,https://github.com/router-for-me/CLIProxyAPI/pull/1639,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1150
+"Harden ""fix: handle tool call argument streaming in Codex→OpenAI translator"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1152 | Source: router-for-me/CLIProxyAPI pr#1635 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1635 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1635,https://github.com/router-for-me/CLIProxyAPI/pull/1635,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1152
+"Improve CLI UX around ""fix: clamp reasoning_effort to valid OpenAI-format values"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1155 | Source: router-for-me/CLIProxyAPI pr#1627 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1627 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1627,https://github.com/router-for-me/CLIProxyAPI/pull/1627,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1155
+"Create or refresh provider quickstart derived from ""feat: passthrough upstream response headers to clients"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1156 | Source: router-for-me/CLIProxyAPI pr#1626 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1626 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1626,https://github.com/router-for-me/CLIProxyAPI/pull/1626,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1156
+"Add robust stream/non-stream parity tests for ""feat: add per-auth tool_prefix_disabled option"" across supported providers.",Execution item CP2K-1157 | Source: router-for-me/CLIProxyAPI pr#1625 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1625 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1625,https://github.com/router-for-me/CLIProxyAPI/pull/1625,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1157
+"Port relevant thegent-managed behavior implied by ""Fix empty usage in /v1/completions"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1159 | Source: router-for-me/CLIProxyAPI pr#1618 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1618 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#1618,https://github.com/router-for-me/CLIProxyAPI/pull/1618,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1159
+"Add process-compose/HMR refresh workflow linked to ""fix(codex): normalize structured output schema for strict validation"" for deterministic local runtime reload.","Execution item CP2K-1160 | Source: router-for-me/CLIProxyAPI pr#1616 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1616 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#1616,https://github.com/router-for-me/CLIProxyAPI/pull/1616,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1160
+"Harden ""fix: round-robin, fallback chains, cross-provider failover"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1162 | Source: router-for-me/CLIProxyAPI pr#1613 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1613 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1613,https://github.com/router-for-me/CLIProxyAPI/pull/1613,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1162
+"Generalize ""fix: add proxy_ prefix handling for tool_reference content blocks"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1164 | Source: router-for-me/CLIProxyAPI pr#1608 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1608 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1608,https://github.com/router-for-me/CLIProxyAPI/pull/1608,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1164
+"Add robust stream/non-stream parity tests for ""fix: model ID normalization and quota fallback logic"" across supported providers.",Execution item CP2K-1167 | Source: router-for-me/CLIProxyAPI pr#1604 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1604 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1604,https://github.com/router-for-me/CLIProxyAPI/pull/1604,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1167
+"Refactor internals touched by ""feat(access): add wildcard prefix matching for API keys"" to reduce coupling and improve maintainability.",Execution item CP2K-1168 | Source: router-for-me/CLIProxyAPI pr#1601 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1601 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1601,https://github.com/router-for-me/CLIProxyAPI/pull/1601,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1168
+"Prepare safe rollout for ""feat(tui): add a terminal-based management UI (TUI)"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1169 | Source: router-for-me/CLIProxyAPI pr#1600 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1600 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#1600,https://github.com/router-for-me/CLIProxyAPI/pull/1600,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1169
+"Standardize naming/metadata affected by ""fix(auth): don't cool down keys on count_tokens 4xx"" across both repos and docs.","Execution item CP2K-1170 | Source: router-for-me/CLIProxyAPI pr#1599 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1599 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1599,https://github.com/router-for-me/CLIProxyAPI/pull/1599,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1170
+"Create or refresh provider quickstart derived from ""feature(codex-spark): Adds GPT 5.3 Codex Spark model and updates Codex client version"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1173 | Source: router-for-me/CLIProxyAPI pr#1581 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1581 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1581,https://github.com/router-for-me/CLIProxyAPI/pull/1581,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1173
+"Generalize ""Fix duplicate/empty tool_use blocks in OpenAI->Claude streaming translation"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1174 | Source: router-for-me/CLIProxyAPI pr#1579 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1579 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1579,https://github.com/router-for-me/CLIProxyAPI/pull/1579,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1174
+"Improve CLI UX around ""fix(antigravity): align Client-Metadata platform/identity with Antigravity requests"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1175 | Source: router-for-me/CLIProxyAPI pr#1578 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1578 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1578,https://github.com/router-for-me/CLIProxyAPI/pull/1578,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1175
+"Port relevant thegent-managed behavior implied by ""Add CLIProxyAPI Dashboard to 'Who is with us?' section"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1178 | Source: router-for-me/CLIProxyAPI pr#1568 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1568 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#1568,https://github.com/router-for-me/CLIProxyAPI/pull/1568,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1178
+"Standardize naming/metadata affected by ""feat(antigravity/claude): add web search support"" across both repos and docs.","Execution item CP2K-1180 | Source: router-for-me/CLIProxyAPI pr#1565 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1565 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1565,https://github.com/router-for-me/CLIProxyAPI/pull/1565,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1180
+"Follow up ""feat(gemini-cli): add Google One login and improve auto-discovery"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1181 | Source: router-for-me/CLIProxyAPI pr#1543 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1543 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1543,https://github.com/router-for-me/CLIProxyAPI/pull/1543,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1181
+"Operationalize ""feat(translator): OpenAI web search annotations passthrough"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1183 | Source: router-for-me/CLIProxyAPI pr#1539 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1539 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1539,https://github.com/router-for-me/CLIProxyAPI/pull/1539,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1183
+"Generalize ""feat: per-account excluded_models & priority support for OAuth auth files"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1184 | Source: router-for-me/CLIProxyAPI pr#1537 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1537 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1537,https://github.com/router-for-me/CLIProxyAPI/pull/1537,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1184
+"Improve CLI UX around ""feat(thinking): unify Claude adaptive reasoning behavior"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1185 | Source: router-for-me/CLIProxyAPI pr#1534 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1534 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1534,https://github.com/router-for-me/CLIProxyAPI/pull/1534,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1185
+"Extend docs for ""feat(translator): grounding metadata + Claude web_search citation passthrough"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1186 | Source: router-for-me/CLIProxyAPI pr#1532 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1532 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1532,https://github.com/router-for-me/CLIProxyAPI/pull/1532,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1186
+"Add robust stream/non-stream parity tests for ""fix: handle plain string content in OpenAI Responses → Gemini translation"" across supported providers.",Execution item CP2K-1187 | Source: router-for-me/CLIProxyAPI pr#1529 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1529 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1529,https://github.com/router-for-me/CLIProxyAPI/pull/1529,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1187
+"Refactor internals touched by ""feat(auth): add post-auth hook mechanism"" to reduce coupling and improve maintainability.",Execution item CP2K-1188 | Source: router-for-me/CLIProxyAPI pr#1527 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1527 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1527,https://github.com/router-for-me/CLIProxyAPI/pull/1527,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1188
+"Add process-compose/HMR refresh workflow linked to ""fix(codex): remove unsupported 'user' field from /v1/responses payload"" for deterministic local runtime reload.",Execution item CP2K-1189 | Source: router-for-me/CLIProxyAPI pr#1523 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1523 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#1523,https://github.com/router-for-me/CLIProxyAPI/pull/1523,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1189
+"Create or refresh provider quickstart derived from ""feature(proxy): Adds special handling for client cancellations in proxy error handler"" with setup/auth/model/sanity-check flow.","Execution item CP2K-1190 | Source: router-for-me/CLIProxyAPI pr#1522 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1522 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1522,https://github.com/router-for-me/CLIProxyAPI/pull/1522,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1190
+"Follow up ""feat(translator): support Claude thinking type adaptive"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1191 | Source: router-for-me/CLIProxyAPI pr#1519 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1519 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1519,https://github.com/router-for-me/CLIProxyAPI/pull/1519,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1191
+"Operationalize ""feat: add adaptive thinking type and output_config.effort support"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1193 | Source: router-for-me/CLIProxyAPI pr#1516 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1516 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1516,https://github.com/router-for-me/CLIProxyAPI/pull/1516,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1193
+"Generalize ""fix(translator): fix nullable type arrays breaking Gemini/Antigravity API"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1194 | Source: router-for-me/CLIProxyAPI pr#1511 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1511 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1511,https://github.com/router-for-me/CLIProxyAPI/pull/1511,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1194
+"Improve CLI UX around ""fix(amp): rewrite response.model in Responses API SSE events"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1195 | Source: router-for-me/CLIProxyAPI pr#1506 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1506 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1506,https://github.com/router-for-me/CLIProxyAPI/pull/1506,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1195
+"Design non-subprocess integration contract related to ""feat(executor): add session ID and HMAC-SHA256 signature generation for iFlow API requests"" with Go bindings primary and API fallback.",Execution item CP2K-1196 | Source: router-for-me/CLIProxyAPI pr#1502 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1502 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#1502,https://github.com/router-for-me/CLIProxyAPI/pull/1502,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1196
+"Port relevant thegent-managed behavior implied by ""fix(management): ensure management.html is available synchronously and improve asset sync handling"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1197 | Source: router-for-me/CLIProxyAPI pr#1492 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1492 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#1492,https://github.com/router-for-me/CLIProxyAPI/pull/1492,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1197
+"Prepare safe rollout for ""refactor(management): streamline control panel management and implement sync throttling"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1199 | Source: router-for-me/CLIProxyAPI pr#1479 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1479 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#1479,https://github.com/router-for-me/CLIProxyAPI/pull/1479,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1199
+"Follow up ""fix: migrate claude-opus-4-5 to 4-6 aliases & strip thinking blocks from non-thinking responses"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1201 | Source: router-for-me/CLIProxyAPI pr#1473 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1473 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1473,https://github.com/router-for-me/CLIProxyAPI/pull/1473,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1201
+"Harden ""Fix Kimi tool-call payload normalization for reasoning_content"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1202 | Source: router-for-me/CLIProxyAPI pr#1467 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1467 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1467,https://github.com/router-for-me/CLIProxyAPI/pull/1467,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1202
+"Operationalize ""fix(kimi): add OAuth model-alias channel support and cover OAuth excl…"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1203 | Source: router-for-me/CLIProxyAPI pr#1465 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1465 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1465,https://github.com/router-for-me/CLIProxyAPI/pull/1465,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1203
+"Improve CLI UX around ""fix(auth): return HTTP 429 instead of 500 for auth_unavailable error"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1205 | Source: router-for-me/CLIProxyAPI pr#1460 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1460 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1460,https://github.com/router-for-me/CLIProxyAPI/pull/1460,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1205
+"Extend docs for ""fix: custom antigravity proxy prompt & respect disable-cooling for all errors"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1206 | Source: router-for-me/CLIProxyAPI pr#1454 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1454 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#1454,https://github.com/router-for-me/CLIProxyAPI/pull/1454,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1206
+"Create or refresh provider quickstart derived from ""Add Kimi (Moonshot AI) provider support"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1207 | Source: router-for-me/CLIProxyAPI pr#1450 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1450 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1450,https://github.com/router-for-me/CLIProxyAPI/pull/1450,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1207
+"Refactor internals touched by ""Add Kimi (Moonshot AI) provider support"" to reduce coupling and improve maintainability.",Execution item CP2K-1208 | Source: router-for-me/CLIProxyAPI pr#1449 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1449 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1449,https://github.com/router-for-me/CLIProxyAPI/pull/1449,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1208
+"Harden ""feat(antigravity): add optional web_search tool translation for Claude API"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1212 | Source: router-for-me/CLIProxyAPI pr#1436 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1436 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1436,https://github.com/router-for-me/CLIProxyAPI/pull/1436,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1212
+"Operationalize ""fix: Enable extended thinking support for Claude Haiku 4.5"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1213 | Source: router-for-me/CLIProxyAPI pr#1435 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1435 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1435,https://github.com/router-for-me/CLIProxyAPI/pull/1435,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1213
+"Improve CLI UX around ""fix(gemini): support snake_case thinking config fields from Python SDK"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1215 | Source: router-for-me/CLIProxyAPI pr#1429 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1429 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1429,https://github.com/router-for-me/CLIProxyAPI/pull/1429,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1215
+"Port relevant thegent-managed behavior implied by ""Feature/rovo integration and repo consolidation"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1216 | Source: router-for-me/CLIProxyAPI pr#1428 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1428 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#1428,https://github.com/router-for-me/CLIProxyAPI/pull/1428,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1216
+"Add robust stream/non-stream parity tests for ""fix(cliproxy): update auth before model registration"" across supported providers.",Execution item CP2K-1217 | Source: router-for-me/CLIProxyAPI pr#1425 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1425 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1425,https://github.com/router-for-me/CLIProxyAPI/pull/1425,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1217
+"Add process-compose/HMR refresh workflow linked to ""feat(watcher): log auth field changes on reload"" for deterministic local runtime reload.",Execution item CP2K-1218 | Source: router-for-me/CLIProxyAPI pr#1423 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1423 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#1423,https://github.com/router-for-me/CLIProxyAPI/pull/1423,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1218
+"Design non-subprocess integration contract related to ""feat(gemini-cli): support image content in Claude request conversion"" with Go bindings primary and API fallback.",Execution item CP2K-1219 | Source: router-for-me/CLIProxyAPI pr#1422 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1422 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#1422,https://github.com/router-for-me/CLIProxyAPI/pull/1422,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1219
+"Standardize naming/metadata affected by ""feat(fallback): add model fallback support for automatic failover"" across both repos and docs.","Execution item CP2K-1220 | Source: router-for-me/CLIProxyAPI pr#1421 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1421 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1421,https://github.com/router-for-me/CLIProxyAPI/pull/1421,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1220
+"Operationalize ""feat(logging): implement JSON structured logging with SSE content agg…"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1223 | Source: router-for-me/CLIProxyAPI pr#1402 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1402 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1402,https://github.com/router-for-me/CLIProxyAPI/pull/1402,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1223
+"Create or refresh provider quickstart derived from ""fix(translator): compare model group instead of full model name for signature validation"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1224 | Source: router-for-me/CLIProxyAPI pr#1397 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1397 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1397,https://github.com/router-for-me/CLIProxyAPI/pull/1397,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1224
+"Improve CLI UX around ""fix(logging): expand tilde in auth-dir path for log directory"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1225 | Source: router-for-me/CLIProxyAPI pr#1396 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1396 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#1396,https://github.com/router-for-me/CLIProxyAPI/pull/1396,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1225
+"Add robust stream/non-stream parity tests for ""fix(auth): 400 invalid_request_error 立即返回不再重试"" across supported providers.",Execution item CP2K-1227 | Source: router-for-me/CLIProxyAPI pr#1390 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1390 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1390,https://github.com/router-for-me/CLIProxyAPI/pull/1390,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1227
+"Refactor internals touched by ""fix(auth): normalize model key for thinking suffix in selectors"" to reduce coupling and improve maintainability.",Execution item CP2K-1228 | Source: router-for-me/CLIProxyAPI pr#1386 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1386 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1386,https://github.com/router-for-me/CLIProxyAPI/pull/1386,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1228
+"Follow up ""feat: enhanced error logging with response body limits and custom features"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1231 | Source: router-for-me/CLIProxyAPI pr#1377 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1377 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1377,https://github.com/router-for-me/CLIProxyAPI/pull/1377,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1231
+"Port relevant thegent-managed behavior implied by ""feat(logging): make error-logs-max-files configurable"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1235 | Source: router-for-me/CLIProxyAPI pr#1368 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1368 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#1368,https://github.com/router-for-me/CLIProxyAPI/pull/1368,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1235
+"Add robust stream/non-stream parity tests for ""fix(config): enable gemini-3-pro-preview by removing forced alias"" across supported providers.",Execution item CP2K-1237 | Source: router-for-me/CLIProxyAPI pr#1323 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1323 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1323,https://github.com/router-for-me/CLIProxyAPI/pull/1323,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1237
+"Refactor internals touched by ""feat(kiro): Add AWS Kiro provider support"" to reduce coupling and improve maintainability.",Execution item CP2K-1238 | Source: router-for-me/CLIProxyAPI pr#1320 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1320 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1320,https://github.com/router-for-me/CLIProxyAPI/pull/1320,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1238
+"Prepare safe rollout for ""feat(kiro): Add AWS Kiro provider support"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1239 | Source: router-for-me/CLIProxyAPI pr#1319 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1319 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1319,https://github.com/router-for-me/CLIProxyAPI/pull/1319,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1239
+"Standardize naming/metadata affected by ""feat(translator): add code_execution and url_context tool passthrough"" across both repos and docs.","Execution item CP2K-1240 | Source: router-for-me/CLIProxyAPI pr#1317 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1317 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1317,https://github.com/router-for-me/CLIProxyAPI/pull/1317,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1240
+"Create or refresh provider quickstart derived from ""feature(ampcode): Improves AMP model mapping with alias support"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1241 | Source: router-for-me/CLIProxyAPI pr#1314 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1314 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1314,https://github.com/router-for-me/CLIProxyAPI/pull/1314,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1241
+"Design non-subprocess integration contract related to ""feat(registry): add GetAllStaticModels helper function"" with Go bindings primary and API fallback.",Execution item CP2K-1242 | Source: router-for-me/CLIProxyAPI pr#1313 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1313 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#1313,https://github.com/router-for-me/CLIProxyAPI/pull/1313,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1242
+"Generalize ""fix(gemini): Removes unsupported extension fields"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1244 | Source: router-for-me/CLIProxyAPI pr#1311 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1311 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#1311,https://github.com/router-for-me/CLIProxyAPI/pull/1311,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1244
+"Improve CLI UX around ""feat: Kimi Code (kimi-for-coding) support for Droid CLI via Anthropic…"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1245 | Source: router-for-me/CLIProxyAPI pr#1310 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1310 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1310,https://github.com/router-for-me/CLIProxyAPI/pull/1310,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1245
+"Extend docs for ""fix(antigravity): resolve model aliases to support gemini-3-pro-preview"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1246 | Source: router-for-me/CLIProxyAPI pr#1308 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1308 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1308,https://github.com/router-for-me/CLIProxyAPI/pull/1308,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1246
+"Add process-compose/HMR refresh workflow linked to ""feat(quota): add automatic quota monitoring for Antigravity accounts"" for deterministic local runtime reload.",Execution item CP2K-1247 | Source: router-for-me/CLIProxyAPI pr#1303 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1303 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#1303,https://github.com/router-for-me/CLIProxyAPI/pull/1303,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1247
+"Prepare safe rollout for ""fix(logging): add API response timestamp and fix request timestamp timing"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1249 | Source: router-for-me/CLIProxyAPI pr#1300 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1300 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#1300,https://github.com/router-for-me/CLIProxyAPI/pull/1300,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1249
+"Standardize naming/metadata affected by ""fix(translator): restore usageMetadata in Gemini responses from Antigravity"" across both repos and docs.","Execution item CP2K-1250 | Source: router-for-me/CLIProxyAPI pr#1298 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1298 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1298,https://github.com/router-for-me/CLIProxyAPI/pull/1298,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1250
+"Operationalize ""fix: skip empty text parts and messages to avoid Gemini API error"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1253 | Source: router-for-me/CLIProxyAPI pr#1294 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1294 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1294,https://github.com/router-for-me/CLIProxyAPI/pull/1294,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1253
+"Port relevant thegent-managed behavior implied by ""fix: handle missing usage in streaming responses from OpenAI-compatible providers"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1254 | Source: router-for-me/CLIProxyAPI pr#1279 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1279 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#1279,https://github.com/router-for-me/CLIProxyAPI/pull/1279,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1254
+"Create or refresh provider quickstart derived from ""feat(logging): add timestamp to API RESPONSE section in error logs"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1258 | Source: router-for-me/CLIProxyAPI pr#1265 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1265 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1265,https://github.com/router-for-me/CLIProxyAPI/pull/1265,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1258
+"Standardize naming/metadata affected by ""feat(auth): add credential-master mode for follower nodes"" across both repos and docs.","Execution item CP2K-1260 | Source: router-for-me/CLIProxyAPI pr#1258 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1258 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1258,https://github.com/router-for-me/CLIProxyAPI/pull/1258,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1260
+"Harden ""feat: 凭证失效时自动禁用"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1262 | Source: router-for-me/CLIProxyAPI pr#1250 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1250 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1250,https://github.com/router-for-me/CLIProxyAPI/pull/1250,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1262
+"Operationalize ""feat: add credential-peers broadcast for multi-instance token sync"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1263 | Source: router-for-me/CLIProxyAPI pr#1249 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1249 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1249,https://github.com/router-for-me/CLIProxyAPI/pull/1249,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1263
+"Generalize ""feat(openai): add responses/compact support"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1264 | Source: router-for-me/CLIProxyAPI pr#1248 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1248 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1248,https://github.com/router-for-me/CLIProxyAPI/pull/1248,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1264
+"Design non-subprocess integration contract related to ""feat: add OpenAI-compatible /v1/embeddings endpoint with API key load balancing"" with Go bindings primary and API fallback.",Execution item CP2K-1265 | Source: router-for-me/CLIProxyAPI pr#1241 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1241 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#1241,https://github.com/router-for-me/CLIProxyAPI/pull/1241,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1265
+"Extend docs for ""feat: 管理 API 自动删除支持"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1266 | Source: router-for-me/CLIProxyAPI pr#1237 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1237 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1237,https://github.com/router-for-me/CLIProxyAPI/pull/1237,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1266
+"Add robust stream/non-stream parity tests for ""feat: add usage statistics persistence"" across supported providers.",Execution item CP2K-1267 | Source: router-for-me/CLIProxyAPI pr#1235 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1235 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#1235,https://github.com/router-for-me/CLIProxyAPI/pull/1235,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1267
+"Refactor internals touched by ""fix: prevent Event Loop with ExpectedWriteTracker (Issue #833 Part 2)"" to reduce coupling and improve maintainability.",Execution item CP2K-1268 | Source: router-for-me/CLIProxyAPI pr#1234 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1234 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1234,https://github.com/router-for-me/CLIProxyAPI/pull/1234,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1268
+"Standardize naming/metadata affected by ""fix: persist access_token for Google OAuth providers (fixes #833)"" across both repos and docs.","Execution item CP2K-1270 | Source: router-for-me/CLIProxyAPI pr#1232 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1232 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1232,https://github.com/router-for-me/CLIProxyAPI/pull/1232,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1270
+"Port relevant thegent-managed behavior implied by ""feat: add OpenAI-compatible /v1/embeddings endpoint"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1273 | Source: router-for-me/CLIProxyAPI pr#1229 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1229 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#1229,https://github.com/router-for-me/CLIProxyAPI/pull/1229,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1273
+"Generalize ""Add request_id to error logs and extract error messages"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1274 | Source: router-for-me/CLIProxyAPI pr#1225 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1225 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1225,https://github.com/router-for-me/CLIProxyAPI/pull/1225,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1274
+"Create or refresh provider quickstart derived from ""feat(routing): native provider priority with automatic fallback"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1275 | Source: router-for-me/CLIProxyAPI pr#1220 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1220 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1220,https://github.com/router-for-me/CLIProxyAPI/pull/1220,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1275
+"Add process-compose/HMR refresh workflow linked to ""docs: 新增 CPA-XXX 社区面板项目"" for deterministic local runtime reload.",Execution item CP2K-1276 | Source: router-for-me/CLIProxyAPI pr#1216 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1216 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#1216,https://github.com/router-for-me/CLIProxyAPI/pull/1216,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1276
+"Add robust stream/non-stream parity tests for ""feat(auth): add health check endpoint for auth file models"" across supported providers.",Execution item CP2K-1277 | Source: router-for-me/CLIProxyAPI pr#1208 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1208 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1208,https://github.com/router-for-me/CLIProxyAPI/pull/1208,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1277
+"Refactor internals touched by ""fix(antigravity): decouple thinking config translation from history validation"" to reduce coupling and improve maintainability.",Execution item CP2K-1278 | Source: router-for-me/CLIProxyAPI pr#1198 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1198 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1198,https://github.com/router-for-me/CLIProxyAPI/pull/1198,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1278
+"Follow up ""feat: 实现多代理池支持以降低单IP请求频率限制"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1281 | Source: router-for-me/CLIProxyAPI pr#1188 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1188 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1188,https://github.com/router-for-me/CLIProxyAPI/pull/1188,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1281
+"Harden ""Refactor authentication handling for Antigravity, Claude, Codex, and Gemini"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1282 | Source: router-for-me/CLIProxyAPI pr#1185 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1185 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1185,https://github.com/router-for-me/CLIProxyAPI/pull/1185,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1282
+"Generalize ""fix(claude): skip built-in tools in OAuth tool prefix"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1284 | Source: router-for-me/CLIProxyAPI pr#1179 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1179 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1179,https://github.com/router-for-me/CLIProxyAPI/pull/1179,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1284
+"Improve CLI UX around ""fix: context cancellation check in conductor.go"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1285 | Source: router-for-me/CLIProxyAPI pr#1175 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1175 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1175,https://github.com/router-for-me/CLIProxyAPI/pull/1175,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1285
+"Add robust stream/non-stream parity tests for ""refactor(auth): remove unused provider execution helpers"" across supported providers.",Execution item CP2K-1287 | Source: router-for-me/CLIProxyAPI pr#1171 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1171 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1171,https://github.com/router-for-me/CLIProxyAPI/pull/1171,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1287
+"Design non-subprocess integration contract related to ""feat: optimization enable/disable auth files"" with Go bindings primary and API fallback.",Execution item CP2K-1288 | Source: router-for-me/CLIProxyAPI pr#1170 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1170 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#1170,https://github.com/router-for-me/CLIProxyAPI/pull/1170,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1288
+"Standardize naming/metadata affected by ""feat(thinking): add config-based reasoning level overrides"" across both repos and docs.","Execution item CP2K-1290 | Source: router-for-me/CLIProxyAPI pr#1156 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1156 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1156,https://github.com/router-for-me/CLIProxyAPI/pull/1156,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1290
+"Follow up ""fix(thinking): handle Cerebras GLM reasoning fields"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1291 | Source: router-for-me/CLIProxyAPI pr#1151 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1151 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1151,https://github.com/router-for-me/CLIProxyAPI/pull/1151,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1291
+"Create or refresh provider quickstart derived from ""Add switch"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1292 | Source: router-for-me/CLIProxyAPI pr#1147 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1147 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1147,https://github.com/router-for-me/CLIProxyAPI/pull/1147,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1292
+"Operationalize ""fix(antigravity): add web search tool support for Claude/OpenAI format requests"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1293 | Source: router-for-me/CLIProxyAPI pr#1142 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1142 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1142,https://github.com/router-for-me/CLIProxyAPI/pull/1142,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1293
+"Generalize ""fix(auth): handle quota cooldown in retry logic for transient errors"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1294 | Source: router-for-me/CLIProxyAPI pr#1140 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1140 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1140,https://github.com/router-for-me/CLIProxyAPI/pull/1140,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1294
+"Improve CLI UX around ""fix(translator): ensure system message is only added if it contains c…"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1295 | Source: router-for-me/CLIProxyAPI pr#1137 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1137 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1137,https://github.com/router-for-me/CLIProxyAPI/pull/1137,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1295
+"Add robust stream/non-stream parity tests for ""Fix Gemini tool calling for Antigravity (malformed_function_call)"" across supported providers.",Execution item CP2K-1297 | Source: router-for-me/CLIProxyAPI pr#1131 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1131 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1131,https://github.com/router-for-me/CLIProxyAPI/pull/1131,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1297
+"Harden ""fix(translator): extract system messages from input in codex response…"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1302 | Source: router-for-me/CLIProxyAPI pr#1121 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1121 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1121,https://github.com/router-for-me/CLIProxyAPI/pull/1121,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1302
+"Operationalize ""fix(translator): enhance signature cache clearing logic and update test cases with model name"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1303 | Source: router-for-me/CLIProxyAPI pr#1117 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1117 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1117,https://github.com/router-for-me/CLIProxyAPI/pull/1117,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1303
+"Add process-compose/HMR refresh workflow linked to ""feat(wakeup): add auto-wakeup scheduling system"" for deterministic local runtime reload.",Execution item CP2K-1305 | Source: router-for-me/CLIProxyAPI pr#1114 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1114 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#1114,https://github.com/router-for-me/CLIProxyAPI/pull/1114,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1305
+"Add robust stream/non-stream parity tests for ""fix(validate): enhance level clamping logic for provider family conversions"" across supported providers.",Execution item CP2K-1307 | Source: router-for-me/CLIProxyAPI pr#1105 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1105 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1105,https://github.com/router-for-me/CLIProxyAPI/pull/1105,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1307
+"Refactor internals touched by ""feat(vertex): add Imagen image generation model support"" to reduce coupling and improve maintainability.",Execution item CP2K-1308 | Source: router-for-me/CLIProxyAPI pr#1103 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1103 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1103,https://github.com/router-for-me/CLIProxyAPI/pull/1103,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1308
+"Create or refresh provider quickstart derived from ""feat(management): add PATCH endpoint to enable/disable auth files"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1309 | Source: router-for-me/CLIProxyAPI pr#1102 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1102 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1102,https://github.com/router-for-me/CLIProxyAPI/pull/1102,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1309
+"Port relevant thegent-managed behavior implied by ""refactor(claude): move max_tokens constraint enforcement to Apply method"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1311 | Source: router-for-me/CLIProxyAPI pr#1099 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1099 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#1099,https://github.com/router-for-me/CLIProxyAPI/pull/1099,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1311
+"Harden ""feat(translator): report cached token usage in Claude output"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1312 | Source: router-for-me/CLIProxyAPI pr#1096 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1096 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1096,https://github.com/router-for-me/CLIProxyAPI/pull/1096,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1312
+"Operationalize ""feat: add self rate limiting for OAuth providers"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1313 | Source: router-for-me/CLIProxyAPI pr#1091 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1091 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1091,https://github.com/router-for-me/CLIProxyAPI/pull/1091,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1313
+"Improve CLI UX around ""fix(responses): finalize stream on [DONE] without finish_reason"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1315 | Source: router-for-me/CLIProxyAPI pr#1087 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1087 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1087,https://github.com/router-for-me/CLIProxyAPI/pull/1087,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1315
+"Extend docs for ""Refine thinking validation and cross‑provider payload conversion"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1316 | Source: router-for-me/CLIProxyAPI pr#1081 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1081 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1081,https://github.com/router-for-me/CLIProxyAPI/pull/1081,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1316
+"Refactor internals touched by ""feat: add SQLite-based usage statistics persistence"" to reduce coupling and improve maintainability.",Execution item CP2K-1318 | Source: router-for-me/CLIProxyAPI pr#1070 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1070 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1070,https://github.com/router-for-me/CLIProxyAPI/pull/1070,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1318
+"Standardize naming/metadata affected by ""refactor(auth): simplify filename prefixes for qwen and iflow tokens"" across both repos and docs.","Execution item CP2K-1320 | Source: router-for-me/CLIProxyAPI pr#1067 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1067 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1067,https://github.com/router-for-me/CLIProxyAPI/pull/1067,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1320
+"Improve CLI UX around ""feat(docker): use environment variables for volume paths"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1325 | Source: router-for-me/CLIProxyAPI pr#1018 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1018 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#1018,https://github.com/router-for-me/CLIProxyAPI/pull/1018,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1325
+"Create or refresh provider quickstart derived from ""fix(antigravity): prevent corrupted thought signature when switching models"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1326 | Source: router-for-me/CLIProxyAPI pr#994 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/994 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#994,https://github.com/router-for-me/CLIProxyAPI/pull/994,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1326
+"Add robust stream/non-stream parity tests for ""feat: add control switches for api provider and auth files"" across supported providers.",Execution item CP2K-1327 | Source: router-for-me/CLIProxyAPI pr#993 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/993 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#993,https://github.com/router-for-me/CLIProxyAPI/pull/993,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1327
+"Port relevant thegent-managed behavior implied by ""feat(config): add github-copilot to oauth-model-mappings supported channels"" into cliproxy Go CLI commands and interactive setup.","Execution item CP2K-1330 | Source: router-for-me/CLIProxyAPI pr#967 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/967 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#967,https://github.com/router-for-me/CLIProxyAPI/pull/967,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1330
+"Follow up ""Add Candidate count (OpenAI 'n' parameter) support"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1331 | Source: router-for-me/CLIProxyAPI pr#961 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/961 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#961,https://github.com/router-for-me/CLIProxyAPI/pull/961,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1331
+"Design non-subprocess integration contract related to ""Resolve memory leaks causing OOM in k8s deployment"" with Go bindings primary and API fallback.",Execution item CP2K-1334 | Source: router-for-me/CLIProxyAPI pr#947 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/947 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#947,https://github.com/router-for-me/CLIProxyAPI/pull/947,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1334
+"Improve CLI UX around ""fix(executor): rename blocked tool names for Claude Code OAuth"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1335 | Source: router-for-me/CLIProxyAPI pr#946 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/946 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#946,https://github.com/router-for-me/CLIProxyAPI/pull/946,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1335
+"Extend docs for ""fix(executor): rename blocked tool names for Claude Code OAuth"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1336 | Source: router-for-me/CLIProxyAPI pr#945 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/945 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#945,https://github.com/router-for-me/CLIProxyAPI/pull/945,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1336
+"Add robust stream/non-stream parity tests for ""Fix Claude OAuth tool name mapping (proxy_)"" across supported providers.",Execution item CP2K-1337 | Source: router-for-me/CLIProxyAPI pr#943 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/943 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#943,https://github.com/router-for-me/CLIProxyAPI/pull/943,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1337
+"Refactor internals touched by ""fix: Claude OAuth by prefixing tool names and merging beta headers"" to reduce coupling and improve maintainability.",Execution item CP2K-1338 | Source: router-for-me/CLIProxyAPI pr#939 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/939 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#939,https://github.com/router-for-me/CLIProxyAPI/pull/939,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1338
+"Prepare safe rollout for ""refactor(logging): clean up oauth logs and debugs"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1339 | Source: router-for-me/CLIProxyAPI pr#938 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/938 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#938,https://github.com/router-for-me/CLIProxyAPI/pull/938,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1339
+"Standardize naming/metadata affected by ""feat: add Cursor Agent CLI provider integration"" across both repos and docs.","Execution item CP2K-1340 | Source: router-for-me/CLIProxyAPI pr#935 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/935 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#935,https://github.com/router-for-me/CLIProxyAPI/pull/935,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1340
+"Create or refresh provider quickstart derived from ""feat(websearch): add web search support for Claude Code"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1343 | Source: router-for-me/CLIProxyAPI pr#918 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/918 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#918,https://github.com/router-for-me/CLIProxyAPI/pull/918,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1343
+"Generalize ""feat(websearch): add web search support for Claude Code"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1344 | Source: router-for-me/CLIProxyAPI pr#916 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/916 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#916,https://github.com/router-for-me/CLIProxyAPI/pull/916,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1344
+"Extend docs for ""feat: Add GitHub Copilot OAuth Integration"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1346 | Source: router-for-me/CLIProxyAPI pr#900 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/900 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#900,https://github.com/router-for-me/CLIProxyAPI/pull/900,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1346
+"Port relevant thegent-managed behavior implied by ""fix(management): refresh antigravity token for api-call $TOKEN$"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1349 | Source: router-for-me/CLIProxyAPI pr#888 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/888 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#888,https://github.com/router-for-me/CLIProxyAPI/pull/888,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1349
+"Harden ""feat(codex): include plan type in auth filename"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1352 | Source: router-for-me/CLIProxyAPI pr#877 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/877 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#877,https://github.com/router-for-me/CLIProxyAPI/pull/877,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1352
+"Operationalize ""fix(antigravity): preserve finish_reason tool_calls across streaming chunks"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1353 | Source: router-for-me/CLIProxyAPI pr#874 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/874 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#874,https://github.com/router-for-me/CLIProxyAPI/pull/874,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1353
+"Improve CLI UX around ""fix(auth): persist access_token on refresh to prevent token loss"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1355 | Source: router-for-me/CLIProxyAPI pr#869 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/869 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#869,https://github.com/router-for-me/CLIProxyAPI/pull/869,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1355
+"Design non-subprocess integration contract related to ""fix(translator): stabilize tool_call finish_reason"" with Go bindings primary and API fallback.",Execution item CP2K-1357 | Source: router-for-me/CLIProxyAPI pr#865 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/865 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#865,https://github.com/router-for-me/CLIProxyAPI/pull/865,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1357
+"Prepare safe rollout for ""fix(auth): use backend project ID for free tier Gemini CLI OAuth users"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1359 | Source: router-for-me/CLIProxyAPI pr#861 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/861 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#861,https://github.com/router-for-me/CLIProxyAPI/pull/861,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1359
+"Create or refresh provider quickstart derived from ""feat: add configurable request timeout for extended thinking models"" with setup/auth/model/sanity-check flow.","Execution item CP2K-1360 | Source: router-for-me/CLIProxyAPI pr#860 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/860 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#860,https://github.com/router-for-me/CLIProxyAPI/pull/860,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1360
+"Follow up ""fix: prevent race condition in objectstore auth sync"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1361 | Source: router-for-me/CLIProxyAPI pr#859 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/859 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#859,https://github.com/router-for-me/CLIProxyAPI/pull/859,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1361
+"Harden ""docs: add ProxyPilot to community projects"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1362 | Source: router-for-me/CLIProxyAPI pr#858 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/858 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#858,https://github.com/router-for-me/CLIProxyAPI/pull/858,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1362
+"Add process-compose/HMR refresh workflow linked to ""Management update"" for deterministic local runtime reload.",Execution item CP2K-1363 | Source: router-for-me/CLIProxyAPI pr#857 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/857 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#857,https://github.com/router-for-me/CLIProxyAPI/pull/857,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1363
+"Generalize ""feat(translator): add developer role support for Gemini translators"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1364 | Source: router-for-me/CLIProxyAPI pr#850 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/850 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#850,https://github.com/router-for-me/CLIProxyAPI/pull/850,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1364
+"Extend docs for ""fix(antigravity): apply schema cleaning to Gemini 3 models"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1366 | Source: router-for-me/CLIProxyAPI pr#846 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/846 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#846,https://github.com/router-for-me/CLIProxyAPI/pull/846,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1366
+"Port relevant thegent-managed behavior implied by ""docs: add CodMate to community projects"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1368 | Source: router-for-me/CLIProxyAPI pr#837 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/837 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#837,https://github.com/router-for-me/CLIProxyAPI/pull/837,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1368
+"Prepare safe rollout for ""fix(auth): resolve token refresh loop and preserve ModelStates on auth reload"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1369 | Source: router-for-me/CLIProxyAPI pr#835 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/835 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#835,https://github.com/router-for-me/CLIProxyAPI/pull/835,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1369
+"Standardize naming/metadata affected by ""fix(auth): prevent infinite token refresh loop by persisting access_token"" across both repos and docs.","Execution item CP2K-1370 | Source: router-for-me/CLIProxyAPI pr#834 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/834 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#834,https://github.com/router-for-me/CLIProxyAPI/pull/834,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1370
+"Operationalize ""feat: Add session management with conversation history and provider affinity"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1373 | Source: router-for-me/CLIProxyAPI pr#829 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/829 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#829,https://github.com/router-for-me/CLIProxyAPI/pull/829,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1373
+"Improve CLI UX around ""feat(translator): enhance Claude-to-OpenAI conversion with thinking block and tool result handling"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1375 | Source: router-for-me/CLIProxyAPI pr#823 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/823 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#823,https://github.com/router-for-me/CLIProxyAPI/pull/823,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1375
+"Extend docs for ""feat: Add Antigravity refresh token auth and api-call proxy endpoint"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1376 | Source: router-for-me/CLIProxyAPI pr#821 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/821 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#821,https://github.com/router-for-me/CLIProxyAPI/pull/821,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1376
+"Create or refresh provider quickstart derived from ""fix(translator): correctly map stop_reason in response translations"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1377 | Source: router-for-me/CLIProxyAPI pr#819 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/819 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#819,https://github.com/router-for-me/CLIProxyAPI/pull/819,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1377
+"Design non-subprocess integration contract related to ""feat(antigravity): add web_search support for Claude via Gemini googleSearch"" with Go bindings primary and API fallback.","Execution item CP2K-1380 | Source: router-for-me/CLIProxyAPI pr#811 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/811 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#811,https://github.com/router-for-me/CLIProxyAPI/pull/811,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1380
+"Follow up ""Add Claude quota management endpoints"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1381 | Source: router-for-me/CLIProxyAPI pr#807 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/807 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#807,https://github.com/router-for-me/CLIProxyAPI/pull/807,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1381
+"Harden ""fix(translator): correctly map stop_reason in response translations"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1382 | Source: router-for-me/CLIProxyAPI pr#805 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/805 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#805,https://github.com/router-for-me/CLIProxyAPI/pull/805,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1382
+"Operationalize ""feat(translator): resolve invalid function name errors by sanitizing Claude tool names"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1383 | Source: router-for-me/CLIProxyAPI pr#803 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/803 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#803,https://github.com/router-for-me/CLIProxyAPI/pull/803,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1383
+"Generalize ""feat(translator): fix invalid function name errors by sanitizing Claude tool names"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1384 | Source: router-for-me/CLIProxyAPI pr#802 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/802 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#802,https://github.com/router-for-me/CLIProxyAPI/pull/802,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1384
+"Extend docs for ""fix: preserve ModelStates during auth reload/refresh and parse Antigravity retryDelay"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1386 | Source: router-for-me/CLIProxyAPI pr#799 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/799 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#799,https://github.com/router-for-me/CLIProxyAPI/pull/799,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1386
+"Port relevant thegent-managed behavior implied by ""refactor(executor): resolve upstream model at conductor level before execution"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1387 | Source: router-for-me/CLIProxyAPI pr#795 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/795 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#795,https://github.com/router-for-me/CLIProxyAPI/pull/795,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1387
+"Refactor internals touched by ""fix(antigravity): parse retry-after delay from 429 response body"" to reduce coupling and improve maintainability.",Execution item CP2K-1388 | Source: router-for-me/CLIProxyAPI pr#787 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/787 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#787,https://github.com/router-for-me/CLIProxyAPI/pull/787,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1388
+"Prepare safe rollout for ""feat(antigravity): add web_search support for Claude via Gemini googleSearch"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1389 | Source: router-for-me/CLIProxyAPI pr#786 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/786 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#786,https://github.com/router-for-me/CLIProxyAPI/pull/786,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1389
+"Follow up ""refactor(config): rename model-name-mappings to oauth-model-mappings"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1391 | Source: router-for-me/CLIProxyAPI pr#782 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/782 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#782,https://github.com/router-for-me/CLIProxyAPI/pull/782,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1391
+"Add process-compose/HMR refresh workflow linked to ""fix(antigravity): inject required placeholder when properties exist w…"" for deterministic local runtime reload.",Execution item CP2K-1392 | Source: router-for-me/CLIProxyAPI pr#776 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/776 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#776,https://github.com/router-for-me/CLIProxyAPI/pull/776,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1392
+"Create or refresh provider quickstart derived from ""feat(api): add id token claims extraction for codex auth entries"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1394 | Source: router-for-me/CLIProxyAPI pr#770 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/770 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#770,https://github.com/router-for-me/CLIProxyAPI/pull/770,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1394
+"Extend docs for ""feat(amp): add per-client upstream API key mapping support"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1396 | Source: router-for-me/CLIProxyAPI pr#767 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/767 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#767,https://github.com/router-for-me/CLIProxyAPI/pull/767,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1396
+"Add robust stream/non-stream parity tests for ""Background Quota Refresh & Automated Token Management"" across supported providers.",Execution item CP2K-1397 | Source: router-for-me/CLIProxyAPI pr#766 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/766 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#766,https://github.com/router-for-me/CLIProxyAPI/pull/766,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1397
+"Refactor internals touched by ""feat: add global model aliases with cross-provider fallback"" to reduce coupling and improve maintainability.",Execution item CP2K-1398 | Source: router-for-me/CLIProxyAPI pr#765 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/765 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#765,https://github.com/router-for-me/CLIProxyAPI/pull/765,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1398
+"Prepare safe rollout for ""feat: add global model aliases with cross-provider fallback"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1399 | Source: router-for-me/CLIProxyAPI pr#764 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/764 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#764,https://github.com/router-for-me/CLIProxyAPI/pull/764,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1399
+"Standardize naming/metadata affected by ""feat(logging): disambiguate OAuth credential selection in debug logs"" across both repos and docs.","Execution item CP2K-1400 | Source: router-for-me/CLIProxyAPI pr#763 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/763 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#763,https://github.com/router-for-me/CLIProxyAPI/pull/763,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1400
+"Harden ""Merge v6.6.62 + sticky routing + quota refresh"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1402 | Source: router-for-me/CLIProxyAPI pr#760 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/760 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#760,https://github.com/router-for-me/CLIProxyAPI/pull/760,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1402
+"Design non-subprocess integration contract related to ""docs: add ProxyPilot to community projects"" with Go bindings primary and API fallback.",Execution item CP2K-1403 | Source: router-for-me/CLIProxyAPI pr#759 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/759 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#759,https://github.com/router-for-me/CLIProxyAPI/pull/759,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1403
+"Generalize ""feat: expose antigravity models via Anthropic endpoint"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1404 | Source: router-for-me/CLIProxyAPI pr#758 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/758 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#758,https://github.com/router-for-me/CLIProxyAPI/pull/758,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1404
+"Port relevant thegent-managed behavior implied by ""feat(iflow): add model-specific thinking configs for GLM-4.7 and Mini…"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1406 | Source: router-for-me/CLIProxyAPI pr#756 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/756 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#756,https://github.com/router-for-me/CLIProxyAPI/pull/756,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1406
+"Add robust stream/non-stream parity tests for ""feat(iflow): add model-specific thinking configs for GLM-4.7 and MiniMax-M2.1"" across supported providers.",Execution item CP2K-1407 | Source: router-for-me/CLIProxyAPI pr#755 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/755 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#755,https://github.com/router-for-me/CLIProxyAPI/pull/755,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1407
+"Refactor internals touched by ""feat(executor): 为 openai-compat 添加 wire-api 配置支持"" to reduce coupling and improve maintainability.",Execution item CP2K-1408 | Source: router-for-me/CLIProxyAPI pr#754 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/754 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#754,https://github.com/router-for-me/CLIProxyAPI/pull/754,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1408
+"Standardize naming/metadata affected by ""fix(auth): make provider rotation atomic"" across both repos and docs.","Execution item CP2K-1410 | Source: router-for-me/CLIProxyAPI pr#745 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/745 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#745,https://github.com/router-for-me/CLIProxyAPI/pull/745,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1410
+"Create or refresh provider quickstart derived from ""fix: handle nested text format and reasoning_content field"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1411 | Source: router-for-me/CLIProxyAPI pr#733 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/733 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#733,https://github.com/router-for-me/CLIProxyAPI/pull/733,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1411
+"Harden ""feat(ampcode): support per-request upstream key"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1412 | Source: router-for-me/CLIProxyAPI pr#728 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/728 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#728,https://github.com/router-for-me/CLIProxyAPI/pull/728,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1412
+"Improve CLI UX around ""refactor: extract OAuth callback handler factory to reduce code duplication"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1415 | Source: router-for-me/CLIProxyAPI pr#720 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/720 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#720,https://github.com/router-for-me/CLIProxyAPI/pull/720,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1415
+"Add robust stream/non-stream parity tests for ""feat: implement automatic self-update via --update CLI flag"" across supported providers.",Execution item CP2K-1417 | Source: router-for-me/CLIProxyAPI pr#715 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/715 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#715,https://github.com/router-for-me/CLIProxyAPI/pull/715,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1417
+"Prepare safe rollout for ""fix(translator): Prevent duplicated text in assistant messages with tool_calls"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1419 | Source: router-for-me/CLIProxyAPI pr#705 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/705 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#705,https://github.com/router-for-me/CLIProxyAPI/pull/705,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1419
+"Standardize naming/metadata affected by ""fix(openai): add index field to image response for LiteLLM compatibility"" across both repos and docs.","Execution item CP2K-1420 | Source: router-for-me/CLIProxyAPI pr#704 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/704 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#704,https://github.com/router-for-me/CLIProxyAPI/pull/704,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1420
+"Add process-compose/HMR refresh workflow linked to ""fix(openai): add index field to image response for LiteLLM compatibility"" for deterministic local runtime reload.",Execution item CP2K-1421 | Source: router-for-me/CLIProxyAPI pr#703 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/703 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#703,https://github.com/router-for-me/CLIProxyAPI/pull/703,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1421
+"Harden ""refactor(sdk/auth): rename manager.go to conductor.go"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1422 | Source: router-for-me/CLIProxyAPI pr#700 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/700 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#700,https://github.com/router-for-me/CLIProxyAPI/pull/700,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1422
+"Generalize ""feat: add cached token parsing for Gemini , Antigravity API responses"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1424 | Source: router-for-me/CLIProxyAPI pr#695 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/695 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#695,https://github.com/router-for-me/CLIProxyAPI/pull/695,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1424
+"Port relevant thegent-managed behavior implied by ""Add support for OAuth model aliases for Claude"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1425 | Source: router-for-me/CLIProxyAPI pr#693 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/693 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#693,https://github.com/router-for-me/CLIProxyAPI/pull/693,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1425
+"Design non-subprocess integration contract related to ""docs(readme): add Cubence sponsor"" with Go bindings primary and API fallback.",Execution item CP2K-1426 | Source: router-for-me/CLIProxyAPI pr#689 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/689 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#689,https://github.com/router-for-me/CLIProxyAPI/pull/689,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1426
+"Create or refresh provider quickstart derived from ""feat: regex support for model-mappings"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1428 | Source: router-for-me/CLIProxyAPI pr#686 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/686 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#686,https://github.com/router-for-me/CLIProxyAPI/pull/686,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1428
+"Harden ""fix: secure token persistence"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1432 | Source: router-for-me/CLIProxyAPI pr#673 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/673 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#673,https://github.com/router-for-me/CLIProxyAPI/pull/673,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1432
+"Operationalize ""feat: inject token warning when Antigravity usage exceeds threshold"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1433 | Source: router-for-me/CLIProxyAPI pr#667 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/667 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#667,https://github.com/router-for-me/CLIProxyAPI/pull/667,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1433
+"Generalize ""docs: add operations guide and config updates"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1434 | Source: router-for-me/CLIProxyAPI pr#665 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/665 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#665,https://github.com/router-for-me/CLIProxyAPI/pull/665,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1434
+"Improve CLI UX around ""fix: secure token persistence"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1435 | Source: router-for-me/CLIProxyAPI pr#664 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/664 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#664,https://github.com/router-for-me/CLIProxyAPI/pull/664,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1435
+"Add robust stream/non-stream parity tests for ""feat: harden oauth flows and providers"" across supported providers.",Execution item CP2K-1437 | Source: router-for-me/CLIProxyAPI pr#662 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/662 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#662,https://github.com/router-for-me/CLIProxyAPI/pull/662,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1437
+"Refactor internals touched by ""fix: improve streaming bootstrap and forwarding"" to reduce coupling and improve maintainability.",Execution item CP2K-1438 | Source: router-for-me/CLIProxyAPI pr#661 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/661 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#661,https://github.com/router-for-me/CLIProxyAPI/pull/661,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1438
+"Prepare safe rollout for ""Fix responses-format handling for chat completions(Support Cursor)"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1439 | Source: router-for-me/CLIProxyAPI pr#658 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/658 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#658,https://github.com/router-for-me/CLIProxyAPI/pull/658,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1439
+"Follow up ""Fix: Use x-api-key header for Claude API instead of Authorization: Bearer"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1441 | Source: router-for-me/CLIProxyAPI pr#653 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/653 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#653,https://github.com/router-for-me/CLIProxyAPI/pull/653,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1441
+"Operationalize ""OAuth and management"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1443 | Source: router-for-me/CLIProxyAPI pr#641 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/641 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#641,https://github.com/router-for-me/CLIProxyAPI/pull/641,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1443
+"Port relevant thegent-managed behavior implied by ""fix: add gemini-3-flash-preview model definition in GetGeminiModels"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1444 | Source: router-for-me/CLIProxyAPI pr#638 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/638 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#638,https://github.com/router-for-me/CLIProxyAPI/pull/638,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1444
+"Create or refresh provider quickstart derived from ""fix(amp): add /docs routes to proxy"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1445 | Source: router-for-me/CLIProxyAPI pr#634 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/634 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#634,https://github.com/router-for-me/CLIProxyAPI/pull/634,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1445
+"Extend docs for ""feat(antigravity): add payload config support to Antigravity executor"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1446 | Source: router-for-me/CLIProxyAPI pr#633 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/633 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#633,https://github.com/router-for-me/CLIProxyAPI/pull/633,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1446
+"Design non-subprocess integration contract related to ""Fix/kiro config synthesis"" with Go bindings primary and API fallback.",Execution item CP2K-1449 | Source: router-for-me/CLIProxyAPI pr#624 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/624 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#624,https://github.com/router-for-me/CLIProxyAPI/pull/624,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1449
+"Add process-compose/HMR refresh workflow linked to ""Remote OAuth"" for deterministic local runtime reload.","Execution item CP2K-1450 | Source: router-for-me/CLIProxyAPI pr#623 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/623 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#623,https://github.com/router-for-me/CLIProxyAPI/pull/623,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1450
+"Harden ""Antigravity Prompt Caching Fix"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1452 | Source: router-for-me/CLIProxyAPI pr#621 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/621 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#621,https://github.com/router-for-me/CLIProxyAPI/pull/621,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1452
+"Generalize ""fix(amp): add management auth skipper"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1454 | Source: router-for-me/CLIProxyAPI pr#618 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/618 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#618,https://github.com/router-for-me/CLIProxyAPI/pull/618,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1454
+"Add robust stream/non-stream parity tests for ""feat(antigravity): Improve Claude model compatibility"" across supported providers.",Execution item CP2K-1457 | Source: router-for-me/CLIProxyAPI pr#611 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/611 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#611,https://github.com/router-for-me/CLIProxyAPI/pull/611,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1457
+"Create or refresh provider quickstart derived from ""fix(amp): inject Amp token for management routes to fix thread reading and web search"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1462 | Source: router-for-me/CLIProxyAPI pr#604 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/604 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#604,https://github.com/router-for-me/CLIProxyAPI/pull/604,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1462
+"Port relevant thegent-managed behavior implied by ""fix: remove propertyNames from JSON schema for Gemini compatibility"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1463 | Source: router-for-me/CLIProxyAPI pr#602 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/602 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#602,https://github.com/router-for-me/CLIProxyAPI/pull/602,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1463
+"Generalize ""fix(auth): prevent token refresh loop by ignoring timestamp fields"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1464 | Source: router-for-me/CLIProxyAPI pr#598 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/598 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#598,https://github.com/router-for-me/CLIProxyAPI/pull/598,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1464
+"Improve CLI UX around ""Fix/embedding features"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1465 | Source: router-for-me/CLIProxyAPI pr#596 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/596 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#596,https://github.com/router-for-me/CLIProxyAPI/pull/596,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1465
+"Add robust stream/non-stream parity tests for ""fix: handle non-standard 'optional' field in JSON Schema for Gemini API"" across supported providers.",Execution item CP2K-1467 | Source: router-for-me/CLIProxyAPI pr#587 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/587 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#587,https://github.com/router-for-me/CLIProxyAPI/pull/587,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1467
+"Design non-subprocess integration contract related to ""Refactor-watcher-phase3"" with Go bindings primary and API fallback.",Execution item CP2K-1472 | Source: router-for-me/CLIProxyAPI pr#577 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/577 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#577,https://github.com/router-for-me/CLIProxyAPI/pull/577,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1472
+"Operationalize ""feature: Improves Antigravity(gemini-claude) JSON schema compatibility"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1473 | Source: router-for-me/CLIProxyAPI pr#575 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/575 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#575,https://github.com/router-for-me/CLIProxyAPI/pull/575,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1473
+"Generalize ""refactor(watcher): extract auth synthesizer to synthesizer package"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1474 | Source: router-for-me/CLIProxyAPI pr#572 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/572 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#572,https://github.com/router-for-me/CLIProxyAPI/pull/572,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1474
+"Extend docs for ""Fix invalid thinking signature when proxying Claude via Antigravity"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1476 | Source: router-for-me/CLIProxyAPI pr#570 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/570 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#570,https://github.com/router-for-me/CLIProxyAPI/pull/570,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1476
+"Add robust stream/non-stream parity tests for ""Watcher Module Progressive Refactoring - Phase 1"" across supported providers.",Execution item CP2K-1477 | Source: router-for-me/CLIProxyAPI pr#569 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/569 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#569,https://github.com/router-for-me/CLIProxyAPI/pull/569,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1477
+"Create or refresh provider quickstart derived from ""fix(translator): emit message_start on first chunk regardless of role field"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1479 | Source: router-for-me/CLIProxyAPI pr#562 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/562 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#562,https://github.com/router-for-me/CLIProxyAPI/pull/562,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1479
+"Follow up ""fix: bypass KorProxy auth for Amp management routes"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1481 | Source: router-for-me/CLIProxyAPI pr#556 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/556 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#556,https://github.com/router-for-me/CLIProxyAPI/pull/556,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1481
+"Port relevant thegent-managed behavior implied by ""fix(translator): preserve built-in tools (web_search) to Responses API"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1482 | Source: router-for-me/CLIProxyAPI pr#553 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/553 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#553,https://github.com/router-for-me/CLIProxyAPI/pull/553,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1482
+"Operationalize ""fix(translator): preserve built-in tools (web_search) to Responses API"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1483 | Source: router-for-me/CLIProxyAPI pr#552 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/552 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#552,https://github.com/router-for-me/CLIProxyAPI/pull/552,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1483
+"Generalize ""Improve Request Logging Efficiency and Standardize Error Responses"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1484 | Source: router-for-me/CLIProxyAPI pr#549 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/549 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#549,https://github.com/router-for-me/CLIProxyAPI/pull/549,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1484
+"Improve CLI UX around ""feat(amp): require API key authentication for management routes"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1485 | Source: router-for-me/CLIProxyAPI pr#547 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/547 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#547,https://github.com/router-for-me/CLIProxyAPI/pull/547,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1485
+"Extend docs for ""feat: add configurable transient-retry-interval for 408/5xx errors"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1486 | Source: router-for-me/CLIProxyAPI pr#545 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/545 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#545,https://github.com/router-for-me/CLIProxyAPI/pull/545,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1486
+"Add robust stream/non-stream parity tests for ""feat(auth): add proxy information to debug logs"" across supported providers.",Execution item CP2K-1487 | Source: router-for-me/CLIProxyAPI pr#543 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/543 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#543,https://github.com/router-for-me/CLIProxyAPI/pull/543,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1487
+"Prepare safe rollout for ""fix(claude): avoid reusing content_block indexes in Codex SSE"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1489 | Source: router-for-me/CLIProxyAPI pr#538 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/538 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#538,https://github.com/router-for-me/CLIProxyAPI/pull/538,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1489
+"Standardize naming/metadata affected by ""fix: handle malformed json in function response parsing"" across both repos and docs.","Execution item CP2K-1490 | Source: router-for-me/CLIProxyAPI pr#537 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/537 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#537,https://github.com/router-for-me/CLIProxyAPI/pull/537,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1490
+"Harden ""refactor(thinking): centralize reasoning effort mapping and normalize budget values"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1492 | Source: router-for-me/CLIProxyAPI pr#533 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/533 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#533,https://github.com/router-for-me/CLIProxyAPI/pull/533,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1492
+"Operationalize ""feat: add API endpoint to query models for auth credentials"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1493 | Source: router-for-me/CLIProxyAPI pr#531 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/531 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#531,https://github.com/router-for-me/CLIProxyAPI/pull/531,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1493
+"Generalize ""fix: ensure message_start sent before content_block_start in OpenAI→Anthropic translation"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1494 | Source: router-for-me/CLIProxyAPI pr#529 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/529 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#529,https://github.com/router-for-me/CLIProxyAPI/pull/529,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1494
+"Design non-subprocess integration contract related to ""Feature/usage metrics"" with Go bindings primary and API fallback.",Execution item CP2K-1495 | Source: router-for-me/CLIProxyAPI pr#516 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/516 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#516,https://github.com/router-for-me/CLIProxyAPI/pull/516,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1495
+"Create or refresh provider quickstart derived from ""fix(amp): flush response buffer after each streaming chunk write"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1496 | Source: router-for-me/CLIProxyAPI pr#515 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/515 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#515,https://github.com/router-for-me/CLIProxyAPI/pull/515,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1496
+"Add robust stream/non-stream parity tests for ""feat(auth): add per-auth use_global_proxy configuration"" across supported providers.",Execution item CP2K-1497 | Source: router-for-me/CLIProxyAPI pr#514 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/514 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#514,https://github.com/router-for-me/CLIProxyAPI/pull/514,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1497
+"Refactor internals touched by ""fix(antigravity): sanitize tool JSON schemas (strip )"" to reduce coupling and improve maintainability.",Execution item CP2K-1498 | Source: router-for-me/CLIProxyAPI pr#507 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/507 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#507,https://github.com/router-for-me/CLIProxyAPI/pull/507,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1498
+"Prepare safe rollout for ""fix(thinking): map budgets to effort levels"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1499 | Source: router-for-me/CLIProxyAPI pr#505 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/505 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#505,https://github.com/router-for-me/CLIProxyAPI/pull/505,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1499
+"Standardize naming/metadata affected by ""feat(auth): add priority-based auth selection"" across both repos and docs.","Execution item CP2K-1500 | Source: router-for-me/CLIProxyAPI pr#504 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/504 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#504,https://github.com/router-for-me/CLIProxyAPI/pull/504,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1500
+"Port relevant thegent-managed behavior implied by ""fix(auth): prevent duplicate iflow BXAuth tokens"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1501 | Source: router-for-me/CLIProxyAPI pr#502 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/502 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#502,https://github.com/router-for-me/CLIProxyAPI/pull/502,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1501
+"Harden ""fix(openai-compat): prevent model alias from being overwritten"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1502 | Source: router-for-me/CLIProxyAPI pr#501 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/501 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#501,https://github.com/router-for-me/CLIProxyAPI/pull/501,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1502
+"Operationalize ""fix(codex): raise default reasoning effort to medium"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1503 | Source: router-for-me/CLIProxyAPI pr#500 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/500 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#500,https://github.com/router-for-me/CLIProxyAPI/pull/500,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1503
+"Generalize ""fix(claude): flush Claude SSE chunks immediately"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1504 | Source: router-for-me/CLIProxyAPI pr#498 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/498 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#498,https://github.com/router-for-me/CLIProxyAPI/pull/498,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1504
+"Improve CLI UX around ""fix(models): add ""none"" reasoning effort level to gpt-5.2"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1505 | Source: router-for-me/CLIProxyAPI pr#494 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/494 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#494,https://github.com/router-for-me/CLIProxyAPI/pull/494,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1505
+"Add robust stream/non-stream parity tests for ""fix(amp): set status on claude stream errors"" across supported providers.",Execution item CP2K-1507 | Source: router-for-me/CLIProxyAPI pr#487 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/487 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#487,https://github.com/router-for-me/CLIProxyAPI/pull/487,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1507
+"Add process-compose/HMR refresh workflow linked to ""Think"" for deterministic local runtime reload.",Execution item CP2K-1508 | Source: router-for-me/CLIProxyAPI pr#485 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/485 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#485,https://github.com/router-for-me/CLIProxyAPI/pull/485,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1508
+"Prepare safe rollout for ""fix: increase buffer size for stream scanners to 50MB across multiple executors"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1509 | Source: router-for-me/CLIProxyAPI pr#481 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/481 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#481,https://github.com/router-for-me/CLIProxyAPI/pull/481,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1509
+"Standardize naming/metadata affected by ""fix(claude): prevent final events when no content streamed"" across both repos and docs.","Execution item CP2K-1510 | Source: router-for-me/CLIProxyAPI pr#479 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/479 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#479,https://github.com/router-for-me/CLIProxyAPI/pull/479,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1510
+"Follow up ""fix(translator): skip empty functionResponse in OpenAI-to-Antigravity path"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1511 | Source: router-for-me/CLIProxyAPI pr#474 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/474 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#474,https://github.com/router-for-me/CLIProxyAPI/pull/474,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1511
+"Harden ""feat: add rate limiting and circuit breaker for /v1/messages endpoint"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1512 | Source: router-for-me/CLIProxyAPI pr#473 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/473 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#473,https://github.com/router-for-me/CLIProxyAPI/pull/473,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1512
+"Create or refresh provider quickstart derived from ""fix(gemini): normalize model listing output"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1513 | Source: router-for-me/CLIProxyAPI pr#470 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/470 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#470,https://github.com/router-for-me/CLIProxyAPI/pull/470,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1513
+"Extend docs for ""fix(translator): preserve tool_use blocks on args parse failure"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1516 | Source: router-for-me/CLIProxyAPI pr#466 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/466 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#466,https://github.com/router-for-me/CLIProxyAPI/pull/466,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1516
+"Add robust stream/non-stream parity tests for ""Move thinking budget normalization from translators to executor"" across supported providers.",Execution item CP2K-1517 | Source: router-for-me/CLIProxyAPI pr#465 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/465 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#465,https://github.com/router-for-me/CLIProxyAPI/pull/465,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1517
+"Design non-subprocess integration contract related to ""feat/amp-mapping-model-regex"" with Go bindings primary and API fallback.",Execution item CP2K-1518 | Source: router-for-me/CLIProxyAPI pr#464 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/464 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#464,https://github.com/router-for-me/CLIProxyAPI/pull/464,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1518
+"Port relevant thegent-managed behavior implied by ""feat: add Sequential Mode, strictly follows priority order (prioritizes higher-priority Providers)."" into cliproxy Go CLI commands and interactive setup.","Execution item CP2K-1520 | Source: router-for-me/CLIProxyAPI pr#459 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/459 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#459,https://github.com/router-for-me/CLIProxyAPI/pull/459,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1520
+"Operationalize ""feat(logging): add upstream API request/response capture to streaming logs"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1523 | Source: router-for-me/CLIProxyAPI pr#455 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/455 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#455,https://github.com/router-for-me/CLIProxyAPI/pull/455,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1523
+"Generalize ""feat(config): add configurable host binding for server"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1524 | Source: router-for-me/CLIProxyAPI pr#454 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/454 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,testing-and-quality,yes,pr,router-for-me/CLIProxyAPI,pr#454,https://github.com/router-for-me/CLIProxyAPI/pull/454,"board-2000,theme:testing-and-quality,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1524
+"Refactor internals touched by ""fix(gemini-cli): enhance 429 retry delay parsing"" to reduce coupling and improve maintainability.",Execution item CP2K-1528 | Source: router-for-me/CLIProxyAPI pr#449 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/449 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#449,https://github.com/router-for-me/CLIProxyAPI/pull/449,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1528
+"Create or refresh provider quickstart derived from ""feat: add model name to GIN request logs"" with setup/auth/model/sanity-check flow.","Execution item CP2K-1530 | Source: router-for-me/CLIProxyAPI pr#447 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/447 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#447,https://github.com/router-for-me/CLIProxyAPI/pull/447,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1530
+"Follow up ""feat: add model name to GIN request logs"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1531 | Source: router-for-me/CLIProxyAPI pr#446 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/446 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#446,https://github.com/router-for-me/CLIProxyAPI/pull/446,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1531
+"Improve CLI UX around ""fix: prioritize model mappings over local providers for Amp CLI"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1535 | Source: router-for-me/CLIProxyAPI pr#435 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/435 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#435,https://github.com/router-for-me/CLIProxyAPI/pull/435,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1535
+"Extend docs for ""feat: preserve thinking config for Claude models via Antigravity/Vertex AI"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1536 | Source: router-for-me/CLIProxyAPI pr#434 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/434 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#434,https://github.com/router-for-me/CLIProxyAPI/pull/434,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1536
+"Add process-compose/HMR refresh workflow linked to ""fix(amp): pass mapped model to gemini bridge via context"" for deterministic local runtime reload.",Execution item CP2K-1537 | Source: router-for-me/CLIProxyAPI pr#432 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/432 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#432,https://github.com/router-for-me/CLIProxyAPI/pull/432,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1537
+"Port relevant thegent-managed behavior implied by ""feat(amp): add response rewriter for model name substitution in responses"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1539 | Source: router-for-me/CLIProxyAPI pr#428 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/428 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#428,https://github.com/router-for-me/CLIProxyAPI/pull/428,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1539
+"Standardize naming/metadata affected by ""feat(kiro): add complete Kiro (AWS CodeWhisperer) integration"" across both repos and docs.","Execution item CP2K-1540 | Source: router-for-me/CLIProxyAPI pr#427 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/427 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#427,https://github.com/router-for-me/CLIProxyAPI/pull/427,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1540
+"Design non-subprocess integration contract related to ""feat(kiro): add complete Kiro (AWS CodeWhisperer) integration"" with Go bindings primary and API fallback.",Execution item CP2K-1541 | Source: router-for-me/CLIProxyAPI pr#426 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/426 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#426,https://github.com/router-for-me/CLIProxyAPI/pull/426,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1541
+"Create or refresh provider quickstart derived from ""fix(amp): add missing /auth/* and /api/tab/* proxy routes for AMP CLI"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1547 | Source: router-for-me/CLIProxyAPI pr#405 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/405 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#405,https://github.com/router-for-me/CLIProxyAPI/pull/405,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1547
+"Prepare safe rollout for ""Support OpenAI responses wire API and provider query params for OpenAI-compatible upstreams"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1549 | Source: router-for-me/CLIProxyAPI pr#401 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/401 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#401,https://github.com/router-for-me/CLIProxyAPI/pull/401,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1549
+"Generalize ""refactor(executor): dedupe thinking metadata helpers across Gemini executors"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1554 | Source: router-for-me/CLIProxyAPI pr#386 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/386 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#386,https://github.com/router-for-me/CLIProxyAPI/pull/386,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1554
+"Improve CLI UX around ""feat: add Canonical IR translator with new providers (Kiro, Cline, Ollama)"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1555 | Source: router-for-me/CLIProxyAPI pr#385 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/385 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#385,https://github.com/router-for-me/CLIProxyAPI/pull/385,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1555
+"Extend docs for ""test(copilot): add comprehensive test coverage [5/5]"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1556 | Source: router-for-me/CLIProxyAPI pr#384 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/384 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#384,https://github.com/router-for-me/CLIProxyAPI/pull/384,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1556
+"Add robust stream/non-stream parity tests for ""feat(copilot): add Gemini 3 Pro reasoning support [4/5]"" across supported providers.",Execution item CP2K-1557 | Source: router-for-me/CLIProxyAPI pr#383 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/383 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#383,https://github.com/router-for-me/CLIProxyAPI/pull/383,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1557
+"Port relevant thegent-managed behavior implied by ""feat(copilot): add Copilot request executor and model registry [3/5]"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1558 | Source: router-for-me/CLIProxyAPI pr#382 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/382 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#382,https://github.com/router-for-me/CLIProxyAPI/pull/382,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1558
+"Prepare safe rollout for ""feat(copilot): implement GitHub Copilot authentication flow [2/5]"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1559 | Source: router-for-me/CLIProxyAPI pr#381 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/381 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#381,https://github.com/router-for-me/CLIProxyAPI/pull/381,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1559
+"Standardize naming/metadata affected by ""feat(copilot): add shared infrastructure and config [1/5]"" across both repos and docs.","Execution item CP2K-1560 | Source: router-for-me/CLIProxyAPI pr#380 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/380 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#380,https://github.com/router-for-me/CLIProxyAPI/pull/380,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1560
+"Follow up ""docs: add CCS (Claude Code Switch) to projects list"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1561 | Source: router-for-me/CLIProxyAPI pr#379 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/379 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#379,https://github.com/router-for-me/CLIProxyAPI/pull/379,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1561
+"Operationalize ""feat(util): add -reasoning suffix support for Gemini models"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1563 | Source: router-for-me/CLIProxyAPI pr#376 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/376 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#376,https://github.com/router-for-me/CLIProxyAPI/pull/376,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1563
+"Create or refresh provider quickstart derived from ""feat: Add support for VertexAI compatible service"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1564 | Source: router-for-me/CLIProxyAPI pr#375 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/375 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#375,https://github.com/router-for-me/CLIProxyAPI/pull/375,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1564
+"Improve CLI UX around ""feat(copilot): add GitHub Copilot support and Gemini 3 Pro reasoning"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1565 | Source: router-for-me/CLIProxyAPI pr#372 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/372 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#372,https://github.com/router-for-me/CLIProxyAPI/pull/372,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1565
+"Add process-compose/HMR refresh workflow linked to ""fix(amp): add /threads.rss root-level route for AMP CLI"" for deterministic local runtime reload.",Execution item CP2K-1566 | Source: router-for-me/CLIProxyAPI pr#371 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/371 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#371,https://github.com/router-for-me/CLIProxyAPI/pull/371,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1566
+"Refactor internals touched by ""feat(auth): add GitHub Copilot authentication and API integration"" to reduce coupling and improve maintainability.",Execution item CP2K-1568 | Source: router-for-me/CLIProxyAPI pr#362 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/362 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#362,https://github.com/router-for-me/CLIProxyAPI/pull/362,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1568
+"Prepare safe rollout for ""fix(translator): handle non-JSON output gracefully in function call r…"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1569 | Source: router-for-me/CLIProxyAPI pr#360 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/360 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#360,https://github.com/router-for-me/CLIProxyAPI/pull/360,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1569
+"Standardize naming/metadata affected by ""fix(gemini): use thinkingLevel instead of thinkingBudget for Gemini 3…"" across both repos and docs.","Execution item CP2K-1570 | Source: router-for-me/CLIProxyAPI pr#359 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/359 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#359,https://github.com/router-for-me/CLIProxyAPI/pull/359,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1570
+"Follow up ""feat(gemini): add Gemini 3 Pro Preview low/high reasoning effort mode…"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1571 | Source: router-for-me/CLIProxyAPI pr#358 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/358 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#358,https://github.com/router-for-me/CLIProxyAPI/pull/358,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1571
+"Harden ""fix(codex): estimate reasoning tokens from accumulated content when u…"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1572 | Source: router-for-me/CLIProxyAPI pr#357 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/357 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#357,https://github.com/router-for-me/CLIProxyAPI/pull/357,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1572
+"Operationalize ""fix(translator): add xhigh reasoning_effort support for Codex Max models"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1573 | Source: router-for-me/CLIProxyAPI pr#355 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/355 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#355,https://github.com/router-for-me/CLIProxyAPI/pull/355,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1573
+"Generalize ""fix(antigravity): ensure maxOutputTokens > thinkingBudget for Claude thinking models"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1574 | Source: router-for-me/CLIProxyAPI pr#348 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/348 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#348,https://github.com/router-for-me/CLIProxyAPI/pull/348,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1574
+"Port relevant thegent-managed behavior implied by ""fix(thinking): resolve OpenAI/Gemini compatibility for thinking model…"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1577 | Source: router-for-me/CLIProxyAPI pr#340 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/340 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#340,https://github.com/router-for-me/CLIProxyAPI/pull/340,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1577
+"Refactor internals touched by ""feat(claude): add thinking model variants and beta headers support"" to reduce coupling and improve maintainability.",Execution item CP2K-1578 | Source: router-for-me/CLIProxyAPI pr#334 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/334 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#334,https://github.com/router-for-me/CLIProxyAPI/pull/334,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1578
+"Standardize naming/metadata affected by ""Fix Antigravity Claude tools schema for Claude Code"" across both repos and docs.","Execution item CP2K-1580 | Source: router-for-me/CLIProxyAPI pr#327 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/327 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#327,https://github.com/router-for-me/CLIProxyAPI/pull/327,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1580
+"Create or refresh provider quickstart derived from ""feat(registry): add Claude 4.5 Opus model definition"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1581 | Source: router-for-me/CLIProxyAPI pr#326 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/326 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#326,https://github.com/router-for-me/CLIProxyAPI/pull/326,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1581
+"Design non-subprocess integration contract related to ""fix some bugs"" with Go bindings primary and API fallback.",Execution item CP2K-1587 | Source: router-for-me/CLIProxyAPI pr#306 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/306 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#306,https://github.com/router-for-me/CLIProxyAPI/pull/306,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1587
+"Refactor internals touched by ""feat(translator): support image size and googleSearch tools"" to reduce coupling and improve maintainability.",Execution item CP2K-1588 | Source: router-for-me/CLIProxyAPI pr#303 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/303 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#303,https://github.com/router-for-me/CLIProxyAPI/pull/303,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1588
+"Prepare safe rollout for ""Zhizinan1997 test"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1589 | Source: router-for-me/CLIProxyAPI pr#299 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/299 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#299,https://github.com/router-for-me/CLIProxyAPI/pull/299,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1589
+"Follow up ""feat(translator): support xhigh thinking config level"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1591 | Source: router-for-me/CLIProxyAPI pr#294 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/294 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#294,https://github.com/router-for-me/CLIProxyAPI/pull/294,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1591
+"Harden ""feat: add Google Antigravity support"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1592 | Source: router-for-me/CLIProxyAPI pr#289 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/289 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#289,https://github.com/router-for-me/CLIProxyAPI/pull/289,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1592
+"Operationalize ""Fix OpenAI responses 404"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1593 | Source: router-for-me/CLIProxyAPI pr#288 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/288 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#288,https://github.com/router-for-me/CLIProxyAPI/pull/288,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1593
+"Generalize ""Amp CLI Integration Module"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1594 | Source: router-for-me/CLIProxyAPI pr#287 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/287 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#287,https://github.com/router-for-me/CLIProxyAPI/pull/287,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1594
+"Add process-compose/HMR refresh workflow linked to ""feat(iflow): add cookie-based authentication endpoint"" for deterministic local runtime reload.",Execution item CP2K-1595 | Source: router-for-me/CLIProxyAPI pr#285 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/285 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#285,https://github.com/router-for-me/CLIProxyAPI/pull/285,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1595
+"Port relevant thegent-managed behavior implied by ""feat: Add Amp CLI integration with OAuth fallback support"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1596 | Source: router-for-me/CLIProxyAPI pr#284 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/284 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#284,https://github.com/router-for-me/CLIProxyAPI/pull/284,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1596
+"Create or refresh provider quickstart derived from ""feat: enable Gemini 3 Pro Preview with OAuth support"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1598 | Source: router-for-me/CLIProxyAPI pr#280 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/280 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#280,https://github.com/router-for-me/CLIProxyAPI/pull/280,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1598
+"Prepare safe rollout for ""feat(gemini): add support for gemini-3-pro-preview"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1599 | Source: router-for-me/CLIProxyAPI pr#279 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/279 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#279,https://github.com/router-for-me/CLIProxyAPI/pull/279,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1599
+"Harden ""feat(auth): add iFlow cookie-based authentication support"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1602 | Source: router-for-me/CLIProxyAPI pr#270 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/270 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#270,https://github.com/router-for-me/CLIProxyAPI/pull/270,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1602
+"Operationalize ""fix: use underscore suffix in short name mapping"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1603 | Source: router-for-me/CLIProxyAPI pr#268 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/268 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#268,https://github.com/router-for-me/CLIProxyAPI/pull/268,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1603
+"Generalize ""fix(claude translator): guard tool schema properties"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1604 | Source: router-for-me/CLIProxyAPI pr#257 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/257 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#257,https://github.com/router-for-me/CLIProxyAPI/pull/257,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1604
+"Improve CLI UX around ""Implement Claude Web Search Support with Proper Streaming Translation"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1605 | Source: router-for-me/CLIProxyAPI pr#256 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/256 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#256,https://github.com/router-for-me/CLIProxyAPI/pull/256,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1605
+"Extend docs for ""fix(runtime): remove gpt-5.1 minimal effort variant"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1606 | Source: router-for-me/CLIProxyAPI pr#249 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/249 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#249,https://github.com/router-for-me/CLIProxyAPI/pull/249,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1606
+"Design non-subprocess integration contract related to ""fix(management): exclude disabled runtime-only auths from file entries"" with Go bindings primary and API fallback.","Execution item CP2K-1610 | Source: router-for-me/CLIProxyAPI pr#230 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/230 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#230,https://github.com/router-for-me/CLIProxyAPI/pull/230,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1610
+"Operationalize ""feat(registry): add GPT-5 Codex Mini model variants"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1613 | Source: router-for-me/CLIProxyAPI pr#225 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/225 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#225,https://github.com/router-for-me/CLIProxyAPI/pull/225,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1613
+"Generalize ""Return auth info from memory"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1614 | Source: router-for-me/CLIProxyAPI pr#222 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/222 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#222,https://github.com/router-for-me/CLIProxyAPI/pull/222,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1614
+"Create or refresh provider quickstart derived from ""fix(translator): accept camelCase thinking config in OpenAI→Gemini"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1615 | Source: router-for-me/CLIProxyAPI pr#221 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/221 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#221,https://github.com/router-for-me/CLIProxyAPI/pull/221,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1615
+"Extend docs for ""fix(openai/chat-completions): preserve tool_result JSON, robust quoting, strip unsupported fields"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1616 | Source: router-for-me/CLIProxyAPI pr#217 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/217 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#217,https://github.com/router-for-me/CLIProxyAPI/pull/217,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1616
+"Refactor internals touched by ""ci: add GitHub Action to block changes under `internal/translator` di…"" to reduce coupling and improve maintainability.",Execution item CP2K-1618 | Source: router-for-me/CLIProxyAPI pr#214 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/214 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#214,https://github.com/router-for-me/CLIProxyAPI/pull/214,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1618
+"Prepare safe rollout for ""fix: handle array format in tool_result content for Gemini API"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1619 | Source: router-for-me/CLIProxyAPI pr#209 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/209 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#209,https://github.com/router-for-me/CLIProxyAPI/pull/209,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1619
+"Follow up ""fix: Correctly read and restore request body in logging middleware"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1621 | Source: router-for-me/CLIProxyAPI pr#206 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/206 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#206,https://github.com/router-for-me/CLIProxyAPI/pull/206,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1621
+"Harden ""OpenAI normalization + Responses ordering + multimodal routing/fallback (based on v6.3.4)"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1622 | Source: router-for-me/CLIProxyAPI pr#196 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/196 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#196,https://github.com/router-for-me/CLIProxyAPI/pull/196,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1622
+"Add process-compose/HMR refresh workflow linked to ""Add Gemini API key endpoints"" for deterministic local runtime reload.",Execution item CP2K-1624 | Source: router-for-me/CLIProxyAPI pr#194 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/194 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#194,https://github.com/router-for-me/CLIProxyAPI/pull/194,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1624
+"Refactor internals touched by ""Feat: Add reasoning effort support for Gemini models"" to reduce coupling and improve maintainability.",Execution item CP2K-1628 | Source: router-for-me/CLIProxyAPI pr#185 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/185 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#185,https://github.com/router-for-me/CLIProxyAPI/pull/185,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1628
+"Follow up ""Merge my-code into main: upstream sync + conflict resolution + openspec updates"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1631 | Source: router-for-me/CLIProxyAPI pr#182 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/182 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#182,https://github.com/router-for-me/CLIProxyAPI/pull/182,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1631
+"Create or refresh provider quickstart derived from ""docs/add-haiku-4.5"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1632 | Source: router-for-me/CLIProxyAPI pr#180 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/180 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#180,https://github.com/router-for-me/CLIProxyAPI/pull/180,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1632
+"Design non-subprocess integration contract related to ""feat(registry): unify Gemini models and add AI Studio set"" with Go bindings primary and API fallback.",Execution item CP2K-1633 | Source: router-for-me/CLIProxyAPI pr#177 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/177 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#177,https://github.com/router-for-me/CLIProxyAPI/pull/177,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1633
+"Port relevant thegent-managed behavior implied by ""Add support for dynamic model providers"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1634 | Source: router-for-me/CLIProxyAPI pr#173 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/173 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#173,https://github.com/router-for-me/CLIProxyAPI/pull/173,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1634
+"Refactor internals touched by ""fix: preserve cooled-down models and return JSON 429 with reset time metadata"" to reduce coupling and improve maintainability.",Execution item CP2K-1638 | Source: router-for-me/CLIProxyAPI pr#155 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/155 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#155,https://github.com/router-for-me/CLIProxyAPI/pull/155,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1638
+"Prepare safe rollout for ""docs: add Subtitle Translator to projects list"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1639 | Source: router-for-me/CLIProxyAPI pr#151 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/151 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#151,https://github.com/router-for-me/CLIProxyAPI/pull/151,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1639
+"Improve CLI UX around ""refactor(executor): unify error handling for resource cleanup and buffer constants"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1645 | Source: router-for-me/CLIProxyAPI pr#138 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/138 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#138,https://github.com/router-for-me/CLIProxyAPI/pull/138,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1645
+"Create or refresh provider quickstart derived from ""perf: optimize Claude streaming with bufio and fix SSE parsing errors"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1649 | Source: router-for-me/CLIProxyAPI pr#126 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/126 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#126,https://github.com/router-for-me/CLIProxyAPI/pull/126,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1649
+"Port relevant thegent-managed behavior implied by ""fix(management,config,watcher): treat empty base-url as removal; improve config change logs"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1653 | Source: router-for-me/CLIProxyAPI pr#116 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/116 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#116,https://github.com/router-for-me/CLIProxyAPI/pull/116,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1653
+"Generalize ""feat(managementasset): Authenticate GitHub API requests"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1654 | Source: router-for-me/CLIProxyAPI pr#114 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/114 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#114,https://github.com/router-for-me/CLIProxyAPI/pull/114,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1654
+"Design non-subprocess integration contract related to ""fix(server): Handle empty/invalid config in cloud deploy mode"" with Go bindings primary and API fallback.",Execution item CP2K-1656 | Source: router-for-me/CLIProxyAPI pr#111 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/111 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#111,https://github.com/router-for-me/CLIProxyAPI/pull/111,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1656
+"Standardize naming/metadata affected by ""feat(translator): Add support for openrouter image_config"" across both repos and docs.","Execution item CP2K-1660 | Source: router-for-me/CLIProxyAPI pr#99 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/99 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#99,https://github.com/router-for-me/CLIProxyAPI/pull/99,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1660
+"Follow up ""feat(cliproxy): Rebind auth executors on config change"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1661 | Source: router-for-me/CLIProxyAPI pr#95 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/95 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#95,https://github.com/router-for-me/CLIProxyAPI/pull/95,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1661
+"Create or refresh provider quickstart derived from ""feat: Implement hot-reloading for management endpoints"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1666 | Source: router-for-me/CLIProxyAPI pr#82 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/82 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#82,https://github.com/router-for-me/CLIProxyAPI/pull/82,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1666
+"Standardize naming/metadata affected by ""fix(translator): remove unsupported token limit fields for Codex Responses API"" across both repos and docs.","Execution item CP2K-1670 | Source: router-for-me/CLIProxyAPI pr#71 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/71 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#71,https://github.com/router-for-me/CLIProxyAPI/pull/71,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1670
+"Follow up ""Fix for the bug causing configuration to fail, and avoidance of invalid scanning of auth files."" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1671 | Source: router-for-me/CLIProxyAPI pr#70 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/70 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#70,https://github.com/router-for-me/CLIProxyAPI/pull/70,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1671
+"Port relevant thegent-managed behavior implied by ""Implement minimal incremental updates for models and keys"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1672 | Source: router-for-me/CLIProxyAPI pr#69 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/69 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#69,https://github.com/router-for-me/CLIProxyAPI/pull/69,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1672
+"Generalize ""fix(auth): Make round-robin auth selection deterministic"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1674 | Source: router-for-me/CLIProxyAPI pr#67 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/67 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#67,https://github.com/router-for-me/CLIProxyAPI/pull/67,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1674
+"Improve CLI UX around ""feat(auth): Enhance Gemini web auth with flexible input and UI"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1675 | Source: router-for-me/CLIProxyAPI pr#66 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/66 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#66,https://github.com/router-for-me/CLIProxyAPI/pull/66,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1675
+"Extend docs for ""feat(auth): Improve Gemini web auth with email label detection"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1676 | Source: router-for-me/CLIProxyAPI pr#65 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/65 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#65,https://github.com/router-for-me/CLIProxyAPI/pull/65,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1676
+"Add robust stream/non-stream parity tests for ""fix(auth): Scope unavailability checks to specific models"" across supported providers.",Execution item CP2K-1677 | Source: router-for-me/CLIProxyAPI pr#64 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/64 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#64,https://github.com/router-for-me/CLIProxyAPI/pull/64,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1677
+"Design non-subprocess integration contract related to ""feat(auth, docs): add SDK guides and local password support for manag…"" with Go bindings primary and API fallback.",Execution item CP2K-1679 | Source: router-for-me/CLIProxyAPI pr#62 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/62 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#62,https://github.com/router-for-me/CLIProxyAPI/pull/62,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1679
+"Add process-compose/HMR refresh workflow linked to ""fix(gemini-web): Correct stream translation and reduce auth refresh lead"" for deterministic local runtime reload.",Execution item CP2K-1682 | Source: router-for-me/CLIProxyAPI pr#59 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/59 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,pr,router-for-me/CLIProxyAPI,pr#59,https://github.com/router-for-me/CLIProxyAPI/pull/59,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1682
+"Create or refresh provider quickstart derived from ""refactor(gemini-web): Remove auto-refresh, auto-close, and caching"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1683 | Source: router-for-me/CLIProxyAPI pr#58 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/58 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#58,https://github.com/router-for-me/CLIProxyAPI/pull/58,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1683
+"Generalize ""feat(gemini-web): Inject fallback text for image-only flash model responses"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1684 | Source: router-for-me/CLIProxyAPI pr#57 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/57 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#57,https://github.com/router-for-me/CLIProxyAPI/pull/57,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1684
+"Extend docs for ""fix(auth): Improve file-based auth handling and consistency"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1686 | Source: router-for-me/CLIProxyAPI pr#54 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/54 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#54,https://github.com/router-for-me/CLIProxyAPI/pull/54,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1686
+"Refactor internals touched by ""Add support for image generation with Gemini models through the OpenAI chat completions translator."" to reduce coupling and improve maintainability.",Execution item CP2K-1688 | Source: router-for-me/CLIProxyAPI pr#52 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/52 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#52,https://github.com/router-for-me/CLIProxyAPI/pull/52,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1688
+"Standardize naming/metadata affected by ""refactor(auth): Centralize auth file reading with snapshot preference"" across both repos and docs.","Execution item CP2K-1690 | Source: router-for-me/CLIProxyAPI pr#50 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/50 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#50,https://github.com/router-for-me/CLIProxyAPI/pull/50,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1690
+"Port relevant thegent-managed behavior implied by ""fix(gemini-web): ensure colon spacing in JSON output for compatibility"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1691 | Source: router-for-me/CLIProxyAPI pr#49 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/49 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#49,https://github.com/router-for-me/CLIProxyAPI/pull/49,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1691
+"Operationalize ""Add Cookie Snapshot and fix some bugs"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1693 | Source: router-for-me/CLIProxyAPI pr#46 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/46 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#46,https://github.com/router-for-me/CLIProxyAPI/pull/46,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1693
+"Extend docs for ""fix: comprehensive JSON Schema sanitization for Claude to Gemini"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1696 | Source: router-for-me/CLIProxyAPI pr#43 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/43 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#43,https://github.com/router-for-me/CLIProxyAPI/pull/43,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1696
+"Add robust stream/non-stream parity tests for ""Codex CLI - setting 'store = false' to prevent the request being rejected by OpenAI"" across supported providers.",Execution item CP2K-1697 | Source: router-for-me/CLIProxyAPI pr#41 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/41 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#41,https://github.com/router-for-me/CLIProxyAPI/pull/41,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1697
+"Prepare safe rollout for ""Add SSH tunnel guidance for login fallback"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1699 | Source: router-for-me/CLIProxyAPI pr#36 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/36 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#36,https://github.com/router-for-me/CLIProxyAPI/pull/36,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1699
+"Create or refresh provider quickstart derived from ""Modify docker compose for remote image and local build"" with setup/auth/model/sanity-check flow.","Execution item CP2K-1700 | Source: router-for-me/CLIProxyAPI pr#33 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/33 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#33,https://github.com/router-for-me/CLIProxyAPI/pull/33,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1700
+"Design non-subprocess integration contract related to ""Inject build metadata into binary during release and docker build"" with Go bindings primary and API fallback.",Execution item CP2K-1702 | Source: router-for-me/CLIProxyAPI pr#30 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/30 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPI,pr#30,https://github.com/router-for-me/CLIProxyAPI/pull/30,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1702
+"Generalize ""Optimize and fix bugs for hot reloading"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1704 | Source: router-for-me/CLIProxyAPI pr#28 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/28 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#28,https://github.com/router-for-me/CLIProxyAPI/pull/28,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1704
+"Improve CLI UX around ""fix(openai): add tool_calls.index and finish_reason to streaming chunks"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1705 | Source: router-for-me/CLIProxyAPI pr#27 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/27 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#27,https://github.com/router-for-me/CLIProxyAPI/pull/27,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1705
+"Port relevant thegent-managed behavior implied by ""Correct config in README.md"" into cliproxy Go CLI commands and interactive setup.","Execution item CP2K-1710 | Source: router-for-me/CLIProxyAPI pr#1 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPI,pr#1,https://github.com/router-for-me/CLIProxyAPI/pull/1,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1710
+"Add process-compose/HMR refresh workflow linked to ""Feature request: Cursor CLI support"" for deterministic local runtime reload.",Execution item CP2K-1711 | Source: router-for-me/CLIProxyAPI discussion#1466 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1466 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,discussion,router-for-me/CLIProxyAPI,discussion#1466,https://github.com/router-for-me/CLIProxyAPI/discussions/1466,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1711
+"Design non-subprocess integration contract related to ""I saved 10M tokens (89%) on my Claude Code sessions with a CLI proxy"" with Go bindings primary and API fallback.",Execution item CP2K-1725 | Source: router-for-me/CLIProxyAPI discussion#1585 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1585 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,discussion,router-for-me/CLIProxyAPI,discussion#1585,https://github.com/router-for-me/CLIProxyAPI/discussions/1585,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1725
+"Port relevant thegent-managed behavior implied by ""403 error"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1729 | Source: router-for-me/CLIProxyAPI discussion#1563 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1563 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,discussion,router-for-me/CLIProxyAPI,discussion#1563,https://github.com/router-for-me/CLIProxyAPI/discussions/1563,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1729
+"Add process-compose/HMR refresh workflow linked to ""antigravity用不了"" for deterministic local runtime reload.","Execution item CP2K-1740 | Source: router-for-me/CLIProxyAPI discussion#1462 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1462 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,dev-runtime-refresh,yes,discussion,router-for-me/CLIProxyAPI,discussion#1462,https://github.com/router-for-me/CLIProxyAPI/discussions/1462,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1740
+"Port relevant thegent-managed behavior implied by ""登陆提示“登录失败: 访问被拒绝,权限不足”"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1748 | Source: router-for-me/CLIProxyAPI discussion#1385 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1385 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,discussion,router-for-me/CLIProxyAPI,discussion#1385,https://github.com/router-for-me/CLIProxyAPI/discussions/1385,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1748
+"Port relevant thegent-managed behavior implied by ""为什么我启动antigravity的时候CLIProxyAPI会自动启动?"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1767 | Source: router-for-me/CLIProxyAPI discussion#1164 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1164 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,discussion,router-for-me/CLIProxyAPI,discussion#1164,https://github.com/router-for-me/CLIProxyAPI/discussions/1164,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1767
+"Add process-compose/HMR refresh workflow linked to ""cc 使用 zai-glm-4.7 报错 body.reasoning"" for deterministic local runtime reload.",Execution item CP2K-1769 | Source: router-for-me/CLIProxyAPI discussion#1144 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1144 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,discussion,router-for-me/CLIProxyAPI,discussion#1144,https://github.com/router-for-me/CLIProxyAPI/discussions/1144,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1769
+"Design non-subprocess integration contract related to ""antigravity 2 api 经常 429,有同样问题的吗"" with Go bindings primary and API fallback.",Execution item CP2K-1771 | Source: router-for-me/CLIProxyAPI discussion#1115 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1115 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,discussion,router-for-me/CLIProxyAPI,discussion#1115,https://github.com/router-for-me/CLIProxyAPI/discussions/1115,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1771
+"Port relevant thegent-managed behavior implied by ""【建议】保留Gemini格式请求的思考签名"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1786 | Source: router-for-me/CLIProxyAPI discussion#1181 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1181 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,discussion,router-for-me/CLIProxyAPI,discussion#1181,https://github.com/router-for-me/CLIProxyAPI/discussions/1181,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1786
+"Design non-subprocess integration contract related to ""Feature Request: API for fetching Quota stats (remaining, renew time, etc)"" with Go bindings primary and API fallback.",Execution item CP2K-1794 | Source: router-for-me/CLIProxyAPI discussion#1211 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1211 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,discussion,router-for-me/CLIProxyAPI,discussion#1211,https://github.com/router-for-me/CLIProxyAPI/discussions/1211,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1794
+"Add process-compose/HMR refresh workflow linked to ""Claude Code Web Search doesn’t work"" for deterministic local runtime reload.",Execution item CP2K-1798 | Source: router-for-me/CLIProxyAPI discussion#1210 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1210 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,discussion,router-for-me/CLIProxyAPI,discussion#1210,https://github.com/router-for-me/CLIProxyAPI/discussions/1210,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1798
+"Port relevant thegent-managed behavior implied by ""iFlow account error show on terminal"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1805 | Source: router-for-me/CLIProxyAPI discussion#1182 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1182 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,discussion,router-for-me/CLIProxyAPI,discussion#1182,https://github.com/router-for-me/CLIProxyAPI/discussions/1182,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1805
+"Design non-subprocess integration contract related to ""[Feature Request] Add timeout configuration"" with Go bindings primary and API fallback.",Execution item CP2K-1817 | Source: router-for-me/CLIProxyAPI discussion#670 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/670 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,discussion,router-for-me/CLIProxyAPI,discussion#670,https://github.com/router-for-me/CLIProxyAPI/discussions/670,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1817
+"Port relevant thegent-managed behavior implied by ""不能通过回调链接认证吗"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1824 | Source: router-for-me/CLIProxyAPI discussion#597 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/597 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,discussion,router-for-me/CLIProxyAPI,discussion#597,https://github.com/router-for-me/CLIProxyAPI/discussions/597,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1824
+"Add process-compose/HMR refresh workflow linked to ""iflow 406 errors"" for deterministic local runtime reload.",Execution item CP2K-1827 | Source: router-for-me/CLIProxyAPI discussion#579 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/579 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,discussion,router-for-me/CLIProxyAPI,discussion#579,https://github.com/router-for-me/CLIProxyAPI/discussions/579,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1827
+"Design non-subprocess integration contract related to ""Claude Code No Longer Supported?"" with Go bindings primary and API fallback.","Execution item CP2K-1840 | Source: router-for-me/CLIProxyAPI discussion#329 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/329 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,integration-api-bindings,yes,discussion,router-for-me/CLIProxyAPI,discussion#329,https://github.com/router-for-me/CLIProxyAPI/discussions/329,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1840
+"Port relevant thegent-managed behavior implied by ""大佬能不能出个zeabur部署的教程"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1843 | Source: router-for-me/CLIProxyAPI discussion#410 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/410 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,discussion,router-for-me/CLIProxyAPI,discussion#410,https://github.com/router-for-me/CLIProxyAPI/discussions/410,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1843
+"Add process-compose/HMR refresh workflow linked to ""Feature: scoped `auto` model (provider + pattern)"" for deterministic local runtime reload.",Execution item CP2K-1856 | Source: router-for-me/CLIProxyAPI discussion#524 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/524 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,discussion,router-for-me/CLIProxyAPI,discussion#524,https://github.com/router-for-me/CLIProxyAPI/discussions/524,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1856
+"Port relevant thegent-managed behavior implied by ""qwen code和iflow的模型重复了"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1862 | Source: router-for-me/CLIProxyAPI discussion#204 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/204 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,discussion,router-for-me/CLIProxyAPI,discussion#204,https://github.com/router-for-me/CLIProxyAPI/discussions/204,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1862
+"Design non-subprocess integration contract related to ""docker compose还会继续维护吗"" with Go bindings primary and API fallback.",Execution item CP2K-1863 | Source: router-for-me/CLIProxyAPI discussion#205 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/205 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,discussion,router-for-me/CLIProxyAPI,discussion#205,https://github.com/router-for-me/CLIProxyAPI/discussions/205,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:discussion",CP2K-1863
+"Port relevant thegent-managed behavior implied by ""[Feature Request] Add default oauth-model-alias for Kiro channel (like Antigravity)"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1881 | Source: router-for-me/CLIProxyAPIPlus issue#208 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/208 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPIPlus,issue#208,https://github.com/router-for-me/CLIProxyAPIPlus/issues/208,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1881
+"Add process-compose/HMR refresh workflow linked to ""gemini能不能设置配额,自动禁用 ,自动启用?"" for deterministic local runtime reload.",Execution item CP2K-1885 | Source: router-for-me/CLIProxyAPIPlus issue#200 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/200 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPIPlus,issue#200,https://github.com/router-for-me/CLIProxyAPIPlus/issues/200,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1885
+"Design non-subprocess integration contract related to ""Cursor CLI \ Auth Support"" with Go bindings primary and API fallback.",Execution item CP2K-1886 | Source: router-for-me/CLIProxyAPIPlus issue#198 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/198 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPIPlus,issue#198,https://github.com/router-for-me/CLIProxyAPIPlus/issues/198,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1886
+"Port relevant thegent-managed behavior implied by ""[Feature Request] 请求增加 Kiro 配额的展示功能"" into cliproxy Go CLI commands and interactive setup.","Execution item CP2K-1900 | Source: router-for-me/CLIProxyAPIPlus issue#146 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/146 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPIPlus,issue#146,https://github.com/router-for-me/CLIProxyAPIPlus/issues/146,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1900
+"Design non-subprocess integration contract related to ""kiro的social凭证无法刷新过期时间。"" with Go bindings primary and API fallback.",Execution item CP2K-1909 | Source: router-for-me/CLIProxyAPIPlus issue#128 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/128 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPIPlus,issue#128,https://github.com/router-for-me/CLIProxyAPIPlus/issues/128,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1909
+"Add process-compose/HMR refresh workflow linked to ""[Bug]Copilot Premium usage significantly amplified when using amp"" for deterministic local runtime reload.",Execution item CP2K-1914 | Source: router-for-me/CLIProxyAPIPlus issue#113 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/113 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPIPlus,issue#113,https://github.com/router-for-me/CLIProxyAPIPlus/issues/113,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1914
+"Port relevant thegent-managed behavior implied by ""OpenAI-compat provider hardcodes /v1/models (breaks Z.ai v4: /api/coding/paas/v4/models)"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1919 | Source: router-for-me/CLIProxyAPIPlus issue#101 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/101 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,issue,router-for-me/CLIProxyAPIPlus,issue#101,https://github.com/router-for-me/CLIProxyAPIPlus/issues/101,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1919
+"Design non-subprocess integration contract related to ""Issue with removed parameters - Sequential Thinking Tool Failure (nextThoughtNeeded undefined)"" with Go bindings primary and API fallback.",Execution item CP2K-1932 | Source: router-for-me/CLIProxyAPIPlus issue#78 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/78 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,issue,router-for-me/CLIProxyAPIPlus,issue#78,https://github.com/router-for-me/CLIProxyAPIPlus/issues/78,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1932
+"Add process-compose/HMR refresh workflow linked to ""kiro命令登录没有端口"" for deterministic local runtime reload.",Execution item CP2K-1943 | Source: router-for-me/CLIProxyAPIPlus issue#30 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/30 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,dev-runtime-refresh,yes,issue,router-for-me/CLIProxyAPIPlus,issue#30,https://github.com/router-for-me/CLIProxyAPIPlus/issues/30,"board-2000,theme:dev-runtime-refresh,prio:p1,wave:wave-1,effort:m,kind:issue",CP2K-1943
+"Refactor internals touched by ""fix: add default copilot claude model aliases for oauth routing"" to reduce coupling and improve maintainability.",Execution item CP2K-1948 | Source: router-for-me/CLIProxyAPIPlus pr#256 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/256 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#256,https://github.com/router-for-me/CLIProxyAPIPlus/pull/256,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1948
+"Standardize naming/metadata affected by ""fix(kiro): stop duplicated thinking on OpenAI and preserve Claude multi-turn thinking"" across both repos and docs.","Execution item CP2K-1950 | Source: router-for-me/CLIProxyAPIPlus pr#252 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/252 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#252,https://github.com/router-for-me/CLIProxyAPIPlus/pull/252,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1950
+"Generalize ""fix(cline): add grantType to token refresh and extension headers"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1954 | Source: router-for-me/CLIProxyAPIPlus pr#247 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/247 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#247,https://github.com/router-for-me/CLIProxyAPIPlus/pull/247,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1954
+"Create or refresh provider quickstart derived from ""feat: add Claude Sonnet 4.6 model support for Kiro provider"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1955 | Source: router-for-me/CLIProxyAPIPlus pr#244 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/244 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#244,https://github.com/router-for-me/CLIProxyAPIPlus/pull/244,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1955
+"Extend docs for ""feat(registry): add Claude Sonnet 4.6 model definitions"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1956 | Source: router-for-me/CLIProxyAPIPlus pr#243 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/243 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#243,https://github.com/router-for-me/CLIProxyAPIPlus/pull/243,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1956
+"Port relevant thegent-managed behavior implied by ""Improve Copilot provider based on ericc-ch/copilot-api comparison"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1957 | Source: router-for-me/CLIProxyAPIPlus pr#242 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/242 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#242,https://github.com/router-for-me/CLIProxyAPIPlus/pull/242,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1957
+"Harden ""fix: add proxy_ prefix handling for tool_reference content blocks"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1962 | Source: router-for-me/CLIProxyAPIPlus pr#236 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/236 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#236,https://github.com/router-for-me/CLIProxyAPIPlus/pull/236,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1962
+"Operationalize ""fix(codex): handle function_call_arguments streaming for both spark and non-spark models"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1963 | Source: router-for-me/CLIProxyAPIPlus pr#235 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/235 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#235,https://github.com/router-for-me/CLIProxyAPIPlus/pull/235,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1963
+"Generalize ""Add Kilo Code provider with dynamic model fetching"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1964 | Source: router-for-me/CLIProxyAPIPlus pr#234 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/234 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#234,https://github.com/router-for-me/CLIProxyAPIPlus/pull/234,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1964
+"Improve CLI UX around ""Fix Copilot codex model Responses API translation for Claude Code"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1965 | Source: router-for-me/CLIProxyAPIPlus pr#233 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/233 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#233,https://github.com/router-for-me/CLIProxyAPIPlus/pull/233,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1965
+"Extend docs for ""feat(models): add Thinking support to GitHub Copilot models"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1966 | Source: router-for-me/CLIProxyAPIPlus pr#231 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/231 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#231,https://github.com/router-for-me/CLIProxyAPIPlus/pull/231,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1966
+"Add robust stream/non-stream parity tests for ""fix(copilot): forward Claude-format tools to Copilot Responses API"" across supported providers.",Execution item CP2K-1967 | Source: router-for-me/CLIProxyAPIPlus pr#230 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/230 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#230,https://github.com/router-for-me/CLIProxyAPIPlus/pull/230,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1967
+"Refactor internals touched by ""fix: preserve explicitly deleted kiro aliases across config reload"" to reduce coupling and improve maintainability.",Execution item CP2K-1968 | Source: router-for-me/CLIProxyAPIPlus pr#229 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/229 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#229,https://github.com/router-for-me/CLIProxyAPIPlus/pull/229,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1968
+"Prepare safe rollout for ""fix(antigravity): add warn-level logging to silent failure paths in FetchAntigravityModels"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1969 | Source: router-for-me/CLIProxyAPIPlus pr#228 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/228 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#228,https://github.com/router-for-me/CLIProxyAPIPlus/pull/228,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1969
+"Follow up ""refactor(kiro): Kiro Web Search Logic & Executor Alignment"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1971 | Source: router-for-me/CLIProxyAPIPlus pr#226 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/226 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#226,https://github.com/router-for-me/CLIProxyAPIPlus/pull/226,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1971
+"Create or refresh provider quickstart derived from ""v6.8.13"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1972 | Source: router-for-me/CLIProxyAPIPlus pr#225 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/225 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#225,https://github.com/router-for-me/CLIProxyAPIPlus/pull/225,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1972
+"Operationalize ""fix(kiro): prepend placeholder user message when conversation starts with assistant role"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1973 | Source: router-for-me/CLIProxyAPIPlus pr#224 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/224 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#224,https://github.com/router-for-me/CLIProxyAPIPlus/pull/224,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1973
+"Generalize ""fix(kiro): prepend placeholder user message when conversation starts with assistant role"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1974 | Source: router-for-me/CLIProxyAPIPlus pr#223 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/223 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#223,https://github.com/router-for-me/CLIProxyAPIPlus/pull/223,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1974
+"Port relevant thegent-managed behavior implied by ""fix: prevent merging assistant messages with tool_calls"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1976 | Source: router-for-me/CLIProxyAPIPlus pr#218 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/218 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#218,https://github.com/router-for-me/CLIProxyAPIPlus/pull/218,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1976
+"Design non-subprocess integration contract related to ""fix(auth): strip model suffix in GitHub Copilot executor before upstream call"" with Go bindings primary and API fallback.",Execution item CP2K-1978 | Source: router-for-me/CLIProxyAPIPlus pr#214 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/214 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,integration-api-bindings,yes,pr,router-for-me/CLIProxyAPIPlus,pr#214,https://github.com/router-for-me/CLIProxyAPIPlus/pull/214,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1978
+"Prepare safe rollout for ""fix(kiro): filter orphaned tool_results from compacted conversations"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1979 | Source: router-for-me/CLIProxyAPIPlus pr#212 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/212 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#212,https://github.com/router-for-me/CLIProxyAPIPlus/pull/212,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1979
+"Standardize naming/metadata affected by ""fix(kiro): fully implement Kiro web search tool via MCP integration"" across both repos and docs.","Execution item CP2K-1980 | Source: router-for-me/CLIProxyAPIPlus pr#211 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/211 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#211,https://github.com/router-for-me/CLIProxyAPIPlus/pull/211,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1980
+"Follow up ""feat(config): add default Kiro model aliases for standard Claude model names"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1981 | Source: router-for-me/CLIProxyAPIPlus pr#209 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/209 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#209,https://github.com/router-for-me/CLIProxyAPIPlus/pull/209,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1981
+"Operationalize ""fix(translator): fix nullable type arrays breaking Gemini/Antigravity API"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1983 | Source: router-for-me/CLIProxyAPIPlus pr#205 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/205 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#205,https://github.com/router-for-me/CLIProxyAPIPlus/pull/205,"board-2000,theme:responses-and-chat-compat,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1983
+"Extend docs for ""feat: add Claude Opus 4.6 to GitHub Copilot models"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1986 | Source: router-for-me/CLIProxyAPIPlus pr#199 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/199 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#199,https://github.com/router-for-me/CLIProxyAPIPlus/pull/199,"board-2000,theme:provider-model-registry,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1986
+"Create or refresh provider quickstart derived from ""fix: replace assistant placeholder text to prevent model parroting"" with setup/auth/model/sanity-check flow.",Execution item CP2K-1989 | Source: router-for-me/CLIProxyAPIPlus pr#194 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/194 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#194,https://github.com/router-for-me/CLIProxyAPIPlus/pull/194,"board-2000,theme:docs-quickstarts,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1989
+"Standardize naming/metadata affected by ""Add management OAuth quota endpoints"" across both repos and docs.","Execution item CP2K-1990 | Source: router-for-me/CLIProxyAPIPlus pr#193 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/193 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPIPlus,pr#193,https://github.com/router-for-me/CLIProxyAPIPlus/pull/193,"board-2000,theme:oauth-and-authentication,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1990
+"Harden ""feat(kiro): add contextUsageEvent handler"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1992 | Source: router-for-me/CLIProxyAPIPlus pr#191 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/191 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPIPlus,pr#191,https://github.com/router-for-me/CLIProxyAPIPlus/pull/191,"board-2000,theme:websocket-and-streaming,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1992
+"Port relevant thegent-managed behavior implied by ""Codex executor: bump client headers for GPT-5.3 compatibility"" into cliproxy Go CLI commands and interactive setup.",Execution item CP2K-1995 | Source: router-for-me/CLIProxyAPIPlus pr#188 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/188 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,go-cli-extraction,yes,pr,router-for-me/CLIProxyAPIPlus,pr#188,https://github.com/router-for-me/CLIProxyAPIPlus/pull/188,"board-2000,theme:go-cli-extraction,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1995
+"Extend docs for ""Fix Codex gpt-5.3-codex routing by normalizing backend model"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1996 | Source: router-for-me/CLIProxyAPIPlus pr#187 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/187 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#187,https://github.com/router-for-me/CLIProxyAPIPlus/pull/187,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-1996
+"Standardize naming/metadata affected by ""Add Kimi (Moonshot AI) provider support"" across both repos and docs.","Execution item CP2K-2000 | Source: router-for-me/CLIProxyAPIPlus pr#182 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/182 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P1,wave-1,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#182,https://github.com/router-for-me/CLIProxyAPIPlus/pull/182,"board-2000,theme:thinking-and-reasoning,prio:p1,wave:wave-1,effort:m,kind:pr",CP2K-2000
+Port thegent proxy lifecycle/install/login/model-management flows into first-class cliproxy Go CLI commands.,Execution item CP2K-0001 | Source: cross-repo synthesis | Source URL: | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,L,platform-architecture,yes,strategy,cross-repo,synthesis,,"board-2000,theme:platform-architecture,prio:p1,wave:wave-1,effort:l,kind:strategy",CP2K-0001
+"Define a non-subprocess integration contract: Go bindings first, HTTP API fallback, versioned capability negotiation.",Execution item CP2K-0002 | Source: cross-repo synthesis | Source URL: | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,L,integration-api-bindings,yes,strategy,cross-repo,synthesis,,"board-2000,theme:integration-api-bindings,prio:p1,wave:wave-1,effort:l,kind:strategy",CP2K-0002
+Add cross-provider OpenAI Responses/Chat Completions conformance test suite with golden fixtures.,Execution item CP2K-0007 | Source: cross-repo synthesis | Source URL: | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P1,wave-1,L,testing-and-quality,yes,strategy,cross-repo,synthesis,,"board-2000,theme:testing-and-quality,prio:p1,wave:wave-1,effort:l,kind:strategy",CP2K-0007
+"Rewrite project frontmatter/readme with architecture, compatibility matrix, provider guides, support policy, and release channels.",Execution item CP2K-0009 | Source: cross-repo synthesis | Source URL: | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-1,M,project-frontmatter,yes,strategy,cross-repo,synthesis,,"board-2000,theme:project-frontmatter,prio:p2,wave:wave-1,effort:m,kind:strategy",CP2K-0009
+"Improve release and install UX with unified install flow, binary verification, and platform post-install checks.",Execution item CP2K-0010 | Source: cross-repo synthesis | Source URL: | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-1,M,install-and-ops,yes,strategy,cross-repo,synthesis,,"board-2000,theme:install-and-ops,prio:p2,wave:wave-1,effort:m,kind:strategy",CP2K-0010
+"Harden ""Opus 4.6"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0012 | Source: router-for-me/CLIProxyAPIPlus issue#219 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/219 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#219,https://github.com/router-for-me/CLIProxyAPIPlus/issues/219,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0012
+"Standardize naming/metadata affected by ""gemini能不能设置配额,自动禁用 ,自动启用?"" across both repos and docs.","Execution item CP2K-0020 | Source: router-for-me/CLIProxyAPIPlus issue#200 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/200 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#200,https://github.com/router-for-me/CLIProxyAPIPlus/issues/200,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0020
+"Generalize ""OpenAI-MLX-Server and vLLM-MLX Support?"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0024 | Source: router-for-me/CLIProxyAPIPlus issue#179 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/179 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#179,https://github.com/router-for-me/CLIProxyAPIPlus/issues/179,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0024
+"Extend docs for ""Kiro Token 导入失败: Refresh token is required"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0026 | Source: router-for-me/CLIProxyAPIPlus issue#177 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/177 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#177,https://github.com/router-for-me/CLIProxyAPIPlus/issues/177,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0026
+"Add robust stream/non-stream parity tests for ""Kimi Code support"" across supported providers.",Execution item CP2K-0027 | Source: router-for-me/CLIProxyAPIPlus issue#169 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/169 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#169,https://github.com/router-for-me/CLIProxyAPIPlus/issues/169,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0027
+"Refactor internals touched by ""kiro如何看配额?"" to reduce coupling and improve maintainability.",Execution item CP2K-0028 | Source: router-for-me/CLIProxyAPIPlus issue#165 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/165 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#165,https://github.com/router-for-me/CLIProxyAPIPlus/issues/165,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0028
+"Harden ""kiro反代出现重复输出的情况"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0032 | Source: router-for-me/CLIProxyAPIPlus issue#160 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/160 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#160,https://github.com/router-for-me/CLIProxyAPIPlus/issues/160,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0032
+"Operationalize ""kiro IDC 刷新 token 失败"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0033 | Source: router-for-me/CLIProxyAPIPlus issue#149 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/149 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#149,https://github.com/router-for-me/CLIProxyAPIPlus/issues/149,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0033
+"Improve CLI UX around ""[Feature Request] 请求增加 Kiro 配额的展示功能"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0035 | Source: router-for-me/CLIProxyAPIPlus issue#146 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/146 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPIPlus,issue#146,https://github.com/router-for-me/CLIProxyAPIPlus/issues/146,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0035
+"Follow up ""Routing strategy ""fill-first"" is not working as expected"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0041 | Source: router-for-me/CLIProxyAPIPlus issue#133 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/133 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#133,https://github.com/router-for-me/CLIProxyAPIPlus/issues/133,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0041
+"Harden ""WARN kiro_executor.go:1189 kiro: received 400 error (attempt 1/3), body: {""message"":""Improperly formed request."",""reason"":null}"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0042 | Source: router-for-me/CLIProxyAPIPlus issue#131 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/131 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#131,https://github.com/router-for-me/CLIProxyAPIPlus/issues/131,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0042
+"Operationalize ""CLIProxyApiPlus不支持像CLIProxyApi一样使用ClawCloud云部署吗?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0043 | Source: router-for-me/CLIProxyAPIPlus issue#129 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/129 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPIPlus,issue#129,https://github.com/router-for-me/CLIProxyAPIPlus/issues/129,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0043
+"Generalize ""kiro的social凭证无法刷新过期时间。"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0044 | Source: router-for-me/CLIProxyAPIPlus issue#128 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/128 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPIPlus,issue#128,https://github.com/router-for-me/CLIProxyAPIPlus/issues/128,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0044
+"Prepare safe rollout for ""[Bug]Copilot Premium usage significantly amplified when using amp"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0049 | Source: router-for-me/CLIProxyAPIPlus issue#113 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/113 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#113,https://github.com/router-for-me/CLIProxyAPIPlus/issues/113,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0049
+"Improve CLI UX around ""ADD TRAE IDE support"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0055 | Source: router-for-me/CLIProxyAPIPlus issue#97 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/97 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#97,https://github.com/router-for-me/CLIProxyAPIPlus/issues/97,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0055
+"Improve CLI UX around ""failed to load config: failed to read config file: read /CLIProxyAPI/config.yaml: is a directory"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0065 | Source: router-for-me/CLIProxyAPIPlus issue#81 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/81 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPIPlus,issue#81,https://github.com/router-for-me/CLIProxyAPIPlus/issues/81,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0065
+"Add robust stream/non-stream parity tests for ""Issue with removed parameters - Sequential Thinking Tool Failure (nextThoughtNeeded undefined)"" across supported providers.",Execution item CP2K-0067 | Source: router-for-me/CLIProxyAPIPlus issue#78 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/78 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#78,https://github.com/router-for-me/CLIProxyAPIPlus/issues/78,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0067
+"Standardize naming/metadata affected by ""Claude Code WebSearch fails with 400 error when using Kiro/Amazon Q backend"" across both repos and docs.","Execution item CP2K-0070 | Source: router-for-me/CLIProxyAPIPlus issue#72 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/72 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#72,https://github.com/router-for-me/CLIProxyAPIPlus/issues/72,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0070
+"Follow up ""[BUG] Vision requests fail for ZAI (glm) and Copilot models with missing header / invalid parameter errors"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0071 | Source: router-for-me/CLIProxyAPIPlus issue#69 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/69 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#69,https://github.com/router-for-me/CLIProxyAPIPlus/issues/69,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0071
+"Harden ""怎么更新iflow的模型列表。"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0072 | Source: router-for-me/CLIProxyAPIPlus issue#66 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/66 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#66,https://github.com/router-for-me/CLIProxyAPIPlus/issues/66,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0072
+"Add robust stream/non-stream parity tests for ""plus版本只能自己构建吗?"" across supported providers.",Execution item CP2K-0077 | Source: router-for-me/CLIProxyAPIPlus issue#34 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/34 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#34,https://github.com/router-for-me/CLIProxyAPIPlus/issues/34,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0077
+"Refactor internals touched by ""kiro命令登录没有端口"" to reduce coupling and improve maintainability.",Execution item CP2K-0078 | Source: router-for-me/CLIProxyAPIPlus issue#30 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/30 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPIPlus,issue#30,https://github.com/router-for-me/CLIProxyAPIPlus/issues/30,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0078
+"Generalize ""BUG: Cannot use Claude Models in Codex CLI"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0254 | Source: router-for-me/CLIProxyAPI issue#1671 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1671 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1671,https://github.com/router-for-me/CLIProxyAPI/issues/1671,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0254
+"Prepare safe rollout for ""Concerns regarding the removal of Gemini Web support in the early stages of the project"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0259 | Source: router-for-me/CLIProxyAPI issue#1665 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1665 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1665,https://github.com/router-for-me/CLIProxyAPI/issues/1665,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0259
+"Harden ""logs-max-total-size-mb does not account for per-day subdirectories"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0262 | Source: router-for-me/CLIProxyAPI issue#1657 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1657 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1657,https://github.com/router-for-me/CLIProxyAPI/issues/1657,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0262
+"Generalize """"Please add claude-sonnet-4-6 to registered Claude models. Released 2026-02-15."""" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0264 | Source: router-for-me/CLIProxyAPI issue#1653 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1653 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1653,https://github.com/router-for-me/CLIProxyAPI/issues/1653,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0264
+"Prepare safe rollout for ""Docker Image Error"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0269 | Source: router-for-me/CLIProxyAPI issue#1641 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1641 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1641,https://github.com/router-for-me/CLIProxyAPI/issues/1641,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0269
+"Standardize naming/metadata affected by ""Google blocked my 3 email id at once"" across both repos and docs.","Execution item CP2K-0270 | Source: router-for-me/CLIProxyAPI issue#1637 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1637 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1637,https://github.com/router-for-me/CLIProxyAPI/issues/1637,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0270
+"Follow up ""不同思路的 Antigravity 代理"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0271 | Source: router-for-me/CLIProxyAPI issue#1633 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1633 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1633,https://github.com/router-for-me/CLIProxyAPI/issues/1633,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0271
+"Prepare safe rollout for ""[Feature Request] Session-Aware Hybrid Routing Strategy"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0279 | Source: router-for-me/CLIProxyAPI issue#1617 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1617 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1617,https://github.com/router-for-me/CLIProxyAPI/issues/1617,"board-2000,theme:oauth-and-authentication,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0279
+"Generalize ""不能正确统计minimax-m2.5/kimi-k2.5的Token"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0284 | Source: router-for-me/CLIProxyAPI issue#1607 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1607 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1607,https://github.com/router-for-me/CLIProxyAPI/issues/1607,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0284
+"Add robust stream/non-stream parity tests for ""希望为提供商添加请求优先级功能,最好是以模型为基础来进行请求"" across supported providers.",Execution item CP2K-0287 | Source: router-for-me/CLIProxyAPI issue#1594 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1594 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1594,https://github.com/router-for-me/CLIProxyAPI/issues/1594,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0287
+"Refactor internals touched by ""gpt-5.3-codex-spark error"" to reduce coupling and improve maintainability.",Execution item CP2K-0288 | Source: router-for-me/CLIProxyAPI issue#1593 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1593 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1593,https://github.com/router-for-me/CLIProxyAPI/issues/1593,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0288
+"Harden ""每次更新或者重启 使用统计数据都会清空"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0292 | Source: router-for-me/CLIProxyAPI issue#1589 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1589 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1589,https://github.com/router-for-me/CLIProxyAPI/issues/1589,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0292
+"Generalize ""封号了,pro号没了,又找了个免费认证bot分享出来"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0294 | Source: router-for-me/CLIProxyAPI issue#1587 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1587 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1587,https://github.com/router-for-me/CLIProxyAPI/issues/1587,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0294
+"Improve CLI UX around ""gemini-cli 不能自定请求头吗?"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0295 | Source: router-for-me/CLIProxyAPI issue#1586 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1586 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#1586,https://github.com/router-for-me/CLIProxyAPI/issues/1586,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0295
+"Standardize naming/metadata affected by ""GPT Team认证似乎获取不到5.3 Codex"" across both repos and docs.","Execution item CP2K-0300 | Source: router-for-me/CLIProxyAPI issue#1577 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1577 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1577,https://github.com/router-for-me/CLIProxyAPI/issues/1577,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0300
+"Follow up ""iflow渠道调用会一直返回406状态码"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0301 | Source: router-for-me/CLIProxyAPI issue#1576 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1576 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1576,https://github.com/router-for-me/CLIProxyAPI/issues/1576,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0301
+"Improve CLI UX around ""iflow MiniMax-2.5 is online,please add"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0305 | Source: router-for-me/CLIProxyAPI issue#1567 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1567 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1567,https://github.com/router-for-me/CLIProxyAPI/issues/1567,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0305
+"Prepare safe rollout for ""GLM-5 return empty"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0309 | Source: router-for-me/CLIProxyAPI issue#1560 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1560 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1560,https://github.com/router-for-me/CLIProxyAPI/issues/1560,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0309
+"Harden ""403 error"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0312 | Source: router-for-me/CLIProxyAPI issue#1555 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1555 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1555,https://github.com/router-for-me/CLIProxyAPI/issues/1555,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0312
+"Operationalize ""iflow glm-5 is online,please add"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0313 | Source: router-for-me/CLIProxyAPI issue#1554 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1554 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1554,https://github.com/router-for-me/CLIProxyAPI/issues/1554,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0313
+"Refactor internals touched by ""cursor报错根源"" to reduce coupling and improve maintainability.",Execution item CP2K-0318 | Source: router-for-me/CLIProxyAPI issue#1548 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1548 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1548,https://github.com/router-for-me/CLIProxyAPI/issues/1548,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0318
+"Standardize naming/metadata affected by ""自定义别名在调用的时候404"" across both repos and docs.","Execution item CP2K-0320 | Source: router-for-me/CLIProxyAPI issue#1546 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1546 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1546,https://github.com/router-for-me/CLIProxyAPI/issues/1546,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0320
+"Follow up ""删除iflow提供商的过时模型"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0321 | Source: router-for-me/CLIProxyAPI issue#1545 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1545 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1545,https://github.com/router-for-me/CLIProxyAPI/issues/1545,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0321
+"Improve CLI UX around ""Gemini-3-pro-high Corrupted thought signature"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0325 | Source: router-for-me/CLIProxyAPI issue#1538 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1538 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1538,https://github.com/router-for-me/CLIProxyAPI/issues/1538,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0325
+"Extend docs for ""bug: ""status"": ""INVALID_ARGUMENT"" when using antigravity claude-opus-4-6"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0326 | Source: router-for-me/CLIProxyAPI issue#1535 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1535 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1535,https://github.com/router-for-me/CLIProxyAPI/issues/1535,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0326
+"Refactor internals touched by ""Invalid JSON payload received: Unknown name \""deprecated\"""" to reduce coupling and improve maintainability.",Execution item CP2K-0328 | Source: router-for-me/CLIProxyAPI issue#1531 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1531 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1531,https://github.com/router-for-me/CLIProxyAPI/issues/1531,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0328
+"Standardize naming/metadata affected by ""请求为Windows添加启动自动更新命令"" across both repos and docs.","Execution item CP2K-0330 | Source: router-for-me/CLIProxyAPI issue#1528 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1528 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1528,https://github.com/router-for-me/CLIProxyAPI/issues/1528,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0330
+"Follow up ""反重力逻辑加载失效"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0331 | Source: router-for-me/CLIProxyAPI issue#1526 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1526 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1526,https://github.com/router-for-me/CLIProxyAPI/issues/1526,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0331
+"Harden ""support openai image generations api(/v1/images/generations)"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0332 | Source: router-for-me/CLIProxyAPI issue#1525 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1525 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1525,https://github.com/router-for-me/CLIProxyAPI/issues/1525,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0332
+"Improve CLI UX around ""opus4.6都支持1m的上下文了,请求体什么时候从280K调整下,现在也太小了,动不动就报错"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0335 | Source: router-for-me/CLIProxyAPI issue#1515 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1515 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1515,https://github.com/router-for-me/CLIProxyAPI/issues/1515,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0335
+"Refactor internals touched by ""请求体过大280KB限制和opus 4.6无法调用的问题,啥时候可以修复"" to reduce coupling and improve maintainability.",Execution item CP2K-0338 | Source: router-for-me/CLIProxyAPI issue#1512 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1512 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1512,https://github.com/router-for-me/CLIProxyAPI/issues/1512,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0338
+"Prepare safe rollout for ""502 unknown provider for model gemini-claude-opus-4-6-thinking"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0339 | Source: router-for-me/CLIProxyAPI issue#1510 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1510 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1510,https://github.com/router-for-me/CLIProxyAPI/issues/1510,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0339
+"Operationalize ""Antigravity使用时,设计额度最小阈值,超过停止使用或者切换账号,因为额度多次用尽,会触发 5 天刷新"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0343 | Source: router-for-me/CLIProxyAPI issue#1505 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1505 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1505,https://github.com/router-for-me/CLIProxyAPI/issues/1505,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0343
+"Generalize ""iflow的glm-4.7会返回406"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0344 | Source: router-for-me/CLIProxyAPI issue#1504 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1504 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1504,https://github.com/router-for-me/CLIProxyAPI/issues/1504,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0344
+"Extend docs for ""iflow部分模型增加了签名"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0346 | Source: router-for-me/CLIProxyAPI issue#1501 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1501 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1501,https://github.com/router-for-me/CLIProxyAPI/issues/1501,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0346
+"Add robust stream/non-stream parity tests for ""Qwen Free allocated quota exceeded"" across supported providers.",Execution item CP2K-0347 | Source: router-for-me/CLIProxyAPI issue#1500 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1500 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1500,https://github.com/router-for-me/CLIProxyAPI/issues/1500,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0347
+"Prepare safe rollout for ""为什么我请求了很多次,但是使用统计里仍然显示使用为0呢?"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0349 | Source: router-for-me/CLIProxyAPI issue#1497 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1497 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1497,https://github.com/router-for-me/CLIProxyAPI/issues/1497,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0349
+"Standardize naming/metadata affected by ""为什么配额管理里没有claude pro账号的额度?"" across both repos and docs.","Execution item CP2K-0350 | Source: router-for-me/CLIProxyAPI issue#1496 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1496 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1496,https://github.com/router-for-me/CLIProxyAPI/issues/1496,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0350
+"Follow up ""最近几个版本,好像轮询失效了"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0351 | Source: router-for-me/CLIProxyAPI issue#1495 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1495 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1495,https://github.com/router-for-me/CLIProxyAPI/issues/1495,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0351
+"Harden ""iFlow error"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0352 | Source: router-for-me/CLIProxyAPI issue#1494 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1494 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1494,https://github.com/router-for-me/CLIProxyAPI/issues/1494,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0352
+"Improve CLI UX around ""gemini在cherry studio的openai接口无法控制思考长度"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0355 | Source: router-for-me/CLIProxyAPI issue#1484 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1484 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1484,https://github.com/router-for-me/CLIProxyAPI/issues/1484,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0355
+"Extend docs for ""codex5.3什么时候能获取到啊"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0356 | Source: router-for-me/CLIProxyAPI issue#1482 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1482 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1482,https://github.com/router-for-me/CLIProxyAPI/issues/1482,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0356
+"Harden ""[feat]更新很频繁,可以内置软件更新功能吗"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0362 | Source: router-for-me/CLIProxyAPI issue#1475 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1475 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1475,https://github.com/router-for-me/CLIProxyAPI/issues/1475,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0362
+"Operationalize ""Cannot alias multiple models to single model only on Antigravity"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0363 | Source: router-for-me/CLIProxyAPI issue#1472 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1472 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1472,https://github.com/router-for-me/CLIProxyAPI/issues/1472,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0363
+"Generalize ""无法识别图片"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0364 | Source: router-for-me/CLIProxyAPI issue#1469 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1469 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1469,https://github.com/router-for-me/CLIProxyAPI/issues/1469,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0364
+"Improve CLI UX around ""Support for Antigravity Opus 4.6"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0365 | Source: router-for-me/CLIProxyAPI issue#1468 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1468 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1468,https://github.com/router-for-me/CLIProxyAPI/issues/1468,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0365
+"Add robust stream/non-stream parity tests for ""antigravity用不了"" across supported providers.",Execution item CP2K-0367 | Source: router-for-me/CLIProxyAPI issue#1461 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1461 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1461,https://github.com/router-for-me/CLIProxyAPI/issues/1461,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0367
+"Prepare safe rollout for ""轮询会无差别轮询即便某个账号在很久前已经空配额"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0369 | Source: router-for-me/CLIProxyAPI issue#1456 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1456 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1456,https://github.com/router-for-me/CLIProxyAPI/issues/1456,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0369
+"Refactor internals touched by ""Feature request: Add support for claude opus 4.6"" to reduce coupling and improve maintainability.",Execution item CP2K-0378 | Source: router-for-me/CLIProxyAPI issue#1439 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1439 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPI,issue#1439,https://github.com/router-for-me/CLIProxyAPI/issues/1439,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0378
+"Prepare safe rollout for ""Feature request: Add support for perplexity"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0379 | Source: router-for-me/CLIProxyAPI issue#1438 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1438 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1438,https://github.com/router-for-me/CLIProxyAPI/issues/1438,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0379
+"Harden ""希望支持国产模型如glm kimi minimax 的 proxy"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0382 | Source: router-for-me/CLIProxyAPI issue#1432 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1432 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1432,https://github.com/router-for-me/CLIProxyAPI/issues/1432,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0382
+"Operationalize ""关闭某个认证文件后没有持久化处理"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0383 | Source: router-for-me/CLIProxyAPI issue#1431 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1431 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1431,https://github.com/router-for-me/CLIProxyAPI/issues/1431,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0383
+"Improve CLI UX around ""大佬能不能把使用统计数据持久化?"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0385 | Source: router-for-me/CLIProxyAPI issue#1427 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1427 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1427,https://github.com/router-for-me/CLIProxyAPI/issues/1427,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0385
+"Extend docs for ""[BUG] 使用 Google 官方 Python SDK时思考设置无法生效"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0386 | Source: router-for-me/CLIProxyAPI issue#1426 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1426 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1426,https://github.com/router-for-me/CLIProxyAPI/issues/1426,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0386
+"Refactor internals touched by ""Add Container Tags / Project Scoping for Memory Organization"" to reduce coupling and improve maintainability.",Execution item CP2K-0388 | Source: router-for-me/CLIProxyAPI issue#1420 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1420 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1420,https://github.com/router-for-me/CLIProxyAPI/issues/1420,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0388
+"Harden ""Create OpenAI-Compatible Memory Tools Wrapper"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0392 | Source: router-for-me/CLIProxyAPI issue#1416 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1416 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1416,https://github.com/router-for-me/CLIProxyAPI/issues/1416,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0392
+"Improve CLI UX around ""Add Notion Connector for Memory Ingestion"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0395 | Source: router-for-me/CLIProxyAPI issue#1413 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1413 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1413,https://github.com/router-for-me/CLIProxyAPI/issues/1413,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0395
+"Extend docs for ""Add Strict Schema Mode for OpenAI Function Calling"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0396 | Source: router-for-me/CLIProxyAPI issue#1412 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1412 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1412,https://github.com/router-for-me/CLIProxyAPI/issues/1412,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0396
+"Add robust stream/non-stream parity tests for ""Add Conversation Tracking Support for Chat History"" across supported providers.",Execution item CP2K-0397 | Source: router-for-me/CLIProxyAPI issue#1411 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1411 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1411,https://github.com/router-for-me/CLIProxyAPI/issues/1411,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0397
+"Harden ""反代反重力的 claude 在 opencode 中使用出现 unexpected EOF 错误"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0402 | Source: router-for-me/CLIProxyAPI issue#1400 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1400 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1400,https://github.com/router-for-me/CLIProxyAPI/issues/1400,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0402
+"Improve CLI UX around ""在 Visual Studio Code无法使用过工具"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0405 | Source: router-for-me/CLIProxyAPI issue#1405 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1405 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1405,https://github.com/router-for-me/CLIProxyAPI/issues/1405,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0405
+"Standardize naming/metadata affected by ""[antigravity] 500 Internal error and 403 Verification Required for multiple accounts"" across both repos and docs.","Execution item CP2K-0410 | Source: router-for-me/CLIProxyAPI issue#1389 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1389 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1389,https://github.com/router-for-me/CLIProxyAPI/issues/1389,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0410
+"Follow up ""Antigravity的配额管理,账号没有订阅资格了,还是在显示模型额度"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0411 | Source: router-for-me/CLIProxyAPI issue#1388 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1388 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1388,https://github.com/router-for-me/CLIProxyAPI/issues/1388,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0411
+"Harden ""大佬,可以加一个apikey的过期时间不"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0412 | Source: router-for-me/CLIProxyAPI issue#1387 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1387 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1387,https://github.com/router-for-me/CLIProxyAPI/issues/1387,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0412
+"Harden ""Feature Request: 有没有可能支持Trea中国版?"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0422 | Source: router-for-me/CLIProxyAPI issue#1373 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1373 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1373,https://github.com/router-for-me/CLIProxyAPI/issues/1373,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0422
+"Operationalize ""Bug: Auto-injected cache_control exceeds Anthropic API's 4-block limit"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0423 | Source: router-for-me/CLIProxyAPI issue#1372 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1372 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1372,https://github.com/router-for-me/CLIProxyAPI/issues/1372,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0423
+"Add robust stream/non-stream parity tests for ""Kimi For Coding 好像被 ban 了"" across supported providers.",Execution item CP2K-0427 | Source: router-for-me/CLIProxyAPI issue#1327 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1327 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1327,https://github.com/router-for-me/CLIProxyAPI/issues/1327,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0427
+"Operationalize ""This version of Antigravity is no longer supported. Please update to receive the latest features!"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0433 | Source: router-for-me/CLIProxyAPI issue#1316 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1316 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1316,https://github.com/router-for-me/CLIProxyAPI/issues/1316,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0433
+"Generalize ""无法轮询请求反重力和gemini cli"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0434 | Source: router-for-me/CLIProxyAPI issue#1315 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1315 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1315,https://github.com/router-for-me/CLIProxyAPI/issues/1315,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0434
+"Refactor internals touched by ""Feature Request: Add ""Sequential"" routing strategy to optimize account quota usage"" to reduce coupling and improve maintainability.",Execution item CP2K-0438 | Source: router-for-me/CLIProxyAPI issue#1304 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1304 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1304,https://github.com/router-for-me/CLIProxyAPI/issues/1304,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0438
+"Generalize ""gemini-3-pro-image-preview api 返回500 我看log中报500的都基本在1分钟左右"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0444 | Source: router-for-me/CLIProxyAPI issue#1291 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1291 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1291,https://github.com/router-for-me/CLIProxyAPI/issues/1291,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0444
+"Improve CLI UX around ""希望代理设置 能为多个不同的认证文件分别配置不同的代理 URL"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0445 | Source: router-for-me/CLIProxyAPI issue#1290 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1290 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1290,https://github.com/router-for-me/CLIProxyAPI/issues/1290,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0445
+"Standardize naming/metadata affected by ""[功能建议] 建议实现统计数据持久化,免去更新时的手动导出导入"" across both repos and docs.","Execution item CP2K-0450 | Source: router-for-me/CLIProxyAPI issue#1282 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1282 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1282,https://github.com/router-for-me/CLIProxyAPI/issues/1282,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0450
+"Follow up ""反重力的banana pro额度一直无法恢复"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0451 | Source: router-for-me/CLIProxyAPI issue#1281 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1281 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1281,https://github.com/router-for-me/CLIProxyAPI/issues/1281,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0451
+"Operationalize ""TPM/RPM过载,但是等待半小时后依旧不行"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0453 | Source: router-for-me/CLIProxyAPI issue#1278 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1278 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1278,https://github.com/router-for-me/CLIProxyAPI/issues/1278,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0453
+"Generalize ""支持codex的 /personality"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0454 | Source: router-for-me/CLIProxyAPI issue#1273 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1273 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1273,https://github.com/router-for-me/CLIProxyAPI/issues/1273,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0454
+"Improve CLI UX around ""Antigravity 可用模型数为 0"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0455 | Source: router-for-me/CLIProxyAPI issue#1270 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1270 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1270,https://github.com/router-for-me/CLIProxyAPI/issues/1270,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0455
+"Add robust stream/non-stream parity tests for ""[Improvement] Persist Management UI assets in a dedicated volume"" across supported providers.",Execution item CP2K-0457 | Source: router-for-me/CLIProxyAPI issue#1268 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1268 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1268,https://github.com/router-for-me/CLIProxyAPI/issues/1268,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0457
+"Refactor internals touched by ""[Feature Request] Provide optional standalone UI service in docker-compose"" to reduce coupling and improve maintainability.",Execution item CP2K-0458 | Source: router-for-me/CLIProxyAPI issue#1267 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1267 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1267,https://github.com/router-for-me/CLIProxyAPI/issues/1267,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0458
+"Follow up ""建议增加根据额度阈值跳过轮询凭证功能"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0461 | Source: router-for-me/CLIProxyAPI issue#1263 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1263 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1263,https://github.com/router-for-me/CLIProxyAPI/issues/1263,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0461
+"Harden ""[Bug] Antigravity Gemini API 报错:enum 仅允许用于 STRING 类型"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0462 | Source: router-for-me/CLIProxyAPI issue#1260 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1260 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1260,https://github.com/router-for-me/CLIProxyAPI/issues/1260,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0462
+"Operationalize ""好像codebuddy也能有命令行也能用,能加进去吗"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0463 | Source: router-for-me/CLIProxyAPI issue#1259 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1259 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1259,https://github.com/router-for-me/CLIProxyAPI/issues/1259,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0463
+"Extend docs for ""iflow Cookies 登陆好像不能用"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0466 | Source: router-for-me/CLIProxyAPI issue#1254 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1254 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1254,https://github.com/router-for-me/CLIProxyAPI/issues/1254,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0466
+"Follow up ""6.6.109之前的版本都可以开启iflow的deepseek3.2,qwen3-max-preview思考,6.7.xx就不能了"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0471 | Source: router-for-me/CLIProxyAPI issue#1245 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1245 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1245,https://github.com/router-for-me/CLIProxyAPI/issues/1245,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0471
+"Harden ""Bug: Anthropic API 400 Error - Missing 'thinking' block before 'tool_use'"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0472 | Source: router-for-me/CLIProxyAPI issue#1244 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1244 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1244,https://github.com/router-for-me/CLIProxyAPI/issues/1244,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0472
+"Operationalize ""v6.7.24,反重力的gemini-3,调用API有bug"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0473 | Source: router-for-me/CLIProxyAPI issue#1243 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1243 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1243,https://github.com/router-for-me/CLIProxyAPI/issues/1243,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0473
+"Generalize ""How to reset /models"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0474 | Source: router-for-me/CLIProxyAPI issue#1240 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1240 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1240,https://github.com/router-for-me/CLIProxyAPI/issues/1240,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0474
+"Add robust stream/non-stream parity tests for ""更新到最新版本之后,出现了503的报错"" across supported providers.",Execution item CP2K-0477 | Source: router-for-me/CLIProxyAPI issue#1224 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1224 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1224,https://github.com/router-for-me/CLIProxyAPI/issues/1224,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0477
+"Refactor internals touched by ""能不能增加一个配额保护"" to reduce coupling and improve maintainability.",Execution item CP2K-0478 | Source: router-for-me/CLIProxyAPI issue#1223 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1223 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1223,https://github.com/router-for-me/CLIProxyAPI/issues/1223,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0478
+"Standardize naming/metadata affected by ""无法关闭谷歌的某个具体的账号的使用权限"" across both repos and docs.","Execution item CP2K-0480 | Source: router-for-me/CLIProxyAPI issue#1219 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1219 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1219,https://github.com/router-for-me/CLIProxyAPI/issues/1219,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0480
+"Follow up ""docker中的最新版本不是lastest"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0481 | Source: router-for-me/CLIProxyAPI issue#1218 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1218 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1218,https://github.com/router-for-me/CLIProxyAPI/issues/1218,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0481
+"Add robust stream/non-stream parity tests for ""[功能需求] 认证文件增加屏蔽模型跳过轮询"" across supported providers.",Execution item CP2K-0487 | Source: router-for-me/CLIProxyAPI issue#1197 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1197 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1197,https://github.com/router-for-me/CLIProxyAPI/issues/1197,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0487
+"Refactor internals touched by ""可以出个检查更新吗,不然每次都要拉下载然后重启"" to reduce coupling and improve maintainability.",Execution item CP2K-0488 | Source: router-for-me/CLIProxyAPI issue#1195 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1195 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1195,https://github.com/router-for-me/CLIProxyAPI/issues/1195,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0488
+"Prepare safe rollout for ""antigravity可以增加配额保护吗 剩余额度多少的时候不在使用"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0489 | Source: router-for-me/CLIProxyAPI issue#1194 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1194 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1194,https://github.com/router-for-me/CLIProxyAPI/issues/1194,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0489
+"Follow up ""建议在使用Antigravity 额度时,设计额度阈值自定义功能"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0491 | Source: router-for-me/CLIProxyAPI issue#1192 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1192 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1192,https://github.com/router-for-me/CLIProxyAPI/issues/1192,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0491
+"Harden ""Antigravity: rev19-uic3-1p (Alias: gemini-2.5-computer-use-preview-10-2025) nolonger useable"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0492 | Source: router-for-me/CLIProxyAPI issue#1190 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1190 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1190,https://github.com/router-for-me/CLIProxyAPI/issues/1190,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0492
+"Improve CLI UX around ""Model combo support"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0495 | Source: router-for-me/CLIProxyAPI issue#1184 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1184 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1184,https://github.com/router-for-me/CLIProxyAPI/issues/1184,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0495
+"Refactor internals touched by ""gemini api 使用openai 兼容的url 使用时 tool_call 有问题"" to reduce coupling and improve maintainability.",Execution item CP2K-0498 | Source: router-for-me/CLIProxyAPI issue#1168 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1168 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1168,https://github.com/router-for-me/CLIProxyAPI/issues/1168,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0498
+"Standardize naming/metadata affected by ""新增微软copilot GPT5.2codex模型"" across both repos and docs.","Execution item CP2K-0500 | Source: router-for-me/CLIProxyAPI issue#1166 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1166 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1166,https://github.com/router-for-me/CLIProxyAPI/issues/1166,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0500
+"Follow up ""Tool Calling Not Working in Cursor When Using Claude via CLIPROXYAPI + Antigravity Proxy"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0501 | Source: router-for-me/CLIProxyAPI issue#1165 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1165 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1165,https://github.com/router-for-me/CLIProxyAPI/issues/1165,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0501
+"Harden ""[Improvement] Allow multiple model mappings to have the same Alias"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0502 | Source: router-for-me/CLIProxyAPI issue#1163 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1163 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1163,https://github.com/router-for-me/CLIProxyAPI/issues/1163,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0502
+"Operationalize ""Antigravity模型在Cursor无法使用工具"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0503 | Source: router-for-me/CLIProxyAPI issue#1162 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1162 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1162,https://github.com/router-for-me/CLIProxyAPI/issues/1162,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0503
+"Generalize ""Gemini"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0504 | Source: router-for-me/CLIProxyAPI issue#1161 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1161 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1161,https://github.com/router-for-me/CLIProxyAPI/issues/1161,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0504
+"Improve CLI UX around ""Add support proxy per account"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0505 | Source: router-for-me/CLIProxyAPI issue#1160 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1160 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#1160,https://github.com/router-for-me/CLIProxyAPI/issues/1160,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0505
+"Add robust stream/non-stream parity tests for ""希望支持claude api"" across supported providers.",Execution item CP2K-0507 | Source: router-for-me/CLIProxyAPI issue#1157 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1157 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1157,https://github.com/router-for-me/CLIProxyAPI/issues/1157,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0507
+"Prepare safe rollout for ""nvidia今天开始超时了,昨天刚配置还好好的"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0509 | Source: router-for-me/CLIProxyAPI issue#1154 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1154 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1154,https://github.com/router-for-me/CLIProxyAPI/issues/1154,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0509
+"Follow up ""日志怎么不记录了"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0511 | Source: router-for-me/CLIProxyAPI issue#1152 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1152 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1152,https://github.com/router-for-me/CLIProxyAPI/issues/1152,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0511
+"Harden ""v6.7.16无法反重力的gemini-3-pro-preview"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0512 | Source: router-for-me/CLIProxyAPI issue#1150 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1150 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1150,https://github.com/router-for-me/CLIProxyAPI/issues/1150,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0512
+"Generalize ""没有单个凭证 启用/禁用 的切换开关吗"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0514 | Source: router-for-me/CLIProxyAPI issue#1148 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1148 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1148,https://github.com/router-for-me/CLIProxyAPI/issues/1148,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0514
+"Refactor internals touched by ""Feature Request: Add support for Cursor IDE as a backend/provider"" to reduce coupling and improve maintainability.",Execution item CP2K-0518 | Source: router-for-me/CLIProxyAPI issue#1138 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1138 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1138,https://github.com/router-for-me/CLIProxyAPI/issues/1138,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0518
+"Follow up ""model stops by itself does not proceed to the next step"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0521 | Source: router-for-me/CLIProxyAPI issue#1134 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1134 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1134,https://github.com/router-for-me/CLIProxyAPI/issues/1134,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0521
+"Operationalize ""希望供应商能够加上微软365"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0523 | Source: router-for-me/CLIProxyAPI issue#1128 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1128 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1128,https://github.com/router-for-me/CLIProxyAPI/issues/1128,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0523
+"Generalize ""codex的config.toml文件在哪里修改?"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0524 | Source: router-for-me/CLIProxyAPI issue#1127 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1127 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#1127,https://github.com/router-for-me/CLIProxyAPI/issues/1127,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0524
+"Extend docs for ""使用Amp CLI的Painter工具画图显示prompt is too long"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0526 | Source: router-for-me/CLIProxyAPI issue#1123 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1123 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1123,https://github.com/router-for-me/CLIProxyAPI/issues/1123,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0526
+"Refactor internals touched by ""kiro使用orchestrator 模式调用的时候会报错400"" to reduce coupling and improve maintainability.",Execution item CP2K-0528 | Source: router-for-me/CLIProxyAPI issue#1120 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1120 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1120,https://github.com/router-for-me/CLIProxyAPI/issues/1120,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0528
+"Standardize naming/metadata affected by ""添加智谱OpenAI兼容提供商获取模型和测试会失败"" across both repos and docs.","Execution item CP2K-0530 | Source: router-for-me/CLIProxyAPI issue#1118 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1118 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1118,https://github.com/router-for-me/CLIProxyAPI/issues/1118,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0530
+"Generalize ""Error 'Expected thinking or redacted_thinking' after upgrade to v6.7.12"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0534 | Source: router-for-me/CLIProxyAPI issue#1109 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1109 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1109,https://github.com/router-for-me/CLIProxyAPI/issues/1109,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0534
+"Refactor internals touched by ""ℹ ⚠️ Response stopped due to malformed function call. 在 Gemini CLI 中 频繁出现这个提示,对话中断"" to reduce coupling and improve maintainability.",Execution item CP2K-0538 | Source: router-for-me/CLIProxyAPI issue#1100 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1100 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1100,https://github.com/router-for-me/CLIProxyAPI/issues/1100,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0538
+"Prepare safe rollout for ""【功能请求】添加禁用项目按键(或优先级逻辑)"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0539 | Source: router-for-me/CLIProxyAPI issue#1098 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1098 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1098,https://github.com/router-for-me/CLIProxyAPI/issues/1098,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0539
+"Standardize naming/metadata affected by ""有支持豆包的反代吗"" across both repos and docs.","Execution item CP2K-0540 | Source: router-for-me/CLIProxyAPI issue#1097 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1097 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1097,https://github.com/router-for-me/CLIProxyAPI/issues/1097,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0540
+"Improve CLI UX around ""命令行中返回结果一切正常,但是在cherry studio中找不到模型"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0545 | Source: router-for-me/CLIProxyAPI issue#1090 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1090 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1090,https://github.com/router-for-me/CLIProxyAPI/issues/1090,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0545
+"Extend docs for ""[Feedback #1044] 尝试通过 Payload 设置 Gemini 3 宽高比失败 (Google API 400 Error)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0546 | Source: router-for-me/CLIProxyAPI issue#1089 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1089 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1089,https://github.com/router-for-me/CLIProxyAPI/issues/1089,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0546
+"Add robust stream/non-stream parity tests for ""反重力2API opus模型 Error searching files"" across supported providers.",Execution item CP2K-0547 | Source: router-for-me/CLIProxyAPI issue#1086 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1086 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1086,https://github.com/router-for-me/CLIProxyAPI/issues/1086,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0547
+"Standardize naming/metadata affected by ""大香蕉生图无图片返回"" across both repos and docs.","Execution item CP2K-0550 | Source: router-for-me/CLIProxyAPI issue#1083 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1083 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1083,https://github.com/router-for-me/CLIProxyAPI/issues/1083,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0550
+"Extend docs for ""Antigravity: MCP 工具的数字类型 enum 值导致 INVALID_ARGUMENT 错误"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0556 | Source: router-for-me/CLIProxyAPI issue#1075 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1075 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1075,https://github.com/router-for-me/CLIProxyAPI/issues/1075,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0556
+"Add robust stream/non-stream parity tests for ""认证文件管理可否添加一键导出所有凭证的按钮"" across supported providers.",Execution item CP2K-0557 | Source: router-for-me/CLIProxyAPI issue#1074 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1074 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1074,https://github.com/router-for-me/CLIProxyAPI/issues/1074,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0557
+"Improve CLI UX around ""最新版claude 2.1.9调用后,会在后台刷出大量warn;持续输出"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0565 | Source: router-for-me/CLIProxyAPI issue#1061 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1061 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1061,https://github.com/router-for-me/CLIProxyAPI/issues/1061,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0565
+"Extend docs for ""Antigravity 针对Pro账号的 Claude/GPT 模型有周限额了吗?"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0566 | Source: router-for-me/CLIProxyAPI issue#1060 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1060 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1060,https://github.com/router-for-me/CLIProxyAPI/issues/1060,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0566
+"Refactor internals touched by ""希望可以增加antigravity授权的配额保护功能"" to reduce coupling and improve maintainability.",Execution item CP2K-0568 | Source: router-for-me/CLIProxyAPI issue#1058 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1058 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1058,https://github.com/router-for-me/CLIProxyAPI/issues/1058,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0568
+"Follow up ""codex-instructions-enabled为true时,在codex-cli中使用是否会重复注入instructions?"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0571 | Source: router-for-me/CLIProxyAPI issue#1055 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1055 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#1055,https://github.com/router-for-me/CLIProxyAPI/issues/1055,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0571
+"Harden ""cliproxyapi多个账户切换(因限流/账号问题), 导致客户端直接报错"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0572 | Source: router-for-me/CLIProxyAPI issue#1053 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1053 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1053,https://github.com/router-for-me/CLIProxyAPI/issues/1053,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0572
+"Prepare safe rollout for ""image模型能否在cliproxyapi中直接区分2k,4k"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0579 | Source: router-for-me/CLIProxyAPI issue#1044 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1044 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#1044,https://github.com/router-for-me/CLIProxyAPI/issues/1044,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0579
+"Follow up ""qwen进行模型映射时提示 更新模型映射失败: channel not found"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0581 | Source: router-for-me/CLIProxyAPI issue#1042 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1042 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1042,https://github.com/router-for-me/CLIProxyAPI/issues/1042,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0581
+"Harden ""升级到最新版本后,认证文件页面提示请升级CPA版本"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0582 | Source: router-for-me/CLIProxyAPI issue#1041 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1041 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1041,https://github.com/router-for-me/CLIProxyAPI/issues/1041,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0582
+"Operationalize ""服务启动后,终端连续不断打印相同内容"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0583 | Source: router-for-me/CLIProxyAPI issue#1040 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1040 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1040,https://github.com/router-for-me/CLIProxyAPI/issues/1040,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0583
+"Generalize ""Issue"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0584 | Source: router-for-me/CLIProxyAPI issue#1039 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1039 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1039,https://github.com/router-for-me/CLIProxyAPI/issues/1039,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0584
+"Improve CLI UX around ""Antigravity error to get quota limit"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0585 | Source: router-for-me/CLIProxyAPI issue#1038 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1038 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1038,https://github.com/router-for-me/CLIProxyAPI/issues/1038,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0585
+"Refactor internals touched by ""UltraAI Workspace account error: project_id cannot be retrieved"" to reduce coupling and improve maintainability.",Execution item CP2K-0588 | Source: router-for-me/CLIProxyAPI issue#1034 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1034 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1034,https://github.com/router-for-me/CLIProxyAPI/issues/1034,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0588
+"Follow up ""希望能够通过配置文件设定API调用超时时间"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0591 | Source: router-for-me/CLIProxyAPI issue#1029 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1029 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1029,https://github.com/router-for-me/CLIProxyAPI/issues/1029,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0591
+"Harden ""Calling gpt-codex-5.2 returns 400 error: “Unsupported parameter: safety_identifier”"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0592 | Source: router-for-me/CLIProxyAPI issue#1028 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1028 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1028,https://github.com/router-for-me/CLIProxyAPI/issues/1028,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0592
+"Operationalize ""【建议】能否加一下模型配额优先级?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0593 | Source: router-for-me/CLIProxyAPI issue#1027 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1027 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1027,https://github.com/router-for-me/CLIProxyAPI/issues/1027,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0593
+"Generalize ""求问,配额显示并不准确"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0594 | Source: router-for-me/CLIProxyAPI issue#1026 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1026 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1026,https://github.com/router-for-me/CLIProxyAPI/issues/1026,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0594
+"Extend docs for ""[Feature] 提供更新命令"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0596 | Source: router-for-me/CLIProxyAPI issue#1023 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1023 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPI,issue#1023,https://github.com/router-for-me/CLIProxyAPI/issues/1023,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0596
+"Add robust stream/non-stream parity tests for ""授权文件可以拷贝使用"" across supported providers.",Execution item CP2K-0597 | Source: router-for-me/CLIProxyAPI issue#1022 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1022 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#1022,https://github.com/router-for-me/CLIProxyAPI/issues/1022,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0597
+"Prepare safe rollout for ""【建议】就算开了日志也无法区别为什么新加的这个账号错误的原因"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0599 | Source: router-for-me/CLIProxyAPI issue#1020 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1020 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1020,https://github.com/router-for-me/CLIProxyAPI/issues/1020,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0599
+"Standardize naming/metadata affected by ""每天早上都报错 错误: Failed to call gemini-3-pro-preview model: unknown provider for model gemini-3-pro-preview 要重新删除账号重新登录,"" across both repos and docs.","Execution item CP2K-0600 | Source: router-for-me/CLIProxyAPI issue#1019 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1019 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1019,https://github.com/router-for-me/CLIProxyAPI/issues/1019,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0600
+"Harden ""Bug: CLIproxyAPI returns Prompt is too long (need trim history)"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0602 | Source: router-for-me/CLIProxyAPI issue#1014 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1014 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1014,https://github.com/router-for-me/CLIProxyAPI/issues/1014,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0602
+"Generalize ""使用gemini-3-pro-image-preview 模型,生成不了图片"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0604 | Source: router-for-me/CLIProxyAPI issue#1012 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1012 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1012,https://github.com/router-for-me/CLIProxyAPI/issues/1012,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0604
+"Extend docs for ""[Bug] Missing mandatory tool_use.id in request payload causing failure on subsequent tool calls"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0606 | Source: router-for-me/CLIProxyAPI issue#1009 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1009 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1009,https://github.com/router-for-me/CLIProxyAPI/issues/1009,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0606
+"Operationalize ""gemini 3 missing field"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0613 | Source: router-for-me/CLIProxyAPI issue#1002 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1002 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1002,https://github.com/router-for-me/CLIProxyAPI/issues/1002,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0613
+"Add robust stream/non-stream parity tests for ""Gemini CLI 认证api,不支持gemini 3"" across supported providers.",Execution item CP2K-0617 | Source: router-for-me/CLIProxyAPI issue#996 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/996 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#996,https://github.com/router-for-me/CLIProxyAPI/issues/996,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0617
+"Refactor internals touched by ""配额管理显示不正常。"" to reduce coupling and improve maintainability.",Execution item CP2K-0618 | Source: router-for-me/CLIProxyAPI issue#995 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/995 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#995,https://github.com/router-for-me/CLIProxyAPI/issues/995,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0618
+"Prepare safe rollout for ""使用oh my opencode的时候subagent调用不积极"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0619 | Source: router-for-me/CLIProxyAPI issue#992 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/992 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#992,https://github.com/router-for-me/CLIProxyAPI/issues/992,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0619
+"Standardize naming/metadata affected by ""A tool for AmpCode agent to turn on off free mode to enjoy Oracle, Websearch by free credits without seeing ads to much"" across both repos and docs.","Execution item CP2K-0620 | Source: router-for-me/CLIProxyAPI issue#990 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/990 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#990,https://github.com/router-for-me/CLIProxyAPI/issues/990,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0620
+"Harden ""Codex callback URL仅显示:http://localhost:1455/success"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0622 | Source: router-for-me/CLIProxyAPI issue#988 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/988 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#988,https://github.com/router-for-me/CLIProxyAPI/issues/988,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0622
+"Operationalize ""【建议】在CPA webui中实现禁用某个特定的凭证"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0623 | Source: router-for-me/CLIProxyAPI issue#987 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/987 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#987,https://github.com/router-for-me/CLIProxyAPI/issues/987,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0623
+"Standardize naming/metadata affected by ""When using the amp cli with gemini 3 pro, after thinking, nothing happens"" across both repos and docs.","Execution item CP2K-0630 | Source: router-for-me/CLIProxyAPI issue#977 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/977 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#977,https://github.com/router-for-me/CLIProxyAPI/issues/977,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0630
+"Harden ""fill-first strategy does not take effect (all accounts remain at 99%)"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0632 | Source: router-for-me/CLIProxyAPI issue#974 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/974 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#974,https://github.com/router-for-me/CLIProxyAPI/issues/974,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0632
+"Generalize ""feat: Enhanced Request Logging with Metadata and Management API for Observability"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0634 | Source: router-for-me/CLIProxyAPI issue#972 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/972 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#972,https://github.com/router-for-me/CLIProxyAPI/issues/972,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0634
+"Improve CLI UX around ""Antigravity with opus 4,5 keeps giving rate limits error for no reason."" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0635 | Source: router-for-me/CLIProxyAPI issue#970 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/970 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#970,https://github.com/router-for-me/CLIProxyAPI/issues/970,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0635
+"Extend docs for ""exhausted没被重试or跳过,被传下来了"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0636 | Source: router-for-me/CLIProxyAPI issue#968 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/968 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#968,https://github.com/router-for-me/CLIProxyAPI/issues/968,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0636
+"Standardize naming/metadata affected by ""反重力反代在opencode不支持,问话回答一下就断"" across both repos and docs.","Execution item CP2K-0640 | Source: router-for-me/CLIProxyAPI issue#962 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/962 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#962,https://github.com/router-for-me/CLIProxyAPI/issues/962,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0640
+"Harden ""建议优化轮询逻辑,同一账号额度用完刷新后作为第二优先级轮询"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0642 | Source: router-for-me/CLIProxyAPI issue#959 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/959 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#959,https://github.com/router-for-me/CLIProxyAPI/issues/959,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0642
+"Refactor internals touched by ""[Bug]反代 Antigravity 使用Claude Code 时,特定请求持续无响应导致 504 Gateway Timeout"" to reduce coupling and improve maintainability.",Execution item CP2K-0648 | Source: router-for-me/CLIProxyAPI issue#951 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/951 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#951,https://github.com/router-for-me/CLIProxyAPI/issues/951,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0648
+"Harden ""内存占用太高,用了1.5g"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0652 | Source: router-for-me/CLIProxyAPI issue#944 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/944 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#944,https://github.com/router-for-me/CLIProxyAPI/issues/944,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0652
+"Improve CLI UX around ""现有指令会让 Gemini 产生误解,无法真正忽略前置系统提示"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0655 | Source: router-for-me/CLIProxyAPI issue#940 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/940 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#940,https://github.com/router-for-me/CLIProxyAPI/issues/940,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0655
+"Prepare safe rollout for ""能不能支持UA伪装?"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0659 | Source: router-for-me/CLIProxyAPI issue#933 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/933 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#933,https://github.com/router-for-me/CLIProxyAPI/issues/933,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0659
+"Standardize naming/metadata affected by ""[features request] 恳请CPA团队能否增加KIRO的反代模式?Could you add a reverse proxy api to KIRO?"" across both repos and docs.","Execution item CP2K-0660 | Source: router-for-me/CLIProxyAPI issue#932 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/932 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#932,https://github.com/router-for-me/CLIProxyAPI/issues/932,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0660
+"Generalize ""[Bug] 400 error on Claude Code internal requests when thinking is enabled - assistant message missing thinking block"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0664 | Source: router-for-me/CLIProxyAPI issue#928 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/928 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#928,https://github.com/router-for-me/CLIProxyAPI/issues/928,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0664
+"Refactor internals touched by ""希望能自定义系统提示,比如自定义前缀"" to reduce coupling and improve maintainability.",Execution item CP2K-0668 | Source: router-for-me/CLIProxyAPI issue#922 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/922 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#922,https://github.com/router-for-me/CLIProxyAPI/issues/922,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0668
+"Standardize naming/metadata affected by ""能不能添加功能,禁用某些配置文件"" across both repos and docs.","Execution item CP2K-0670 | Source: router-for-me/CLIProxyAPI issue#919 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/919 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#919,https://github.com/router-for-me/CLIProxyAPI/issues/919,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0670
+"Harden ""API密钥→特定配额文件"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0672 | Source: router-for-me/CLIProxyAPI issue#915 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/915 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#915,https://github.com/router-for-me/CLIProxyAPI/issues/915,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0672
+"Generalize ""error on claude code"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0674 | Source: router-for-me/CLIProxyAPI issue#913 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/913 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#913,https://github.com/router-for-me/CLIProxyAPI/issues/913,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0674
+"Improve CLI UX around ""反重力Claude修好后,大香蕉不行了"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0675 | Source: router-for-me/CLIProxyAPI issue#912 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/912 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#912,https://github.com/router-for-me/CLIProxyAPI/issues/912,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0675
+"Extend docs for ""看到有人发了一个更短的提示词"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0676 | Source: router-for-me/CLIProxyAPI issue#911 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/911 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#911,https://github.com/router-for-me/CLIProxyAPI/issues/911,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0676
+"Follow up ""更新到最新版本后,自定义 System Prompt 无效"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0681 | Source: router-for-me/CLIProxyAPI issue#905 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/905 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#905,https://github.com/router-for-me/CLIProxyAPI/issues/905,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0681
+"Operationalize ""有人遇到相同问题么?Resource has been exhausted (e.g. check quota)"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0683 | Source: router-for-me/CLIProxyAPI issue#903 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/903 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#903,https://github.com/router-for-me/CLIProxyAPI/issues/903,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0683
+"Extend docs for ""[feat]自动优化Antigravity的quota刷新时间选项"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0686 | Source: router-for-me/CLIProxyAPI issue#895 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/895 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#895,https://github.com/router-for-me/CLIProxyAPI/issues/895,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0686
+"Refactor internals touched by ""支持包含模型配置"" to reduce coupling and improve maintainability.",Execution item CP2K-0688 | Source: router-for-me/CLIProxyAPI issue#892 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/892 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#892,https://github.com/router-for-me/CLIProxyAPI/issues/892,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0688
+"Harden ""新版本有超时Bug,切换回老版本没问题"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0692 | Source: router-for-me/CLIProxyAPI issue#886 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/886 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#886,https://github.com/router-for-me/CLIProxyAPI/issues/886,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0692
+"Improve CLI UX around ""Claude Code Web Search doesn’t work"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0695 | Source: router-for-me/CLIProxyAPI issue#883 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/883 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,testing-and-quality,yes,issue,router-for-me/CLIProxyAPI,issue#883,https://github.com/router-for-me/CLIProxyAPI/issues/883,"board-2000,theme:testing-and-quality,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0695
+"Refactor internals touched by ""antigravity and gemini cli duplicated model names"" to reduce coupling and improve maintainability.",Execution item CP2K-0698 | Source: router-for-me/CLIProxyAPI issue#873 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/873 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#873,https://github.com/router-for-me/CLIProxyAPI/issues/873,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0698
+"Follow up ""谷歌授权登录成功,但是额度刷新失败"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0701 | Source: router-for-me/CLIProxyAPI issue#864 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/864 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#864,https://github.com/router-for-me/CLIProxyAPI/issues/864,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0701
+"Harden ""使用统计 每次重启服务就没了,能否重启不丢失,使用手动的方式去清理统计数据"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0702 | Source: router-for-me/CLIProxyAPI issue#863 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/863 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#863,https://github.com/router-for-me/CLIProxyAPI/issues/863,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0702
+"Generalize ""请增加对kiro的支持"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0704 | Source: router-for-me/CLIProxyAPI issue#855 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/855 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#855,https://github.com/router-for-me/CLIProxyAPI/issues/855,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0704
+"Improve CLI UX around ""Reqest for supporting github copilot"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0705 | Source: router-for-me/CLIProxyAPI issue#854 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/854 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#854,https://github.com/router-for-me/CLIProxyAPI/issues/854,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0705
+"Extend docs for ""请添加iflow最新模型iFlow-ROME-30BA3B"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0706 | Source: router-for-me/CLIProxyAPI issue#853 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/853 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#853,https://github.com/router-for-me/CLIProxyAPI/issues/853,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0706
+"Refactor internals touched by ""Would the consumption be greater in Claude Code?"" to reduce coupling and improve maintainability.",Execution item CP2K-0708 | Source: router-for-me/CLIProxyAPI issue#848 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/848 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#848,https://github.com/router-for-me/CLIProxyAPI/issues/848,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0708
+"Follow up ""Feature Request: API for fetching Quota stats (remaining, renew time, etc)"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0711 | Source: router-for-me/CLIProxyAPI issue#844 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/844 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#844,https://github.com/router-for-me/CLIProxyAPI/issues/844,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0711
+"Harden ""使用antigravity转为API在claude code中使用不支持web search"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0712 | Source: router-for-me/CLIProxyAPI issue#842 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/842 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#842,https://github.com/router-for-me/CLIProxyAPI/issues/842,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0712
+"Improve CLI UX around ""[Feature Request] Schedule automated requests to AI models"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0715 | Source: router-for-me/CLIProxyAPI issue#838 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/838 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#838,https://github.com/router-for-me/CLIProxyAPI/issues/838,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0715
+"Refactor internals touched by ""mac使用brew安装的cpa,请问配置文件在哪?"" to reduce coupling and improve maintainability.",Execution item CP2K-0718 | Source: router-for-me/CLIProxyAPI issue#831 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/831 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#831,https://github.com/router-for-me/CLIProxyAPI/issues/831,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0718
+"Prepare safe rollout for ""Feature request"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0719 | Source: router-for-me/CLIProxyAPI issue#828 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/828 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,testing-and-quality,yes,issue,router-for-me/CLIProxyAPI,issue#828,https://github.com/router-for-me/CLIProxyAPI/issues/828,"board-2000,theme:testing-and-quality,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0719
+"Standardize naming/metadata affected by ""长时间运行后会出现`internal_server_error`"" across both repos and docs.","Execution item CP2K-0720 | Source: router-for-me/CLIProxyAPI issue#827 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/827 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#827,https://github.com/router-for-me/CLIProxyAPI/issues/827,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0720
+"Operationalize ""[Feature] 能否增加/v1/embeddings 端点"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0723 | Source: router-for-me/CLIProxyAPI issue#818 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/818 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#818,https://github.com/router-for-me/CLIProxyAPI/issues/818,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0723
+"Add robust stream/non-stream parity tests for ""Set up Apprise on TrueNAS for notifications"" across supported providers.",Execution item CP2K-0727 | Source: router-for-me/CLIProxyAPI issue#808 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/808 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPI,issue#808,https://github.com/router-for-me/CLIProxyAPI/issues/808,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0727
+"Standardize naming/metadata affected by ""win10无法安装没反应,cmd安装提示,failed to read config file"" across both repos and docs.","Execution item CP2K-0730 | Source: router-for-me/CLIProxyAPI issue#801 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/801 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#801,https://github.com/router-for-me/CLIProxyAPI/issues/801,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0730
+"Refactor internals touched by ""Brew 版本更新延迟,能否在 github Actions 自动增加更新 brew 版本?"" to reduce coupling and improve maintainability.",Execution item CP2K-0738 | Source: router-for-me/CLIProxyAPI issue#789 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/789 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#789,https://github.com/router-for-me/CLIProxyAPI/issues/789,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0738
+"Standardize naming/metadata affected by ""可否增加一个轮询方式的设置,某一个账户额度用尽时再使用下一个"" across both repos and docs.","Execution item CP2K-0740 | Source: router-for-me/CLIProxyAPI issue#784 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/784 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#784,https://github.com/router-for-me/CLIProxyAPI/issues/784,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0740
+"Harden ""Support for parallel requests"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0742 | Source: router-for-me/CLIProxyAPI issue#778 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/778 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#778,https://github.com/router-for-me/CLIProxyAPI/issues/778,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0742
+"Generalize ""[功能请求] 假流式和非流式防超时"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0744 | Source: router-for-me/CLIProxyAPI issue#775 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/775 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#775,https://github.com/router-for-me/CLIProxyAPI/issues/775,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0744
+"Improve CLI UX around ""[功能请求]可否增加 google genai 的兼容"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0745 | Source: router-for-me/CLIProxyAPI issue#771 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/771 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#771,https://github.com/router-for-me/CLIProxyAPI/issues/771,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0745
+"Extend docs for ""反重力账号额度同时消耗"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0746 | Source: router-for-me/CLIProxyAPI issue#768 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/768 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#768,https://github.com/router-for-me/CLIProxyAPI/issues/768,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0746
+"Add robust stream/non-stream parity tests for ""iflow模型排除无效"" across supported providers.",Execution item CP2K-0747 | Source: router-for-me/CLIProxyAPI issue#762 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/762 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#762,https://github.com/router-for-me/CLIProxyAPI/issues/762,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0747
+"Harden ""建议增加 kiro CLI"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0752 | Source: router-for-me/CLIProxyAPI issue#748 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/748 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#748,https://github.com/router-for-me/CLIProxyAPI/issues/748,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0752
+"Refactor internals touched by ""反代Antigravity,CC读图的时候似乎会触发bug?明明现在上下文还有很多,但是提示要compact了"" to reduce coupling and improve maintainability.",Execution item CP2K-0758 | Source: router-for-me/CLIProxyAPI issue#741 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/741 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#741,https://github.com/router-for-me/CLIProxyAPI/issues/741,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0758
+"Follow up ""Pass through actual Anthropic token counts instead of estimating"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0761 | Source: router-for-me/CLIProxyAPI issue#738 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/738 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#738,https://github.com/router-for-me/CLIProxyAPI/issues/738,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0761
+"Harden ""多渠道同一模型映射成一个显示"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0762 | Source: router-for-me/CLIProxyAPI issue#737 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/737 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#737,https://github.com/router-for-me/CLIProxyAPI/issues/737,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0762
+"Operationalize ""Feature Request: Complete OpenAI Tool Calling Format Support for Claude Models (Cursor MCP Compatibility)"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0763 | Source: router-for-me/CLIProxyAPI issue#735 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/735 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#735,https://github.com/router-for-me/CLIProxyAPI/issues/735,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0763
+"Standardize naming/metadata affected by ""[Feature] Usage Statistics Persistence to JSON File - PR Proposal"" across both repos and docs.","Execution item CP2K-0770 | Source: router-for-me/CLIProxyAPI issue#726 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/726 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#726,https://github.com/router-for-me/CLIProxyAPI/issues/726,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0770
+"Follow up ""反代的Antigravity的claude模型在opencode cli需要增强适配"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0771 | Source: router-for-me/CLIProxyAPI issue#725 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/725 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#725,https://github.com/router-for-me/CLIProxyAPI/issues/725,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0771
+"Harden ""iflow日志提示:当前找我聊的人太多了,可以晚点再来问我哦。"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0772 | Source: router-for-me/CLIProxyAPI issue#724 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/724 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#724,https://github.com/router-for-me/CLIProxyAPI/issues/724,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0772
+"Operationalize ""怎么加入多个反重力账号?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0773 | Source: router-for-me/CLIProxyAPI issue#723 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/723 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#723,https://github.com/router-for-me/CLIProxyAPI/issues/723,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0773
+"Improve CLI UX around ""API Error: 400"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0775 | Source: router-for-me/CLIProxyAPI issue#719 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/719 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#719,https://github.com/router-for-me/CLIProxyAPI/issues/719,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0775
+"Add robust stream/non-stream parity tests for ""证书是否可以停用而非删除"" across supported providers.",Execution item CP2K-0777 | Source: router-for-me/CLIProxyAPI issue#717 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/717 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#717,https://github.com/router-for-me/CLIProxyAPI/issues/717,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0777
+"Refactor internals touched by ""thinking.cache_control error"" to reduce coupling and improve maintainability.",Execution item CP2K-0778 | Source: router-for-me/CLIProxyAPI issue#714 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/714 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#714,https://github.com/router-for-me/CLIProxyAPI/issues/714,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0778
+"Follow up ""报错:failed to download management asset"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0781 | Source: router-for-me/CLIProxyAPI issue#711 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/711 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#711,https://github.com/router-for-me/CLIProxyAPI/issues/711,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0781
+"Improve CLI UX around ""iflow cli更新 GLM4.7 & MiniMax M2.1 模型"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0785 | Source: router-for-me/CLIProxyAPI issue#707 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/707 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#707,https://github.com/router-for-me/CLIProxyAPI/issues/707,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0785
+"Add robust stream/non-stream parity tests for ""iflow-cli上线glm4.7和m2.1"" across supported providers.",Execution item CP2K-0787 | Source: router-for-me/CLIProxyAPI issue#701 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/701 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#701,https://github.com/router-for-me/CLIProxyAPI/issues/701,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0787
+"Standardize naming/metadata affected by ""6.6.49版本下Antigravity渠道的claude模型使用claude code缓存疑似失效"" across both repos and docs.","Execution item CP2K-0790 | Source: router-for-me/CLIProxyAPI issue#696 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/696 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#696,https://github.com/router-for-me/CLIProxyAPI/issues/696,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0790
+"Harden ""Add efficient scalar operations API (mul_scalar, add_scalar, etc.)"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0792 | Source: router-for-me/CLIProxyAPI issue#691 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/691 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#691,https://github.com/router-for-me/CLIProxyAPI/issues/691,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0792
+"Operationalize ""[功能请求] 能不能给每个号单独配置代理?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0793 | Source: router-for-me/CLIProxyAPI issue#690 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/690 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#690,https://github.com/router-for-me/CLIProxyAPI/issues/690,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0793
+"Generalize ""[Feature request] Add support for checking remaining Antigravity quota"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0794 | Source: router-for-me/CLIProxyAPI issue#687 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/687 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#687,https://github.com/router-for-me/CLIProxyAPI/issues/687,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0794
+"Extend docs for ""Update Gemini 3 model names: remove -preview suffix for gemini-3-pro and gemini-3-flash"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0796 | Source: router-for-me/CLIProxyAPI issue#683 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/683 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#683,https://github.com/router-for-me/CLIProxyAPI/issues/683,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0796
+"Standardize naming/metadata affected by ""[Bug] Token counting endpoint /v1/messages/count_tokens significantly undercounts tokens"" across both repos and docs.","Execution item CP2K-0800 | Source: router-for-me/CLIProxyAPI issue#679 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/679 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#679,https://github.com/router-for-me/CLIProxyAPI/issues/679,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0800
+"Follow up ""[Feature] Automatic Censoring Logs"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0801 | Source: router-for-me/CLIProxyAPI issue#678 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/678 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#678,https://github.com/router-for-me/CLIProxyAPI/issues/678,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0801
+"Generalize ""[Feature Request] Add timeout configuration"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0804 | Source: router-for-me/CLIProxyAPI issue#668 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/668 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#668,https://github.com/router-for-me/CLIProxyAPI/issues/668,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0804
+"Refactor internals touched by ""[Feature Request] Support reverse proxy for 'mimo' to enable Codex CLI usage"" to reduce coupling and improve maintainability.",Execution item CP2K-0808 | Source: router-for-me/CLIProxyAPI issue#656 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/656 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#656,https://github.com/router-for-me/CLIProxyAPI/issues/656,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0808
+"Prepare safe rollout for ""[Bug] Gemini API Error: 'defer_loading' field in function declarations results in 400 Invalid JSON payload"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0809 | Source: router-for-me/CLIProxyAPI issue#655 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/655 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#655,https://github.com/router-for-me/CLIProxyAPI/issues/655,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0809
+"Standardize naming/metadata affected by ""System message (role: ""system"") completely dropped when converting to Antigravity API format"" across both repos and docs.","Execution item CP2K-0810 | Source: router-for-me/CLIProxyAPI issue#654 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/654 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#654,https://github.com/router-for-me/CLIProxyAPI/issues/654,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0810
+"Generalize ""[BUG] calude chrome中使用 antigravity模型 tool call错误"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0814 | Source: router-for-me/CLIProxyAPI issue#642 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/642 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#642,https://github.com/router-for-me/CLIProxyAPI/issues/642,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0814
+"Prepare safe rollout for ""Payload thinking overrides break requests with tool_choice (handoff fails)"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0819 | Source: router-for-me/CLIProxyAPI issue#630 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/630 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#630,https://github.com/router-for-me/CLIProxyAPI/issues/630,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0819
+"Harden ""[Question] Mapping different keys to different accounts for same provider"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0822 | Source: router-for-me/CLIProxyAPI issue#625 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/625 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#625,https://github.com/router-for-me/CLIProxyAPI/issues/625,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0822
+"Generalize ""[Feature Request] Set hard limits for CLIProxyAPI API Keys"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0824 | Source: router-for-me/CLIProxyAPI issue#617 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/617 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#617,https://github.com/router-for-me/CLIProxyAPI/issues/617,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0824
+"Add robust stream/non-stream parity tests for ""Request support for codebuff access."" across supported providers.",Execution item CP2K-0827 | Source: router-for-me/CLIProxyAPI issue#612 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/612 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#612,https://github.com/router-for-me/CLIProxyAPI/issues/612,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0827
+"Prepare safe rollout for ""Can't use Oracle tool in AMP Code"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0829 | Source: router-for-me/CLIProxyAPI issue#606 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/606 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#606,https://github.com/router-for-me/CLIProxyAPI/issues/606,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0829
+"Standardize naming/metadata affected by ""Openai 5.2 Codex is launched"" across both repos and docs.","Execution item CP2K-0830 | Source: router-for-me/CLIProxyAPI issue#603 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/603 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,testing-and-quality,yes,issue,router-for-me/CLIProxyAPI,issue#603,https://github.com/router-for-me/CLIProxyAPI/issues/603,"board-2000,theme:testing-and-quality,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0830
+"Generalize """" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0834 | Source: router-for-me/CLIProxyAPI issue#595 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/595 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#595,https://github.com/router-for-me/CLIProxyAPI/issues/595,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0834
+"Standardize naming/metadata affected by ""[Feature request] Add an enable switch for OpenAI-compatible providers and add model alias for antigravity"" across both repos and docs.","Execution item CP2K-0840 | Source: router-for-me/CLIProxyAPI issue#588 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/588 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#588,https://github.com/router-for-me/CLIProxyAPI/issues/588,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0840
+"Generalize ""Github Copilot Error"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0844 | Source: router-for-me/CLIProxyAPI issue#574 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/574 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#574,https://github.com/router-for-me/CLIProxyAPI/issues/574,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0844
+"Improve CLI UX around ""Cursor support"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0845 | Source: router-for-me/CLIProxyAPI issue#573 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/573 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#573,https://github.com/router-for-me/CLIProxyAPI/issues/573,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0845
+"Harden ""docker运行的容器最近几个版本不会自动下载management.html了"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0852 | Source: router-for-me/CLIProxyAPI issue#557 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/557 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#557,https://github.com/router-for-me/CLIProxyAPI/issues/557,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0852
+"Prepare safe rollout for ""Suggestion: Retain statistics after each update."" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0859 | Source: router-for-me/CLIProxyAPI issue#541 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/541 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#541,https://github.com/router-for-me/CLIProxyAPI/issues/541,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0859
+"Follow up ""[Feature Request] Add logs rotation"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0861 | Source: router-for-me/CLIProxyAPI issue#535 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/535 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#535,https://github.com/router-for-me/CLIProxyAPI/issues/535,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0861
+"Harden ""[Bug] AI Studio 渠道流式响应 JSON 格式异常导致客户端解析失败"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0862 | Source: router-for-me/CLIProxyAPI issue#534 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/534 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#534,https://github.com/router-for-me/CLIProxyAPI/issues/534,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0862
+"Prepare safe rollout for ""Claude code results in errors with ""poor internet connection"""" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0869 | Source: router-for-me/CLIProxyAPI issue#510 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/510 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#510,https://github.com/router-for-me/CLIProxyAPI/issues/510,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0869
+"Operationalize ""openai兼容错误使用“alias”作为模型id请求"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0873 | Source: router-for-me/CLIProxyAPI issue#503 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/503 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#503,https://github.com/router-for-me/CLIProxyAPI/issues/503,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0873
+"Improve CLI UX around ""unexpected `tool_use_id` found in `tool_result` blocks"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0875 | Source: router-for-me/CLIProxyAPI issue#497 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/497 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#497,https://github.com/router-for-me/CLIProxyAPI/issues/497,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0875
+"Add robust stream/non-stream parity tests for ""antigravity中反代的接口在claude code中无法使用thinking模式"" across supported providers.",Execution item CP2K-0877 | Source: router-for-me/CLIProxyAPI issue#495 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/495 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#495,https://github.com/router-for-me/CLIProxyAPI/issues/495,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0877
+"Refactor internals touched by ""Add support for gpt-5,2"" to reduce coupling and improve maintainability.",Execution item CP2K-0878 | Source: router-for-me/CLIProxyAPI issue#493 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/493 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#493,https://github.com/router-for-me/CLIProxyAPI/issues/493,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0878
+"Prepare safe rollout for ""OAI models not working."" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0879 | Source: router-for-me/CLIProxyAPI issue#492 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/492 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#492,https://github.com/router-for-me/CLIProxyAPI/issues/492,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0879
+"Standardize naming/metadata affected by ""Did the API change?"" across both repos and docs.","Execution item CP2K-0880 | Source: router-for-me/CLIProxyAPI issue#491 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/491 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#491,https://github.com/router-for-me/CLIProxyAPI/issues/491,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0880
+"Follow up ""5.2 missing. no automatic model discovery"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0881 | Source: router-for-me/CLIProxyAPI issue#490 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/490 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#490,https://github.com/router-for-me/CLIProxyAPI/issues/490,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0881
+"Harden ""Tool calling fails when using Claude Opus 4.5 Thinking (AntiGravity) model via Zed Agent"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0882 | Source: router-for-me/CLIProxyAPI issue#489 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/489 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#489,https://github.com/router-for-me/CLIProxyAPI/issues/489,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0882
+"Operationalize ""Issue with enabling logs in Mac settings."" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0883 | Source: router-for-me/CLIProxyAPI issue#484 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/484 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#484,https://github.com/router-for-me/CLIProxyAPI/issues/484,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0883
+"Improve CLI UX around ""gpt-5-codex-(low,medium,high) models not listed anymore"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0885 | Source: router-for-me/CLIProxyAPI issue#482 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/482 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#482,https://github.com/router-for-me/CLIProxyAPI/issues/482,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0885
+"Refactor internals touched by ""antigravity渠道的claude模型在claude code中无法使用explore工具"" to reduce coupling and improve maintainability.",Execution item CP2K-0888 | Source: router-for-me/CLIProxyAPI issue#477 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/477 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#477,https://github.com/router-for-me/CLIProxyAPI/issues/477,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0888
+"Follow up ""Antigravity API reports API Error: 400 with Claude Code"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0891 | Source: router-for-me/CLIProxyAPI issue#472 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/472 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#472,https://github.com/router-for-me/CLIProxyAPI/issues/472,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0891
+"Generalize ""支持一下https://gemini.google.com/app"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0894 | Source: router-for-me/CLIProxyAPI issue#462 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/462 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#462,https://github.com/router-for-me/CLIProxyAPI/issues/462,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0894
+"Improve CLI UX around ""[Feature Request] Persistent Storage for Usage Statistics"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0905 | Source: router-for-me/CLIProxyAPI issue#431 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/431 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPI,issue#431,https://github.com/router-for-me/CLIProxyAPI/issues/431,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0905
+"Refactor internals touched by ""Antigravity: Permission denied on resource project [projectID]"" to reduce coupling and improve maintainability.",Execution item CP2K-0908 | Source: router-for-me/CLIProxyAPI issue#421 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/421 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#421,https://github.com/router-for-me/CLIProxyAPI/issues/421,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0908
+"Follow up ""OpenAI Compatibility with OpenRouter results in invalid JSON response despite 200 OK"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0911 | Source: router-for-me/CLIProxyAPI issue#417 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/417 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#417,https://github.com/router-for-me/CLIProxyAPI/issues/417,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0911
+"Improve CLI UX around ""Which CLIs that support Antigravity?"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0915 | Source: router-for-me/CLIProxyAPI issue#412 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/412 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#412,https://github.com/router-for-me/CLIProxyAPI/issues/412,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0915
+"Add robust stream/non-stream parity tests for ""iflow使用谷歌登录后,填入cookie无法正常使用"" across supported providers.",Execution item CP2K-0917 | Source: router-for-me/CLIProxyAPI issue#408 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/408 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#408,https://github.com/router-for-me/CLIProxyAPI/issues/408,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0917
+"Harden ""antigravity认证难以成功"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0922 | Source: router-for-me/CLIProxyAPI issue#396 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/396 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#396,https://github.com/router-for-me/CLIProxyAPI/issues/396,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0922
+"Operationalize ""Could I use gemini-3-pro-preview by gmini cli?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0923 | Source: router-for-me/CLIProxyAPI issue#391 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/391 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#391,https://github.com/router-for-me/CLIProxyAPI/issues/391,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0923
+"Generalize ""Ports Reserved By Windows Hyper-V"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0924 | Source: router-for-me/CLIProxyAPI issue#387 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/387 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#387,https://github.com/router-for-me/CLIProxyAPI/issues/387,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0924
+"Add robust stream/non-stream parity tests for ""Web Search tool not working in AMP with cliproxyapi"" across supported providers.",Execution item CP2K-0927 | Source: router-for-me/CLIProxyAPI issue#370 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/370 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#370,https://github.com/router-for-me/CLIProxyAPI/issues/370,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0927
+"Harden ""Web Search tool not functioning in Claude Code"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0932 | Source: router-for-me/CLIProxyAPI issue#364 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/364 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#364,https://github.com/router-for-me/CLIProxyAPI/issues/364,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0932
+"Operationalize ""claude code Auto compact not triggered even after reaching autocompact buffer threshold"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0933 | Source: router-for-me/CLIProxyAPI issue#363 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/363 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#363,https://github.com/router-for-me/CLIProxyAPI/issues/363,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0933
+"Generalize ""[Feature] 增加gemini business账号支持"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0934 | Source: router-for-me/CLIProxyAPI issue#361 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/361 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#361,https://github.com/router-for-me/CLIProxyAPI/issues/361,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0934
+"Standardize naming/metadata affected by ""[Feature Request] Amazonq Support"" across both repos and docs.","Execution item CP2K-0940 | Source: router-for-me/CLIProxyAPI issue#350 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/350 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#350,https://github.com/router-for-me/CLIProxyAPI/issues/350,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0940
+"Follow up ""Feature: Add tier-based provider prioritization"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0941 | Source: router-for-me/CLIProxyAPI issue#349 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/349 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#349,https://github.com/router-for-me/CLIProxyAPI/issues/349,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0941
+"Generalize ""Anitigravity models are not working in opencode cli, has serveral bugs"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0944 | Source: router-for-me/CLIProxyAPI issue#342 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/342 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#342,https://github.com/router-for-me/CLIProxyAPI/issues/342,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0944
+"Improve CLI UX around ""[Bug] Antigravity 渠道使用原生 Gemini 格式:模型列表缺失及 gemini-3-pro-preview 联网搜索不可用"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0945 | Source: router-for-me/CLIProxyAPI issue#341 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/341 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#341,https://github.com/router-for-me/CLIProxyAPI/issues/341,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0945
+"Extend docs for ""checkSystemInstructions adds cache_control block causing 'maximum of 4 blocks' error"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0946 | Source: router-for-me/CLIProxyAPI issue#339 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/339 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#339,https://github.com/router-for-me/CLIProxyAPI/issues/339,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0946
+"Prepare safe rollout for ""Droid as provider"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0949 | Source: router-for-me/CLIProxyAPI issue#336 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/336 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#336,https://github.com/router-for-me/CLIProxyAPI/issues/336,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0949
+"Generalize ""FR: Add Opus 4.5 Support"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0954 | Source: router-for-me/CLIProxyAPI issue#321 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/321 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#321,https://github.com/router-for-me/CLIProxyAPI/issues/321,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0954
+"Improve CLI UX around ""`gemini-3-pro-preview` tool usage failures"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0955 | Source: router-for-me/CLIProxyAPI issue#320 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/320 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#320,https://github.com/router-for-me/CLIProxyAPI/issues/320,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0955
+"Extend docs for ""RooCode compatibility"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0956 | Source: router-for-me/CLIProxyAPI issue#319 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/319 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#319,https://github.com/router-for-me/CLIProxyAPI/issues/319,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0956
+"Refactor internals touched by ""Nano Banana"" to reduce coupling and improve maintainability.",Execution item CP2K-0958 | Source: router-for-me/CLIProxyAPI issue#316 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/316 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#316,https://github.com/router-for-me/CLIProxyAPI/issues/316,"board-2000,theme:docs-quickstarts,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0958
+"Prepare safe rollout for ""Feature: 渠道关闭/开启切换按钮、渠道测试按钮、指定渠道模型调用"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0959 | Source: router-for-me/CLIProxyAPI issue#314 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/314 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#314,https://github.com/router-for-me/CLIProxyAPI/issues/314,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0959
+"Generalize ""[Suggestion] Improve Prompt Caching for Gemini CLI / Antigravity - Don't do round-robin for all every request"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0964 | Source: router-for-me/CLIProxyAPI issue#307 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/307 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#307,https://github.com/router-for-me/CLIProxyAPI/issues/307,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0964
+"Add robust stream/non-stream parity tests for ""如果能控制aistudio的认证文件启用就好了"" across supported providers.",Execution item CP2K-0967 | Source: router-for-me/CLIProxyAPI issue#302 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/302 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#302,https://github.com/router-for-me/CLIProxyAPI/issues/302,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0967
+"Refactor internals touched by ""Dynamic model provider not work"" to reduce coupling and improve maintainability.",Execution item CP2K-0968 | Source: router-for-me/CLIProxyAPI issue#301 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/301 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#301,https://github.com/router-for-me/CLIProxyAPI/issues/301,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0968
+"Standardize naming/metadata affected by ""cursor with antigravity"" across both repos and docs.","Execution item CP2K-0970 | Source: router-for-me/CLIProxyAPI issue#298 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/298 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#298,https://github.com/router-for-me/CLIProxyAPI/issues/298,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0970
+"Follow up ""认证未走代理"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0971 | Source: router-for-me/CLIProxyAPI issue#297 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/297 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#297,https://github.com/router-for-me/CLIProxyAPI/issues/297,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0971
+"Improve CLI UX around ""CLIProxyAPI error in huggingface"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0975 | Source: router-for-me/CLIProxyAPI issue#290 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/290 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#290,https://github.com/router-for-me/CLIProxyAPI/issues/290,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0975
+"Add robust stream/non-stream parity tests for ""Feature: Add Image Support for Gemini 3"" across supported providers.",Execution item CP2K-0977 | Source: router-for-me/CLIProxyAPI issue#283 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/283 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#283,https://github.com/router-for-me/CLIProxyAPI/issues/283,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0977
+"Standardize naming/metadata affected by ""[Suggestion] Improve Prompt Caching - Don't do round-robin for all every request"" across both repos and docs.","Execution item CP2K-0980 | Source: router-for-me/CLIProxyAPI issue#277 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/277 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#277,https://github.com/router-for-me/CLIProxyAPI/issues/277,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0980
+"Follow up ""Feature Request: Support Google Antigravity provider"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0981 | Source: router-for-me/CLIProxyAPI issue#273 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/273 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#273,https://github.com/router-for-me/CLIProxyAPI/issues/273,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0981
+"Harden ""Add copilot cli proxy"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0982 | Source: router-for-me/CLIProxyAPI issue#272 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/272 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#272,https://github.com/router-for-me/CLIProxyAPI/issues/272,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0982
+"Improve CLI UX around ""Account banned after using CLI Proxy API on VPS"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0985 | Source: router-for-me/CLIProxyAPI issue#266 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/266 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#266,https://github.com/router-for-me/CLIProxyAPI/issues/266,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0985
+"Standardize naming/metadata affected by ""麻烦大佬能不能更进模型id,比如gpt已经更新了小版本5.1了"" across both repos and docs.","Execution item CP2K-0990 | Source: router-for-me/CLIProxyAPI issue#261 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/261 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#261,https://github.com/router-for-me/CLIProxyAPI/issues/261,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0990
+"Generalize ""认证文件管理 主动触发同步"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0994 | Source: router-for-me/CLIProxyAPI issue#255 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/255 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#255,https://github.com/router-for-me/CLIProxyAPI/issues/255,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0994
+"Improve CLI UX around ""Kimi K2 Thinking"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0995 | Source: router-for-me/CLIProxyAPI issue#254 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/254 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#254,https://github.com/router-for-me/CLIProxyAPI/issues/254,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0995
+"Extend docs for ""nano banana 水印的能解决?我使用CLIProxyAPI 6.1"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0996 | Source: router-for-me/CLIProxyAPI issue#253 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/253 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#253,https://github.com/router-for-me/CLIProxyAPI/issues/253,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0996
+"Add robust stream/non-stream parity tests for ""ai studio 不能用"" across supported providers.",Execution item CP2K-0997 | Source: router-for-me/CLIProxyAPI issue#252 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/252 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPI,issue#252,https://github.com/router-for-me/CLIProxyAPI/issues/252,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-0997
+"Harden ""gpt-5.1模型添加"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1002 | Source: router-for-me/CLIProxyAPI issue#246 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/246 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#246,https://github.com/router-for-me/CLIProxyAPI/issues/246,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1002
+"Generalize ""支持为模型设定默认请求参数"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1004 | Source: router-for-me/CLIProxyAPI issue#242 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/242 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#242,https://github.com/router-for-me/CLIProxyAPI/issues/242,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1004
+"Improve CLI UX around ""ClawCloud 如何结合NanoBanana 使用?"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1005 | Source: router-for-me/CLIProxyAPI issue#241 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/241 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#241,https://github.com/router-for-me/CLIProxyAPI/issues/241,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1005
+"Extend docs for ""gemini cli 无法画图是不是必须要使用低版本了"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1006 | Source: router-for-me/CLIProxyAPI issue#240 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/240 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#240,https://github.com/router-for-me/CLIProxyAPI/issues/240,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1006
+"Refactor internals touched by ""Codex API 配置中Base URL需要加v1嘛?"" to reduce coupling and improve maintainability.",Execution item CP2K-1008 | Source: router-for-me/CLIProxyAPI issue#238 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/238 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#238,https://github.com/router-for-me/CLIProxyAPI/issues/238,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1008
+"Standardize naming/metadata affected by ""AI Studio途径,是否支持imagen图片生成模型?"" across both repos and docs.","Execution item CP2K-1010 | Source: router-for-me/CLIProxyAPI issue#235 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/235 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#235,https://github.com/router-for-me/CLIProxyAPI/issues/235,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1010
+"Follow up ""现在对话很容易就结束"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1011 | Source: router-for-me/CLIProxyAPI issue#234 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/234 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#234,https://github.com/router-for-me/CLIProxyAPI/issues/234,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1011
+"Extend docs for ""Feature: Prevent infinite loop to allow direct access to Gemini-native features"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1016 | Source: router-for-me/CLIProxyAPI issue#220 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/220 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#220,https://github.com/router-for-me/CLIProxyAPI/issues/220,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1016
+"Add robust stream/non-stream parity tests for ""Feature request: Support amazon-q-developer-cli"" across supported providers.",Execution item CP2K-1017 | Source: router-for-me/CLIProxyAPI issue#219 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/219 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#219,https://github.com/router-for-me/CLIProxyAPI/issues/219,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1017
+"Refactor internals touched by ""Gemini Cli 400 Error"" to reduce coupling and improve maintainability.",Execution item CP2K-1018 | Source: router-for-me/CLIProxyAPI issue#218 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/218 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#218,https://github.com/router-for-me/CLIProxyAPI/issues/218,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1018
+"Follow up ""Codex trying to read from non-existant Bashes in Claude"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1021 | Source: router-for-me/CLIProxyAPI issue#211 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/211 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#211,https://github.com/router-for-me/CLIProxyAPI/issues/211,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1021
+"Harden ""Feature Request: Git-backed Configuration and Token Store for sync"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1022 | Source: router-for-me/CLIProxyAPI issue#210 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/210 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#210,https://github.com/router-for-me/CLIProxyAPI/issues/210,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1022
+"Operationalize ""CLIProxyAPI中的Gemini cli的图片生成,是不是无法使用了?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1023 | Source: router-for-me/CLIProxyAPI issue#208 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/208 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#208,https://github.com/router-for-me/CLIProxyAPI/issues/208,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1023
+"Generalize ""Model gemini-2.5-flash-image not work any more"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1024 | Source: router-for-me/CLIProxyAPI issue#203 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/203 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#203,https://github.com/router-for-me/CLIProxyAPI/issues/203,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1024
+"Improve CLI UX around ""qwen code和iflow的模型重复了"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1025 | Source: router-for-me/CLIProxyAPI issue#202 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/202 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#202,https://github.com/router-for-me/CLIProxyAPI/issues/202,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1025
+"Add robust stream/non-stream parity tests for ""Wrong Claude Model Recognized"" across supported providers.",Execution item CP2K-1027 | Source: router-for-me/CLIProxyAPI issue#200 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/200 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#200,https://github.com/router-for-me/CLIProxyAPI/issues/200,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1027
+"Refactor internals touched by ""Unable to Select Specific Model"" to reduce coupling and improve maintainability.",Execution item CP2K-1028 | Source: router-for-me/CLIProxyAPI issue#197 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/197 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#197,https://github.com/router-for-me/CLIProxyAPI/issues/197,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1028
+"Prepare safe rollout for ""claude code with copilot"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1029 | Source: router-for-me/CLIProxyAPI issue#193 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/193 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#193,https://github.com/router-for-me/CLIProxyAPI/issues/193,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1029
+"Follow up ""[feature request] enable host or bind ip option / 添加 host 配置选项以允许外部网络访问"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1031 | Source: router-for-me/CLIProxyAPI issue#190 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/190 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#190,https://github.com/router-for-me/CLIProxyAPI/issues/190,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1031
+"Harden ""Feature request: Add token cost statistics"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1032 | Source: router-for-me/CLIProxyAPI issue#189 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/189 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#189,https://github.com/router-for-me/CLIProxyAPI/issues/189,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1032
+"Extend docs for ""希望增加渠道分类"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1036 | Source: router-for-me/CLIProxyAPI issue#178 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/178 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#178,https://github.com/router-for-me/CLIProxyAPI/issues/178,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1036
+"Refactor internals touched by ""Possible JSON Marshal issue: Some Chars transformed to unicode while transforming Anthropic request to OpenAI compatible request"" to reduce coupling and improve maintainability.",Execution item CP2K-1038 | Source: router-for-me/CLIProxyAPI issue#175 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/175 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#175,https://github.com/router-for-me/CLIProxyAPI/issues/175,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1038
+"Prepare safe rollout for ""question about subagents:"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1039 | Source: router-for-me/CLIProxyAPI issue#174 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/174 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#174,https://github.com/router-for-me/CLIProxyAPI/issues/174,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1039
+"Standardize naming/metadata affected by ""MiniMax-M2 API error"" across both repos and docs.","Execution item CP2K-1040 | Source: router-for-me/CLIProxyAPI issue#172 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/172 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#172,https://github.com/router-for-me/CLIProxyAPI/issues/172,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1040
+"Harden ""MiniMax-M2 and other Anthropic compatible models"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1042 | Source: router-for-me/CLIProxyAPI issue#170 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/170 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#170,https://github.com/router-for-me/CLIProxyAPI/issues/170,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1042
+"Add robust stream/non-stream parity tests for ""Feature Request: Add support for vision-model for Qwen-CLI"" across supported providers.",Execution item CP2K-1047 | Source: router-for-me/CLIProxyAPI issue#164 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/164 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#164,https://github.com/router-for-me/CLIProxyAPI/issues/164,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1047
+"Refactor internals touched by ""[Suggestion] Intelligent Model Routing"" to reduce coupling and improve maintainability.",Execution item CP2K-1048 | Source: router-for-me/CLIProxyAPI issue#162 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/162 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#162,https://github.com/router-for-me/CLIProxyAPI/issues/162,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1048
+"Standardize naming/metadata affected by ""GeminiCLI的模型,总是会把历史问题全部回答一遍"" across both repos and docs.","Execution item CP2K-1050 | Source: router-for-me/CLIProxyAPI issue#159 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/159 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#159,https://github.com/router-for-me/CLIProxyAPI/issues/159,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1050
+"Improve CLI UX around ""OpenRouter Grok 4 Fast Bug"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1055 | Source: router-for-me/CLIProxyAPI issue#152 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/152 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#152,https://github.com/router-for-me/CLIProxyAPI/issues/152,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1055
+"Standardize naming/metadata affected by ""关于openai兼容供应商"" across both repos and docs.","Execution item CP2K-1060 | Source: router-for-me/CLIProxyAPI issue#143 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/143 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#143,https://github.com/router-for-me/CLIProxyAPI/issues/143,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1060
+"Follow up ""No System Prompt maybe possible?"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1061 | Source: router-for-me/CLIProxyAPI issue#142 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/142 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#142,https://github.com/router-for-me/CLIProxyAPI/issues/142,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1061
+"Harden ""Claude Code tokens counter"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1062 | Source: router-for-me/CLIProxyAPI issue#140 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/140 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#140,https://github.com/router-for-me/CLIProxyAPI/issues/140,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1062
+"Extend docs for ""Claude Code ``/context`` command"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1066 | Source: router-for-me/CLIProxyAPI issue#133 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/133 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#133,https://github.com/router-for-me/CLIProxyAPI/issues/133,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1066
+"Add robust stream/non-stream parity tests for ""Any interest in adding AmpCode support?"" across supported providers.",Execution item CP2K-1067 | Source: router-for-me/CLIProxyAPI issue#132 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/132 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#132,https://github.com/router-for-me/CLIProxyAPI/issues/132,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1067
+"Prepare safe rollout for ""Geminicli api proxy error"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1069 | Source: router-for-me/CLIProxyAPI issue#129 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/129 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#129,https://github.com/router-for-me/CLIProxyAPI/issues/129,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1069
+"Standardize naming/metadata affected by ""Github Copilot Subscription"" across both repos and docs.","Execution item CP2K-1070 | Source: router-for-me/CLIProxyAPI issue#128 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/128 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#128,https://github.com/router-for-me/CLIProxyAPI/issues/128,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1070
+"Improve CLI UX around ""recommend using bufio to improve terminal visuals(reduce flickering)"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1075 | Source: router-for-me/CLIProxyAPI issue#120 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/120 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#120,https://github.com/router-for-me/CLIProxyAPI/issues/120,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1075
+"Extend docs for ""视觉以及PDF适配"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1076 | Source: router-for-me/CLIProxyAPI issue#119 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/119 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#119,https://github.com/router-for-me/CLIProxyAPI/issues/119,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1076
+"Add robust stream/non-stream parity tests for ""claude code接入gemini cli模型问题"" across supported providers.",Execution item CP2K-1077 | Source: router-for-me/CLIProxyAPI issue#115 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/115 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#115,https://github.com/router-for-me/CLIProxyAPI/issues/115,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1077
+"Prepare safe rollout for ""Thinking toggle with GPT-5-Codex model"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1079 | Source: router-for-me/CLIProxyAPI issue#109 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/109 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#109,https://github.com/router-for-me/CLIProxyAPI/issues/109,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1079
+"Standardize naming/metadata affected by ""可否增加 请求 api-key = 渠道密钥模式"" across both repos and docs.","Execution item CP2K-1080 | Source: router-for-me/CLIProxyAPI issue#108 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/108 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#108,https://github.com/router-for-me/CLIProxyAPI/issues/108,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1080
+"Harden ""支持Gemini CLI 的全部模型"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1082 | Source: router-for-me/CLIProxyAPI issue#105 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/105 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#105,https://github.com/router-for-me/CLIProxyAPI/issues/105,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1082
+"Generalize ""Bug: function calling error in the request on OpenAI completion for gemini-cli"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1084 | Source: router-for-me/CLIProxyAPI issue#102 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/102 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#102,https://github.com/router-for-me/CLIProxyAPI/issues/102,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1084
+"Improve CLI UX around ""增加 IFlow 支持模型"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1085 | Source: router-for-me/CLIProxyAPI issue#101 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/101 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#101,https://github.com/router-for-me/CLIProxyAPI/issues/101,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1085
+"Extend docs for ""Feature Request: Grok usage"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1086 | Source: router-for-me/CLIProxyAPI issue#100 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/100 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#100,https://github.com/router-for-me/CLIProxyAPI/issues/100,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1086
+"Add robust stream/non-stream parity tests for ""新版本的claude code2.0.X搭配本项目的使用问题"" across supported providers.",Execution item CP2K-1087 | Source: router-for-me/CLIProxyAPI issue#98 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/98 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#98,https://github.com/router-for-me/CLIProxyAPI/issues/98,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1087
+"Prepare safe rollout for ""可以支持z.ai 吗"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1089 | Source: router-for-me/CLIProxyAPI issue#96 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/96 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#96,https://github.com/router-for-me/CLIProxyAPI/issues/96,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1089
+"Standardize naming/metadata affected by ""Gemini and Qwen doesn't work with Opencode"" across both repos and docs.","Execution item CP2K-1090 | Source: router-for-me/CLIProxyAPI issue#93 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/93 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#93,https://github.com/router-for-me/CLIProxyAPI/issues/93,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1090
+"Follow up ""Agent Client Protocol (ACP)?"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1091 | Source: router-for-me/CLIProxyAPI issue#92 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/92 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#92,https://github.com/router-for-me/CLIProxyAPI/issues/92,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1091
+"Harden ""Auto compress - Error: B is not an Object. (evaluating '""object""in B')"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1092 | Source: router-for-me/CLIProxyAPI issue#91 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/91 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#91,https://github.com/router-for-me/CLIProxyAPI/issues/91,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1092
+"Generalize ""Gemini API 能否添加设置Base URL 的选项"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1094 | Source: router-for-me/CLIProxyAPI issue#88 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/88 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#88,https://github.com/router-for-me/CLIProxyAPI/issues/88,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1094
+"Improve CLI UX around ""Some third-party claude code will return null when used with this project"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1095 | Source: router-for-me/CLIProxyAPI issue#87 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/87 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#87,https://github.com/router-for-me/CLIProxyAPI/issues/87,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1095
+"Extend docs for ""Auto compress - Error: 500 status code (no body)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1096 | Source: router-for-me/CLIProxyAPI issue#86 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/86 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#86,https://github.com/router-for-me/CLIProxyAPI/issues/86,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1096
+"Prepare safe rollout for ""Command /context dont work in claude code"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1099 | Source: router-for-me/CLIProxyAPI issue#80 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/80 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#80,https://github.com/router-for-me/CLIProxyAPI/issues/80,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1099
+"Standardize naming/metadata affected by ""MacOS brew installation support?"" across both repos and docs.","Execution item CP2K-1100 | Source: router-for-me/CLIProxyAPI issue#79 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/79 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPI,issue#79,https://github.com/router-for-me/CLIProxyAPI/issues/79,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1100
+"Extend docs for ""如果配置了gemini cli,再配置aistudio api key,会怎样?"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1106 | Source: router-for-me/CLIProxyAPI issue#48 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/48 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#48,https://github.com/router-for-me/CLIProxyAPI/issues/48,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1106
+"Refactor internals touched by ""#38 Lobechat问题的可能性 暨 Get Models返回JSON规整化的建议"" to reduce coupling and improve maintainability.",Execution item CP2K-1108 | Source: router-for-me/CLIProxyAPI issue#40 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/40 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#40,https://github.com/router-for-me/CLIProxyAPI/issues/40,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1108
+"Follow up ""登录默认跳转浏览器 没有url"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1111 | Source: router-for-me/CLIProxyAPI issue#35 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/35 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#35,https://github.com/router-for-me/CLIProxyAPI/issues/35,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1111
+"Harden ""Qwen3-Max-Preview可以使用了吗"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1112 | Source: router-for-me/CLIProxyAPI issue#34 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/34 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#34,https://github.com/router-for-me/CLIProxyAPI/issues/34,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1112
+"Operationalize ""使用docker-compose.yml搭建失败"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1113 | Source: router-for-me/CLIProxyAPI issue#32 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/32 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPI,issue#32,https://github.com/router-for-me/CLIProxyAPI/issues/32,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1113
+"Generalize ""Claude Code 报错 API Error: Cannot read properties of undefined (reading 'filter')"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1114 | Source: router-for-me/CLIProxyAPI issue#25 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/25 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#25,https://github.com/router-for-me/CLIProxyAPI/issues/25,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1114
+"Improve CLI UX around ""QQ group search not found, can we open a TG group?"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1115 | Source: router-for-me/CLIProxyAPI issue#24 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/24 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#24,https://github.com/router-for-me/CLIProxyAPI/issues/24,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1115
+"Extend docs for ""Codex CLI 能中转到Claude Code吗?"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1116 | Source: router-for-me/CLIProxyAPI issue#22 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/22 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#22,https://github.com/router-for-me/CLIProxyAPI/issues/22,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1116
+"Refactor internals touched by ""希望支持iflow"" to reduce coupling and improve maintainability.",Execution item CP2K-1118 | Source: router-for-me/CLIProxyAPI issue#20 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/20 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#20,https://github.com/router-for-me/CLIProxyAPI/issues/20,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1118
+"Generalize ""500就一直卡死了"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1124 | Source: router-for-me/CLIProxyAPI issue#12 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/12 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#12,https://github.com/router-for-me/CLIProxyAPI/issues/12,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1124
+"Improve CLI UX around ""无法使用/v1/messages端口"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1125 | Source: router-for-me/CLIProxyAPI issue#11 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/11 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#11,https://github.com/router-for-me/CLIProxyAPI/issues/11,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1125
+"Extend docs for ""可用正常接入new-api这种api站吗?"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1126 | Source: router-for-me/CLIProxyAPI issue#10 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/10 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPI,issue#10,https://github.com/router-for-me/CLIProxyAPI/issues/10,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1126
+"Refactor internals touched by ""cli有办法像别的gemini一样关闭安全审查吗?"" to reduce coupling and improve maintainability.",Execution item CP2K-1128 | Source: router-for-me/CLIProxyAPI issue#7 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/7 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPI,issue#7,https://github.com/router-for-me/CLIProxyAPI/issues/7,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1128
+"Operationalize ""偶尔会弹出无效API key提示,“400 API key not valid. Please pass a valid API key.”"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1133 | Source: router-for-me/CLIProxyAPI issue#2 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/2 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#2,https://github.com/router-for-me/CLIProxyAPI/issues/2,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1133
+"Harden ""佬们,隔壁很多账号403啦,这里一切正常吗?"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1712 | Source: router-for-me/CLIProxyAPI discussion#1570 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1570 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1570,https://github.com/router-for-me/CLIProxyAPI/discussions/1570,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1712
+"Operationalize ""最近谷歌经常封号有木有什么好的解决办法?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1713 | Source: router-for-me/CLIProxyAPI discussion#1656 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1656 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1656,https://github.com/router-for-me/CLIProxyAPI/discussions/1656,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1713
+"Improve CLI UX around ""不同思路的 Antigravity 代理"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1715 | Source: router-for-me/CLIProxyAPI discussion#1634 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1634 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1634,https://github.com/router-for-me/CLIProxyAPI/discussions/1634,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1715
+"Extend docs for ""Claude Code policy update"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1716 | Source: router-for-me/CLIProxyAPI discussion#1640 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1640 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,discussion,router-for-me/CLIProxyAPI,discussion#1640,https://github.com/router-for-me/CLIProxyAPI/discussions/1640,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1716
+"Standardize naming/metadata affected by ""[功能请求] 能否将绕过403集成到本体里"" across both repos and docs.","Execution item CP2K-1720 | Source: router-for-me/CLIProxyAPI discussion#1598 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1598 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,cli-ux-dx,yes,discussion,router-for-me/CLIProxyAPI,discussion#1598,https://github.com/router-for-me/CLIProxyAPI/discussions/1598,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1720
+"Follow up ""Add support for GitHub Copilot"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1721 | Source: router-for-me/CLIProxyAPI discussion#1490 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1490 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1490,https://github.com/router-for-me/CLIProxyAPI/discussions/1490,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1721
+"Harden ""Why am I unable to use multimodal? Can I send a picture URL?"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1722 | Source: router-for-me/CLIProxyAPI discussion#1524 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1524 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#1524,https://github.com/router-for-me/CLIProxyAPI/discussions/1524,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1722
+"Operationalize ""Most accounts banned from Antigravity (Google AI Pro Family) – anyone else?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1723 | Source: router-for-me/CLIProxyAPI discussion#1558 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1558 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,testing-and-quality,yes,discussion,router-for-me/CLIProxyAPI,discussion#1558,https://github.com/router-for-me/CLIProxyAPI/discussions/1558,"board-2000,theme:testing-and-quality,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1723
+"Refactor internals touched by ""加个模型到底有几个账号的模型对应吧,现在kimi-k2.5有6个模型,不知道哪个和哪个"" to reduce coupling and improve maintainability.",Execution item CP2K-1728 | Source: router-for-me/CLIProxyAPI discussion#1559 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1559 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1559,https://github.com/router-for-me/CLIProxyAPI/discussions/1559,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1728
+"Follow up ""How can I update without losing my original data?"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1731 | Source: router-for-me/CLIProxyAPI discussion#1536 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1536 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,discussion,router-for-me/CLIProxyAPI,discussion#1536,https://github.com/router-for-me/CLIProxyAPI/discussions/1536,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1731
+"Operationalize ""[Feature Request] Persistent Storage for Usage Statistics"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1733 | Source: router-for-me/CLIProxyAPI discussion#528 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/528 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,discussion,router-for-me/CLIProxyAPI,discussion#528,https://github.com/router-for-me/CLIProxyAPI/discussions/528,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1733
+"Add robust stream/non-stream parity tests for ""openclaw里面配置完成后为什么无法使用"" across supported providers.",Execution item CP2K-1737 | Source: router-for-me/CLIProxyAPI discussion#1485 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1485 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1485,https://github.com/router-for-me/CLIProxyAPI/discussions/1485,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1737
+"Refactor internals touched by ""codex5.3什么时候能获取到啊"" to reduce coupling and improve maintainability.",Execution item CP2K-1738 | Source: router-for-me/CLIProxyAPI discussion#1487 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1487 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1487,https://github.com/router-for-me/CLIProxyAPI/discussions/1487,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1738
+"Follow up ""为啥openai的端点可以添加多个密钥,但是a社的端点不能添加"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1741 | Source: router-for-me/CLIProxyAPI discussion#1458 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1458 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1458,https://github.com/router-for-me/CLIProxyAPI/discussions/1458,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1741
+"Harden ""轮询会无差别轮询即便某个账号在很久前已经空配额"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1742 | Source: router-for-me/CLIProxyAPI discussion#1459 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1459 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1459,https://github.com/router-for-me/CLIProxyAPI/discussions/1459,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1742
+"Operationalize ""Feature request: Add support for perplexity"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1743 | Source: router-for-me/CLIProxyAPI discussion#1470 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1470 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1470,https://github.com/router-for-me/CLIProxyAPI/discussions/1470,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1743
+"Generalize ""Perplexity as a provider"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1744 | Source: router-for-me/CLIProxyAPI discussion#1069 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1069 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#1069,https://github.com/router-for-me/CLIProxyAPI/discussions/1069,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1744
+"Improve CLI UX around ""更新到最新版本之后,出现了503的报错"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1745 | Source: router-for-me/CLIProxyAPI discussion#1227 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1227 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1227,https://github.com/router-for-me/CLIProxyAPI/discussions/1227,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1745
+"Extend docs for ""使用统计 每次重启服务就没了,能否重启不丢失,使用手动的方式去清理统计数据"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1746 | Source: router-for-me/CLIProxyAPI discussion#881 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/881 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,discussion,router-for-me/CLIProxyAPI,discussion#881,https://github.com/router-for-me/CLIProxyAPI/discussions/881,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1746
+"Add robust stream/non-stream parity tests for ""[antigravity] 500 Internal error and 403 Verification Required for multiple accounts"" across supported providers.",Execution item CP2K-1747 | Source: router-for-me/CLIProxyAPI discussion#1488 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1488 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,discussion,router-for-me/CLIProxyAPI,discussion#1488,https://github.com/router-for-me/CLIProxyAPI/discussions/1488,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1747
+"Prepare safe rollout for ""Should we add a limit protection feature to the API?"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1749 | Source: router-for-me/CLIProxyAPI discussion#1359 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1359 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,discussion,router-for-me/CLIProxyAPI,discussion#1359,https://github.com/router-for-me/CLIProxyAPI/discussions/1359,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1749
+"Standardize naming/metadata affected by ""好像codebuddy也能有命令行也能用,能加进去吗"" across both repos and docs.","Execution item CP2K-1750 | Source: router-for-me/CLIProxyAPI discussion#1262 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1262 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1262,https://github.com/router-for-me/CLIProxyAPI/discussions/1262,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1750
+"Harden ""反重力的banana pro额度一直无法恢复"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1752 | Source: router-for-me/CLIProxyAPI discussion#1286 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1286 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1286,https://github.com/router-for-me/CLIProxyAPI/discussions/1286,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1752
+"Operationalize ""Gemini API 密钥 那里填写秘钥后怎么配置每个密钥的代理,怎么配置模型映射?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1753 | Source: router-for-me/CLIProxyAPI discussion#1272 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1272 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1272,https://github.com/router-for-me/CLIProxyAPI/discussions/1272,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1753
+"Generalize ""该凭证暂无可用模型,这是被封号了的意思吗"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1754 | Source: router-for-me/CLIProxyAPI discussion#1204 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1204 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1204,https://github.com/router-for-me/CLIProxyAPI/discussions/1204,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1754
+"Improve CLI UX around ""gemini api 使用openai 兼容的url 使用时 tool_call 有问题"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1755 | Source: router-for-me/CLIProxyAPI discussion#1176 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1176 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1176,https://github.com/router-for-me/CLIProxyAPI/discussions/1176,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1755
+"Add robust stream/non-stream parity tests for ""v6.7.24,反重力的gemini-3,调用API有bug"" across supported providers.",Execution item CP2K-1757 | Source: router-for-me/CLIProxyAPI discussion#1246 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1246 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,discussion,router-for-me/CLIProxyAPI,discussion#1246,https://github.com/router-for-me/CLIProxyAPI/discussions/1246,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1757
+"Refactor internals touched by ""Do Antigravity and Gemini CLI have internet access via proxy?"" to reduce coupling and improve maintainability.",Execution item CP2K-1758 | Source: router-for-me/CLIProxyAPI discussion#1242 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1242 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,discussion,router-for-me/CLIProxyAPI,discussion#1242,https://github.com/router-for-me/CLIProxyAPI/discussions/1242,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1758
+"Standardize naming/metadata affected by ""能不能增加一个配额保护"" across both repos and docs.","Execution item CP2K-1760 | Source: router-for-me/CLIProxyAPI discussion#1228 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1228 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1228,https://github.com/router-for-me/CLIProxyAPI/discussions/1228,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1760
+"Follow up ""[功能需求] 认证文件增加屏蔽模型跳过轮询"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1761 | Source: router-for-me/CLIProxyAPI discussion#1200 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1200 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1200,https://github.com/router-for-me/CLIProxyAPI/discussions/1200,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1761
+"Harden ""[Feature] 增加gemini business账号支持"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1762 | Source: router-for-me/CLIProxyAPI discussion#392 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/392 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#392,https://github.com/router-for-me/CLIProxyAPI/discussions/392,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1762
+"Generalize ""Could I use gemini-3-pro-preview by gmini cli?"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1764 | Source: router-for-me/CLIProxyAPI discussion#393 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/393 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,discussion,router-for-me/CLIProxyAPI,discussion#393,https://github.com/router-for-me/CLIProxyAPI/discussions/393,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1764
+"Improve CLI UX around ""可以出个检查更新吗,不然每次都要拉下载然后重启"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1765 | Source: router-for-me/CLIProxyAPI discussion#1201 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1201 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1201,https://github.com/router-for-me/CLIProxyAPI/discussions/1201,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1765
+"Standardize naming/metadata affected by ""希望可以添加授权文件分组的功能(不是授权类型分组)"" across both repos and docs.","Execution item CP2K-1770 | Source: router-for-me/CLIProxyAPI discussion#1141 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1141 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1141,https://github.com/router-for-me/CLIProxyAPI/discussions/1141,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1770
+"Harden ""Anyone have any idea on how to add thinking?"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1772 | Source: router-for-me/CLIProxyAPI discussion#1112 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1112 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#1112,https://github.com/router-for-me/CLIProxyAPI/discussions/1112,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1772
+"Add robust stream/non-stream parity tests for ""认证文件管理可否添加一键导出所有凭证的按钮"" across supported providers.",Execution item CP2K-1777 | Source: router-for-me/CLIProxyAPI discussion#1180 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1180 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1180,https://github.com/router-for-me/CLIProxyAPI/discussions/1180,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1777
+"Refactor internals touched by ""添加一个对某一个分组使用不同的轮询策略"" to reduce coupling and improve maintainability.",Execution item CP2K-1778 | Source: router-for-me/CLIProxyAPI discussion#1071 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1071 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#1071,https://github.com/router-for-me/CLIProxyAPI/discussions/1071,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1778
+"Harden ""希望添加一个最低quota功能"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1782 | Source: router-for-me/CLIProxyAPI discussion#975 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/975 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#975,https://github.com/router-for-me/CLIProxyAPI/discussions/975,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1782
+"Operationalize ""反重力的模型名可以重命名吗"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1783 | Source: router-for-me/CLIProxyAPI discussion#783 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/783 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#783,https://github.com/router-for-me/CLIProxyAPI/discussions/783,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1783
+"Generalize ""gemini 3 missing field"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1784 | Source: router-for-me/CLIProxyAPI discussion#1017 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1017 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#1017,https://github.com/router-for-me/CLIProxyAPI/discussions/1017,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1784
+"Add robust stream/non-stream parity tests for ""Feature: 渠道关闭/开启切换按钮、渠道测试按钮、指定渠道模型调用"" across supported providers.",Execution item CP2K-1787 | Source: router-for-me/CLIProxyAPI discussion#525 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/525 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#525,https://github.com/router-for-me/CLIProxyAPI/discussions/525,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1787
+"Prepare safe rollout for ""A tool for AmpCode agent to turn on off free mode to enjoy Oracle, Websearch by free credits without seeing ads to much"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1789 | Source: router-for-me/CLIProxyAPI discussion#1203 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1203 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1203,https://github.com/router-for-me/CLIProxyAPI/discussions/1203,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1789
+"Standardize naming/metadata affected by ""现有指令会让 Gemini 产生误解,无法真正忽略前置系统提示"" across both repos and docs.","Execution item CP2K-1790 | Source: router-for-me/CLIProxyAPI discussion#1206 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1206 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#1206,https://github.com/router-for-me/CLIProxyAPI/discussions/1206,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1790
+"Harden ""exhausted没被重试or跳过,被传下来了"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1792 | Source: router-for-me/CLIProxyAPI discussion#969 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/969 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#969,https://github.com/router-for-me/CLIProxyAPI/discussions/969,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1792
+"Operationalize ""希望能够添加一个不带`-thinking`后缀的opus"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1793 | Source: router-for-me/CLIProxyAPI discussion#963 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/963 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#963,https://github.com/router-for-me/CLIProxyAPI/discussions/963,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1793
+"Improve CLI UX around ""能不能支持UA伪装?"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1795 | Source: router-for-me/CLIProxyAPI discussion#980 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/980 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#980,https://github.com/router-for-me/CLIProxyAPI/discussions/980,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1795
+"Extend docs for ""希望能自定义系统提示,比如自定义前缀"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1796 | Source: router-for-me/CLIProxyAPI discussion#925 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/925 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#925,https://github.com/router-for-me/CLIProxyAPI/discussions/925,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1796
+"Prepare safe rollout for ""[feat]自动优化Antigravity的quota刷新时间选项"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1799 | Source: router-for-me/CLIProxyAPI discussion#898 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/898 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#898,https://github.com/router-for-me/CLIProxyAPI/discussions/898,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1799
+"Standardize naming/metadata affected by ""增加qodercli"" across both repos and docs.","Execution item CP2K-1800 | Source: router-for-me/CLIProxyAPI discussion#899 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/899 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,cli-ux-dx,yes,discussion,router-for-me/CLIProxyAPI,discussion#899,https://github.com/router-for-me/CLIProxyAPI/discussions/899,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1800
+"Follow up ""谷歌授权登录成功,但是额度刷新失败"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1801 | Source: router-for-me/CLIProxyAPI discussion#870 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/870 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,discussion,router-for-me/CLIProxyAPI,discussion#870,https://github.com/router-for-me/CLIProxyAPI/discussions/870,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1801
+"Generalize ""Special Thanks"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1804 | Source: router-for-me/CLIProxyAPI discussion#867 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/867 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,discussion,router-for-me/CLIProxyAPI,discussion#867,https://github.com/router-for-me/CLIProxyAPI/discussions/867,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1804
+"Extend docs for ""在cherry-studio中的流失响应似乎未生效"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1806 | Source: router-for-me/CLIProxyAPI discussion#826 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/826 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#826,https://github.com/router-for-me/CLIProxyAPI/discussions/826,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1806
+"Add robust stream/non-stream parity tests for ""[FQ]增加telegram bot集成和更多管理API命令刷新Providers周期额度"" across supported providers.",Execution item CP2K-1807 | Source: router-for-me/CLIProxyAPI discussion#825 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/825 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#825,https://github.com/router-for-me/CLIProxyAPI/discussions/825,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1807
+"Standardize naming/metadata affected by ""win10无法安装没反应,cmd安装提示,failed to read config file"" across both repos and docs.","Execution item CP2K-1810 | Source: router-for-me/CLIProxyAPI discussion#810 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/810 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#810,https://github.com/router-for-me/CLIProxyAPI/discussions/810,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1810
+"Follow up ""iflow-cli 的模型配置到 claude code 上 用的是Anthropic协议接口 多轮对话缓存的问题"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1811 | Source: router-for-me/CLIProxyAPI discussion#809 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/809 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,discussion,router-for-me/CLIProxyAPI,discussion#809,https://github.com/router-for-me/CLIProxyAPI/discussions/809,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1811
+"Operationalize ""[功能请求] 假流式和非流式防超时"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1813 | Source: router-for-me/CLIProxyAPI discussion#851 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/851 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,discussion,router-for-me/CLIProxyAPI,discussion#851,https://github.com/router-for-me/CLIProxyAPI/discussions/851,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1813
+"Generalize ""[功能请求] 新增联网gemini 联网模型"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1814 | Source: router-for-me/CLIProxyAPI discussion#780 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/780 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#780,https://github.com/router-for-me/CLIProxyAPI/discussions/780,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1814
+"Improve CLI UX around ""Support for parallel requests"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1815 | Source: router-for-me/CLIProxyAPI discussion#794 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/794 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#794,https://github.com/router-for-me/CLIProxyAPI/discussions/794,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1815
+"Refactor internals touched by ""Support Trae"" to reduce coupling and improve maintainability.",Execution item CP2K-1818 | Source: router-for-me/CLIProxyAPI discussion#671 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/671 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#671,https://github.com/router-for-me/CLIProxyAPI/discussions/671,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1818
+"Follow up ""[Question] Mapping different keys to different accounts for same provider"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1821 | Source: router-for-me/CLIProxyAPI discussion#644 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/644 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#644,https://github.com/router-for-me/CLIProxyAPI/discussions/644,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1821
+"Harden ""[Feature Request] Set hard limits for CLIProxyAPI API Keys"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1822 | Source: router-for-me/CLIProxyAPI discussion#645 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/645 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#645,https://github.com/router-for-me/CLIProxyAPI/discussions/645,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1822
+"Operationalize ""Request support for codebuff access."" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1823 | Source: router-for-me/CLIProxyAPI discussion#652 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/652 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,discussion,router-for-me/CLIProxyAPI,discussion#652,https://github.com/router-for-me/CLIProxyAPI/discussions/652,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1823
+"Extend docs for ""使用统计的数据可以持久化吗"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1826 | Source: router-for-me/CLIProxyAPI discussion#584 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/584 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,discussion,router-for-me/CLIProxyAPI,discussion#584,https://github.com/router-for-me/CLIProxyAPI/discussions/584,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1826
+"Prepare safe rollout for ""能否增加一个count_tokens接口的兼容性配置"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1829 | Source: router-for-me/CLIProxyAPI discussion#560 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/560 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#560,https://github.com/router-for-me/CLIProxyAPI/discussions/560,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1829
+"Follow up ""[Suggestion] Intelligent Model Routing"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1831 | Source: router-for-me/CLIProxyAPI discussion#520 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/520 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#520,https://github.com/router-for-me/CLIProxyAPI/discussions/520,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1831
+"Harden ""Welcome to CLIProxyAPI Discussions!"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1832 | Source: router-for-me/CLIProxyAPI discussion#198 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/198 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,discussion,router-for-me/CLIProxyAPI,discussion#198,https://github.com/router-for-me/CLIProxyAPI/discussions/198,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1832
+"Improve CLI UX around ""Acknowledgments"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1835 | Source: router-for-me/CLIProxyAPI discussion#486 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/486 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#486,https://github.com/router-for-me/CLIProxyAPI/discussions/486,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1835
+"Add robust stream/non-stream parity tests for ""可用模型列表 建议按照 认证文件类型 来给出"" across supported providers.",Execution item CP2K-1837 | Source: router-for-me/CLIProxyAPI discussion#456 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/456 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#456,https://github.com/router-for-me/CLIProxyAPI/discussions/456,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1837
+"Refactor internals touched by ""antigravity认证难以成功"" to reduce coupling and improve maintainability.",Execution item CP2K-1838 | Source: router-for-me/CLIProxyAPI discussion#398 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/398 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,discussion,router-for-me/CLIProxyAPI,discussion#398,https://github.com/router-for-me/CLIProxyAPI/discussions/398,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1838
+"Harden ""iflow使用谷歌登录后,填入cookie无法正常使用"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1842 | Source: router-for-me/CLIProxyAPI discussion#409 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/409 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#409,https://github.com/router-for-me/CLIProxyAPI/discussions/409,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1842
+"Generalize ""Ports Reserved By Windows Hyper-V"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1844 | Source: router-for-me/CLIProxyAPI discussion#395 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/395 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#395,https://github.com/router-for-me/CLIProxyAPI/discussions/395,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1844
+"Extend docs for ""claude code Auto compact not triggered even after reaching autocompact buffer threshold"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1846 | Source: router-for-me/CLIProxyAPI discussion#581 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/581 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#581,https://github.com/router-for-me/CLIProxyAPI/discussions/581,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1846
+"Refactor internals touched by ""Recommended Endpoint (OpenAI vs Anthropic)"" to reduce coupling and improve maintainability.",Execution item CP2K-1848 | Source: router-for-me/CLIProxyAPI discussion#345 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/345 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#345,https://github.com/router-for-me/CLIProxyAPI/discussions/345,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1848
+"Prepare safe rollout for ""Is there any chance to make windsurf a provider of cliproxyapi?"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1849 | Source: router-for-me/CLIProxyAPI discussion#331 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/331 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#331,https://github.com/router-for-me/CLIProxyAPI/discussions/331,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1849
+"Follow up ""docker方式部署后,怎么登陆gemini账号呢?"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1851 | Source: router-for-me/CLIProxyAPI discussion#330 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/330 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,discussion,router-for-me/CLIProxyAPI,discussion#330,https://github.com/router-for-me/CLIProxyAPI/discussions/330,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1851
+"Generalize ""CLIProxyAPI error in huggingface"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1854 | Source: router-for-me/CLIProxyAPI discussion#292 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/292 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,error-handling-retries,yes,discussion,router-for-me/CLIProxyAPI,discussion#292,https://github.com/router-for-me/CLIProxyAPI/discussions/292,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1854
+"Refactor internals touched by ""Persisted Usage Metrics"" to reduce coupling and improve maintainability.",Execution item CP2K-1858 | Source: router-for-me/CLIProxyAPI discussion#224 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/224 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,discussion,router-for-me/CLIProxyAPI,discussion#224,https://github.com/router-for-me/CLIProxyAPI/discussions/224,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1858
+"Prepare safe rollout for ""CLI Recommendations"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1859 | Source: router-for-me/CLIProxyAPI discussion#199 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/199 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,discussion,router-for-me/CLIProxyAPI,discussion#199,https://github.com/router-for-me/CLIProxyAPI/discussions/199,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1859
+"Standardize naming/metadata affected by ""Codex trying to read from non-existant Bashes in Claude"" across both repos and docs.","Execution item CP2K-1860 | Source: router-for-me/CLIProxyAPI discussion#213 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/213 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,error-handling-retries,yes,discussion,router-for-me/CLIProxyAPI,discussion#213,https://github.com/router-for-me/CLIProxyAPI/discussions/213,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1860
+"Follow up ""Feature request: Add token cost statistics"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1861 | Source: router-for-me/CLIProxyAPI discussion#522 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/522 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#522,https://github.com/router-for-me/CLIProxyAPI/discussions/522,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:discussion",CP2K-1861
+"Refactor internals touched by ""请求添加新功能:支持对Orchids的反代"" to reduce coupling and improve maintainability.",Execution item CP2K-1868 | Source: router-for-me/CLIProxyAPIPlus issue#254 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/254 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#254,https://github.com/router-for-me/CLIProxyAPIPlus/issues/254,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1868
+"Operationalize ""context length for models registered from github-copilot should always be 128K"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1873 | Source: router-for-me/CLIProxyAPIPlus issue#241 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/241 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#241,https://github.com/router-for-me/CLIProxyAPIPlus/issues/241,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1873
+"Add robust stream/non-stream parity tests for ""Opus 4.6"" across supported providers.",Execution item CP2K-1877 | Source: router-for-me/CLIProxyAPIPlus issue#219 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/219 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#219,https://github.com/router-for-me/CLIProxyAPIPlus/issues/219,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1877
+"Generalize ""failed to save config: open /CLIProxyAPI/config.yaml: read-only file system"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1884 | Source: router-for-me/CLIProxyAPIPlus issue#201 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/201 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPIPlus,issue#201,https://github.com/router-for-me/CLIProxyAPIPlus/issues/201,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1884
+"Refactor internals touched by ""why no kiro in dashboard"" to reduce coupling and improve maintainability.",Execution item CP2K-1888 | Source: router-for-me/CLIProxyAPIPlus issue#183 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/183 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPIPlus,issue#183,https://github.com/router-for-me/CLIProxyAPIPlus/issues/183,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1888
+"Prepare safe rollout for ""OpenAI-MLX-Server and vLLM-MLX Support?"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1889 | Source: router-for-me/CLIProxyAPIPlus issue#179 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/179 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#179,https://github.com/router-for-me/CLIProxyAPIPlus/issues/179,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1889
+"Follow up ""Kiro Token 导入失败: Refresh token is required"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1891 | Source: router-for-me/CLIProxyAPIPlus issue#177 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/177 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#177,https://github.com/router-for-me/CLIProxyAPIPlus/issues/177,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1891
+"Harden ""Kimi Code support"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1892 | Source: router-for-me/CLIProxyAPIPlus issue#169 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/169 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#169,https://github.com/router-for-me/CLIProxyAPIPlus/issues/169,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1892
+"Operationalize ""kiro如何看配额?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1893 | Source: router-for-me/CLIProxyAPIPlus issue#165 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/165 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#165,https://github.com/router-for-me/CLIProxyAPIPlus/issues/165,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1893
+"Generalize ""kiro反代的Write工具json截断问题,返回的文件路径经常是错误的"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1894 | Source: router-for-me/CLIProxyAPIPlus issue#164 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/164 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#164,https://github.com/router-for-me/CLIProxyAPIPlus/issues/164,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1894
+"Add robust stream/non-stream parity tests for ""kiro反代出现重复输出的情况"" across supported providers.",Execution item CP2K-1897 | Source: router-for-me/CLIProxyAPIPlus issue#160 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/160 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#160,https://github.com/router-for-me/CLIProxyAPIPlus/issues/160,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1897
+"Refactor internals touched by ""kiro IDC 刷新 token 失败"" to reduce coupling and improve maintainability.",Execution item CP2K-1898 | Source: router-for-me/CLIProxyAPIPlus issue#149 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/149 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPIPlus,issue#149,https://github.com/router-for-me/CLIProxyAPIPlus/issues/149,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1898
+"Prepare safe rollout for ""请求docker部署支持arm架构的机器!感谢。"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1899 | Source: router-for-me/CLIProxyAPIPlus issue#147 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/147 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPIPlus,issue#147,https://github.com/router-for-me/CLIProxyAPIPlus/issues/147,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1899
+"Operationalize ""Kimi For Coding Support / 请求为 Kimi 添加编程支持"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1903 | Source: router-for-me/CLIProxyAPIPlus issue#141 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/141 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPIPlus,issue#141,https://github.com/router-for-me/CLIProxyAPIPlus/issues/141,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1903
+"Extend docs for ""Routing strategy ""fill-first"" is not working as expected"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1906 | Source: router-for-me/CLIProxyAPIPlus issue#133 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/133 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#133,https://github.com/router-for-me/CLIProxyAPIPlus/issues/133,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1906
+"Add robust stream/non-stream parity tests for ""WARN kiro_executor.go:1189 kiro: received 400 error (attempt 1/3), body: {""message"":""Improperly formed request."",""reason"":null}"" across supported providers.",Execution item CP2K-1907 | Source: router-for-me/CLIProxyAPIPlus issue#131 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/131 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#131,https://github.com/router-for-me/CLIProxyAPIPlus/issues/131,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1907
+"Refactor internals touched by ""CLIProxyApiPlus不支持像CLIProxyApi一样使用ClawCloud云部署吗?"" to reduce coupling and improve maintainability.",Execution item CP2K-1908 | Source: router-for-me/CLIProxyAPIPlus issue#129 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/129 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,cli-ux-dx,yes,issue,router-for-me/CLIProxyAPIPlus,issue#129,https://github.com/router-for-me/CLIProxyAPIPlus/issues/129,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1908
+"Follow up ""Gemini3无法生图"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1911 | Source: router-for-me/CLIProxyAPIPlus issue#122 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/122 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPIPlus,issue#122,https://github.com/router-for-me/CLIProxyAPIPlus/issues/122,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1911
+"Extend docs for ""大佬,什么时候搞个多账号管理呀"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1916 | Source: router-for-me/CLIProxyAPIPlus issue#108 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/108 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#108,https://github.com/router-for-me/CLIProxyAPIPlus/issues/108,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1916
+"Standardize naming/metadata affected by ""ADD TRAE IDE support"" across both repos and docs.","Execution item CP2K-1920 | Source: router-for-me/CLIProxyAPIPlus issue#97 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/97 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#97,https://github.com/router-for-me/CLIProxyAPIPlus/issues/97,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1920
+"Harden ""GitHub Copilot Model Call Failure"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1922 | Source: router-for-me/CLIProxyAPIPlus issue#99 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/99 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#99,https://github.com/router-for-me/CLIProxyAPIPlus/issues/99,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1922
+"Standardize naming/metadata affected by ""failed to load config: failed to read config file: read /CLIProxyAPI/config.yaml: is a directory"" across both repos and docs.","Execution item CP2K-1930 | Source: router-for-me/CLIProxyAPIPlus issue#81 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/81 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPIPlus,issue#81,https://github.com/router-for-me/CLIProxyAPIPlus/issues/81,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1930
+"Improve CLI UX around ""Claude Code WebSearch fails with 400 error when using Kiro/Amazon Q backend"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1935 | Source: router-for-me/CLIProxyAPIPlus issue#72 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/72 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#72,https://github.com/router-for-me/CLIProxyAPIPlus/issues/72,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1935
+"Extend docs for ""[BUG] Vision requests fail for ZAI (glm) and Copilot models with missing header / invalid parameter errors"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1936 | Source: router-for-me/CLIProxyAPIPlus issue#69 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/69 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#69,https://github.com/router-for-me/CLIProxyAPIPlus/issues/69,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1936
+"Add robust stream/non-stream parity tests for ""怎么更新iflow的模型列表。"" across supported providers.",Execution item CP2K-1937 | Source: router-for-me/CLIProxyAPIPlus issue#66 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/66 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#66,https://github.com/router-for-me/CLIProxyAPIPlus/issues/66,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1937
+"Follow up ""GitHub Copilot models seem to be hardcoded"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1941 | Source: router-for-me/CLIProxyAPIPlus issue#37 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/37 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#37,https://github.com/router-for-me/CLIProxyAPIPlus/issues/37,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1941
+"Harden ""plus版本只能自己构建吗?"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1942 | Source: router-for-me/CLIProxyAPIPlus issue#34 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/34 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,S,general-polish,yes,issue,router-for-me/CLIProxyAPIPlus,issue#34,https://github.com/router-for-me/CLIProxyAPIPlus/issues/34,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:s,kind:issue",CP2K-1942
+"Generalize ""feat(registry): add GPT-4o model variants for GitHub Copilot"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0084 | Source: router-for-me/CLIProxyAPIPlus pr#255 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/255 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#255,https://github.com/router-for-me/CLIProxyAPIPlus/pull/255,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0084
+"Extend docs for ""feat(registry): add Gemini 3.1 Pro to GitHub Copilot provider"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0086 | Source: router-for-me/CLIProxyAPIPlus pr#250 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/250 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#250,https://github.com/router-for-me/CLIProxyAPIPlus/pull/250,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0086
+"Refactor internals touched by ""v6.8.21"" to reduce coupling and improve maintainability.",Execution item CP2K-0088 | Source: router-for-me/CLIProxyAPIPlus pr#248 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/248 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#248,https://github.com/router-for-me/CLIProxyAPIPlus/pull/248,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0088
+"Standardize naming/metadata affected by ""feat: add Claude Sonnet 4.6 model support for Kiro provider"" across both repos and docs.","Execution item CP2K-0090 | Source: router-for-me/CLIProxyAPIPlus pr#244 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/244 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#244,https://github.com/router-for-me/CLIProxyAPIPlus/pull/244,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0090
+"Operationalize ""feat(registry): add Sonnet 4.6 to GitHub Copilot provider"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0093 | Source: router-for-me/CLIProxyAPIPlus pr#240 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/240 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#240,https://github.com/router-for-me/CLIProxyAPIPlus/pull/240,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0093
+"Generalize ""feat(registry): add GPT-5.3 Codex to GitHub Copilot provider"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0094 | Source: router-for-me/CLIProxyAPIPlus pr#239 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/239 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#239,https://github.com/router-for-me/CLIProxyAPIPlus/pull/239,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0094
+"Extend docs for ""v6.8.18"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0096 | Source: router-for-me/CLIProxyAPIPlus pr#237 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/237 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#237,https://github.com/router-for-me/CLIProxyAPIPlus/pull/237,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0096
+"Improve CLI UX around ""v6.8.15"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0105 | Source: router-for-me/CLIProxyAPIPlus pr#227 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/227 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#227,https://github.com/router-for-me/CLIProxyAPIPlus/pull/227,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0105
+"Add robust stream/non-stream parity tests for ""v6.8.13"" across supported providers.",Execution item CP2K-0107 | Source: router-for-me/CLIProxyAPIPlus pr#225 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/225 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#225,https://github.com/router-for-me/CLIProxyAPIPlus/pull/225,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0107
+"Standardize naming/metadata affected by ""fix(kiro): 修复之前提交的错误的application/cbor请求处理逻辑"" across both repos and docs.","Execution item CP2K-0110 | Source: router-for-me/CLIProxyAPIPlus pr#220 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/220 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#220,https://github.com/router-for-me/CLIProxyAPIPlus/pull/220,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0110
+"Follow up ""fix: prevent merging assistant messages with tool_calls"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0111 | Source: router-for-me/CLIProxyAPIPlus pr#218 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/218 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#218,https://github.com/router-for-me/CLIProxyAPIPlus/pull/218,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0111
+"Harden ""增加kiro新模型并根据其他提供商同模型配置Thinking"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0112 | Source: router-for-me/CLIProxyAPIPlus pr#216 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/216 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#216,https://github.com/router-for-me/CLIProxyAPIPlus/pull/216,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0112
+"Add robust stream/non-stream parity tests for ""v6.8.9"" across supported providers.",Execution item CP2K-0117 | Source: router-for-me/CLIProxyAPIPlus pr#207 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/207 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#207,https://github.com/router-for-me/CLIProxyAPIPlus/pull/207,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0117
+"Standardize naming/metadata affected by ""fix(copilot): prevent premium request count inflation for Claude models"" across both repos and docs.","Execution item CP2K-0120 | Source: router-for-me/CLIProxyAPIPlus pr#203 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/203 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#203,https://github.com/router-for-me/CLIProxyAPIPlus/pull/203,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0120
+"Harden ""v6.8.4"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0122 | Source: router-for-me/CLIProxyAPIPlus pr#197 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/197 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#197,https://github.com/router-for-me/CLIProxyAPIPlus/pull/197,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0122
+"Operationalize ""v6.8.1"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0123 | Source: router-for-me/CLIProxyAPIPlus pr#195 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/195 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#195,https://github.com/router-for-me/CLIProxyAPIPlus/pull/195,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0123
+"Extend docs for ""v6.8.0"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0126 | Source: router-for-me/CLIProxyAPIPlus pr#192 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/192 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#192,https://github.com/router-for-me/CLIProxyAPIPlus/pull/192,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0126
+"Refactor internals touched by ""fix(kiro): handle empty content in current user message for compaction"" to reduce coupling and improve maintainability.",Execution item CP2K-0128 | Source: router-for-me/CLIProxyAPIPlus pr#190 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/190 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#190,https://github.com/router-for-me/CLIProxyAPIPlus/pull/190,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0128
+"Prepare safe rollout for ""feat: add Claude Opus 4.6 support for Kiro"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0129 | Source: router-for-me/CLIProxyAPIPlus pr#189 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/189 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#189,https://github.com/router-for-me/CLIProxyAPIPlus/pull/189,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0129
+"Harden ""fix(kiro): handle empty content in Claude format assistant messages"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0132 | Source: router-for-me/CLIProxyAPIPlus pr#186 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/186 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#186,https://github.com/router-for-me/CLIProxyAPIPlus/pull/186,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0132
+"Generalize ""add kimik2.5 to iflow"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0134 | Source: router-for-me/CLIProxyAPIPlus pr#184 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/184 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,testing-and-quality,yes,pr,router-for-me/CLIProxyAPIPlus,pr#184,https://github.com/router-for-me/CLIProxyAPIPlus/pull/184,"board-2000,theme:testing-and-quality,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0134
+"Standardize naming/metadata affected by ""feat(registry): add kiro channel support for model definitions"" across both repos and docs.","Execution item CP2K-0140 | Source: router-for-me/CLIProxyAPIPlus pr#174 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/174 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#174,https://github.com/router-for-me/CLIProxyAPIPlus/pull/174,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0140
+"Operationalize ""feat(copilot): Add copilot usage monitoring in endpoint /api-call"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0143 | Source: router-for-me/CLIProxyAPIPlus pr#171 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/171 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPIPlus,pr#171,https://github.com/router-for-me/CLIProxyAPIPlus/pull/171,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0143
+"Add robust stream/non-stream parity tests for ""fix(kiro): handle empty content in messages to prevent Bad Request errors"" across supported providers.",Execution item CP2K-0147 | Source: router-for-me/CLIProxyAPIPlus pr#162 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/162 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#162,https://github.com/router-for-me/CLIProxyAPIPlus/pull/162,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0147
+"Refactor internals touched by ""v6.7.40"" to reduce coupling and improve maintainability.",Execution item CP2K-0148 | Source: router-for-me/CLIProxyAPIPlus pr#161 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/161 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#161,https://github.com/router-for-me/CLIProxyAPIPlus/pull/161,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0148
+"Generalize ""v6.7.31"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0154 | Source: router-for-me/CLIProxyAPIPlus pr#153 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/153 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#153,https://github.com/router-for-me/CLIProxyAPIPlus/pull/153,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0154
+"Standardize naming/metadata affected by ""fix: refresh token for kiro enterprise account"" across both repos and docs.","Execution item CP2K-0160 | Source: router-for-me/CLIProxyAPIPlus pr#143 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/143 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#143,https://github.com/router-for-me/CLIProxyAPIPlus/pull/143,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0160
+"Harden ""fix: add Copilot-Vision-Request header for vision content"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0162 | Source: router-for-me/CLIProxyAPIPlus pr#139 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/139 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPIPlus,pr#139,https://github.com/router-for-me/CLIProxyAPIPlus/pull/139,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0162
+"Operationalize ""v6.7.26"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0163 | Source: router-for-me/CLIProxyAPIPlus pr#138 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/138 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#138,https://github.com/router-for-me/CLIProxyAPIPlus/pull/138,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0163
+"Improve CLI UX around ""支持多个idc登录凭证保存"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0165 | Source: router-for-me/CLIProxyAPIPlus pr#135 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/135 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#135,https://github.com/router-for-me/CLIProxyAPIPlus/pull/135,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0165
+"Extend docs for ""Resolve Issue #131"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0166 | Source: router-for-me/CLIProxyAPIPlus pr#132 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/132 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#132,https://github.com/router-for-me/CLIProxyAPIPlus/pull/132,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0166
+"Add robust stream/non-stream parity tests for ""v6.7.22"" across supported providers.",Execution item CP2K-0167 | Source: router-for-me/CLIProxyAPIPlus pr#130 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/130 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#130,https://github.com/router-for-me/CLIProxyAPIPlus/pull/130,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0167
+"Prepare safe rollout for ""feat(kiro): 添加用于令牌额度查询的api-call兼容"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0169 | Source: router-for-me/CLIProxyAPIPlus pr#126 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/126 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#126,https://github.com/router-for-me/CLIProxyAPIPlus/pull/126,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0169
+"Harden ""兼容格式"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0172 | Source: router-for-me/CLIProxyAPIPlus pr#121 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/121 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#121,https://github.com/router-for-me/CLIProxyAPIPlus/pull/121,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0172
+"Improve CLI UX around ""v6.7.15"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0175 | Source: router-for-me/CLIProxyAPIPlus pr#117 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/117 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#117,https://github.com/router-for-me/CLIProxyAPIPlus/pull/117,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0175
+"Extend docs for ""合并"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0176 | Source: router-for-me/CLIProxyAPIPlus pr#116 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/116 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#116,https://github.com/router-for-me/CLIProxyAPIPlus/pull/116,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0176
+"Add robust stream/non-stream parity tests for ""v6.7.9"" across supported providers.",Execution item CP2K-0177 | Source: router-for-me/CLIProxyAPIPlus pr#114 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/114 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#114,https://github.com/router-for-me/CLIProxyAPIPlus/pull/114,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0177
+"Refactor internals touched by ""Add Github Copilot support for management interface"" to reduce coupling and improve maintainability.",Execution item CP2K-0178 | Source: router-for-me/CLIProxyAPIPlus pr#112 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/112 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPIPlus,pr#112,https://github.com/router-for-me/CLIProxyAPIPlus/pull/112,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0178
+"Prepare safe rollout for ""fix: prevent system prompt re-injection on subsequent turns"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0179 | Source: router-for-me/CLIProxyAPIPlus pr#110 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/110 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#110,https://github.com/router-for-me/CLIProxyAPIPlus/pull/110,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0179
+"Standardize naming/metadata affected by ""Feat/usage persistance"" across both repos and docs.","Execution item CP2K-0180 | Source: router-for-me/CLIProxyAPIPlus pr#109 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/109 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#109,https://github.com/router-for-me/CLIProxyAPIPlus/pull/109,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0180
+"Follow up ""fix(kiro): correct Amazon Q endpoint URL path"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0181 | Source: router-for-me/CLIProxyAPIPlus pr#107 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/107 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#107,https://github.com/router-for-me/CLIProxyAPIPlus/pull/107,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0181
+"Operationalize ""v6.7.0"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0183 | Source: router-for-me/CLIProxyAPIPlus pr#104 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/104 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#104,https://github.com/router-for-me/CLIProxyAPIPlus/pull/104,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0183
+"Improve CLI UX around ""fix(kiro): re-add kiro-auto to registry"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0185 | Source: router-for-me/CLIProxyAPIPlus pr#100 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/100 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#100,https://github.com/router-for-me/CLIProxyAPIPlus/pull/100,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0185
+"Extend docs for ""v6.6.105"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0186 | Source: router-for-me/CLIProxyAPIPlus pr#98 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/98 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#98,https://github.com/router-for-me/CLIProxyAPIPlus/pull/98,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0186
+"Prepare safe rollout for ""v6.6.96"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0189 | Source: router-for-me/CLIProxyAPIPlus pr#92 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/92 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#92,https://github.com/router-for-me/CLIProxyAPIPlus/pull/92,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0189
+"Follow up ""v6.6.85"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0191 | Source: router-for-me/CLIProxyAPIPlus pr#88 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/88 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#88,https://github.com/router-for-me/CLIProxyAPIPlus/pull/88,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0191
+"Generalize ""v6.6.81"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0194 | Source: router-for-me/CLIProxyAPIPlus pr#80 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/80 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#80,https://github.com/router-for-me/CLIProxyAPIPlus/pull/80,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0194
+"Improve CLI UX around ""v6.6.71"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0195 | Source: router-for-me/CLIProxyAPIPlus pr#75 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/75 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#75,https://github.com/router-for-me/CLIProxyAPIPlus/pull/75,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0195
+"Add robust stream/non-stream parity tests for ""feat: Add MCP tool support for Cursor IDE"" across supported providers.",Execution item CP2K-0197 | Source: router-for-me/CLIProxyAPIPlus pr#71 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/71 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#71,https://github.com/router-for-me/CLIProxyAPIPlus/pull/71,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0197
+"Refactor internals touched by ""v6.6.60"" to reduce coupling and improve maintainability.",Execution item CP2K-0198 | Source: router-for-me/CLIProxyAPIPlus pr#70 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/70 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#70,https://github.com/router-for-me/CLIProxyAPIPlus/pull/70,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0198
+"Prepare safe rollout for ""v6.6.56"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0199 | Source: router-for-me/CLIProxyAPIPlus pr#68 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/68 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#68,https://github.com/router-for-me/CLIProxyAPIPlus/pull/68,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0199
+"Standardize naming/metadata affected by ""v6.6.54"" across both repos and docs.","Execution item CP2K-0200 | Source: router-for-me/CLIProxyAPIPlus pr#67 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/67 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#67,https://github.com/router-for-me/CLIProxyAPIPlus/pull/67,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0200
+"Follow up ""v6.6.52"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0201 | Source: router-for-me/CLIProxyAPIPlus pr#65 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/65 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#65,https://github.com/router-for-me/CLIProxyAPIPlus/pull/65,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0201
+"Harden ""v6.6.51"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0202 | Source: router-for-me/CLIProxyAPIPlus pr#64 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/64 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#64,https://github.com/router-for-me/CLIProxyAPIPlus/pull/64,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0202
+"Extend docs for ""v6.6.50(解决 #59 冲突)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0206 | Source: router-for-me/CLIProxyAPIPlus pr#60 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/60 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,install-and-ops,yes,pr,router-for-me/CLIProxyAPIPlus,pr#60,https://github.com/router-for-me/CLIProxyAPIPlus/pull/60,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0206
+"Refactor internals touched by ""v6.6.48"" to reduce coupling and improve maintainability.",Execution item CP2K-0208 | Source: router-for-me/CLIProxyAPIPlus pr#58 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/58 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#58,https://github.com/router-for-me/CLIProxyAPIPlus/pull/58,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0208
+"Standardize naming/metadata affected by ""v6.6.30"" across both repos and docs.","Execution item CP2K-0210 | Source: router-for-me/CLIProxyAPIPlus pr#55 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/55 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#55,https://github.com/router-for-me/CLIProxyAPIPlus/pull/55,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0210
+"Refactor internals touched by ""v6.6.24"" to reduce coupling and improve maintainability.",Execution item CP2K-0218 | Source: router-for-me/CLIProxyAPIPlus pr#40 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/40 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#40,https://github.com/router-for-me/CLIProxyAPIPlus/pull/40,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0218
+"Prepare safe rollout for ""v6.6.23"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0219 | Source: router-for-me/CLIProxyAPIPlus pr#39 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/39 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#39,https://github.com/router-for-me/CLIProxyAPIPlus/pull/39,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0219
+"Standardize naming/metadata affected by ""v6.6.22"" across both repos and docs.","Execution item CP2K-0220 | Source: router-for-me/CLIProxyAPIPlus pr#38 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/38 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#38,https://github.com/router-for-me/CLIProxyAPIPlus/pull/38,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0220
+"Harden ""v6.6.19"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0222 | Source: router-for-me/CLIProxyAPIPlus pr#35 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/35 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#35,https://github.com/router-for-me/CLIProxyAPIPlus/pull/35,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0222
+"Operationalize ""v6.6.18"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0223 | Source: router-for-me/CLIProxyAPIPlus pr#33 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/33 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#33,https://github.com/router-for-me/CLIProxyAPIPlus/pull/33,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0223
+"Improve CLI UX around ""v6.6.17"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0225 | Source: router-for-me/CLIProxyAPIPlus pr#31 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/31 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#31,https://github.com/router-for-me/CLIProxyAPIPlus/pull/31,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0225
+"Extend docs for ""v6.6.15"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0226 | Source: router-for-me/CLIProxyAPIPlus pr#29 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/29 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#29,https://github.com/router-for-me/CLIProxyAPIPlus/pull/29,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0226
+"Generalize ""v6.6.1"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0234 | Source: router-for-me/CLIProxyAPIPlus pr#19 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/19 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#19,https://github.com/router-for-me/CLIProxyAPIPlus/pull/19,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0234
+"Extend docs for ""由AI进行更改修复了Kiro供应商的Claude协议与OpenAI协议。(对比AIClient-2-API项目进行变更)"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0236 | Source: router-for-me/CLIProxyAPIPlus pr#17 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/17 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPIPlus,pr#17,https://github.com/router-for-me/CLIProxyAPIPlus/pull/17,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0236
+"Add robust stream/non-stream parity tests for ""fix(registry): remove unstable kiro-auto model"" across supported providers.",Execution item CP2K-0237 | Source: router-for-me/CLIProxyAPIPlus pr#16 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/16 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#16,https://github.com/router-for-me/CLIProxyAPIPlus/pull/16,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0237
+"Prepare safe rollout for ""v6.5.59"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0239 | Source: router-for-me/CLIProxyAPIPlus pr#14 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/14 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#14,https://github.com/router-for-me/CLIProxyAPIPlus/pull/14,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0239
+"Standardize naming/metadata affected by ""v6.5.57"" across both repos and docs.","Execution item CP2K-0240 | Source: router-for-me/CLIProxyAPIPlus pr#13 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/13 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#13,https://github.com/router-for-me/CLIProxyAPIPlus/pull/13,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0240
+"Follow up ""v6.5.56"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0241 | Source: router-for-me/CLIProxyAPIPlus pr#12 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/12 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#12,https://github.com/router-for-me/CLIProxyAPIPlus/pull/12,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0241
+"Operationalize ""fix(kiro):修复 base64 图片格式转换问题"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0243 | Source: router-for-me/CLIProxyAPIPlus pr#10 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/10 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#10,https://github.com/router-for-me/CLIProxyAPIPlus/pull/10,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0243
+"Generalize ""fix(kiro): 修复 base64 图片格式转换问题"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0244 | Source: router-for-me/CLIProxyAPIPlus pr#9 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/9 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#9,https://github.com/router-for-me/CLIProxyAPIPlus/pull/9,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0244
+"Improve CLI UX around ""feat: 添加Kiro渠道图片支持功能,借鉴justlovemaki/AIClient-2-API实现"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0245 | Source: router-for-me/CLIProxyAPIPlus pr#8 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/8 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPIPlus,pr#8,https://github.com/router-for-me/CLIProxyAPIPlus/pull/8,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0245
+"Refactor internals touched by ""Feature/kiro integration"" to reduce coupling and improve maintainability.",Execution item CP2K-0248 | Source: router-for-me/CLIProxyAPIPlus pr#3 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/3 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#3,https://github.com/router-for-me/CLIProxyAPIPlus/pull/3,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0248
+"Prepare safe rollout for ""v6.5.32"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0249 | Source: router-for-me/CLIProxyAPIPlus pr#2 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/2 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#2,https://github.com/router-for-me/CLIProxyAPIPlus/pull/2,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0249
+"Standardize naming/metadata affected by ""v6.5.31"" across both repos and docs.","Execution item CP2K-0250 | Source: router-for-me/CLIProxyAPIPlus pr#1 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/1 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#1,https://github.com/router-for-me/CLIProxyAPIPlus/pull/1,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-0250
+"Improve CLI UX around ""fix: correct Gemini API schema parameter naming"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1145 | Source: router-for-me/CLIProxyAPI pr#1648 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1648 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,testing-and-quality,yes,pr,router-for-me/CLIProxyAPI,pr#1648,https://github.com/router-for-me/CLIProxyAPI/pull/1648,"board-2000,theme:testing-and-quality,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1145
+"Extend docs for ""fix(antigravity): prevent invalid JSON when tool_result has no content"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1146 | Source: router-for-me/CLIProxyAPI pr#1645 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1645 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#1645,https://github.com/router-for-me/CLIProxyAPI/pull/1645,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1146
+"Add robust stream/non-stream parity tests for ""feat: add Gemini 3.1 Pro Preview model definition"" across supported providers.",Execution item CP2K-1147 | Source: router-for-me/CLIProxyAPI pr#1644 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1644 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1644,https://github.com/router-for-me/CLIProxyAPI/pull/1644,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1147
+"Operationalize ""feat(registry): add Claude Sonnet 4.6 model definition"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1153 | Source: router-for-me/CLIProxyAPI pr#1629 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1629 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1629,https://github.com/router-for-me/CLIProxyAPI/pull/1629,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1153
+"Refactor internals touched by ""fix: skip proxy_ prefix for built-in tools in message history"" to reduce coupling and improve maintainability.",Execution item CP2K-1158 | Source: router-for-me/CLIProxyAPI pr#1624 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1624 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1624,https://github.com/router-for-me/CLIProxyAPI/pull/1624,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1158
+"Operationalize ""feat(stats): persist across restarts with periodic/shutdown flush"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1163 | Source: router-for-me/CLIProxyAPI pr#1610 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1610 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1610,https://github.com/router-for-me/CLIProxyAPI/pull/1610,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1163
+"Improve CLI UX around ""feat(registry): add Qwen 3.5 Plus model definitions"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1165 | Source: router-for-me/CLIProxyAPI pr#1606 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1606 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1606,https://github.com/router-for-me/CLIProxyAPI/pull/1606,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1165
+"Extend docs for ""Add Qwen Coder Model with updated parameters"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1166 | Source: router-for-me/CLIProxyAPI pr#1605 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1605 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1605,https://github.com/router-for-me/CLIProxyAPI/pull/1605,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1166
+"Follow up ""feat(registry): add support for 'kimi' channel in model definitions"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1171 | Source: router-for-me/CLIProxyAPI pr#1597 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1597 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1597,https://github.com/router-for-me/CLIProxyAPI/pull/1597,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1171
+"Harden ""Pass cache usage from codex to openai chat completions"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1172 | Source: router-for-me/CLIProxyAPI pr#1595 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1595 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1595,https://github.com/router-for-me/CLIProxyAPI/pull/1595,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1172
+"Extend docs for ""feat(registry): add gpt-5.3-codex-spark model definition"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1176 | Source: router-for-me/CLIProxyAPI pr#1574 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1574 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1574,https://github.com/router-for-me/CLIProxyAPI/pull/1574,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1176
+"Add robust stream/non-stream parity tests for ""Change GLM CODING PLAN subscription price"" across supported providers.",Execution item CP2K-1177 | Source: router-for-me/CLIProxyAPI pr#1571 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1571 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1571,https://github.com/router-for-me/CLIProxyAPI/pull/1571,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1177
+"Prepare safe rollout for ""Add MiniMax-M2.5 model definition"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1179 | Source: router-for-me/CLIProxyAPI pr#1566 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1566 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1566,https://github.com/router-for-me/CLIProxyAPI/pull/1566,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1179
+"Harden ""fix(schema): sanitize Gemini-incompatible tool metadata fields"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1182 | Source: router-for-me/CLIProxyAPI pr#1542 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1542 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1542,https://github.com/router-for-me/CLIProxyAPI/pull/1542,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1182
+"Refactor internals touched by ""Add max-quota routing strategy"" to reduce coupling and improve maintainability.",Execution item CP2K-1198 | Source: router-for-me/CLIProxyAPI pr#1491 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1491 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#1491,https://github.com/router-for-me/CLIProxyAPI/pull/1491,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1198
+"Standardize naming/metadata affected by ""pull"" across both repos and docs.","Execution item CP2K-1200 | Source: router-for-me/CLIProxyAPI pr#1474 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1474 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1474,https://github.com/router-for-me/CLIProxyAPI/pull/1474,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1200
+"Generalize ""Kimi fix"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1204 | Source: router-for-me/CLIProxyAPI pr#1464 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1464 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1464,https://github.com/router-for-me/CLIProxyAPI/pull/1464,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1204
+"Prepare safe rollout for ""sync"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1209 | Source: router-for-me/CLIProxyAPI pr#1448 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1448 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1448,https://github.com/router-for-me/CLIProxyAPI/pull/1448,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1209
+"Standardize naming/metadata affected by ""fix(registry): correct Claude Opus 4.6 model metadata"" across both repos and docs.","Execution item CP2K-1210 | Source: router-for-me/CLIProxyAPI pr#1446 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1446 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1446,https://github.com/router-for-me/CLIProxyAPI/pull/1446,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1210
+"Follow up ""feat(registry): register Claude 4.6 static data"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1211 | Source: router-for-me/CLIProxyAPI pr#1440 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1440 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1440,https://github.com/router-for-me/CLIProxyAPI/pull/1440,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1211
+"Generalize ""Feature/codex lite"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1214 | Source: router-for-me/CLIProxyAPI pr#1434 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1434 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1434,https://github.com/router-for-me/CLIProxyAPI/pull/1434,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1214
+"Harden ""ss"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1222 | Source: router-for-me/CLIProxyAPI pr#1408 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1408 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1408,https://github.com/router-for-me/CLIProxyAPI/pull/1408,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1222
+"Extend docs for ""chore: ignore .sisyphus directory"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1226 | Source: router-for-me/CLIProxyAPI pr#1391 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1391 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1391,https://github.com/router-for-me/CLIProxyAPI/pull/1391,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1226
+"Prepare safe rollout for ""refactor(codex): remove codex instructions injection support"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1229 | Source: router-for-me/CLIProxyAPI pr#1380 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1380 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1380,https://github.com/router-for-me/CLIProxyAPI/pull/1380,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1229
+"Standardize naming/metadata affected by ""refactor(api): centralize config change logging"" across both repos and docs.","Execution item CP2K-1230 | Source: router-for-me/CLIProxyAPI pr#1379 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1379 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1379,https://github.com/router-for-me/CLIProxyAPI/pull/1379,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1230
+"Generalize ""增加一个CLIProxyAPI 托盘添加到社区项目中"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1234 | Source: router-for-me/CLIProxyAPI pr#1369 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1369 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPI,pr#1369,https://github.com/router-for-me/CLIProxyAPI/pull/1369,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1234
+"Extend docs for ""fix(antigravity): sanitize request.contents to remove invalid metadata entries"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1236 | Source: router-for-me/CLIProxyAPI pr#1326 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1326 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1326,https://github.com/router-for-me/CLIProxyAPI/pull/1326,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1236
+"Operationalize ""feat(registry): add GetAllStaticModels helper function"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1243 | Source: router-for-me/CLIProxyAPI pr#1312 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1312 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1312,https://github.com/router-for-me/CLIProxyAPI/pull/1312,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1243
+"Refactor internals touched by ""Feat(vertex): add prefix field"" to reduce coupling and improve maintainability.",Execution item CP2K-1248 | Source: router-for-me/CLIProxyAPI pr#1302 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1302 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1302,https://github.com/router-for-me/CLIProxyAPI/pull/1302,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1248
+"Follow up ""fix(api): update amp module only on config changes"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1251 | Source: router-for-me/CLIProxyAPI pr#1296 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1296 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1296,https://github.com/router-for-me/CLIProxyAPI/pull/1296,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1251
+"Harden ""feat(caching): implement Claude prompt caching with multi-turn support"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1252 | Source: router-for-me/CLIProxyAPI pr#1295 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1295 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1295,https://github.com/router-for-me/CLIProxyAPI/pull/1295,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1252
+"Improve CLI UX around ""feat(thinking): enable thinking toggle for qwen3 and deepseek models"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1255 | Source: router-for-me/CLIProxyAPI pr#1276 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1276 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1276,https://github.com/router-for-me/CLIProxyAPI/pull/1276,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1255
+"Extend docs for ""fix: add missing 'items' to array schemas in Codex tool parameters"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1256 | Source: router-for-me/CLIProxyAPI pr#1275 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1275 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPI,pr#1275,https://github.com/router-for-me/CLIProxyAPI/pull/1275,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1256
+"Add robust stream/non-stream parity tests for ""Pr routing preference priority"" across supported providers.",Execution item CP2K-1257 | Source: router-for-me/CLIProxyAPI pr#1271 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1271 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1271,https://github.com/router-for-me/CLIProxyAPI/pull/1271,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1257
+"Prepare safe rollout for ""fix(gemini): force type to string for enum fields to fix Antigravity Gemini API error"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1259 | Source: router-for-me/CLIProxyAPI pr#1261 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1261 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#1261,https://github.com/router-for-me/CLIProxyAPI/pull/1261,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1259
+"Follow up ""feat(api): add management model definitions endpoint"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1261 | Source: router-for-me/CLIProxyAPI pr#1257 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1257 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1257,https://github.com/router-for-me/CLIProxyAPI/pull/1257,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1261
+"Follow up ""Sync up"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1271 | Source: router-for-me/CLIProxyAPI pr#1231 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1231 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1231,https://github.com/router-for-me/CLIProxyAPI/pull/1231,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1271
+"Prepare safe rollout for ""fix(executor): strip non-standard fields for Gemini API requests"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1279 | Source: router-for-me/CLIProxyAPI pr#1196 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1196 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#1196,https://github.com/router-for-me/CLIProxyAPI/pull/1196,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1279
+"Standardize naming/metadata affected by ""feat(api,handlers,executor): add /v1/embeddings endpoint support"" across both repos and docs.","Execution item CP2K-1280 | Source: router-for-me/CLIProxyAPI pr#1191 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1191 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1191,https://github.com/router-for-me/CLIProxyAPI/pull/1191,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1280
+"Operationalize ""fix(api): enhance ClaudeModels response to align with api.anthropic.com"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1283 | Source: router-for-me/CLIProxyAPI pr#1183 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1183 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1183,https://github.com/router-for-me/CLIProxyAPI/pull/1183,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1283
+"Extend docs for ""fix: change HTTP status code from 400 to 502 when no provider available"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1286 | Source: router-for-me/CLIProxyAPI pr#1174 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1174 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1174,https://github.com/router-for-me/CLIProxyAPI/pull/1174,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1286
+"Prepare safe rollout for ""feat(executor): apply payload rules using requested model"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1289 | Source: router-for-me/CLIProxyAPI pr#1169 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1169 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1169,https://github.com/router-for-me/CLIProxyAPI/pull/1169,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1289
+"Extend docs for ""fix(gemini): preserve displayName and description in models list"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1296 | Source: router-for-me/CLIProxyAPI pr#1132 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1132 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1132,https://github.com/router-for-me/CLIProxyAPI/pull/1132,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1296
+"Refactor internals touched by ""fix(executor): only strip maxOutputTokens for non-claude models"" to reduce coupling and improve maintainability.",Execution item CP2K-1298 | Source: router-for-me/CLIProxyAPI pr#1130 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1130 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1130,https://github.com/router-for-me/CLIProxyAPI/pull/1130,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1298
+"Prepare safe rollout for ""Add switch"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1299 | Source: router-for-me/CLIProxyAPI pr#1129 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1129 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1129,https://github.com/router-for-me/CLIProxyAPI/pull/1129,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1299
+"Standardize naming/metadata affected by ""fix(antigravity): clean tool parameters schema for all models"" across both repos and docs.","Execution item CP2K-1300 | Source: router-for-me/CLIProxyAPI pr#1126 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1126 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1126,https://github.com/router-for-me/CLIProxyAPI/pull/1126,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1300
+"Follow up ""Filter out Top_P when Temp is set on Claude"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1301 | Source: router-for-me/CLIProxyAPI pr#1125 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1125 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#1125,https://github.com/router-for-me/CLIProxyAPI/pull/1125,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1301
+"Generalize ""Fix antigravity malformed_function_call"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1304 | Source: router-for-me/CLIProxyAPI pr#1116 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1116 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1116,https://github.com/router-for-me/CLIProxyAPI/pull/1116,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1304
+"Extend docs for ""feat(registry): support provider-specific model info lookup"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1306 | Source: router-for-me/CLIProxyAPI pr#1108 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1108 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1108,https://github.com/router-for-me/CLIProxyAPI/pull/1108,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1306
+"Standardize naming/metadata affected by ""fix(executor): stop rewriting thinkingLevel for gemini"" across both repos and docs.","Execution item CP2K-1310 | Source: router-for-me/CLIProxyAPI pr#1101 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1101 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1101,https://github.com/router-for-me/CLIProxyAPI/pull/1101,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1310
+"Generalize ""Thinking"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1314 | Source: router-for-me/CLIProxyAPI pr#1088 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1088 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1088,https://github.com/router-for-me/CLIProxyAPI/pull/1088,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1314
+"Add robust stream/non-stream parity tests for ""fix(antigravity): convert non-string enum values to strings for Gemini API"" across supported providers.",Execution item CP2K-1317 | Source: router-for-me/CLIProxyAPI pr#1076 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1076 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#1076,https://github.com/router-for-me/CLIProxyAPI/pull/1076,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1317
+"Follow up ""fix(codex): ensure instructions field exists"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1321 | Source: router-for-me/CLIProxyAPI pr#1054 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1054 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1054,https://github.com/router-for-me/CLIProxyAPI/pull/1054,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1321
+"Harden ""feat(codex): add config toggle for codex instructions injection"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1322 | Source: router-for-me/CLIProxyAPI pr#1049 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1049 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#1049,https://github.com/router-for-me/CLIProxyAPI/pull/1049,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1322
+"Operationalize ""Refactor thinking"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1323 | Source: router-for-me/CLIProxyAPI pr#1033 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1033 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1033,https://github.com/router-for-me/CLIProxyAPI/pull/1033,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1323
+"Generalize ""Claude/investigate cliproxy config o ef sb"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1324 | Source: router-for-me/CLIProxyAPI pr#1025 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1025 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPI,pr#1025,https://github.com/router-for-me/CLIProxyAPI/pull/1025,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1324
+"Prepare safe rollout for ""feat(codex): add OpenCode instructions based on user agent"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1329 | Source: router-for-me/CLIProxyAPI pr#971 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/971 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#971,https://github.com/router-for-me/CLIProxyAPI/pull/971,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1329
+"Harden ""feat: add usage statistics persistence support"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1332 | Source: router-for-me/CLIProxyAPI pr#958 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/958 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#958,https://github.com/router-for-me/CLIProxyAPI/pull/958,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1332
+"Operationalize ""feat(codex): add subscription date fields to ID token claims"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1333 | Source: router-for-me/CLIProxyAPI pr#955 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/955 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#955,https://github.com/router-for-me/CLIProxyAPI/pull/955,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1333
+"Follow up ""feat: add /v1/images/generations endpoint for OpenAI-compatible image generation"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1341 | Source: router-for-me/CLIProxyAPI pr#924 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/924 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#924,https://github.com/router-for-me/CLIProxyAPI/pull/924,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1341
+"Harden ""fix(executor): update gemini model identifier to gemini-3-pro-preview"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1342 | Source: router-for-me/CLIProxyAPI pr#921 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/921 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#921,https://github.com/router-for-me/CLIProxyAPI/pull/921,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1342
+"Improve CLI UX around ""Vscode plugin"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1345 | Source: router-for-me/CLIProxyAPI pr#901 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/901 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPI,pr#901,https://github.com/router-for-me/CLIProxyAPI/pull/901,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1345
+"Add robust stream/non-stream parity tests for ""Create config.yaml"" across supported providers.",Execution item CP2K-1347 | Source: router-for-me/CLIProxyAPI pr#896 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/896 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#896,https://github.com/router-for-me/CLIProxyAPI/pull/896,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1347
+"Refactor internals touched by ""feat: implement CLI Proxy API server with backup and restore function…"" to reduce coupling and improve maintainability.",Execution item CP2K-1348 | Source: router-for-me/CLIProxyAPI pr#894 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/894 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPI,pr#894,https://github.com/router-for-me/CLIProxyAPI/pull/894,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1348
+"Standardize naming/metadata affected by ""做了较小的修正,使得Gemini完全支持多候选功能"" across both repos and docs.","Execution item CP2K-1350 | Source: router-for-me/CLIProxyAPI pr#879 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/879 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#879,https://github.com/router-for-me/CLIProxyAPI/pull/879,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1350
+"Follow up ""feat(usage): persist usage statistics"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1351 | Source: router-for-me/CLIProxyAPI pr#878 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/878 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#878,https://github.com/router-for-me/CLIProxyAPI/pull/878,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1351
+"Refactor internals touched by ""fix(gemini): abort default injection on existing thinking keys"" to reduce coupling and improve maintainability.",Execution item CP2K-1358 | Source: router-for-me/CLIProxyAPI pr#862 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/862 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#862,https://github.com/router-for-me/CLIProxyAPI/pull/862,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1358
+"Improve CLI UX around ""feat(api): add unified Base URL support and path normalization"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1365 | Source: router-for-me/CLIProxyAPI pr#849 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/849 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#849,https://github.com/router-for-me/CLIProxyAPI/pull/849,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1365
+"Add robust stream/non-stream parity tests for ""fix(antigravity): include tools in countTokens by appending as content"" across supported providers.",Execution item CP2K-1367 | Source: router-for-me/CLIProxyAPI pr#841 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/841 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#841,https://github.com/router-for-me/CLIProxyAPI/pull/841,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1367
+"Follow up ""Statistic persistent with enhanced secure features & quick docker build and push to docker hub actions"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1371 | Source: router-for-me/CLIProxyAPI pr#832 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/832 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,install-and-ops,yes,pr,router-for-me/CLIProxyAPI,pr#832,https://github.com/router-for-me/CLIProxyAPI/pull/832,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1371
+"Harden ""fix(util): disable default thinking for gemini-3 series"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1372 | Source: router-for-me/CLIProxyAPI pr#830 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/830 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#830,https://github.com/router-for-me/CLIProxyAPI/pull/830,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1372
+"Generalize ""feat(script): add usage statistics preservation across container rebuilds"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1374 | Source: router-for-me/CLIProxyAPI pr#824 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/824 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,install-and-ops,yes,pr,router-for-me/CLIProxyAPI,pr#824,https://github.com/router-for-me/CLIProxyAPI/pull/824,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1374
+"Prepare safe rollout for ""Fix model alias thinking suffix"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1379 | Source: router-for-me/CLIProxyAPI pr#814 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/814 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#814,https://github.com/router-for-me/CLIProxyAPI/pull/814,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1379
+"Improve CLI UX around ""feat(watcher): add model mappings change detection"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1385 | Source: router-for-me/CLIProxyAPI pr#800 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/800 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#800,https://github.com/router-for-me/CLIProxyAPI/pull/800,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1385
+"Standardize naming/metadata affected by ""feat(gemini): add per-key model alias support for Gemini provider"" across both repos and docs.","Execution item CP2K-1390 | Source: router-for-me/CLIProxyAPI pr#785 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/785 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#785,https://github.com/router-for-me/CLIProxyAPI/pull/785,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1390
+"Operationalize ""fix: Implement fallback log directory for file logging on read-only system"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1393 | Source: router-for-me/CLIProxyAPI pr#772 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/772 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#772,https://github.com/router-for-me/CLIProxyAPI/pull/772,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1393
+"Follow up ""fix(logging): improve request/response capture"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1401 | Source: router-for-me/CLIProxyAPI pr#761 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/761 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#761,https://github.com/router-for-me/CLIProxyAPI/pull/761,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1401
+"Improve CLI UX around ""Fix: disable thinking when tool_choice forces tool use"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1405 | Source: router-for-me/CLIProxyAPI pr#757 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/757 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#757,https://github.com/router-for-me/CLIProxyAPI/pull/757,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1405
+"Prepare safe rollout for ""fix(config): preserve original config structure and avoid default value pollution"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1409 | Source: router-for-me/CLIProxyAPI pr#750 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/750 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#750,https://github.com/router-for-me/CLIProxyAPI/pull/750,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1409
+"Generalize ""Fixed incorrect function signature call to `NewBaseAPIHandlers`"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1414 | Source: router-for-me/CLIProxyAPI pr#722 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/722 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#722,https://github.com/router-for-me/CLIProxyAPI/pull/722,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1414
+"Refactor internals touched by ""Log"" to reduce coupling and improve maintainability.",Execution item CP2K-1418 | Source: router-for-me/CLIProxyAPI pr#706 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/706 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#706,https://github.com/router-for-me/CLIProxyAPI/pull/706,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1418
+"Add robust stream/non-stream parity tests for ""feat(logging): implement request ID tracking and propagation"" across supported providers.",Execution item CP2K-1427 | Source: router-for-me/CLIProxyAPI pr#688 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/688 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#688,https://github.com/router-for-me/CLIProxyAPI/pull/688,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1427
+"Extend docs for ""feat: add fill-first routing strategy"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1436 | Source: router-for-me/CLIProxyAPI pr#663 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/663 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,oauth-and-authentication,yes,pr,router-for-me/CLIProxyAPI,pr#663,https://github.com/router-for-me/CLIProxyAPI/pull/663,"board-2000,theme:oauth-and-authentication,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1436
+"Standardize naming/metadata affected by ""fix: remove invalid fields from Antigravity contents array"" across both repos and docs.","Execution item CP2K-1440 | Source: router-for-me/CLIProxyAPI pr#657 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/657 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#657,https://github.com/router-for-me/CLIProxyAPI/pull/657,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1440
+"Harden ""fix(amp): add /settings routes to proxy"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1442 | Source: router-for-me/CLIProxyAPI pr#646 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/646 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#646,https://github.com/router-for-me/CLIProxyAPI/pull/646,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1442
+"Add robust stream/non-stream parity tests for ""Revert ""fix(util): disable default thinking for gemini 3 flash"""" across supported providers.",Execution item CP2K-1447 | Source: router-for-me/CLIProxyAPI pr#628 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/628 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#628,https://github.com/router-for-me/CLIProxyAPI/pull/628,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1447
+"Refactor internals touched by ""fix(gemini): add optional skip for gemini3 thinking conversion"" to reduce coupling and improve maintainability.",Execution item CP2K-1448 | Source: router-for-me/CLIProxyAPI pr#627 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/627 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#627,https://github.com/router-for-me/CLIProxyAPI/pull/627,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1448
+"Follow up ""feat(amp): enable webSearch and readWebPage tools in smart mode"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1451 | Source: router-for-me/CLIProxyAPI pr#622 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/622 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#622,https://github.com/router-for-me/CLIProxyAPI/pull/622,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1451
+"Operationalize ""fix(util): disable default thinking for gemini 3 flash"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1453 | Source: router-for-me/CLIProxyAPI pr#619 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/619 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#619,https://github.com/router-for-me/CLIProxyAPI/pull/619,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1453
+"Extend docs for ""feature: Support multiple AMP model fallbacks"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1456 | Source: router-for-me/CLIProxyAPI pr#615 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/615 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#615,https://github.com/router-for-me/CLIProxyAPI/pull/615,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1456
+"Refactor internals touched by ""Add gpt-5.2-codex model + prompt routing"" to reduce coupling and improve maintainability.",Execution item CP2K-1458 | Source: router-for-me/CLIProxyAPI pr#610 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/610 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#610,https://github.com/router-for-me/CLIProxyAPI/pull/610,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1458
+"Prepare safe rollout for ""feat(registry): add gpt 5.2 codex model definition"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1459 | Source: router-for-me/CLIProxyAPI pr#609 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/609 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#609,https://github.com/router-for-me/CLIProxyAPI/pull/609,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1459
+"Follow up ""feature: Improves Amp client compatibility"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1461 | Source: router-for-me/CLIProxyAPI pr#605 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/605 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#605,https://github.com/router-for-me/CLIProxyAPI/pull/605,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1461
+"Refactor internals touched by ""chore: ignore gemini metadata files"" to reduce coupling and improve maintainability.",Execution item CP2K-1468 | Source: router-for-me/CLIProxyAPI pr#586 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/586 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#586,https://github.com/router-for-me/CLIProxyAPI/pull/586,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1468
+"Prepare safe rollout for ""chore: Updates Gemini Flash alias"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1469 | Source: router-for-me/CLIProxyAPI pr#585 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/585 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#585,https://github.com/router-for-me/CLIProxyAPI/pull/585,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1469
+"Follow up ""chore: ignore agent and bmad artifacts"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1471 | Source: router-for-me/CLIProxyAPI pr#580 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/580 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#580,https://github.com/router-for-me/CLIProxyAPI/pull/580,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1471
+"Improve CLI UX around ""Revert ""Fix invalid thinking signature when proxying Claude via Antigravity"""" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1475 | Source: router-for-me/CLIProxyAPI pr#571 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/571 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#571,https://github.com/router-for-me/CLIProxyAPI/pull/571,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1475
+"Refactor internals touched by ""feat(thinking): unify budget/effort conversion logic and add iFlow thinking support"" to reduce coupling and improve maintainability.",Execution item CP2K-1478 | Source: router-for-me/CLIProxyAPI pr#564 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/564 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#564,https://github.com/router-for-me/CLIProxyAPI/pull/564,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1478
+"Standardize naming/metadata affected by ""chore: ignore .bmad directory"" across both repos and docs.","Execution item CP2K-1480 | Source: router-for-me/CLIProxyAPI pr#558 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/558 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#558,https://github.com/router-for-me/CLIProxyAPI/pull/558,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1480
+"Refactor internals touched by ""Aistudio"" to reduce coupling and improve maintainability.",Execution item CP2K-1488 | Source: router-for-me/CLIProxyAPI pr#542 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/542 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#542,https://github.com/router-for-me/CLIProxyAPI/pull/542,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1488
+"Follow up ""feat: using Client Model Infos;"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1491 | Source: router-for-me/CLIProxyAPI pr#536 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/536 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#536,https://github.com/router-for-me/CLIProxyAPI/pull/536,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1491
+"Extend docs for ""Unify the Gemini executor style"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1506 | Source: router-for-me/CLIProxyAPI pr#488 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/488 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#488,https://github.com/router-for-me/CLIProxyAPI/pull/488,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1506
+"Generalize ""fix(config): set default MaxRetryInterval to 30s"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1514 | Source: router-for-me/CLIProxyAPI pr#468 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/468 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#468,https://github.com/router-for-me/CLIProxyAPI/pull/468,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1514
+"Improve CLI UX around ""fix(registry): normalize model IDs with underscores to dashes"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1515 | Source: router-for-me/CLIProxyAPI pr#467 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/467 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#467,https://github.com/router-for-me/CLIProxyAPI/pull/467,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1515
+"Prepare safe rollout for ""feat(aistudio): normalize thinking budget in request translation"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1519 | Source: router-for-me/CLIProxyAPI pr#461 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/461 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#461,https://github.com/router-for-me/CLIProxyAPI/pull/461,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1519
+"Follow up ""feat(antigravity): enforce thinking budget limits for Claude models"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1521 | Source: router-for-me/CLIProxyAPI pr#458 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/458 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#458,https://github.com/router-for-me/CLIProxyAPI/pull/458,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1521
+"Harden ""style(logging): remove redundant separator line from response section"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1522 | Source: router-for-me/CLIProxyAPI pr#457 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/457 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#457,https://github.com/router-for-me/CLIProxyAPI/pull/457,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1522
+"Improve CLI UX around ""add ampcode management api"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1525 | Source: router-for-me/CLIProxyAPI pr#453 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/453 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#453,https://github.com/router-for-me/CLIProxyAPI/pull/453,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1525
+"Extend docs for ""fix(antigravity): auto-enable thinking for Claude models when no config sent"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1526 | Source: router-for-me/CLIProxyAPI pr#452 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/452 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#452,https://github.com/router-for-me/CLIProxyAPI/pull/452,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1526
+"Add robust stream/non-stream parity tests for ""refactor(config): rename prioritize-model-mappings to force-model-mappings"" across supported providers.",Execution item CP2K-1527 | Source: router-for-me/CLIProxyAPI pr#450 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/450 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#450,https://github.com/router-for-me/CLIProxyAPI/pull/450,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1527
+"Prepare safe rollout for ""Iflow"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1529 | Source: router-for-me/CLIProxyAPI pr#448 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/448 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#448,https://github.com/router-for-me/CLIProxyAPI/pull/448,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1529
+"Harden ""feat(registry): add explicit thinking support config for antigravity models"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1532 | Source: router-for-me/CLIProxyAPI pr#444 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/444 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#444,https://github.com/router-for-me/CLIProxyAPI/pull/444,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1532
+"Operationalize ""fix: filter whitespace-only text in Claude to OpenAI translation"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1533 | Source: router-for-me/CLIProxyAPI pr#441 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/441 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#441,https://github.com/router-for-me/CLIProxyAPI/pull/441,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1533
+"Generalize ""feat(logging): add version info to request log output"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1534 | Source: router-for-me/CLIProxyAPI pr#439 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/439 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#439,https://github.com/router-for-me/CLIProxyAPI/pull/439,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1534
+"Harden ""fix(amp): suppress ErrAbortHandler panics in reverse proxy handler"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1542 | Source: router-for-me/CLIProxyAPI pr#423 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/423 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#423,https://github.com/router-for-me/CLIProxyAPI/pull/423,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1542
+"Operationalize ""Amp"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1543 | Source: router-for-me/CLIProxyAPI pr#422 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/422 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#422,https://github.com/router-for-me/CLIProxyAPI/pull/422,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1543
+"Generalize ""Amp"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1544 | Source: router-for-me/CLIProxyAPI pr#418 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/418 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#418,https://github.com/router-for-me/CLIProxyAPI/pull/418,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1544
+"Improve CLI UX around ""Amp"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1545 | Source: router-for-me/CLIProxyAPI pr#416 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/416 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#416,https://github.com/router-for-me/CLIProxyAPI/pull/416,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1545
+"Extend docs for ""refactor(api): remove legacy generative-language-api-key endpoints and duplicate GetConfigYAML"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1546 | Source: router-for-me/CLIProxyAPI pr#406 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/406 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#406,https://github.com/router-for-me/CLIProxyAPI/pull/406,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1546
+"Refactor internals touched by ""Legacy Config Migration and Amp Consolidation"" to reduce coupling and improve maintainability.",Execution item CP2K-1548 | Source: router-for-me/CLIProxyAPI pr#404 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/404 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#404,https://github.com/router-for-me/CLIProxyAPI/pull/404,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1548
+"Standardize naming/metadata affected by ""fix some bugs"" across both repos and docs.","Execution item CP2K-1550 | Source: router-for-me/CLIProxyAPI pr#399 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/399 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#399,https://github.com/router-for-me/CLIProxyAPI/pull/399,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1550
+"Follow up ""refactor(registry): remove qwen3-coder model from iFlow models list"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1551 | Source: router-for-me/CLIProxyAPI pr#394 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/394 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#394,https://github.com/router-for-me/CLIProxyAPI/pull/394,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1551
+"Operationalize ""fix: enable hot reload for amp-model-mappings config"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1553 | Source: router-for-me/CLIProxyAPI pr#389 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/389 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#389,https://github.com/router-for-me/CLIProxyAPI/pull/389,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1553
+"Harden ""feat(registry): add thinking support to gemini models"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1562 | Source: router-for-me/CLIProxyAPI pr#377 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/377 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#377,https://github.com/router-for-me/CLIProxyAPI/pull/377,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1562
+"Add robust stream/non-stream parity tests for ""Add Model Blacklist"" across supported providers.",Execution item CP2K-1567 | Source: router-for-me/CLIProxyAPI pr#366 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/366 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#366,https://github.com/router-for-me/CLIProxyAPI/pull/366,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1567
+"Improve CLI UX around ""fix: handle tools conversion for gemini-claude-sonnet-4-5-thinking model"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1575 | Source: router-for-me/CLIProxyAPI pr#347 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/347 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#347,https://github.com/router-for-me/CLIProxyAPI/pull/347,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1575
+"Extend docs for ""style(amp): tidy whitespace in proxy module and tests"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1576 | Source: router-for-me/CLIProxyAPI pr#343 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/343 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,testing-and-quality,yes,pr,router-for-me/CLIProxyAPI,pr#343,https://github.com/router-for-me/CLIProxyAPI/pull/343,"board-2000,theme:testing-and-quality,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1576
+"Prepare safe rollout for ""增加多候选支持"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1579 | Source: router-for-me/CLIProxyAPI pr#333 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/333 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPI,pr#333,https://github.com/router-for-me/CLIProxyAPI/pull/333,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1579
+"Harden ""fix: claude & codex compatibility"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1582 | Source: router-for-me/CLIProxyAPI pr#325 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/325 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#325,https://github.com/router-for-me/CLIProxyAPI/pull/325,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1582
+"Operationalize ""feat(registry): add support for Claude Opus 4.5 model"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1583 | Source: router-for-me/CLIProxyAPI pr#323 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/323 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#323,https://github.com/router-for-me/CLIProxyAPI/pull/323,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1583
+"Generalize ""feat(registry): add Claude Opus 4.5 model definition"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1584 | Source: router-for-me/CLIProxyAPI pr#322 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/322 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#322,https://github.com/router-for-me/CLIProxyAPI/pull/322,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1584
+"Improve CLI UX around ""feat(logs): add limit query param to cap returned logs"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1585 | Source: router-for-me/CLIProxyAPI pr#318 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/318 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#318,https://github.com/router-for-me/CLIProxyAPI/pull/318,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1585
+"Extend docs for ""fix(aistudio): strip Gemini generation config overrides"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1586 | Source: router-for-me/CLIProxyAPI pr#315 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/315 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#315,https://github.com/router-for-me/CLIProxyAPI/pull/315,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1586
+"Standardize naming/metadata affected by ""Antigravity bugfix"" across both repos and docs.","Execution item CP2K-1590 | Source: router-for-me/CLIProxyAPI pr#296 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/296 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#296,https://github.com/router-for-me/CLIProxyAPI/pull/296,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1590
+"Add robust stream/non-stream parity tests for ""feat(gemini): support gemini-3-pro-preview, thinking budget fix & image support"" across supported providers.",Execution item CP2K-1597 | Source: router-for-me/CLIProxyAPI pr#281 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/281 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#281,https://github.com/router-for-me/CLIProxyAPI/pull/281,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1597
+"Standardize naming/metadata affected by ""Iflow"" across both repos and docs.","Execution item CP2K-1600 | Source: router-for-me/CLIProxyAPI pr#275 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/275 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#275,https://github.com/router-for-me/CLIProxyAPI/pull/275,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1600
+"Follow up ""fix: detect HTML error bodies without text/html content type"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1601 | Source: router-for-me/CLIProxyAPI pr#274 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/274 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#274,https://github.com/router-for-me/CLIProxyAPI/pull/274,"board-2000,theme:error-handling-retries,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1601
+"Add robust stream/non-stream parity tests for ""Add GPT-5.1 and GPT-5.1 Codex model definitions"" across supported providers.",Execution item CP2K-1607 | Source: router-for-me/CLIProxyAPI pr#245 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/245 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#245,https://github.com/router-for-me/CLIProxyAPI/pull/245,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1607
+"Refactor internals touched by ""feat(openai): inject default params from config"" to reduce coupling and improve maintainability.",Execution item CP2K-1608 | Source: router-for-me/CLIProxyAPI pr#243 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/243 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#243,https://github.com/router-for-me/CLIProxyAPI/pull/243,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1608
+"Prepare safe rollout for ""feat: add auto model resolution and model creation timestamp tracking"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1609 | Source: router-for-me/CLIProxyAPI pr#237 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/237 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#237,https://github.com/router-for-me/CLIProxyAPI/pull/237,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1609
+"Follow up ""add headers support for api"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1611 | Source: router-for-me/CLIProxyAPI pr#227 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/227 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#227,https://github.com/router-for-me/CLIProxyAPI/pull/227,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1611
+"Harden ""feat(config): support HTTP headers across providers"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1612 | Source: router-for-me/CLIProxyAPI pr#226 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/226 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#226,https://github.com/router-for-me/CLIProxyAPI/pull/226,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1612
+"Add robust stream/non-stream parity tests for ""unfeat"" across supported providers.",Execution item CP2K-1617 | Source: router-for-me/CLIProxyAPI pr#215 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/215 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#215,https://github.com/router-for-me/CLIProxyAPI/pull/215,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1617
+"Standardize naming/metadata affected by ""feat: Implement context-aware Gemini executor to improve performance"" across both repos and docs.","Execution item CP2K-1620 | Source: router-for-me/CLIProxyAPI pr#207 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/207 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#207,https://github.com/router-for-me/CLIProxyAPI/pull/207,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1620
+"Operationalize ""Dev"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1623 | Source: router-for-me/CLIProxyAPI pr#195 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/195 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#195,https://github.com/router-for-me/CLIProxyAPI/pull/195,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1623
+"Improve CLI UX around ""Add safety settings for gemini models"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1625 | Source: router-for-me/CLIProxyAPI pr#191 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/191 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#191,https://github.com/router-for-me/CLIProxyAPI/pull/191,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1625
+"Prepare safe rollout for ""test"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1629 | Source: router-for-me/CLIProxyAPI pr#184 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/184 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,testing-and-quality,yes,pr,router-for-me/CLIProxyAPI,pr#184,https://github.com/router-for-me/CLIProxyAPI/pull/184,"board-2000,theme:testing-and-quality,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1629
+"Standardize naming/metadata affected by ""t"" across both repos and docs.","Execution item CP2K-1630 | Source: router-for-me/CLIProxyAPI pr#183 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/183 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#183,https://github.com/router-for-me/CLIProxyAPI/pull/183,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1630
+"Improve CLI UX around ""fix(gemini): map responseModalities to uppercase IMAGE/TEXT"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1635 | Source: router-for-me/CLIProxyAPI pr#163 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/163 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#163,https://github.com/router-for-me/CLIProxyAPI/pull/163,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1635
+"Extend docs for ""Add websocket provider"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1636 | Source: router-for-me/CLIProxyAPI pr#161 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/161 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#161,https://github.com/router-for-me/CLIProxyAPI/pull/161,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1636
+"Add robust stream/non-stream parity tests for ""feat(config): standardize YAML string quoting in normalization"" across supported providers.",Execution item CP2K-1637 | Source: router-for-me/CLIProxyAPI pr#157 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/157 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#157,https://github.com/router-for-me/CLIProxyAPI/pull/157,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1637
+"Standardize naming/metadata affected by ""feat(mgmt): support YAML config retrieval and updates via /config.yaml"" across both repos and docs.","Execution item CP2K-1640 | Source: router-for-me/CLIProxyAPI pr#147 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/147 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#147,https://github.com/router-for-me/CLIProxyAPI/pull/147,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1640
+"Follow up ""feat(iflow): add masked token logs; increase refresh lead to 24h"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1641 | Source: router-for-me/CLIProxyAPI pr#146 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/146 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#146,https://github.com/router-for-me/CLIProxyAPI/pull/146,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1641
+"Harden ""feat: prefer util.WritablePath() for logs and local storage"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1642 | Source: router-for-me/CLIProxyAPI pr#145 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/145 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#145,https://github.com/router-for-me/CLIProxyAPI/pull/145,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1642
+"Operationalize ""fix(registry): always use model ID for Gemini name"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1643 | Source: router-for-me/CLIProxyAPI pr#141 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/141 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#141,https://github.com/router-for-me/CLIProxyAPI/pull/141,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1643
+"Generalize ""feat(logging): centralize sensitive header masking"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1644 | Source: router-for-me/CLIProxyAPI pr#139 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/139 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#139,https://github.com/router-for-me/CLIProxyAPI/pull/139,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1644
+"Extend docs for ""feat(managementasset): add MANAGEMENT_STATIC_PATH override"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1646 | Source: router-for-me/CLIProxyAPI pr#134 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/134 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#134,https://github.com/router-for-me/CLIProxyAPI/pull/134,"board-2000,theme:websocket-and-streaming,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1646
+"Add robust stream/non-stream parity tests for ""feat(management): add log retrieval and cleanup endpoints"" across supported providers.",Execution item CP2K-1647 | Source: router-for-me/CLIProxyAPI pr#130 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/130 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#130,https://github.com/router-for-me/CLIProxyAPI/pull/130,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1647
+"Refactor internals touched by ""fix(server): snapshot config with YAML to handle in-place mutations"" to reduce coupling and improve maintainability.",Execution item CP2K-1648 | Source: router-for-me/CLIProxyAPI pr#127 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/127 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,install-and-ops,yes,pr,router-for-me/CLIProxyAPI,pr#127,https://github.com/router-for-me/CLIProxyAPI/pull/127,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1648
+"Standardize naming/metadata affected by ""add S3-compatible object store"" across both repos and docs.","Execution item CP2K-1650 | Source: router-for-me/CLIProxyAPI pr#125 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/125 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#125,https://github.com/router-for-me/CLIProxyAPI/pull/125,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1650
+"Follow up ""feat(config): use block style for YAML maps/lists"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1651 | Source: router-for-me/CLIProxyAPI pr#118 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/118 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#118,https://github.com/router-for-me/CLIProxyAPI/pull/118,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1651
+"Harden ""feat(store): add PostgreSQL-backed config store with env selection"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1652 | Source: router-for-me/CLIProxyAPI pr#117 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/117 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#117,https://github.com/router-for-me/CLIProxyAPI/pull/117,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1652
+"Improve CLI UX around ""chore: update .gitignore include .env"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1655 | Source: router-for-me/CLIProxyAPI pr#113 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/113 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#113,https://github.com/router-for-me/CLIProxyAPI/pull/113,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1655
+"Add robust stream/non-stream parity tests for ""feat(config): Gracefully handle empty or invalid optional config"" across supported providers.",Execution item CP2K-1657 | Source: router-for-me/CLIProxyAPI pr#110 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/110 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#110,https://github.com/router-for-me/CLIProxyAPI/pull/110,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1657
+"Refactor internals touched by ""Remove Gemini Web"" to reduce coupling and improve maintainability.",Execution item CP2K-1658 | Source: router-for-me/CLIProxyAPI pr#107 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/107 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#107,https://github.com/router-for-me/CLIProxyAPI/pull/107,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1658
+"Prepare safe rollout for ""Add Cloud Deploy Mode"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1659 | Source: router-for-me/CLIProxyAPI pr#104 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/104 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#104,https://github.com/router-for-me/CLIProxyAPI/pull/104,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1659
+"Harden ""Add Gem Mode for Gemini Web"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1662 | Source: router-for-me/CLIProxyAPI pr#94 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/94 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#94,https://github.com/router-for-me/CLIProxyAPI/pull/94,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1662
+"Operationalize ""Dethink"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1663 | Source: router-for-me/CLIProxyAPI pr#90 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/90 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#90,https://github.com/router-for-me/CLIProxyAPI/pull/90,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1663
+"Generalize ""add Iflow"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1664 | Source: router-for-me/CLIProxyAPI pr#85 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/85 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#85,https://github.com/router-for-me/CLIProxyAPI/pull/85,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1664
+"Improve CLI UX around ""fix(cliproxy): Use model name as fallback for ID if alias is empty"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1665 | Source: router-for-me/CLIProxyAPI pr#83 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/83 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#83,https://github.com/router-for-me/CLIProxyAPI/pull/83,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1665
+"Add robust stream/non-stream parity tests for ""feat: add multi-account polling for Gemini web"" across supported providers.",Execution item CP2K-1667 | Source: router-for-me/CLIProxyAPI pr#78 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/78 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#78,https://github.com/router-for-me/CLIProxyAPI/pull/78,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1667
+"Refactor internals touched by ""feat(registry): add support for Claude Sonnet 4.5 model"" to reduce coupling and improve maintainability.",Execution item CP2K-1668 | Source: router-for-me/CLIProxyAPI pr#77 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/77 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#77,https://github.com/router-for-me/CLIProxyAPI/pull/77,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1668
+"Prepare safe rollout for ""Minor adjustments to the logs"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1669 | Source: router-for-me/CLIProxyAPI pr#72 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/72 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#72,https://github.com/router-for-me/CLIProxyAPI/pull/72,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1669
+"Operationalize ""refactor(logging): Improve client loading and registration logs"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1673 | Source: router-for-me/CLIProxyAPI pr#68 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/68 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPI,pr#68,https://github.com/router-for-me/CLIProxyAPI/pull/68,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1673
+"Refactor internals touched by ""Gemini-web"" to reduce coupling and improve maintainability.",Execution item CP2K-1678 | Source: router-for-me/CLIProxyAPI pr#63 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/63 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#63,https://github.com/router-for-me/CLIProxyAPI/pull/63,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1678
+"Standardize naming/metadata affected by ""Reduce the size of gemini-web's package files"" across both repos and docs.","Execution item CP2K-1680 | Source: router-for-me/CLIProxyAPI pr#61 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/61 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#61,https://github.com/router-for-me/CLIProxyAPI/pull/61,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1680
+"Follow up ""Move gemini-web to provider"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1681 | Source: router-for-me/CLIProxyAPI pr#60 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/60 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#60,https://github.com/router-for-me/CLIProxyAPI/pull/60,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1681
+"Improve CLI UX around ""feat(gemini-web): Implement proactive PSIDTS cookie rotation"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1685 | Source: router-for-me/CLIProxyAPI pr#55 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/55 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#55,https://github.com/router-for-me/CLIProxyAPI/pull/55,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1685
+"Add robust stream/non-stream parity tests for ""Made some optimizations for Gemini Web"" across supported providers.",Execution item CP2K-1687 | Source: router-for-me/CLIProxyAPI pr#53 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/53 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#53,https://github.com/router-for-me/CLIProxyAPI/pull/53,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1687
+"Prepare safe rollout for ""feat(gemini-web): Add support for real Nano Banana model"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1689 | Source: router-for-me/CLIProxyAPI pr#51 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/51 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#51,https://github.com/router-for-me/CLIProxyAPI/pull/51,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1689
+"Harden ""Merge pull request #46 from router-for-me/cookie_snapshot"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1692 | Source: router-for-me/CLIProxyAPI pr#47 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/47 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#47,https://github.com/router-for-me/CLIProxyAPI/pull/47,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1692
+"Generalize ""Add Cookie Snapshot"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1694 | Source: router-for-me/CLIProxyAPI pr#45 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/45 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#45,https://github.com/router-for-me/CLIProxyAPI/pull/45,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1694
+"Improve CLI UX around ""Merge gemini-web into dev"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1695 | Source: router-for-me/CLIProxyAPI pr#44 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/44 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#44,https://github.com/router-for-me/CLIProxyAPI/pull/44,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1695
+"Refactor internals touched by ""Avoid unnecessary config.yaml reloads via hash check"" to reduce coupling and improve maintainability.",Execution item CP2K-1698 | Source: router-for-me/CLIProxyAPI pr#39 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/39 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPI,pr#39,https://github.com/router-for-me/CLIProxyAPI/pull/39,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1698
+"Follow up ""Inject build metadata into binary during release and docker build"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1701 | Source: router-for-me/CLIProxyAPI pr#31 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/31 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#31,https://github.com/router-for-me/CLIProxyAPI/pull/31,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1701
+"Operationalize ""Enhance client counting and logging"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1703 | Source: router-for-me/CLIProxyAPI pr#29 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/29 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPI,pr#29,https://github.com/router-for-me/CLIProxyAPI/pull/29,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1703
+"Extend docs for ""Add Gemini 2.5 Flash-Lite Model"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1706 | Source: router-for-me/CLIProxyAPI pr#26 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/26 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#26,https://github.com/router-for-me/CLIProxyAPI/pull/26,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1706
+"Add robust stream/non-stream parity tests for ""Improve hot reloading and fix api response logging"" across supported providers.",Execution item CP2K-1707 | Source: router-for-me/CLIProxyAPI pr#23 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/23 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPI,pr#23,https://github.com/router-for-me/CLIProxyAPI/pull/23,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1707
+"Refactor internals touched by ""Set the default Docker timezone to Asia/Shanghai"" to reduce coupling and improve maintainability.",Execution item CP2K-1708 | Source: router-for-me/CLIProxyAPI pr#16 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/16 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,install-and-ops,yes,pr,router-for-me/CLIProxyAPI,pr#16,https://github.com/router-for-me/CLIProxyAPI/pull/16,"board-2000,theme:install-and-ops,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1708
+"Prepare safe rollout for ""Mentioned in Awesome Gemini CLI"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1709 | Source: router-for-me/CLIProxyAPI pr#8 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/8 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,cli-ux-dx,yes,pr,router-for-me/CLIProxyAPI,pr#8,https://github.com/router-for-me/CLIProxyAPI/pull/8,"board-2000,theme:cli-ux-dx,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1709
+"Prepare safe rollout for ""feat(registry): add GPT-4o model variants for GitHub Copilot"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1949 | Source: router-for-me/CLIProxyAPIPlus pr#255 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/255 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#255,https://github.com/router-for-me/CLIProxyAPIPlus/pull/255,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1949
+"Follow up ""feat(registry): add Gemini 3.1 Pro to GitHub Copilot provider"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1951 | Source: router-for-me/CLIProxyAPIPlus pr#250 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/250 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#250,https://github.com/router-for-me/CLIProxyAPIPlus/pull/250,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1951
+"Harden ""v6.8.22"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1952 | Source: router-for-me/CLIProxyAPIPlus pr#249 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/249 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#249,https://github.com/router-for-me/CLIProxyAPIPlus/pull/249,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1952
+"Operationalize ""v6.8.21"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1953 | Source: router-for-me/CLIProxyAPIPlus pr#248 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/248 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#248,https://github.com/router-for-me/CLIProxyAPIPlus/pull/248,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1953
+"Refactor internals touched by ""feat(registry): add Sonnet 4.6 to GitHub Copilot provider"" to reduce coupling and improve maintainability.",Execution item CP2K-1958 | Source: router-for-me/CLIProxyAPIPlus pr#240 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/240 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#240,https://github.com/router-for-me/CLIProxyAPIPlus/pull/240,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1958
+"Prepare safe rollout for ""feat(registry): add GPT-5.3 Codex to GitHub Copilot provider"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1959 | Source: router-for-me/CLIProxyAPIPlus pr#239 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/239 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#239,https://github.com/router-for-me/CLIProxyAPIPlus/pull/239,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1959
+"Standardize naming/metadata affected by ""Fix Copilot 0x model incorrectly consuming premium requests"" across both repos and docs.","Execution item CP2K-1960 | Source: router-for-me/CLIProxyAPIPlus pr#238 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/238 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPIPlus,pr#238,https://github.com/router-for-me/CLIProxyAPIPlus/pull/238,"board-2000,theme:provider-model-registry,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1960
+"Follow up ""v6.8.18"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1961 | Source: router-for-me/CLIProxyAPIPlus pr#237 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/237 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#237,https://github.com/router-for-me/CLIProxyAPIPlus/pull/237,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1961
+"Standardize naming/metadata affected by ""v6.8.15"" across both repos and docs.","Execution item CP2K-1970 | Source: router-for-me/CLIProxyAPIPlus pr#227 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/227 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#227,https://github.com/router-for-me/CLIProxyAPIPlus/pull/227,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1970
+"Improve CLI UX around ""fix(kiro): 修复之前提交的错误的application/cbor请求处理逻辑"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1975 | Source: router-for-me/CLIProxyAPIPlus pr#220 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/220 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#220,https://github.com/router-for-me/CLIProxyAPIPlus/pull/220,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1975
+"Add robust stream/non-stream parity tests for ""增加kiro新模型并根据其他提供商同模型配置Thinking"" across supported providers.",Execution item CP2K-1977 | Source: router-for-me/CLIProxyAPIPlus pr#216 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/216 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#216,https://github.com/router-for-me/CLIProxyAPIPlus/pull/216,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1977
+"Harden ""v6.8.9"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1982 | Source: router-for-me/CLIProxyAPIPlus pr#207 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/207 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#207,https://github.com/router-for-me/CLIProxyAPIPlus/pull/207,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1982
+"Generalize ""v6.8.7"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1984 | Source: router-for-me/CLIProxyAPIPlus pr#204 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/204 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#204,https://github.com/router-for-me/CLIProxyAPIPlus/pull/204,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1984
+"Improve CLI UX around ""fix(copilot): prevent premium request count inflation for Claude models"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1985 | Source: router-for-me/CLIProxyAPIPlus pr#203 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/203 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#203,https://github.com/router-for-me/CLIProxyAPIPlus/pull/203,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1985
+"Add robust stream/non-stream parity tests for ""v6.8.4"" across supported providers.",Execution item CP2K-1987 | Source: router-for-me/CLIProxyAPIPlus pr#197 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/197 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#197,https://github.com/router-for-me/CLIProxyAPIPlus/pull/197,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1987
+"Refactor internals touched by ""v6.8.1"" to reduce coupling and improve maintainability.",Execution item CP2K-1988 | Source: router-for-me/CLIProxyAPIPlus pr#195 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/195 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#195,https://github.com/router-for-me/CLIProxyAPIPlus/pull/195,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1988
+"Follow up ""v6.8.0"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1991 | Source: router-for-me/CLIProxyAPIPlus pr#192 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/192 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#192,https://github.com/router-for-me/CLIProxyAPIPlus/pull/192,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1991
+"Operationalize ""fix(kiro): handle empty content in current user message for compaction"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1993 | Source: router-for-me/CLIProxyAPIPlus pr#190 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/190 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#190,https://github.com/router-for-me/CLIProxyAPIPlus/pull/190,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1993
+"Generalize ""feat: add Claude Opus 4.6 support for Kiro"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1994 | Source: router-for-me/CLIProxyAPIPlus pr#189 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/189 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPIPlus,pr#189,https://github.com/router-for-me/CLIProxyAPIPlus/pull/189,"board-2000,theme:thinking-and-reasoning,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1994
+"Add robust stream/non-stream parity tests for ""fix(kiro): handle empty content in Claude format assistant messages"" across supported providers.",Execution item CP2K-1997 | Source: router-for-me/CLIProxyAPIPlus pr#186 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/186 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPIPlus,pr#186,https://github.com/router-for-me/CLIProxyAPIPlus/pull/186,"board-2000,theme:responses-and-chat-compat,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1997
+"Refactor internals touched by ""v6.7.48"" to reduce coupling and improve maintainability.",Execution item CP2K-1998 | Source: router-for-me/CLIProxyAPIPlus pr#185 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/185 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,general-polish,yes,pr,router-for-me/CLIProxyAPIPlus,pr#185,https://github.com/router-for-me/CLIProxyAPIPlus/pull/185,"board-2000,theme:general-polish,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1998
+"Prepare safe rollout for ""add kimik2.5 to iflow"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1999 | Source: router-for-me/CLIProxyAPIPlus pr#184 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/184 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P2,wave-2,M,testing-and-quality,yes,pr,router-for-me/CLIProxyAPIPlus,pr#184,https://github.com/router-for-me/CLIProxyAPIPlus/pull/184,"board-2000,theme:testing-and-quality,prio:p2,wave:wave-2,effort:m,kind:pr",CP2K-1999
+"Operationalize ""Bug: MergeAdjacentMessages drops tool_calls from assistant messages"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0013 | Source: router-for-me/CLIProxyAPIPlus issue#217 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/217 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#217,https://github.com/router-for-me/CLIProxyAPIPlus/issues/217,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0013
+"Follow up ""UI 上没有 Kiro 配置的入口,或者说想添加 Kiro 支持,具体该怎么做"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0061 | Source: router-for-me/CLIProxyAPIPlus issue#87 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/87 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#87,https://github.com/router-for-me/CLIProxyAPIPlus/issues/87,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0061
+"Extend docs for ""docker镜像及docker相关其它优化建议"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0256 | Source: router-for-me/CLIProxyAPI issue#1669 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1669 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#1669,https://github.com/router-for-me/CLIProxyAPI/issues/1669,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0256
+"Operationalize ""Google官方好像已经有检测并稳定封禁CPA反代Antigravity的方案了?"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0273 | Source: router-for-me/CLIProxyAPI issue#1631 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1631 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1631,https://github.com/router-for-me/CLIProxyAPI/issues/1631,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0273
+"Improve CLI UX around ""codex 中 plus/team错误支持gpt-5.3-codex-spark 但实际上不支持"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0275 | Source: router-for-me/CLIProxyAPI issue#1623 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1623 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1623,https://github.com/router-for-me/CLIProxyAPI/issues/1623,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0275
+"Standardize naming/metadata affected by ""Any Plans to support Jetbrains IDE?"" across both repos and docs.","Execution item CP2K-0280 | Source: router-for-me/CLIProxyAPI issue#1615 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1615 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1615,https://github.com/router-for-me/CLIProxyAPI/issues/1615,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0280
+"Prepare safe rollout for ""Add LangChain/LangGraph Integration for Memory System"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0389 | Source: router-for-me/CLIProxyAPI issue#1419 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1419 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1419,https://github.com/router-for-me/CLIProxyAPI/issues/1419,"board-2000,theme:error-handling-retries,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0389
+"Operationalize ""Add Google Drive Connector for Memory Ingestion"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0393 | Source: router-for-me/CLIProxyAPI issue#1415 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1415 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,oauth-and-authentication,yes,issue,router-for-me/CLIProxyAPI,issue#1415,https://github.com/router-for-me/CLIProxyAPI/issues/1415,"board-2000,theme:oauth-and-authentication,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0393
+"Standardize naming/metadata affected by ""[Bug] Gemini 400 Error: ""defer_loading"" field in ToolSearch is not supported by Gemini API"" across both repos and docs.","Execution item CP2K-0420 | Source: router-for-me/CLIProxyAPI issue#1375 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1375 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1375,https://github.com/router-for-me/CLIProxyAPI/issues/1375,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0420
+"Prepare safe rollout for ""nvidia openai接口连接失败"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0429 | Source: router-for-me/CLIProxyAPI issue#1324 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1324 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#1324,https://github.com/router-for-me/CLIProxyAPI/issues/1324,"board-2000,theme:websocket-and-streaming,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0429
+"Refactor internals touched by ""cpa长时间运行会oom"" to reduce coupling and improve maintainability.",Execution item CP2K-0448 | Source: router-for-me/CLIProxyAPI issue#1287 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1287 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1287,https://github.com/router-for-me/CLIProxyAPI/issues/1287,"board-2000,theme:error-handling-retries,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0448
+"Improve CLI UX around ""[Bug] 反重力banana pro 4k 图片生成输出为空,仅思考过程可见"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0465 | Source: router-for-me/CLIProxyAPI issue#1255 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1255 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1255,https://github.com/router-for-me/CLIProxyAPI/issues/1255,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0465
+"Standardize naming/metadata affected by ""[BUG] Why does it repeat twice? 为什么他重复了两次?"" across both repos and docs.","Execution item CP2K-0470 | Source: router-for-me/CLIProxyAPI issue#1247 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1247 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1247,https://github.com/router-for-me/CLIProxyAPI/issues/1247,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0470
+"Prepare safe rollout for ""linux一键安装的如何更新"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0499 | Source: router-for-me/CLIProxyAPI issue#1167 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1167 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPI,issue#1167,https://github.com/router-for-me/CLIProxyAPI/issues/1167,"board-2000,theme:install-and-ops,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0499
+"Improve CLI UX around ""[Bug] Internal restart loop causes continuous ""address already in use"" errors in logs"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0515 | Source: router-for-me/CLIProxyAPI issue#1146 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1146 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#1146,https://github.com/router-for-me/CLIProxyAPI/issues/1146,"board-2000,theme:error-handling-retries,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0515
+"Prepare safe rollout for ""Claude to OpenAI Translation Generates Empty System Message"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0519 | Source: router-for-me/CLIProxyAPI issue#1136 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1136 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1136,https://github.com/router-for-me/CLIProxyAPI/issues/1136,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0519
+"Improve CLI UX around ""[Bug] Antigravity provider intermittently strips `thinking` blocks in multi-turn conversations with extended thinking enabled"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0525 | Source: router-for-me/CLIProxyAPI issue#1124 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1124 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#1124,https://github.com/router-for-me/CLIProxyAPI/issues/1124,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0525
+"Improve CLI UX around ""[Feature Request] whitelist models for specific API KEY"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0535 | Source: router-for-me/CLIProxyAPI issue#1107 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1107 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1107,https://github.com/router-for-me/CLIProxyAPI/issues/1107,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0535
+"Harden ""Anthropic web_search fails in v6.7.x - invalid tool name web_search_20250305"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0542 | Source: router-for-me/CLIProxyAPI issue#1094 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1094 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#1094,https://github.com/router-for-me/CLIProxyAPI/issues/1094,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0542
+"Operationalize ""Management Usage report resets at restart"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0603 | Source: router-for-me/CLIProxyAPI issue#1013 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/1013 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#1013,https://github.com/router-for-me/CLIProxyAPI/issues/1013,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0603
+"Prepare safe rollout for ""版本:6.6.98 症状:登录成功后白屏,React Error #300 复现:登录后立即崩溃白屏"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0639 | Source: router-for-me/CLIProxyAPI issue#964 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/964 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#964,https://github.com/router-for-me/CLIProxyAPI/issues/964,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0639
+"Operationalize ""macOS的webui无法登录"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0643 | Source: router-for-me/CLIProxyAPI issue#957 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/957 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#957,https://github.com/router-for-me/CLIProxyAPI/issues/957,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0643
+"Prepare safe rollout for ""README has been replaced by the one from CLIProxyAPIPlus"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0649 | Source: router-for-me/CLIProxyAPI issue#950 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/950 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#950,https://github.com/router-for-me/CLIProxyAPI/issues/950,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0649
+"Operationalize ""增加支持Gemini API v1版本"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0673 | Source: router-for-me/CLIProxyAPI issue#914 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/914 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#914,https://github.com/router-for-me/CLIProxyAPI/issues/914,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0673
+"Prepare safe rollout for ""[BUG] 403 You are currently configured to use a Google Cloud Project but lack a Gemini Code Assist license"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0679 | Source: router-for-me/CLIProxyAPI issue#907 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/907 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#907,https://github.com/router-for-me/CLIProxyAPI/issues/907,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0679
+"Prepare safe rollout for ""supports stakpak.dev"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0699 | Source: router-for-me/CLIProxyAPI issue#872 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/872 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#872,https://github.com/router-for-me/CLIProxyAPI/issues/872,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0699
+"Standardize naming/metadata affected by ""gemini 模型 tool_calls 问题"" across both repos and docs.","Execution item CP2K-0700 | Source: router-for-me/CLIProxyAPI issue#866 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/866 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#866,https://github.com/router-for-me/CLIProxyAPI/issues/866,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0700
+"Extend docs for """"Feature Request: Android Binary Support (Termux Build Guide)"""" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0716 | Source: router-for-me/CLIProxyAPI issue#836 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/836 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#836,https://github.com/router-for-me/CLIProxyAPI/issues/836,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0716
+"Prepare safe rollout for ""[BUG] Antigravity Opus + Codex cannot read images"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0769 | Source: router-for-me/CLIProxyAPI issue#729 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/729 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#729,https://github.com/router-for-me/CLIProxyAPI/issues/729,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0769
+"Standardize naming/metadata affected by ""/context show system tools 1 tokens, mcp tools 4 tokens"" across both repos and docs.","Execution item CP2K-0780 | Source: router-for-me/CLIProxyAPI issue#712 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/712 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#712,https://github.com/router-for-me/CLIProxyAPI/issues/712,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0780
+"Generalize ""Behavior is not consistent with codex"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0784 | Source: router-for-me/CLIProxyAPI issue#708 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/708 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#708,https://github.com/router-for-me/CLIProxyAPI/issues/708,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0784
+"Extend docs for ""Antigravity provider returns 400 error when extended thinking is enabled after tool calls"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0786 | Source: router-for-me/CLIProxyAPI issue#702 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/702 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#702,https://github.com/router-for-me/CLIProxyAPI/issues/702,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0786
+"Prepare safe rollout for ""是否可以提供kiro的支持啊"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0789 | Source: router-for-me/CLIProxyAPI issue#698 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/698 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#698,https://github.com/router-for-me/CLIProxyAPI/issues/698,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0789
+"Add robust stream/non-stream parity tests for ""Frequent Tool-Call Failures with Gemini-2.5-pro in OpenAI-Compatible Mode"" across supported providers.",Execution item CP2K-0797 | Source: router-for-me/CLIProxyAPI issue#682 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/682 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#682,https://github.com/router-for-me/CLIProxyAPI/issues/682,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0797
+"Follow up ""Antigravity Provider Broken"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0811 | Source: router-for-me/CLIProxyAPI issue#650 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/650 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#650,https://github.com/router-for-me/CLIProxyAPI/issues/650,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0811
+"Operationalize ""Request Wrap Cursor to use models as proxy"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0813 | Source: router-for-me/CLIProxyAPI issue#648 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/648 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#648,https://github.com/router-for-me/CLIProxyAPI/issues/648,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0813
+"Standardize naming/metadata affected by ""我无法使用gpt5.2max而其他正常"" across both repos and docs.","Execution item CP2K-0820 | Source: router-for-me/CLIProxyAPI issue#629 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/629 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#629,https://github.com/router-for-me/CLIProxyAPI/issues/629,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0820
+"Follow up ""Failing to do tool use from within Cursor"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0831 | Source: router-for-me/CLIProxyAPI issue#601 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/601 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#601,https://github.com/router-for-me/CLIProxyAPI/issues/601,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0831
+"Improve CLI UX around ""不能通过回调链接认证吗"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0835 | Source: router-for-me/CLIProxyAPI issue#594 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/594 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#594,https://github.com/router-for-me/CLIProxyAPI/issues/594,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0835
+"Refactor internals touched by ""Model ignores tool response and keeps repeating tool calls (Gemini 3 Pro / 2.5 Pro)"" to reduce coupling and improve maintainability.",Execution item CP2K-0848 | Source: router-for-me/CLIProxyAPI issue#565 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/565 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#565,https://github.com/router-for-me/CLIProxyAPI/issues/565,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0848
+"Add robust stream/non-stream parity tests for ""Add General Request Queue with Windowed Concurrency for Reliable Pseudo-Concurrent Execution"" across supported providers.",Execution item CP2K-0857 | Source: router-for-me/CLIProxyAPI issue#546 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/546 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#546,https://github.com/router-for-me/CLIProxyAPI/issues/546,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0857
+"Harden ""[Bug] Load balancing is uneven: Requests are not distributed equally among available accounts"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0872 | Source: router-for-me/CLIProxyAPI issue#506 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/506 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#506,https://github.com/router-for-me/CLIProxyAPI/issues/506,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0872
+"Add robust stream/non-stream parity tests for ""Files and images not working with Antigravity"" across supported providers.",Execution item CP2K-0887 | Source: router-for-me/CLIProxyAPI issue#478 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/478 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#478,https://github.com/router-for-me/CLIProxyAPI/issues/478,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0887
+"Prepare safe rollout for ""Error with Antigravity"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-0889 | Source: router-for-me/CLIProxyAPI issue#476 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/476 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#476,https://github.com/router-for-me/CLIProxyAPI/issues/476,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0889
+"Generalize ""invalid_request_error"",""message"":""`max_tokens` must be greater than `thinking.budget_tokens`."" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-0914 | Source: router-for-me/CLIProxyAPI issue#413 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/413 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#413,https://github.com/router-for-me/CLIProxyAPI/issues/413,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0914
+"Improve CLI UX around ""Image gen not supported/enabled for gemini-3-pro-image-preview?"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-0925 | Source: router-for-me/CLIProxyAPI issue#374 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/374 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#374,https://github.com/router-for-me/CLIProxyAPI/issues/374,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0925
+"Extend docs for ""Is it possible to support gemini native api for file upload?"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-0926 | Source: router-for-me/CLIProxyAPI issue#373 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/373 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,docs-quickstarts,yes,issue,router-for-me/CLIProxyAPI,issue#373,https://github.com/router-for-me/CLIProxyAPI/issues/373,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0926
+"Operationalize ""FR: Add support for beta headers for Claude models"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-0953 | Source: router-for-me/CLIProxyAPI issue#324 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/324 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#324,https://github.com/router-for-me/CLIProxyAPI/issues/324,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0953
+"Standardize naming/metadata affected by ""Previous request seem to be concatenated into new ones with Antigravity"" across both repos and docs.","Execution item CP2K-0960 | Source: router-for-me/CLIProxyAPI issue#313 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/313 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPI,issue#313,https://github.com/router-for-me/CLIProxyAPI/issues/313,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0960
+"Follow up ""Question: Is the Antigravity provider available and compatible with the sonnet 4.5 Thinking LLM model?"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-0961 | Source: router-for-me/CLIProxyAPI issue#311 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/311 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#311,https://github.com/router-for-me/CLIProxyAPI/issues/311,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0961
+"Harden ""cursor with gemini-claude-sonnet-4-5"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0962 | Source: router-for-me/CLIProxyAPI issue#310 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/310 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#310,https://github.com/router-for-me/CLIProxyAPI/issues/310,"board-2000,theme:websocket-and-streaming,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0962
+"Harden ""Feat Request: Support gpt-5-pro"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0992 | Source: router-for-me/CLIProxyAPI issue#259 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/259 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#259,https://github.com/router-for-me/CLIProxyAPI/issues/259,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-0992
+"Standardize naming/metadata affected by ""应该给GPT-5.1添加-none后缀适配以保持一致性"" across both repos and docs.","Execution item CP2K-1000 | Source: router-for-me/CLIProxyAPI issue#248 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/248 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPI,issue#248,https://github.com/router-for-me/CLIProxyAPI/issues/248,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-1000
+"Extend docs for ""Created an install script for linux"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1046 | Source: router-for-me/CLIProxyAPI issue#166 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/166 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,install-and-ops,yes,issue,router-for-me/CLIProxyAPI,issue#166,https://github.com/router-for-me/CLIProxyAPI/issues/166,"board-2000,theme:install-and-ops,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-1046
+"Prepare safe rollout for ""Clarification Needed: Is 'timeout' a Supported Config Parameter?"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1049 | Source: router-for-me/CLIProxyAPI issue#160 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/160 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,error-handling-retries,yes,issue,router-for-me/CLIProxyAPI,issue#160,https://github.com/router-for-me/CLIProxyAPI/issues/160,"board-2000,theme:error-handling-retries,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-1049
+"Follow up ""Gemini Cli With github copilot"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1051 | Source: router-for-me/CLIProxyAPI issue#158 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/158 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#158,https://github.com/router-for-me/CLIProxyAPI/issues/158,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-1051
+"Harden ""Enhancement: _FILE env vars for docker compose"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1052 | Source: router-for-me/CLIProxyAPI issue#156 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/156 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,issue,router-for-me/CLIProxyAPI,issue#156,https://github.com/router-for-me/CLIProxyAPI/issues/156,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-1052
+"Operationalize ""添加 Factor CLI 2api 选项"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1103 | Source: router-for-me/CLIProxyAPI issue#74 | Source URL: https://github.com/router-for-me/CLIProxyAPI/issues/74 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,websocket-and-streaming,yes,issue,router-for-me/CLIProxyAPI,issue#74,https://github.com/router-for-me/CLIProxyAPI/issues/74,"board-2000,theme:websocket-and-streaming,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-1103
+"Prepare safe rollout for """"Feature Request: Android Binary Support (Termux Build Guide)"""" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1759 | Source: router-for-me/CLIProxyAPI discussion#1209 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1209 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#1209,https://github.com/router-for-me/CLIProxyAPI/discussions/1209,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:s,kind:discussion",CP2K-1759
+"Extend docs for ""linux一键安装的如何更新"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1766 | Source: router-for-me/CLIProxyAPI discussion#1177 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1177 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,install-and-ops,yes,discussion,router-for-me/CLIProxyAPI,discussion#1177,https://github.com/router-for-me/CLIProxyAPI/discussions/1177,"board-2000,theme:install-and-ops,prio:p3,wave:wave-3,effort:s,kind:discussion",CP2K-1766
+"Operationalize ""[Feature Request] whitelist models for specific API KEY"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1773 | Source: router-for-me/CLIProxyAPI discussion#1205 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1205 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#1205,https://github.com/router-for-me/CLIProxyAPI/discussions/1205,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:discussion",CP2K-1773
+"Standardize naming/metadata affected by ""旧的认证凭证升级后无法使用"" across both repos and docs.","Execution item CP2K-1780 | Source: router-for-me/CLIProxyAPI discussion#1011 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/1011 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,S,cli-ux-dx,yes,discussion,router-for-me/CLIProxyAPI,discussion#1011,https://github.com/router-for-me/CLIProxyAPI/discussions/1011,"board-2000,theme:cli-ux-dx,prio:p3,wave:wave-3,effort:s,kind:discussion",CP2K-1780
+"Operationalize ""supports stakpak.dev"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1803 | Source: router-for-me/CLIProxyAPI discussion#880 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/880 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#880,https://github.com/router-for-me/CLIProxyAPI/discussions/880,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:s,kind:discussion",CP2K-1803
+"Operationalize ""[Feature Request] Global Alias"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1833 | Source: router-for-me/CLIProxyAPI discussion#632 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/632 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,thinking-and-reasoning,yes,discussion,router-for-me/CLIProxyAPI,discussion#632,https://github.com/router-for-me/CLIProxyAPI/discussions/632,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:s,kind:discussion",CP2K-1833
+"Generalize ""Image gen not supported/enabled for gemini-3-pro-image-preview?"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1834 | Source: router-for-me/CLIProxyAPI discussion#378 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/378 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#378,https://github.com/router-for-me/CLIProxyAPI/discussions/378,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:discussion",CP2K-1834
+"Improve CLI UX around ""Is it possible to support gemini native api for file upload?"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1845 | Source: router-for-me/CLIProxyAPI discussion#631 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/631 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,docs-quickstarts,yes,discussion,router-for-me/CLIProxyAPI,discussion#631,https://github.com/router-for-me/CLIProxyAPI/discussions/631,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:s,kind:discussion",CP2K-1845
+"Standardize naming/metadata affected by ""ask model"" across both repos and docs.","Execution item CP2K-1850 | Source: router-for-me/CLIProxyAPI discussion#309 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/309 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#309,https://github.com/router-for-me/CLIProxyAPI/discussions/309,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:discussion",CP2K-1850
+"Harden ""Multi-Model Routing"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1852 | Source: router-for-me/CLIProxyAPI discussion#312 | Source URL: https://github.com/router-for-me/CLIProxyAPI/discussions/312 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,discussion,router-for-me/CLIProxyAPI,discussion#312,https://github.com/router-for-me/CLIProxyAPI/discussions/312,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:discussion",CP2K-1852
+"Add robust stream/non-stream parity tests for ""[Feature Request] Add GPT-4o Model Support to GitHub Copilot"" across supported providers.",Execution item CP2K-1867 | Source: router-for-me/CLIProxyAPIPlus issue#257 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/257 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#257,https://github.com/router-for-me/CLIProxyAPIPlus/issues/257,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-1867
+"Refactor internals touched by ""Bug: MergeAdjacentMessages drops tool_calls from assistant messages"" to reduce coupling and improve maintainability.",Execution item CP2K-1878 | Source: router-for-me/CLIProxyAPIPlus issue#217 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/217 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,responses-and-chat-compat,yes,issue,router-for-me/CLIProxyAPIPlus,issue#217,https://github.com/router-for-me/CLIProxyAPIPlus/issues/217,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-1878
+"Extend docs for ""UI 上没有 Kiro 配置的入口,或者说想添加 Kiro 支持,具体该怎么做"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1926 | Source: router-for-me/CLIProxyAPIPlus issue#87 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/issues/87 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,S,provider-model-registry,yes,issue,router-for-me/CLIProxyAPIPlus,issue#87,https://github.com/router-for-me/CLIProxyAPIPlus/issues/87,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:s,kind:issue",CP2K-1926
+"Harden ""Normalize Codex schema handling"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-0082 | Source: router-for-me/CLIProxyAPIPlus pr#259 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/259 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#259,https://github.com/router-for-me/CLIProxyAPIPlus/pull/259,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-0082
+"Follow up ""🚀 Add OmniRoute to ""More Choices"" — A Full-Featured Fork Inspired by CLIProxyAPI"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1151 | Source: router-for-me/CLIProxyAPI pr#1638 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1638 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#1638,https://github.com/router-for-me/CLIProxyAPI/pull/1638,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1151
+"Generalize ""fix: update Claude masquerading headers and configurable defaults"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1154 | Source: router-for-me/CLIProxyAPI pr#1628 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1628 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#1628,https://github.com/router-for-me/CLIProxyAPI/pull/1628,"board-2000,theme:error-handling-retries,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1154
+"Follow up ""docs: comprehensive README update"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1161 | Source: router-for-me/CLIProxyAPI pr#1614 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1614 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1614,https://github.com/router-for-me/CLIProxyAPI/pull/1614,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1161
+"Harden ""feat: add claude-opus-4-7-thinking and fix opus-4-6 context length"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1192 | Source: router-for-me/CLIProxyAPI pr#1518 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1518 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#1518,https://github.com/router-for-me/CLIProxyAPI/pull/1518,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1192
+"Follow up ""docs: Add a new client application - Lin Jun"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1221 | Source: router-for-me/CLIProxyAPI pr#1409 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1409 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1409,https://github.com/router-for-me/CLIProxyAPI/pull/1409,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1221
+"Harden ""Add CLIProxyAPI Tray section to README_CN.md"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1232 | Source: router-for-me/CLIProxyAPI pr#1371 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1371 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1371,https://github.com/router-for-me/CLIProxyAPI/pull/1371,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1232
+"Operationalize ""Add CLIProxyAPI Tray information to README"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1233 | Source: router-for-me/CLIProxyAPI pr#1370 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1370 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#1370,https://github.com/router-for-me/CLIProxyAPI/pull/1370,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1233
+"Prepare safe rollout for ""feat: add official Termux (aarch64) build to release workflow"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1269 | Source: router-for-me/CLIProxyAPI pr#1233 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1233 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,install-and-ops,yes,pr,router-for-me/CLIProxyAPI,pr#1233,https://github.com/router-for-me/CLIProxyAPI/pull/1233,"board-2000,theme:install-and-ops,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1269
+"Harden ""feat: add official Termux build support to release workflow"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1272 | Source: router-for-me/CLIProxyAPI pr#1230 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1230 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,install-and-ops,yes,pr,router-for-me/CLIProxyAPI,pr#1230,https://github.com/router-for-me/CLIProxyAPI/pull/1230,"board-2000,theme:install-and-ops,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1272
+"Prepare safe rollout for ""docs(readme): add ZeroLimit to projects based on CLIProxyAPI"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1319 | Source: router-for-me/CLIProxyAPI pr#1068 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/1068 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,error-handling-retries,yes,pr,router-for-me/CLIProxyAPI,pr#1068,https://github.com/router-for-me/CLIProxyAPI/pull/1068,"board-2000,theme:error-handling-retries,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1319
+"Refactor internals touched by ""修复打包后找不到配置文件问题"" to reduce coupling and improve maintainability.",Execution item CP2K-1328 | Source: router-for-me/CLIProxyAPI pr#981 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/981 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#981,https://github.com/router-for-me/CLIProxyAPI/pull/981,"board-2000,theme:websocket-and-streaming,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1328
+"Generalize ""Update README.md"" into provider-agnostic translation/utilities to reduce duplicate logic.",Execution item CP2K-1354 | Source: router-for-me/CLIProxyAPI pr#871 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/871 | Implementation note: Refactor translation layer to isolate provider transform logic from transport concerns. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#871,https://github.com/router-for-me/CLIProxyAPI/pull/871,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1354
+"Extend docs for ""feat(claude): add native request cloaking for non-claude-code clients"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1356 | Source: router-for-me/CLIProxyAPI pr#868 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/868 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,responses-and-chat-compat,yes,pr,router-for-me/CLIProxyAPI,pr#868,https://github.com/router-for-me/CLIProxyAPI/pull/868,"board-2000,theme:responses-and-chat-compat,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1356
+"Refactor internals touched by ""feat(README): add star history"" to reduce coupling and improve maintainability.",Execution item CP2K-1378 | Source: router-for-me/CLIProxyAPI pr#817 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/817 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#817,https://github.com/router-for-me/CLIProxyAPI/pull/817,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1378
+"Improve CLI UX around ""feat: add per-entry base-url support for OpenAI-compatible API keys"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1395 | Source: router-for-me/CLIProxyAPI pr#769 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/769 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#769,https://github.com/router-for-me/CLIProxyAPI/pull/769,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1395
+"Operationalize ""docs: add Quotio to community projects"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1413 | Source: router-for-me/CLIProxyAPI pr#727 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/727 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#727,https://github.com/router-for-me/CLIProxyAPI/pull/727,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1413
+"Extend docs for ""Multi-Target Model Aliases and Provider Aggregation"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1416 | Source: router-for-me/CLIProxyAPI pr#716 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/716 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#716,https://github.com/router-for-me/CLIProxyAPI/pull/716,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1416
+"Operationalize ""docs(readme): add Cubence sponsor and fix PackyCode link"" with observability, runbook updates, and deployment safeguards.",Execution item CP2K-1423 | Source: router-for-me/CLIProxyAPI pr#697 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/697 | Implementation note: Improve error diagnostics and add actionable remediation text in CLI and docs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#697,https://github.com/router-for-me/CLIProxyAPI/pull/697,"board-2000,theme:websocket-and-streaming,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1423
+"Prepare safe rollout for ""docs(readme): add PackyCode sponsor"" via flags, migration docs, and backward-compat tests.",Execution item CP2K-1429 | Source: router-for-me/CLIProxyAPI pr#684 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/684 | Implementation note: Expand quickstart and troubleshooting docs with copy-paste examples and expected outputs. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#684,https://github.com/router-for-me/CLIProxyAPI/pull/684,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1429
+"Standardize naming/metadata affected by ""docs: add operations guide and docs updates"" across both repos and docs.","Execution item CP2K-1430 | Source: router-for-me/CLIProxyAPI pr#676 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/676 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#676,https://github.com/router-for-me/CLIProxyAPI/pull/676,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1430
+"Follow up ""docs: add operations guide and docs updates"" by closing compatibility gaps and locking in regression coverage.",Execution item CP2K-1431 | Source: router-for-me/CLIProxyAPI pr#675 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/675 | Implementation note: Implement compatibility-preserving normalization path with explicit fallback behavior and telemetry. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#675,https://github.com/router-for-me/CLIProxyAPI/pull/675,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1431
+"Improve CLI UX around ""feat(amp): add Amp as provider"" with clearer commands, flags, and immediate validation feedback.",Execution item CP2K-1455 | Source: router-for-me/CLIProxyAPI pr#616 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/616 | Implementation note: Instrument structured logs/metrics around request normalize->translate->dispatch lifecycle. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#616,https://github.com/router-for-me/CLIProxyAPI/pull/616,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1455
+"Standardize naming/metadata affected by ""Fix SDK: remove internal package imports for external consumers"" across both repos and docs.","Execution item CP2K-1460 | Source: router-for-me/CLIProxyAPI pr#608 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/608 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#608,https://github.com/router-for-me/CLIProxyAPI/pull/608,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1460
+"Extend docs for ""fix: Fixes Bash tool command parameter name mismatch"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1466 | Source: router-for-me/CLIProxyAPI pr#589 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/589 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,websocket-and-streaming,yes,pr,router-for-me/CLIProxyAPI,pr#589,https://github.com/router-for-me/CLIProxyAPI/pull/589,"board-2000,theme:websocket-and-streaming,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1466
+"Standardize naming/metadata affected by ""feat: use thinkingLevel for Gemini 3 models per Google documentation"" across both repos and docs.","Execution item CP2K-1470 | Source: router-for-me/CLIProxyAPI pr#582 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/582 | Implementation note: Add contract tests for malformed payloads, missing fields, and legacy/new mixed parameters. | Tracking rule: keep source->solution mapping and update Status as work progresses.",proposed,P3,wave-3,M,thinking-and-reasoning,yes,pr,router-for-me/CLIProxyAPI,pr#582,https://github.com/router-for-me/CLIProxyAPI/pull/582,"board-2000,theme:thinking-and-reasoning,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1470
+"Refactor internals touched by ""docs: add ProxyPal to 'Who is with us?' section"" to reduce coupling and improve maintainability.",Execution item CP2K-1538 | Source: router-for-me/CLIProxyAPI pr#429 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/429 | Implementation note: Benchmark p50/p95 latency and memory; reject regressions in CI quality gate. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#429,https://github.com/router-for-me/CLIProxyAPI/pull/429,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1538
+"Harden ""feat(amp): add model mapping support for routing unavailable models to alternatives"" with stricter validation, safer defaults, and explicit fallback semantics.",Execution item CP2K-1552 | Source: router-for-me/CLIProxyAPI pr#390 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/390 | Implementation note: Add failing-before/failing-after regression tests and update golden fixtures for each supported provider. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#390,https://github.com/router-for-me/CLIProxyAPI/pull/390,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1552
+"Extend docs for ""feat: introduce intelligent model routing system with management API and configuration"" with quickstart snippets and troubleshooting decision trees.",Execution item CP2K-1626 | Source: router-for-me/CLIProxyAPI pr#187 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/187 | Implementation note: Add staged rollout controls (feature flags) with safe defaults and migration notes. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,provider-model-registry,yes,pr,router-for-me/CLIProxyAPI,pr#187,https://github.com/router-for-me/CLIProxyAPI/pull/187,"board-2000,theme:provider-model-registry,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1626
+"Add robust stream/non-stream parity tests for ""docs: add AI Studio setup"" across supported providers.",Execution item CP2K-1627 | Source: router-for-me/CLIProxyAPI pr#186 | Source URL: https://github.com/router-for-me/CLIProxyAPI/pull/186 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPI,pr#186,https://github.com/router-for-me/CLIProxyAPI/pull/186,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1627
+"Add robust stream/non-stream parity tests for ""Normalize Codex schema handling"" across supported providers.",Execution item CP2K-1947 | Source: router-for-me/CLIProxyAPIPlus pr#259 | Source URL: https://github.com/router-for-me/CLIProxyAPIPlus/pull/259 | Implementation note: Harden edge-case parsing for stream and non-stream payload variants. | Tracking rule: keep source->solution mapping and update Status as work progresses.,proposed,P3,wave-3,M,docs-quickstarts,yes,pr,router-for-me/CLIProxyAPIPlus,pr#259,https://github.com/router-for-me/CLIProxyAPIPlus/pull/259,"board-2000,theme:docs-quickstarts,prio:p3,wave:wave-3,effort:m,kind:pr",CP2K-1947
diff --git a/docs/planning/README.md b/docs/planning/README.md
new file mode 100644
index 0000000000..556578b31b
--- /dev/null
+++ b/docs/planning/README.md
@@ -0,0 +1,37 @@
+# Planning Quality Lifecycle
+
+## Quality Command Matrix
+
+- `task quality:fmt` — Format all Go sources in repo.
+- `task quality:fmt:check` — Validate formatting without mutation.
+- `task quality:ci` — Pre-merge quality gate (non-mutating; fmt check + vet + optional staticcheck + diff/staged lint).
+- `task quality:fmt-staged` — Format and lint staged files only.
+- `task quality:fmt-staged:check` — Check formatting and lint staged/diff files (PR-safe, non-mutating).
+- `task quality:quick` — Fast loop (`QUALITY_PACKAGES` scoped optional).
+- `task quality:quick:check` — Fast non-mutating quality loop (`quality:fmt:check` + `lint:changed` + targeted tests).
+- `task quality:quick:all` — Run `quality:quick` and equivalent sibling project quality checks via `quality:parent-sibling`.
+- `task lint` — Run `golangci-lint` across all packages.
+- `task lint:changed` — Run `golangci-lint` on changed/staged Go files.
+- `task test:smoke` — Startup and control-plane smoke test subset in CI.
+- `task quality:vet` — Run `go vet ./...`.
+- `task quality:staticcheck` — Optional staticcheck run (`ENABLE_STATICCHECK=1`).
+- `task quality:release-lint` — Validate release-facing config examples and docs snippets.
+- `task test:unit` / `task test:integration` — Tag-filtered package tests.
+- `task test` — Full test suite.
+- `task verify:all` — Unified local audit entrypoint (`fmt:check`, `test:smoke`, `lint:changed`, `release-lint`, `vet`, `staticcheck`, `test`).
+- `task hooks:install` — Install local pre-commit checks.
+
+## Recommended local sequence
+
+1. `task quality:fmt:check`
+2. `task quality:quick`
+3. `task lint:changed`
+4. `task quality:vet` (or `task quality:staticcheck` when needed)
+5. `task test` (or `task test:unit`)
+6. `task test:smoke`
+7. `task verify:all` before PR handoff.
+
+## CI alignment notes
+
+- `preflight` is shared by all test/quality tasks and fails fast on missing `go`, `task`, or `git`.
+- `task` now includes `cache:unlock` in test gates to avoid stale lock contention.
diff --git a/docs/planning/agentapi-cliproxy-integration-research-2026-02-22.md b/docs/planning/agentapi-cliproxy-integration-research-2026-02-22.md
new file mode 100644
index 0000000000..5989d5ee7d
--- /dev/null
+++ b/docs/planning/agentapi-cliproxy-integration-research-2026-02-22.md
@@ -0,0 +1,290 @@
+# AgentAPI + cliproxyapi++ integration research (2026-02-22)
+
+## Executive summary
+
+- `agentapi` and `cliproxyapi++` are complementary rather than redundant.
+- `agentapi` is strong at **agent session lifecycle** (message, status, events, host attachment) with terminal-backed adapters.
+- `cliproxyapi++` is strong at **model/protocol transport** (OpenAI-style APIs, provider matrix, OAuth/session refresh, routing/failover).
+- A practical tandem pattern is:
+ - use `agentapi` for agent orchestration control,
+ - use `cliproxyapi++` as the model transport or fallback provider layer,
+ - connect both through a thin orchestration service with clear authz/routing boundaries.
+
+## What agentapi is good at (as of 2026-02-22)
+
+From the upstream repo:
+- Provides HTTP control for coding agents such as Claude Code, Goose, Aider, Gemini, Codex, Cursor CLI, etc.
+- Documents 4 conversation endpoints:
+ - `POST /message` to send user input,
+ - `GET /messages` for history,
+ - `GET /status` for running/stable state,
+ - `GET /events` SSE for event streaming.
+- Includes a documented OpenAPI schema and `/docs` UI.
+- Explicitly positions itself as a backend in MCP server compositions (one agent controlling another).
+- Roadmap notes MCP + Agent2Agent support as pending features.
+
+## Why cliproxyapi++ in tandem
+
+`cliproxyapi++` is tuned for provider transport and protocol normalization (OpenAI-compatible paths and OAuth/session-heavy provider support). That gives you:
+- Stable upstream-facing model surface for clients expecting OpenAI/chat-style APIs.
+- Centralized provider switching, credential/session handling, and health/error routing.
+- A predictable contract for scaling many consumer apps without binding each one to specific CLI quirks.
+
+This does not solve all `agentapi` lifecycle semantics by itself; `agentapi` has terminal-streaming/session parsing behaviors that are still value-add for coding CLI automation.
+
+## Recommended tandem architecture (for your stack)
+
+1. **Gateway plane**
+ - Keep `cliproxyapi++` as the provider/generative API layer.
+ - Expose it internally as `/v1/*` and route non-agent consumers there.
+
+2. **Agent-control plane**
+ - Run `agentapi` per workflow (or shared multi-tenant host with strict isolation).
+ - Use `/message`, `/messages`, `/status`, and `/events` for orchestration state and long-running control loops.
+
+3. **Orchestrator service**
+ - Introduce a small orchestrator that translates high-level tasks into:
+ - model calls (via `cliproxyapi++`) for deterministic text generation/translation,
+ - session actions (via `agentapi`) when terminal-backed agent execution is needed.
+
+4. **Policy plane**
+ - Add policy on top of both layers:
+ - secret management and allow-lists,
+ - host/origin/CORS constraints,
+ - request logging + tracing correlation IDs across both control and model calls.
+
+5. **Converge on protocol interoperability**
+ - Track `agentapi` MCP/A2A roadmap and add compatibility tests once MCP is GA or when A2A adapters are available.
+
+## Alternative/adjacent options to evaluate
+
+### Multi-agent orchestration frameworks
+- **AutoGen**
+ - Good for message-passing and multi-agent collaboration patterns.
+ - Useful when you want explicit conversation routing and extensible layers for tools/runtime.
+- **LangGraph**
+ - Strong for graph-based stateful workflows, durable execution, human-in-the-loop, and long-running behavior.
+- **CrewAI**
+ - Role-based crew/fleet model with clear delegation, crews/flights-style orchestration, and tool integration.
+- **OpenAI Agents SDK**
+ - Useful when you are already on OpenAI APIs and need handoffs + built-in tracing/context patterns.
+
+### Protocol direction (standardization-first)
+- **MCP (Model Context Protocol)**
+ - Open standard focused on model ↔ data/tool/workflow interoperability, intended as a universal interface.
+ - Particularly relevant for reducing N×M integration work across clients/tools.
+- **A2A (Agent2Agent)**
+ - Open protocol for inter-agent communication, task-centric workflows, and long-running collaboration.
+ - Designed for cross-framework compatibility and secure interop.
+
+### Transport alternatives
+- Keep OpenAI-compatible proxying if your clients are already chat/completion API-native.
+- If you do not need provider-heavy session orchestration, direct provider SDK routing (without cliproxy) is a simpler but less normalized path.
+
+## Suggested phased pilot
+
+### Phase 1: Proof of contract (1 week)
+- Spin up `agentapi` + `cliproxyapi++` together locally.
+- Validate:
+ - `/message` lifecycle and SSE updates,
+ - `/v1/models` and `/v1/metrics` from cliproxy,
+ - shared tracing correlation between both services.
+
+### Phase 2: Hardened routing (2 weeks)
+- Add orchestrator that routes:
+ - deterministic API-style requests to `cliproxyapi++`,
+ - session-heavy coding tasks to `agentapi`,
+ - shared audit trail plus policy checks.
+- Add negative tests around `agentapi` command-typing and cliproxy failovers.
+
+### Phase 3: Standards alignment (parallel)
+- Track A2A/MCP progress and gate integration behind a feature flag.
+- Build adapter layer so either transport (`agentapi` native endpoints or MCP/A2A clients) can be swapped with minimal orchestration changes.
+
+## Research links
+
+- AgentAPI repository: https://github.com/coder/agentapi
+- AgentAPI OpenAPI/roadmap details: https://github.com/coder/agentapi
+- MCP home: https://modelcontextprotocol.io
+- A2A protocol: https://a2a.cx/
+- OpenAI Agents SDK docs: https://platform.openai.com/docs/guides/agents-sdk/ and https://openai.github.io/openai-agents-python/
+- AutoGen: https://github.com/microsoft/autogen
+- LangGraph: https://github.com/langchain-ai/langgraph and https://docs.langchain.com/oss/python/langgraph/overview
+- CrewAI: https://docs.crewai.com/concepts/agents
+
+## Research appendix (decision-focused)
+
+- `agentapi` gives direct control-plane strengths for long-lived terminal sessions:
+ - `/message`, `/messages`, `/status`, `/events`
+ - MCP and Agent2Agent are on roadmap, so native protocol parity is not yet guaranteed.
+- `cliproxyapi++` gives production proxy strengths for model-plane demands:
+ - OpenAI-compatible `/v1` surface expected by most clients
+ - provider fallback/routing logic under one auth and config envelope
+ - OAuth/session-heavy providers with refresh workflows (Copilot, Kiro, etc.)
+- For projects that mix command-line agents with OpenAI-style tooling, `agentapi` + `cliproxyapi++` is the least disruptive tandem:
+ - keep one stable model ingress (`/v1/*`) for downstream clients
+ - route agent orchestration through `/message` and `/events`
+ - centralize auth/rate-limit policy in the proxy side, and process-level isolation on control-plane side.
+
+### Alternatives evaluated
+
+1. **Go with `agentapi` only**
+ - Pros: fewer moving parts.
+ - Cons: you inherit provider-specific auth/session complexity that `cliproxyapi++` already hardened.
+
+2. **Go with `cliproxyapi++` only**
+ - Pros: strong provider abstraction and OpenAI compatibility.
+ - Cons: missing built-in terminal session lifecycle orchestration of `/message`/`/events`.
+
+3. **Replace with LangGraph or OpenAI Agents SDK**
+ - Pros: strong graph/stateful workflows and OpenAI-native ergonomics.
+ - Cons: meaningful migration for existing CLI-first workflows and provider idiosyncrasies.
+
+4. **Replace with CrewAI or AutoGen**
+ - Pros: flexible multi-agent frameworks and role/task orchestration.
+ - Cons: additional abstraction layer to preserve existing CLIs and local session behavior.
+
+5. **Protocol-first rewrite (MCP/A2A-first)**
+ - Pros: long-run interoperability.
+ - Cons: both `agentapi` protocol coverage and our local integrations are still evolutionary, so this is best as a v2 flag.
+
+### Recommended near-term stance
+
+- Keep the tandem architecture and make it explicit via:
+ - an orchestrator service,
+ - policy-shared auth and observability,
+ - adapter contracts for `message`-style control and `/v1` model calls,
+ - one shared correlation-id across both services for auditability.
+- Use phase-gate adoption:
+ - Phase 1: local smoke on `/message` + `/v1/models`
+ - Phase 2: chaos/perf test with provider failover + session resume
+ - Phase 3: optional MCP/A2A compatibility layer behind flags.
+
+## Full research inventory (2026-02-22)
+
+I pulled all `https://github.com/orgs/coder/repositories` payload and measured the full `coder`-org working set directly:
+
+- Total repos: 203
+- Archived repos: 19
+- Active repos: 184
+- `updated_at` within ~365 days: 163
+- Language distribution top: Go (76), TypeScript (25), Shell (16), HCL (11), Python (5), Rust (4)
+- Dominant topics: ai, ide, coder, go, vscode, golang
+
+### Raw inventories (generated artifacts)
+
+- `/tmp/coder_org_repos_203.json`: full payload with index, full_name, language, stars, forks, archived, updated_at, topics, description
+- `/tmp/coder_org_203.md`: rendered table view of all 203 repos
+- `/tmp/relative_top60.md`: top 60 adjacent/relative repos by recency/star signal from GitHub search
+
+Local generation command used:
+
+```bash
+python - <<'PY'
+import json, requests
+rows = []
+for page in range(1, 6):
+ data = requests.get(
+ "https://api.github.com/orgs/coder/repos",
+ params={"per_page": 100, "page": page, "type": "all"},
+ headers={"User-Agent": "codex-research"},
+ ).json()
+ if not data:
+ break
+ rows.extend(data)
+
+payload = [
+ {
+ "idx": i + 1,
+ "full_name": r["full_name"],
+ "html_url": r["html_url"],
+ "language": r["language"],
+ "stars": r["stargazers_count"],
+ "forks": r["forks_count"],
+ "archived": r["archived"],
+ "updated_at": r["updated_at"],
+ "topics": ",".join(r.get("topics") or []),
+ "description": r["description"],
+ }
+ for i, r in enumerate(rows)
+]
+open("coder_org_repos_203.json", "w", encoding="utf-8").write(json.dumps(payload, indent=2))
+PY
+PY
+```
+
+### Top 20 coder repos by stars (for your stack triage)
+
+1. `coder/code-server` (76,331 stars, TypeScript)
+2. `coder/coder` (12,286 stars, Go)
+3. `coder/sshcode` (5,715 stars, Go)
+4. `coder/websocket` (4,975 stars, Go)
+5. `coder/claudecode.nvim` (2,075 stars, Lua)
+6. `coder/ghostty-web` (1,852 stars, TypeScript)
+7. `coder/wush` (1,413 stars, Go)
+8. `coder/agentapi` (1,215 stars, Go)
+9. `coder/mux` (1,200 stars, TypeScript)
+10. `coder/deploy-code-server` (980 stars, Shell)
+
+### Top 60 additional relative repos (external, adjacent relevance)
+
+1. `langgenius/dify`
+2. `x1xhlol/system-prompts-and-models-of-ai-tools`
+3. `infiniflow/ragflow`
+4. `lobehub/lobehub`
+5. `dair-ai/Prompt-Engineering-Guide`
+6. `OpenHands/OpenHands`
+7. `hiyouga/LlamaFactory`
+8. `FoundationAgents/MetaGPT`
+9. `unslothai/unsloth`
+10. `huginn/huginn`
+11. `microsoft/monaco-editor`
+12. `jeecgboot/JeecgBoot`
+13. `2noise/ChatTTS`
+14. `alibaba/arthas`
+15. `reworkd/AgentGPT`
+16. `1Panel-dev/1Panel`
+17. `alibaba/nacos`
+18. `khoj-ai/khoj`
+19. `continuedev/continue`
+20. `TauricResearch/TradingAgents`
+21. `VSCodium/vscodium`
+22. `feder-cr/Jobs_Applier_AI_Agent_AIHawk`
+23. `CopilotKit/CopilotKit`
+24. `viatsko/awesome-vscode`
+25. `voideditor/void`
+26. `bytedance/UI-TARS-desktop`
+27. `NvChad/NvChad`
+28. `labring/FastGPT`
+29. `datawhalechina/happy-llm`
+30. `e2b-dev/awesome-ai-agents`
+31. `assafelovic/gpt-researcher`
+32. `deepset-ai/haystack`
+33. `zai-org/Open-AutoGLM`
+34. `conwnet/github1s`
+35. `vanna-ai/vanna`
+36. `BloopAI/vibe-kanban`
+37. `datawhalechina/hello-agents`
+38. `oraios/serena`
+39. `qax-os/excelize`
+40. `1Panel-dev/MaxKB`
+41. `bytedance/deer-flow`
+42. `coze-dev/coze-studio`
+43. `LunarVim/LunarVim`
+44. `camel-ai/owl`
+45. `SWE-agent/SWE-agent`
+46. `dzhng/deep-research`
+47. `Alibaba-NLP/DeepResearch`
+48. `google/adk-python`
+49. `elizaOS/eliza`
+50. `NirDiamant/agents-towards-production`
+51. `shareAI-lab/learn-claude-code`
+52. `AstrBotDevs/AstrBot`
+53. `AccumulateMore/CV`
+54. `foambubble/foam`
+55. `graphql/graphiql`
+56. `agentscope-ai/agentscope`
+57. `camel-ai/camel`
+58. `VectifyAI/PageIndex`
+59. `Kilo-Org/kilocode`
+60. `langbot-app/LangBot`
diff --git a/docs/planning/board-workflow.md b/docs/planning/board-workflow.md
new file mode 100644
index 0000000000..d261c8e679
--- /dev/null
+++ b/docs/planning/board-workflow.md
@@ -0,0 +1,118 @@
+# Board Creation and Source-to-Solution Mapping Workflow
+
+Use this workflow to keep a complete mapping from upstream requests to implemented solutions.
+
+## Goals
+
+- Keep every work item linked to a source request.
+- Support sources from GitHub and non-GitHub channels.
+- Track progress continuously (not only at final completion).
+- Keep artifacts importable into GitHub Projects and visible in docs.
+
+## Accepted Source Types
+
+- GitHub issue
+- GitHub feature request
+- GitHub pull request
+- GitHub discussion
+- External source (chat, customer report, incident ticket, internal doc, email)
+
+## Required Mapping Fields Per Item
+
+- `Board ID` (example: `CP2K-0418`)
+- `Title`
+- `Status` (`proposed`, `in_progress`, `blocked`, `done`)
+- `Priority` (`P1`/`P2`/`P3`)
+- `Wave` (`wave-1`/`wave-2`/`wave-3`)
+- `Effort` (`S`/`M`/`L`)
+- `Theme`
+- `Source Kind`
+- `Source Repo` (or `external`)
+- `Source Ref` (issue/pr/discussion id or external reference id)
+- `Source URL` (or external permalink/reference)
+- `Implementation Note`
+
+## Board Artifacts
+
+- Primary execution board:
+ - `docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.csv`
+ - `docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.json`
+ - `docs/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md`
+- GitHub Projects import:
+ - `docs/planning/GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv`
+
+## Create or Refresh a Board
+
+Preferred command:
+
+```text
+go run ./cmd/boardsync
+```
+
+Task shortcut:
+
+```text
+task board:sync
+```
+
+The sync tool is implemented in Go (`cmd/boardsync/main.go`).
+
+1. Pull latest sources from GitHub Issues/PRs/Discussions.
+2. Normalize each source into required mapping fields.
+3. Add strategic items not yet present in GitHub threads (architecture, DX, docs, runtime ops).
+4. Generate CSV + JSON + Markdown together.
+5. Generate Project-import CSV from the same canonical JSON.
+6. Update links in README and docs pages if filenames changed.
+
+## Work-in-Progress Update Rules
+
+When work starts:
+
+- Set item `Status` to `in_progress`.
+- Add implementation branch/PR reference in task notes or board body.
+
+When work is blocked:
+
+- Set item `Status` to `blocked`.
+- Add blocker reason and dependency reference.
+
+When work completes:
+
+- Set item `Status` to `done`.
+- Add solution reference:
+ - PR URL
+ - merged commit SHA
+ - released version (if available)
+ - docs page updated (if applicable)
+
+## Source-to-Solution Traceability Contract
+
+Every completed board item must be traceable:
+
+- `Source` -> `Board ID` -> `Implementation PR/Commit` -> `Docs update`
+
+If a source has no URL (external input), include a durable internal reference:
+
+- `source_kind=external`
+- `source_ref=external:`
+- `source_url=`
+
+## GitHub Project Import Instructions
+
+1. Open Project (v2) in GitHub.
+2. Import `docs/planning/GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv`.
+3. Map fields:
+ - `Title` -> Title
+ - `Status` -> Status
+ - `Priority` -> custom field Priority
+ - `Wave` -> custom field Wave
+ - `Effort` -> custom field Effort
+ - `Theme` -> custom field Theme
+ - `Board ID` -> custom field Board ID
+4. Keep `Source URL`, `Source Ref`, and `Body` visible for traceability.
+
+## Maintenance Cadence
+
+- Weekly: sync new sources and re-run board generation.
+- Daily (active implementation periods): update statuses and completion evidence.
+- Before release: ensure all `done` items have PR/commit/docs references.
diff --git a/docs/planning/coder-org-plus-relative-300-inventory-2026-02-22.md b/docs/planning/coder-org-plus-relative-300-inventory-2026-02-22.md
new file mode 100644
index 0000000000..31ebc0622e
--- /dev/null
+++ b/docs/planning/coder-org-plus-relative-300-inventory-2026-02-22.md
@@ -0,0 +1,377 @@
+# Coder Ecosystem + Relative Research Inventory (300 Repositories)
+
+## Scope
+
+- Source: `https://github.com/orgs/coder/repositories`
+- Additional relative set: top adjacent repos relevant to CLI agent tooling, MCP, proxying, session/control workflows, and LLM operations.
+- Date: 2026-02-22 (UTC)
+- Total covered: **300 repositories**
+ - `coder` org work: **203**
+ - Additional related repos: **97**
+
+## Selection Method
+
+1. Pull full org payload from `orgs/coder/repos` and normalize fields.
+2. Capture full org metrics and ordered inventory.
+3. Build external candidate set from MCP/agent/CLI/LLM search surfaces.
+4. Filter relevance (`agent`, `mcp`, `claude`, `codex`, `llm`, `proxy`, `terminal`, `orchestration`, `workflow`, `agentic`, etc.).
+5. Remove overlaps and archived entries.
+6. Sort by signal (stars, freshness, relevance fit) and pick 97 non-overlapping external repos.
+
+---
+
+## Part 1: coder org complete inventory (203 repos)
+
+Source table (generated from direct GitHub API extraction):
+
+# Coder Org Repo Inventory (as of 2026-02-22T09:57:01Z)
+
+**Total repos:** 203
+**Active:** 184
+**Archived:** 19
+**Updated in last 365d:** 106
+
+| idx | repo | stars | language | archived | updated_at | description |
+| --- | --- | --- | --- | --- | --- | --- |
+| 1 | coder/code-server | 76331 | TypeScript | false | 2026-02-22T06:39:46Z | VS Code in the browser |
+| 2 | coder/coder | 12286 | Go | false | 2026-02-22T07:15:27Z | Secure environments for developers and their agents |
+| 3 | coder/sshcode | 5715 | Go | true | 2026-02-20T13:56:05Z | Run VS Code on any server over SSH. |
+| 4 | coder/websocket | 4975 | Go | false | 2026-02-22T07:55:53Z | Minimal and idiomatic WebSocket library for Go |
+| 5 | coder/claudecode.nvim | 2075 | Lua | false | 2026-02-22T06:30:23Z | 🧩 Claude Code Neovim IDE Extension |
+| 6 | coder/ghostty-web | 1853 | TypeScript | false | 2026-02-22T09:52:41Z | Ghostty for the web with xterm.js API compatibility |
+| 7 | coder/wush | 1413 | Go | false | 2026-02-18T11:01:01Z | simplest & fastest way to transfer files between computers via WireGuard |
+| 8 | coder/agentapi | 1215 | Go | false | 2026-02-22T05:17:09Z | HTTP API for Claude Code, Goose, Aider, Gemini, Amp, and Codex |
+| 9 | coder/mux | 1200 | TypeScript | false | 2026-02-22T09:15:41Z | A desktop app for isolated, parallel agentic development |
+| 10 | coder/deploy-code-server | 980 | Shell | false | 2026-02-16T22:44:24Z | Deploy code-server to the cloud with a few clicks ☁️ 👨🏼💻 |
+| 11 | coder/httpjail | 904 | Rust | false | 2026-02-17T18:03:11Z | HTTP(s) request filter for processes |
+| 12 | coder/sail | 631 | Go | true | 2025-11-27T06:19:55Z | Deprecated: Instant, pre-configured VS Code development environments. |
+| 13 | coder/slog | 348 | Go | false | 2026-01-28T15:15:48Z | Minimal structured logging library for Go |
+| 14 | coder/code-marketplace | 341 | Go | false | 2026-02-09T10:27:27Z | Open source extension marketplace for VS Code. |
+| 15 | coder/guts | 310 | Go | false | 2026-02-18T06:58:52Z | Guts is a code generator that converts Golang types to Typescript. Useful for keeping types in sync between the front and backend. |
+| 16 | coder/envbuilder | 283 | Go | false | 2026-02-20T08:53:20Z | Build development environments from a Dockerfile on Docker, Kubernetes, and OpenShift. Enable developers to modify their development environment quickly. |
+| 17 | coder/quartz | 271 | Go | false | 2026-02-16T15:58:44Z | A Go time testing library for writing deterministic unit tests |
+| 18 | coder/anyclaude | 256 | TypeScript | false | 2026-02-19T20:10:01Z | Claude Code with any LLM |
+| 19 | coder/picopilot | 254 | JavaScript | false | 2025-12-04T02:22:02Z | GitHub Copilot in 70 lines of JavaScript |
+| 20 | coder/hnsw | 211 | Go | false | 2026-02-20T13:54:22Z | In-memory vector index for Go |
+| 21 | coder/awesome-code-server | 191 | | false | 2026-01-01T19:37:50Z | Projects, resources, and tutorials that take code-server to the next level |
+| 22 | coder/awesome-coder | 191 | | false | 2026-02-05T00:49:19Z | A curated list of awesome Coder resources. |
+| 23 | coder/aicommit | 185 | Go | false | 2026-02-20T04:59:25Z | become the world's laziest committer |
+| 24 | coder/redjet | 147 | Go | false | 2025-10-01T18:49:07Z | High-performance Redis library for Go |
+| 25 | coder/images | 116 | Shell | false | 2026-02-03T13:54:55Z | Example Docker images for use with Coder |
+| 26 | coder/vscode-coder | 115 | TypeScript | false | 2026-02-19T14:01:47Z | Open any Coder workspace in VS Code with a single click. |
+| 27 | coder/nbin | 109 | TypeScript | true | 2025-09-16T15:43:49Z | Fast and robust node.js binary compiler. |
+| 28 | coder/cursor-arm | 107 | Nix | true | 2026-02-04T16:26:31Z | Cursor built for ARM Linux and Windows |
+| 29 | coder/blink | 104 | TypeScript | false | 2026-02-21T23:02:57Z | Blink is a self-hosted platform for building and running custom, in-house AI agents. |
+| 30 | coder/pulldash | 103 | TypeScript | false | 2026-02-04T01:36:38Z | Review pull requests in a high-performance UI, driven by keybinds. |
+| 31 | coder/acp-go-sdk | 78 | Go | false | 2026-02-19T11:19:38Z | Go SDK for the Agent Client Protocol (ACP), offering typed requests, responses, and helpers so Go applications can build ACP-compliant agents, clients, and integrations |
+| 32 | coder/coder-v1-cli | 70 | | true | 2025-08-02T15:09:07Z | Command line for Coder v1. For Coder v2, go to https://github.com/coder/coder |
+| 33 | coder/balatrollm | 65 | Python | false | 2026-02-21T15:47:21Z | Play Balatro with LLMs 🎯 |
+| 34 | coder/backstage-plugins | 64 | TypeScript | false | 2026-02-21T14:07:09Z | Official Coder plugins for the Backstage platform |
+| 35 | coder/envbox | 61 | Go | false | 2026-02-04T03:21:32Z | envbox is an image that enables creating non-privileged containers capable of running system-level software (e.g. dockerd, systemd, etc) in Kubernetes. |
+| 36 | coder/terraform-provider-coder | 54 | Go | false | 2026-02-10T09:20:24Z | |
+| 37 | coder/registry | 52 | HCL | false | 2026-02-18T16:14:55Z | Publish Coder modules and templates for other developers to use. |
+| 38 | coder/cli | 50 | Go | true | 2025-03-03T05:37:28Z | A minimal Go CLI package. |
+| 39 | coder/enterprise-helm | 49 | Go | false | 2026-01-10T08:31:06Z | Operate Coder v1 on Kubernetes |
+| 40 | coder/modules | 48 | HCL | true | 2025-11-11T15:29:02Z | A collection of Terraform Modules to extend Coder templates. |
+| 41 | coder/balatrobot | 46 | Python | false | 2026-02-21T22:58:46Z | API for developing Balatro bots 🃏 |
+| 42 | coder/wgtunnel | 44 | Go | false | 2026-01-29T18:25:01Z | HTTP tunnels over Wireguard |
+| 43 | coder/retry | 41 | Go | false | 2025-02-16T02:57:18Z | A tiny retry package for Go. |
+| 44 | coder/hat | 39 | Go | false | 2025-03-03T05:34:56Z | HTTP API testing for Go |
+| 45 | coder/aisdk-go | 37 | Go | false | 2026-02-13T19:37:52Z | A Go implementation of Vercel's AI SDK Data Stream Protocol. |
+| 46 | coder/jetbrains-coder | 34 | Kotlin | false | 2026-01-21T21:41:12Z | A JetBrains Plugin for Coder Workspaces |
+| 47 | coder/exectrace | 32 | Go | false | 2026-01-14T19:46:53Z | Simple eBPF-based exec snooping on Linux packaged as a Go library. |
+| 48 | coder/ai-tokenizer | 31 | TypeScript | false | 2026-02-19T14:06:57Z | A faster than tiktoken tokenizer with first-class support for Vercel's AI SDK. |
+| 49 | coder/observability | 30 | Go | false | 2026-01-29T16:04:00Z | |
+| 50 | coder/packages | 30 | HCL | false | 2026-02-16T07:15:10Z | Deploy Coder to your preferred cloud with a pre-built package. |
+| 51 | coder/labeler | 29 | Go | false | 2025-08-04T02:46:59Z | A GitHub app that labels your issues for you |
+| 52 | coder/wsep | 29 | Go | false | 2025-04-16T13:41:20Z | High performance command execution protocol |
+| 53 | coder/coder-logstream-kube | 28 | Go | false | 2026-02-20T12:31:58Z | Stream Kubernetes Pod events to the Coder startup logs |
+| 54 | coder/node-browser | 28 | TypeScript | true | 2025-03-03T05:33:54Z | Use Node in the browser. |
+| 55 | coder/vscode | 27 | TypeScript | false | 2025-09-15T10:08:35Z | Fork of Visual Studio Code to aid code-server integration. Work in progress ⚠️ |
+| 56 | coder/wush-action | 26 | Shell | false | 2025-12-09T02:38:39Z | SSH into GitHub Actions |
+| 57 | coder/docs | 25 | Shell | true | 2025-08-18T18:20:13Z | Markdown content for Coder v1 Docs. |
+| 58 | coder/coder-desktop-windows | 23 | C# | false | 2026-02-17T09:41:58Z | Coder Desktop application for Windows |
+| 59 | coder/flog | 23 | Go | false | 2025-05-13T15:36:30Z | Pretty formatted log for Go |
+| 60 | coder/aibridge | 22 | Go | false | 2026-02-20T12:54:28Z | Intercept AI requests, track usage, inject MCP tools centrally |
+| 61 | coder/coder-desktop-macos | 22 | Swift | false | 2026-02-17T03:30:13Z | Coder Desktop application for macOS |
+| 62 | coder/terraform-provider-coderd | 22 | Go | false | 2026-02-06T02:11:23Z | Manage a Coder deployment using Terraform |
+| 63 | coder/serpent | 21 | Go | false | 2026-02-19T17:49:37Z | CLI framework for scale and configurability inspired by Cobra |
+| 64 | coder/boundary | 19 | Go | false | 2026-02-20T21:52:51Z | |
+| 65 | coder/code-server-aur | 17 | Shell | false | 2026-01-26T23:33:42Z | code-server AUR package |
+| 66 | coder/coder-jetbrains-toolbox | 16 | Kotlin | false | 2026-02-14T23:21:02Z | Coder plugin for remote development support in JetBrains Toolbox |
+| 67 | coder/homebrew-coder | 15 | Ruby | false | 2026-02-12T20:53:01Z | Coder Homebrew Tap |
+| 68 | coder/pretty | 14 | Go | false | 2025-02-16T02:57:53Z | TTY styles for Go |
+| 69 | coder/balatrobench | 13 | Python | false | 2026-02-19T18:04:04Z | Benchmark LLMs' strategic performance in Balatro 📊 |
+| 70 | coder/cloud-agent | 13 | Go | false | 2025-08-08T04:30:34Z | The agent for Coder Cloud |
+| 71 | coder/requirefs | 13 | TypeScript | true | 2025-03-03T05:33:23Z | Create a readable and requirable file system from tars, zips, or a custom provider. |
+| 72 | coder/ts-logger | 13 | TypeScript | false | 2025-02-21T15:51:39Z | |
+| 73 | coder/envbuilder-starter-devcontainer | 12 | Dockerfile | false | 2025-08-25T01:14:30Z | A sample project for getting started with devcontainer.json in envbuilder |
+| 74 | coder/setup-action | 12 | | false | 2025-12-10T15:24:32Z | Downloads and Configures Coder. |
+| 75 | coder/terraform-provider-envbuilder | 12 | Go | false | 2026-02-04T03:21:05Z | |
+| 76 | coder/timer | 11 | Go | true | 2026-01-26T06:07:54Z | Accurately measure how long a command takes to run |
+| 77 | coder/webinars | 11 | HCL | false | 2025-08-19T17:05:35Z | |
+| 78 | coder/bigdur | 10 | Go | false | 2025-03-03T05:42:27Z | A Go package for parsing larger durations. |
+| 79 | coder/coder.rs | 10 | Rust | false | 2025-07-03T16:00:35Z | [EXPERIMENTAL] Asynchronous Rust wrapper around the Coder Enterprise API |
+| 80 | coder/devcontainer-features | 10 | Shell | false | 2026-02-18T13:09:58Z | |
+| 81 | coder/presskit | 10 | | false | 2025-06-25T14:37:29Z | press kit and brand assets for Coder.com |
+| 82 | coder/cla | 9 | | false | 2026-02-20T14:00:39Z | The Coder Contributor License Agreement (CLA) |
+| 83 | coder/clistat | 9 | Go | false | 2026-01-05T12:08:10Z | A Go library for measuring and reporting resource usage within cgroups and hosts |
+| 84 | coder/ssh | 9 | Go | false | 2025-10-31T17:48:34Z | Easy SSH servers in Golang |
+| 85 | coder/codercord | 8 | TypeScript | false | 2026-02-16T18:51:56Z | A Discord bot for our community server |
+| 86 | coder/community-templates | 8 | HCL | true | 2025-12-07T03:39:36Z | Unofficial templates for Coder for various platforms and cloud providers |
+| 87 | coder/devcontainer-webinar | 8 | Shell | false | 2026-01-05T08:24:24Z | The Good, The Bad, And The Future of Dev Containers |
+| 88 | coder/coder-doctor | 7 | Go | true | 2025-02-16T02:59:32Z | A preflight check tool for Coder |
+| 89 | coder/jetbrains-backend-coder | 7 | Kotlin | false | 2026-01-14T19:56:28Z | |
+| 90 | coder/preview | 7 | Go | false | 2026-02-20T14:46:48Z | Template preview engine |
+| 91 | coder/ai.coder.com | 6 | HCL | false | 2026-01-21T16:39:36Z | Coder's AI-Agent Demo Environment |
+| 92 | coder/blogs | 6 | D2 | false | 2025-03-13T06:49:54Z | Content for coder.com/blog |
+| 93 | coder/ghlabels | 6 | Go | false | 2025-03-03T05:40:54Z | A tool to synchronize labels on GitHub repositories sanely. |
+| 94 | coder/nfy | 6 | Go | false | 2025-03-03T05:39:13Z | EXPERIMENTAL: Pumped up install scripts |
+| 95 | coder/semhub | 6 | TypeScript | false | 2026-02-10T11:15:45Z | |
+| 96 | coder/.github | 5 | | false | 2026-02-11T01:27:53Z | |
+| 97 | coder/gke-disk-cleanup | 5 | Go | false | 2025-03-03T05:34:24Z | |
+| 98 | coder/go-tools | 5 | Go | false | 2024-08-02T23:06:32Z | [mirror] Go Tools |
+| 99 | coder/kaniko | 5 | Go | false | 2025-11-07T13:56:38Z | Build Container Images In Kubernetes |
+| 100 | coder/starquery | 5 | Go | false | 2026-01-19T18:20:32Z | Query in near-realtime if a user has starred a GitHub repository. |
+| 101 | coder/tailscale | 5 | Go | false | 2026-02-10T03:43:17Z | The easiest, most secure way to use WireGuard and 2FA. |
+| 102 | coder/boundary-releases | 4 | | false | 2026-01-14T19:51:57Z | A simple process isolator for Linux that provides lightweight isolation focused on AI and development environments. |
+| 103 | coder/coder-xray | 4 | Go | true | 2026-01-14T19:56:28Z | JFrog XRay Integration |
+| 104 | coder/enterprise-terraform | 4 | HCL | false | 2025-03-03T05:32:04Z | Terraform modules and examples for deploying Coder |
+| 105 | coder/grip | 4 | Go | false | 2025-09-20T20:27:11Z | extensible logging and messaging framework for go processes. |
+| 106 | coder/mutagen | 4 | Go | false | 2025-05-01T02:07:53Z | Make remote development work with your local tools |
+| 107 | coder/sail-aur | 4 | Shell | true | 2025-03-03T05:41:24Z | sail AUR package |
+| 108 | coder/support-scripts | 4 | Shell | false | 2025-03-03T05:36:24Z | Things for Coder Customer Success. |
+| 109 | coder/agent-client-protocol | 3 | Rust | false | 2026-02-17T09:29:51Z | A protocol for connecting any editor to any agent |
+| 110 | coder/awesome-terraform | 3 | | false | 2025-02-18T21:26:09Z | Curated list of resources on HashiCorp's Terraform |
+| 111 | coder/coder-docs-generator | 3 | TypeScript | false | 2025-03-03T05:29:10Z | Generates off-line docs for Coder Docs |
+| 112 | coder/devcontainers-features | 3 | | false | 2025-05-30T10:37:24Z | A collection of development container 'features' |
+| 113 | coder/devcontainers.github.io | 3 | | false | 2024-08-02T23:19:31Z | Web content for the development containers specification. |
+| 114 | coder/gott | 3 | Go | false | 2025-03-03T05:41:52Z | go test timer |
+| 115 | coder/homebrew-core | 3 | Ruby | false | 2025-04-04T03:56:04Z | 🍻 Default formulae for the missing package manager for macOS (or Linux) |
+| 116 | coder/internal | 3 | | false | 2026-02-06T05:54:41Z | Non-community issues related to coder/coder |
+| 117 | coder/presentations | 3 | | false | 2025-03-03T05:31:04Z | Talks and presentations related to Coder released under CC0 which permits remixing and reuse! |
+| 118 | coder/start-workspace-action | 3 | TypeScript | false | 2026-01-14T19:45:56Z | |
+| 119 | coder/synology | 3 | Shell | false | 2025-03-03T05:30:37Z | a work in progress prototype |
+| 120 | coder/templates | 3 | HCL | false | 2026-01-05T23:16:26Z | Repository for internal demo templates across our different environments |
+| 121 | coder/wxnm | 3 | TypeScript | false | 2025-03-03T05:35:47Z | A library for providing TypeScript typed communication between your web extension and your native Node application using Native Messaging |
+| 122 | coder/action-gcs-cache | 2 | TypeScript | false | 2024-08-02T23:19:07Z | Cache dependencies and build outputs in GitHub Actions |
+| 123 | coder/autofix | 2 | JavaScript | false | 2024-08-02T23:19:37Z | Automatically fix all software bugs. |
+| 124 | coder/awesome-vscode | 2 | | false | 2025-07-07T18:07:32Z | 🎨 A curated list of delightful VS Code packages and resources. |
+| 125 | coder/aws-efs-csi-pv-provisioner | 2 | Go | false | 2024-08-02T23:19:06Z | Dynamically provisions Persistent Volumes backed by a subdirectory on AWS EFS in response to Persistent Volume Claims in conjunction with the AWS EFS CSI driver |
+| 126 | coder/coder-platformx-notifications | 2 | Python | false | 2026-01-14T19:39:55Z | Transform Coder webhooks to PlatformX events |
+| 127 | coder/containers-test | 2 | Dockerfile | false | 2025-02-16T02:56:47Z | Container images compatible with Coder |
+| 128 | coder/example-dotfiles | 2 | | false | 2025-10-25T18:04:11Z | |
+| 129 | coder/feeltty | 2 | Go | false | 2025-03-03T05:31:32Z | Quantify the typing experience of a TTY |
+| 130 | coder/fluid-menu-bar-extra | 2 | Swift | false | 2025-07-31T04:59:08Z | 🖥️ A lightweight tool for building great menu bar extras with SwiftUI. |
+| 131 | coder/gvisor | 2 | Go | false | 2025-01-15T16:10:44Z | Application Kernel for Containers |
+| 132 | coder/linux | 2 | | false | 2024-08-02T23:19:08Z | Linux kernel source tree |
+| 133 | coder/merge-queue-test | 2 | Shell | false | 2025-02-15T04:50:36Z | |
+| 134 | coder/netns | 2 | Go | false | 2024-08-02T23:19:12Z | Runc hook (OCI compatible) for setting up default bridge networking for containers. |
+| 135 | coder/pq | 2 | Go | false | 2025-09-23T05:53:41Z | Pure Go Postgres driver for database/sql |
+| 136 | coder/runtime-tools | 2 | Go | false | 2024-08-02T23:06:39Z | OCI Runtime Tools |
+| 137 | coder/sandbox-for-github | 2 | | false | 2025-03-03T05:29:59Z | a sandpit for playing around with GitHub configuration stuff such as GitHub actions or issue templates |
+| 138 | coder/sshcode-aur | 2 | Shell | true | 2025-03-03T05:40:22Z | sshcode AUR package |
+| 139 | coder/v2-templates | 2 | | true | 2025-08-18T18:20:11Z | |
+| 140 | coder/vscodium | 2 | | false | 2024-08-02T23:19:34Z | binary releases of VS Code without MS branding/telemetry/licensing |
+| 141 | coder/web-rdp-bridge | 2 | | true | 2025-04-04T03:56:08Z | A fork of Devolutions Gateway designed to help bring Windows Web RDP support to Coder. |
+| 142 | coder/yamux | 2 | Go | false | 2024-08-02T23:19:24Z | Golang connection multiplexing library |
+| 143 | coder/aws-workshop-samples | 1 | Shell | false | 2026-01-14T19:46:52Z | Sample Coder CLI Scripts and Templates to aid in the delivery of AWS Workshops and Immersion Days |
+| 144 | coder/boundary-proto | 1 | Makefile | false | 2026-01-27T17:59:50Z | IPC API for boundary & Coder workspace agent |
+| 145 | coder/bubbletea | 1 | Go | false | 2025-04-16T23:16:25Z | A powerful little TUI framework 🏗 |
+| 146 | coder/c4d-packer | 1 | | false | 2024-08-02T23:19:32Z | VM images with Coder + Caddy for automatic TLS. |
+| 147 | coder/cloud-hypervisor | 1 | Rust | false | 2024-08-02T23:06:40Z | A rust-vmm based cloud hypervisor |
+| 148 | coder/coder-desktop-linux | 1 | C# | false | 2026-02-18T11:46:15Z | Coder Desktop application for Linux (experimental) |
+| 149 | coder/coder-k8s | 1 | Go | false | 2026-02-20T11:58:41Z | |
+| 150 | coder/coder-oss-gke-tf | 1 | | false | 2024-08-02T23:19:35Z | see upstream at https://github.com/ElliotG/coder-oss-gke-tf |
+| 151 | coder/copenhagen_theme | 1 | Handlebars | false | 2025-06-30T18:17:45Z | The default theme for Zendesk Guide |
+| 152 | coder/create-task-action | 1 | TypeScript | false | 2026-01-19T16:32:14Z | |
+| 153 | coder/diodb | 1 | | false | 2024-08-02T23:19:27Z | Open-source vulnerability disclosure and bug bounty program database. |
+| 154 | coder/do-marketplace-partners | 1 | Shell | false | 2024-08-02T23:06:38Z | Image validation, automation, and other tools for DigitalOcean Marketplace partners and Custom Image users |
+| 155 | coder/drpc | 1 | | false | 2024-08-02T23:19:31Z | drpc is a lightweight, drop-in replacement for gRPC |
+| 156 | coder/glog | 1 | Go | false | 2024-08-02T23:19:18Z | Leveled execution logs for Go |
+| 157 | coder/go-containerregistry | 1 | | false | 2024-08-02T23:19:33Z | Go library and CLIs for working with container registries |
+| 158 | coder/go-httpstat | 1 | Go | false | 2024-08-02T23:19:46Z | Tracing golang HTTP request latency |
+| 159 | coder/go-scim | 1 | Go | false | 2024-08-02T23:19:40Z | Building blocks for servers implementing Simple Cloud Identity Management v2 |
+| 160 | coder/gotestsum | 1 | | false | 2024-08-02T23:19:37Z | 'go test' runner with output optimized for humans, JUnit XML for CI integration, and a summary of the test results. |
+| 161 | coder/imdisk-artifacts | 1 | Batchfile | false | 2025-04-04T03:56:04Z | |
+| 162 | coder/infracost | 1 | | false | 2024-08-02T23:19:26Z | Cloud cost estimates for Terraform in pull requests💰📉 Love your cloud bill! |
+| 163 | coder/kcp-go | 1 | Go | false | 2024-08-02T23:19:21Z | A Production-Grade Reliable-UDP Library for golang |
+| 164 | coder/nixpkgs | 1 | | false | 2024-08-02T23:19:30Z | Nix Packages collection |
+| 165 | coder/oauth1 | 1 | Go | false | 2024-08-02T23:19:20Z | Go OAuth1 |
+| 166 | coder/oauth2 | 1 | Go | false | 2024-08-02T23:19:10Z | Go OAuth2 |
+| 167 | coder/pacman-nodejs | 1 | | false | 2024-08-29T19:49:32Z | |
+| 168 | coder/paralleltestctx | 1 | Go | false | 2025-08-15T08:48:57Z | Go linter for finding usages of contexts with timeouts in parallel subtests. |
+| 169 | coder/pnpm2nix-nzbr | 1 | Nix | false | 2025-04-04T03:56:05Z | Build packages using pnpm with nix |
+| 170 | coder/rancher-partner-charts | 1 | Smarty | true | 2025-04-04T03:56:06Z | A catalog based on applications from independent software vendors (ISVs). Most of them are SUSE Partners. |
+| 171 | coder/slack-autoarchive | 1 | | false | 2024-08-02T23:19:10Z | If there has been no activity in a channel for awhile, you can automatically archive it using a cronjob. |
+| 172 | coder/srecon-emea-2024 | 1 | HCL | false | 2025-04-04T03:56:07Z | |
+| 173 | coder/terraform-config-inspect | 1 | Go | false | 2025-10-25T18:04:07Z | A helper library for shallow inspection of Terraform configurations |
+| 174 | coder/terraform-provider-docker | 1 | | false | 2025-05-24T22:16:42Z | Terraform Docker provider |
+| 175 | coder/uap-go | 1 | | false | 2024-08-02T23:19:16Z | Go implementation of ua-parser |
+| 176 | coder/wireguard-go | 1 | Go | false | 2024-08-02T23:19:22Z | Mirror only. Official repository is at https://git.zx2c4.com/wireguard-go |
+| 177 | coder/actions-cache | 0 | TypeScript | false | 2025-04-22T12:16:39Z | Cache dependencies and build outputs in GitHub Actions |
+| 178 | coder/afero | 0 | Go | false | 2025-12-12T18:24:29Z | The Universal Filesystem Abstraction for Go |
+| 179 | coder/agentapi-sdk-go | 0 | Go | false | 2025-05-05T13:27:45Z | |
+| 180 | coder/agents.md | 0 | TypeScript | false | 2026-01-07T18:31:24Z | AGENTS.md — a simple, open format for guiding coding agents |
+| 181 | coder/agentskills | 0 | Python | false | 2026-01-07T17:26:22Z | Specification and documentation for Agent Skills |
+| 182 | coder/aws-coder-ai-builder-gitops | 0 | HCL | false | 2026-02-17T17:10:11Z | Coder Templates to support AWS AI Builder Lab Events |
+| 183 | coder/aws-coder-workshop-gitops | 0 | HCL | false | 2026-01-06T22:45:08Z | AWS Coder Workshop GitOps flow for Coder Template Admin |
+| 184 | coder/blink-starter | 0 | TypeScript | false | 2026-01-26T10:39:36Z | |
+| 185 | coder/coder-1 | 0 | | false | 2025-11-03T11:28:16Z | Secure environments for developers and their agents |
+| 186 | coder/coder-aur | 0 | Shell | false | 2025-05-05T15:24:57Z | coder AUR package |
+| 187 | coder/defsec | 0 | | false | 2025-01-17T20:36:57Z | Trivy's misconfiguration scanning engine |
+| 188 | coder/embedded-postgres | 0 | Go | false | 2025-06-02T09:29:59Z | Run a real Postgres database locally on Linux, OSX or Windows as part of another Go application or test |
+| 189 | coder/find-process | 0 | | false | 2025-04-15T03:50:36Z | find process by port/pid/name etc. |
+| 190 | coder/ghostty | 0 | Zig | false | 2025-11-12T15:02:36Z | 👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. |
+| 191 | coder/large-module | 0 | | false | 2025-06-16T14:51:00Z | A large terraform module, used for testing |
+| 192 | coder/libbun-webkit | 0 | | false | 2025-12-04T23:56:12Z | WebKit precompiled for libbun |
+| 193 | coder/litellm | 0 | | false | 2025-12-18T15:46:54Z | Python SDK, Proxy Server (AI Gateway) to call 100+ LLM APIs in OpenAI (or native) format, with cost tracking, guardrails, loadbalancing and logging. [Bedrock, Azure, OpenAI, VertexAI, Cohere, Anthropic, Sagemaker, HuggingFace, VLLM, NVIDIA NIM] |
+| 194 | coder/mux-aur | 0 | Shell | false | 2026-02-09T19:56:19Z | mux AUR package |
+| 195 | coder/parameters-playground | 0 | TypeScript | false | 2026-02-05T15:55:03Z | |
+| 196 | coder/python-project | 0 | | false | 2024-10-17T18:26:12Z | Develop a Python project using devcontainers! |
+| 197 | coder/rehype-github-coder | 0 | | false | 2025-07-02T17:54:07Z | rehype plugins that match how GitHub transforms markdown on their site |
+| 198 | coder/setup-ramdisk-action | 0 | | false | 2025-05-27T10:19:47Z | |
+| 199 | coder/shared-docs-kb | 0 | | false | 2025-05-21T17:04:04Z | |
+| 200 | coder/sqlc | 0 | Go | false | 2025-10-29T12:20:02Z | Generate type-safe code from SQL |
+| 201 | coder/Subprocess | 0 | Swift | false | 2025-07-29T10:03:41Z | Swift library for macOS providing interfaces for both synchronous and asynchronous process execution |
+| 202 | coder/trivy | 0 | Go | false | 2025-08-07T20:59:15Z | Find vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more |
+| 203 | coder/vscode- | 0 | | false | 2025-10-24T08:20:11Z | Visual Studio Code |
+
+---
+
+## Part 2: Additional relative repositories (97)
+
+# Additional Relative Repo Additions (97 repos)
+
+**As of:** 2026-02-22T09:57:28Z
+
+**Purpose:** Non-coder ecosystem repos relevant to coding-agent infrastructure, MCP, CLI automation, proxying, and terminal workflows, selected from top relevance pool.
+
+**Selection method:**
+- Seeded from GitHub search across MCP/agent/CLI/terminal/LLM topics.
+- Sorted by stars.
+- Excluded the prior 60-repo overlap set and coder org repos.
+- Kept active-only entries.
+
+| idx | repo | stars | language | updated_at | topics | description |
+| --- | --- | --- | --- | --- | --- | --- |
+| 1 | `n8n-io/n8n` | 175742 | TypeScript | 2026-02-22T09:51:45Z | ai,apis,automation,cli,data-flow,development,integration-framework,integrations,ipaas,low-code,low-code-platform,mcp,mcp-client,mcp-server,n8n,no-code,self-hosted,typescript,workflow,workflow-automation | Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations. |
+| 2 | `google-gemini/gemini-cli` | 95248 | TypeScript | 2026-02-22T09:55:20Z | ai,ai-agents,cli,gemini,gemini-api,mcp-client,mcp-server | An open-source AI agent that brings the power of Gemini directly into your terminal. |
+| 3 | `punkpeye/awesome-mcp-servers` | 81317 | | 2026-02-22T09:44:56Z | ai,mcp | A collection of MCP servers. |
+| 4 | `jesseduffield/lazygit` | 72824 | Go | 2026-02-22T09:10:46Z | cli,git,terminal | simple terminal UI for git commands |
+| 5 | `Mintplex-Labs/anything-llm` | 54841 | JavaScript | 2026-02-22T09:48:00Z | ai-agents,custom-ai-agents,deepseek,kimi,llama3,llm,lmstudio,local-llm,localai,mcp,mcp-servers,moonshot,multimodal,no-code,ollama,qwen3,rag,vector-database,web-scraping | The all-in-one Desktop & Docker AI application with built-in RAG, AI agents, No-code agent builder, MCP compatibility, and more. |
+| 6 | `affaan-m/everything-claude-code` | 49255 | JavaScript | 2026-02-22T09:51:52Z | ai-agents,anthropic,claude,claude-code,developer-tools,llm,mcp,productivity | Complete Claude Code configuration collection - agents, skills, hooks, commands, rules, MCPs. Battle-tested configs from an Anthropic hackathon winner. |
+| 7 | `sansan0/TrendRadar` | 46836 | Python | 2026-02-22T09:41:02Z | ai,bark,data-analysis,docker,hot-news,llm,mail,mcp,mcp-server,news,ntfy,python,rss,trending-topics,wechat,wework | ⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。 |
+| 8 | `upstash/context7` | 46464 | TypeScript | 2026-02-22T09:40:57Z | llm,mcp,mcp-server,vibe-coding | Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors |
+| 9 | `crewAIInc/crewAI` | 44427 | Python | 2026-02-22T09:40:04Z | agents,ai,ai-agents,aiagentframework,llms | Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks. |
+| 10 | `spf13/cobra` | 43280 | Go | 2026-02-22T05:44:11Z | cli,cli-app,cobra,cobra-generator,cobra-library,command,command-cobra,command-line,commandline,go,golang,golang-application,golang-library,posix,posix-compliant-flags,subcommands | A Commander for modern Go CLI interactions |
+| 11 | `mudler/LocalAI` | 42970 | Go | 2026-02-22T09:51:33Z | ai,api,audio-generation,decentralized,distributed,gemma,image-generation,libp2p,llama,llm,mamba,mcp,mistral,musicgen,object-detection,rerank,rwkv,stable-diffusion,text-generation,tts | :robot: The free, Open Source alternative to OpenAI, Claude and others. Self-hosted and local-first. Drop-in replacement, running on consumer-grade hardware. No GPU required. Runs gguf, transformers, diffusers and many more. Features: Generate Text, MCP, Audio, Video, Images, Voice Cloning, Distributed, P2P and decentralized inference |
+| 12 | `zhayujie/chatgpt-on-wechat` | 41359 | Python | 2026-02-22T09:41:37Z | ai,ai-agent,chatgpt,claude,deepseek,dingtalk,feishu-bot,gemini,kimi,linkai,llm,mcp,multi-agent,openai,openclaw,python3,qwen,skills,wechat | CowAgent是基于大模型的超级AI助理,能主动思考和任务规划、访问操作系统和外部资源、创造和执行Skills、拥有长期记忆并不断成长。同时支持飞书、钉钉、企业微信应用、微信公众号、网页等接入,可选择OpenAI/Claude/Gemini/DeepSeek/ Qwen/GLM/Kimi/LinkAI,能处理文本、语音、图片和文件,可快速搭建个人AI助手和企业数字员工。 |
+| 13 | `Aider-AI/aider` | 40824 | Python | 2026-02-22T09:42:37Z | anthropic,chatgpt,claude-3,cli,command-line,gemini,gpt-3,gpt-35-turbo,gpt-4,gpt-4o,llama,openai,sonnet | aider is AI pair programming in your terminal |
+| 14 | `mindsdb/mindsdb` | 38552 | Python | 2026-02-22T08:41:33Z | agents,ai,analytics,artificial-inteligence,bigquery,business-intelligence,databases,hacktoberfest,llms,mcp,mssql,mysql,postgresql,rag | Federated Query Engine for AI - The only MCP Server you'll ever need |
+| 15 | `httpie/cli` | 37582 | Python | 2026-02-22T00:53:03Z | api,api-client,api-testing,cli,client,curl,debugging,developer-tools,development,devops,http,http-client,httpie,json,python,rest,rest-api,terminal,usability,web | 🥧 HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. |
+| 16 | `ComposioHQ/awesome-claude-skills` | 36577 | Python | 2026-02-22T09:51:39Z | agent-skills,ai-agents,antigravity,automation,claude,claude-code,codex,composio,cursor,gemini-cli,mcp,rube,saas,skill,workflow-automation | A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows |
+| 17 | `BerriAI/litellm` | 36541 | Python | 2026-02-22T09:46:04Z | ai-gateway,anthropic,azure-openai,bedrock,gateway,langchain,litellm,llm,llm-gateway,llmops,mcp-gateway,openai,openai-proxy,vertex-ai | Python SDK, Proxy Server (AI Gateway) to call 100+ LLM APIs in OpenAI (or native) format, with cost tracking, guardrails, loadbalancing and logging. [Bedrock, Azure, OpenAI, VertexAI, Cohere, Anthropic, Sagemaker, HuggingFace, VLLM, NVIDIA NIM] |
+| 18 | `Textualize/textual` | 34404 | Python | 2026-02-22T09:36:12Z | cli,framework,python,rich,terminal,tui | The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser. |
+| 19 | `danny-avila/LibreChat` | 34022 | TypeScript | 2026-02-22T09:18:37Z | ai,anthropic,artifacts,aws,azure,chatgpt,chatgpt-clone,claude,clone,deepseek,gemini,google,gpt-5,librechat,mcp,o1,openai,responses-api,vision,webui | Enhanced ChatGPT Clone: Features Agents, MCP, DeepSeek, Anthropic, AWS, OpenAI, Responses API, Azure, Groq, o1, GPT-5, Mistral, OpenRouter, Vertex AI, Gemini, Artifacts, AI model switching, message search, Code Interpreter, langchain, DALL-E-3, OpenAPI Actions, Functions, Secure Multi-User Auth, Presets, open-source for self-hosting. Active. |
+| 20 | `sxyazi/yazi` | 32994 | Rust | 2026-02-22T09:27:35Z | android,asyncio,cli,command-line,concurrency,cross-platform,developer-tools,file-explorer,file-manager,filesystem,linux,macos,neovim,productivity,rust,terminal,tui,vim,windows | 💥 Blazing fast terminal file manager written in Rust, based on async I/O. |
+| 21 | `code-yeongyu/oh-my-opencode` | 32946 | TypeScript | 2026-02-22T09:54:53Z | ai,ai-agents,amp,anthropic,chatgpt,claude,claude-code,claude-skills,cursor,gemini,ide,openai,opencode,orchestration,tui,typescript | the best agent harness |
+| 22 | `PDFMathTranslate/PDFMathTranslate` | 31852 | Python | 2026-02-22T09:12:58Z | chinese,document,edit,english,japanese,korean,latex,math,mcp,modify,obsidian,openai,pdf,pdf2zh,python,russian,translate,translation,zotero | [EMNLP 2025 Demo] PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/MCP/Docker/Zotero |
+| 23 | `conductor-oss/conductor` | 31489 | Java | 2026-02-22T09:16:39Z | distributed-systems,durable-execution,grpc,java,javascript,microservice-orchestration,orchestration-engine,orchestrator,reactjs,spring-boot,workflow-automation,workflow-engine,workflow-management,workflows | Conductor is an event driven agentic orchestration platform providing durable and highly resilient execution engine for applications and AI Agents |
+| 24 | `tqdm/tqdm` | 30973 | Python | 2026-02-22T09:13:13Z | cli,closember,console,discord,gui,jupyter,keras,meter,pandas,parallel,progress,progress-bar,progressbar,progressmeter,python,rate,telegram,terminal,time,utilities | :zap: A Fast, Extensible Progress Bar for Python and CLI |
+| 25 | `block/goose` | 30888 | Rust | 2026-02-22T09:23:53Z | mcp | an open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM |
+| 26 | `patchy631/ai-engineering-hub` | 30407 | Jupyter Notebook | 2026-02-22T09:33:50Z | agents,ai,llms,machine-learning,mcp,rag | In-depth tutorials on LLMs, RAGs and real-world AI agent applications. |
+| 27 | `thedotmack/claude-mem` | 30047 | TypeScript | 2026-02-22T09:48:28Z | ai,ai-agents,ai-memory,anthropic,artificial-intelligence,chromadb,claude,claude-agent-sdk,claude-agents,claude-code,claude-code-plugin,claude-skills,embeddings,long-term-memory,mem0,memory-engine,openmemory,rag,sqlite,supermemory | A Claude Code plugin that automatically captures everything Claude does during your coding sessions, compresses it with AI (using Claude's agent-sdk), and injects relevant context back into future sessions. |
+| 28 | `wshobson/agents` | 29088 | Python | 2026-02-22T09:49:48Z | agents,anthropic,anthropic-claude,automation,claude,claude-code,claude-code-cli,claude-code-commands,claude-code-plugin,claude-code-plugins,claude-code-skills,claude-code-subagents,claude-skills,claudecode,claudecode-config,claudecode-subagents,orchestration,sub-agents,subagents,workflows | Intelligent automation and multi-agent orchestration for Claude Code |
+| 29 | `nrwl/nx` | 28185 | TypeScript | 2026-02-22T07:47:27Z | angular,build,build-system,build-tool,building-tool,cli,cypress,hacktoberfest,javascript,monorepo,nextjs,nodejs,nx,nx-workspaces,react,storybook,typescript | The Monorepo Platform that amplifies both developers and AI agents. Nx optimizes your builds, scales your CI, and fixes failed PRs automatically. Ship in half the time. |
+| 30 | `google/python-fire` | 28130 | Python | 2026-02-22T09:13:41Z | cli,python | Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. |
+| 31 | `microsoft/playwright-mcp` | 27492 | TypeScript | 2026-02-22T09:03:03Z | mcp,playwright | Playwright MCP server |
+| 32 | `github/github-mcp-server` | 27134 | Go | 2026-02-22T09:52:34Z | github,mcp,mcp-server | GitHub's official MCP Server |
+| 33 | `ComposioHQ/composio` | 27111 | TypeScript | 2026-02-22T09:18:05Z | agentic-ai,agents,ai,ai-agents,aiagents,developer-tools,function-calling,gpt-4,javascript,js,llm,llmops,mcp,python,remote-mcp-server,sse,typescript | Composio powers 1000+ toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action. |
+| 34 | `angular/angular-cli` | 27029 | TypeScript | 2026-02-21T09:44:49Z | angular,angular-cli,cli,typescript | CLI tool for Angular |
+| 35 | `simstudioai/sim` | 26509 | TypeScript | 2026-02-22T08:54:59Z | agent-workflow,agentic-workflow,agents,ai,aiagents,anthropic,artificial-intelligence,automation,chatbot,deepseek,gemini,low-code,nextjs,no-code,openai,rag,react,typescript | Build, deploy, and orchestrate AI agents. Sim is the central intelligence layer for your AI workforce. |
+| 36 | `ChromeDevTools/chrome-devtools-mcp` | 26353 | TypeScript | 2026-02-22T09:55:22Z | browser,chrome,chrome-devtools,debugging,devtools,mcp,mcp-server,puppeteer | Chrome DevTools for coding agents |
+| 37 | `Fosowl/agenticSeek` | 25088 | Python | 2026-02-22T08:26:23Z | agentic-ai,agents,ai,autonomous-agents,deepseek-r1,llm,llm-agents,voice-assistant | Fully Local Manus AI. No APIs, No $200 monthly bills. Enjoy an autonomous agent that thinks, browses the web, and code for the sole cost of electricity. 🔔 Official updates only via twitter @Martin993886460 (Beware of fake account) |
+| 38 | `withfig/autocomplete` | 25071 | TypeScript | 2026-02-21T03:23:10Z | autocomplete,bash,cli,fig,fish,hacktoberfest,iterm2,macos,shell,terminal,typescript,zsh | IDE-style autocomplete for your existing terminal & shell |
+| 39 | `hesreallyhim/awesome-claude-code` | 24560 | Python | 2026-02-22T09:46:37Z | agent-skills,agentic-code,agentic-coding,ai-workflow-optimization,ai-workflows,anthropic,anthropic-claude,awesome,awesome-list,awesome-lists,awesome-resources,claude,claude-code,coding-agent,coding-agents,coding-assistant,coding-assistants,llm | A curated list of awesome skills, hooks, slash-commands, agent orchestrators, applications, and plugins for Claude Code by Anthropic |
+| 40 | `flipped-aurora/gin-vue-admin` | 24327 | Go | 2026-02-22T08:41:36Z | admin,ai,casbin,element-ui,gin,gin-admin,gin-vue-admin,go,go-admin,golang,gorm,i18n,jwt,mcp,skills,vite,vue,vue-admin,vue3 | 🚀Vite+Vue3+Gin拥有AI辅助的基础开发平台,企业级业务AI+开发解决方案,内置mcp辅助服务,内置skills管理,支持TS和JS混用。它集成了JWT鉴权、权限管理、动态路由、显隐可控组件、分页封装、多点登录拦截、资源权限、上传下载、代码生成器、表单生成器和可配置的导入导出等开发必备功能。 |
+| 41 | `78/xiaozhi-esp32` | 24118 | C++ | 2026-02-22T08:45:22Z | chatbot,esp32,mcp | An MCP-based chatbot | 一个基于MCP的聊天机器人 |
+| 42 | `PrefectHQ/fastmcp` | 23049 | Python | 2026-02-22T09:14:47Z | agents,fastmcp,llms,mcp,mcp-clients,mcp-servers,mcp-tools,model-context-protocol,python | 🚀 The fast, Pythonic way to build MCP servers and clients. |
+| 43 | `chalk/chalk` | 22976 | JavaScript | 2026-02-22T08:27:20Z | ansi,ansi-escape-codes,chalk,cli,color,commandline,console,javascript,strip-ansi,terminal,terminal-emulators | 🖍 Terminal string styling done right |
+| 44 | `charmbracelet/glow` | 22943 | Go | 2026-02-22T05:49:31Z | cli,excitement,hacktoberfest,markdown | Render markdown on the CLI, with pizzazz! 💅🏻 |
+| 45 | `yamadashy/repomix` | 21994 | TypeScript | 2026-02-22T08:52:43Z | ai,anthropic,artificial-intelligence,chatbot,chatgpt,claude,deepseek,developer-tools,gemini,genai,generative-ai,gpt,javascript,language-model,llama,llm,mcp,nodejs,openai,typescript | 📦 Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok, and more. |
+| 46 | `jarun/nnn` | 21297 | C | 2026-02-22T09:20:18Z | android,batch-rename,c,cli,command-line,developer-tools,disk-usage,file-manager,file-preview,file-search,filesystem,launcher,multi-platform,ncurses,productivity,raspberry-pi,terminal,tui,vim,wsl | n³ The unorthodox terminal file manager |
+| 47 | `mastra-ai/mastra` | 21281 | TypeScript | 2026-02-22T09:29:31Z | agents,ai,chatbots,evals,javascript,llm,mcp,nextjs,nodejs,reactjs,tts,typescript,workflows | From the team behind Gatsby, Mastra is a framework for building AI-powered applications and agents with a modern TypeScript stack. |
+| 48 | `qeeqbox/social-analyzer` | 21160 | JavaScript | 2026-02-22T08:35:01Z | analysis,analyzer,cli,information-gathering,javascript,nodejs,nodejs-cli,osint,pentest,pentesting,person-profile,profile,python,reconnaissance,security-tools,social-analyzer,social-media,sosint,username | API, CLI, and Web App for analyzing and finding a person's profile in 1000 social media \ websites |
+| 49 | `activepieces/activepieces` | 20914 | TypeScript | 2026-02-22T07:30:28Z | ai-agent,ai-agent-tools,ai-agents,ai-agents-framework,mcp,mcp-server,mcp-tools,mcps,n8n-alternative,no-code-automation,workflow,workflow-automation,workflows | AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents |
+| 50 | `winfunc/opcode` | 20633 | TypeScript | 2026-02-22T09:15:44Z | anthropic,anthropic-claude,claude,claude-4,claude-4-opus,claude-4-sonnet,claude-ai,claude-code,claude-code-sdk,cursor,ide,llm,llm-code,rust,tauri | A powerful GUI app and Toolkit for Claude Code - Create custom agents, manage interactive Claude Code sessions, run secure background agents, and more. |
+| 51 | `antonmedv/fx` | 20283 | Go | 2026-02-21T18:06:50Z | cli,command-line,json,tui | Terminal JSON viewer & processor |
+| 52 | `charmbracelet/crush` | 20260 | Go | 2026-02-22T09:22:43Z | agentic-ai,ai,llms,ravishing | Glamourous agentic coding for all 💘 |
+| 53 | `allinurl/goaccess` | 20242 | C | 2026-02-21T11:18:58Z | analytics,apache,c,caddy,cli,command-line,dashboard,data-analysis,gdpr,goaccess,google-analytics,monitoring,ncurses,nginx,privacy,real-time,terminal,tui,web-analytics,webserver | GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser. |
+| 54 | `infinitered/ignite` | 19652 | TypeScript | 2026-02-21T10:38:56Z | boilerplate,cli,expo,generator,mst,react-native,react-native-generator | Infinite Red's battle-tested React Native project boilerplate, along with a CLI, component/model generators, and more! 9 years of continuous development and counting. |
+| 55 | `farion1231/cc-switch` | 19225 | TypeScript | 2026-02-22T09:24:15Z | ai-tools,claude-code,codex,desktop-app,kimi-k2-thiking,mcp,minimax,open-source,opencode,provider-management,rust,skills,skills-management,tauri,typescript,wsl-support | A cross-platform desktop All-in-One assistant tool for Claude Code, Codex, OpenCode & Gemini CLI. |
+| 56 | `Rigellute/spotify-tui` | 19020 | Rust | 2026-02-22T09:00:05Z | cli,rust,spotify,spotify-api,spotify-tui,terminal,terminal-based | Spotify for the terminal written in Rust 🚀 |
+| 57 | `fastapi/typer` | 18882 | Python | 2026-02-22T09:28:15Z | cli,click,python,python3,shell,terminal,typehints,typer | Typer, build great CLIs. Easy to code. Based on Python type hints. |
+| 58 | `charmbracelet/vhs` | 18698 | Go | 2026-02-21T22:39:13Z | ascii,cli,command-line,gif,recording,terminal,vhs,video | Your CLI home video recorder 📼 |
+| 59 | `ratatui/ratatui` | 18580 | Rust | 2026-02-22T09:50:21Z | cli,ratatui,rust,terminal,terminal-user-interface,tui,widgets | A Rust crate for cooking up terminal user interfaces (TUIs) 👨🍳🐀 https://ratatui.rs |
+| 60 | `humanlayer/12-factor-agents` | 18298 | TypeScript | 2026-02-22T03:53:11Z | 12-factor,12-factor-agents,agents,ai,context-window,framework,llms,memory,orchestration,prompt-engineering,rag | What are the principles we can use to build LLM-powered software that is actually good enough to put in the hands of production customers? |
+| 61 | `TransformerOptimus/SuperAGI` | 17190 | Python | 2026-02-22T09:17:13Z | agents,agi,ai,artificial-general-intelligence,artificial-intelligence,autonomous-agents,gpt-4,hacktoberfest,llm,llmops,nextjs,openai,pinecone,python,superagi | <⚡️> SuperAGI - A dev-first open source autonomous AI agent framework. Enabling developers to build, manage & run useful autonomous agents quickly and reliably. |
+| 62 | `steveyegge/beads` | 16931 | Go | 2026-02-22T09:43:07Z | agents,claude-code,coding | Beads - A memory upgrade for your coding agent |
+| 63 | `asciinema/asciinema` | 16857 | Rust | 2026-02-22T09:00:58Z | asciicast,asciinema,cli,recording,rust,streaming,terminal | Terminal session recorder, streamer and player 📹 |
+| 64 | `yorukot/superfile` | 16731 | Go | 2026-02-22T09:10:44Z | bubbletea,cli,file-manager,filemanager,filesystem,golang,hacktoberfest,linux-app,terminal-app,terminal-based,tui | Pretty fancy and modern terminal file manager |
+| 65 | `udecode/plate` | 15953 | TypeScript | 2026-02-22T08:33:50Z | ai,mcp,react,shadcn-ui,slate,typescript,wysiwyg | Rich-text editor with AI, MCP, and shadcn/ui |
+| 66 | `plandex-ai/plandex` | 15012 | Go | 2026-02-22T09:51:31Z | ai,ai-agents,ai-developer-tools,ai-tools,cli,command-line,developer-tools,git,golang,gpt-4,llm,openai,polyglot-programming,terminal,terminal-based,terminal-ui | Open source AI coding agent. Designed for large projects and real world tasks. |
+| 67 | `pydantic/pydantic-ai` | 15007 | Python | 2026-02-22T09:37:56Z | agent-framework,genai,llm,pydantic,python | GenAI Agent Framework, the Pydantic way |
+| 68 | `HKUDS/DeepCode` | 14573 | Python | 2026-02-22T07:33:30Z | agentic-coding,llm-agent | "DeepCode: Open Agentic Coding (Paper2Code & Text2Web & Text2Backend)" |
+| 69 | `microsoft/mcp-for-beginners` | 14441 | Jupyter Notebook | 2026-02-22T09:19:11Z | csharp,java,javascript,javascript-applications,mcp,mcp-client,mcp-security,mcp-server,model,model-context-protocol,modelcontextprotocol,python,rust,typescript | This open-source curriculum introduces the fundamentals of Model Context Protocol (MCP) through real-world, cross-language examples in .NET, Java, TypeScript, JavaScript, Rust and Python. Designed for developers, it focuses on practical techniques for building modular, scalable, and secure AI workflows from session setup to service orchestration. |
+| 70 | `ruvnet/claude-flow` | 14330 | TypeScript | 2026-02-22T08:35:13Z | agentic-ai,agentic-engineering,agentic-framework,agentic-rag,agentic-workflow,agents,ai-assistant,ai-tools,anthropic-claude,autonomous-agents,claude-code,claude-code-skills,codex,huggingface,mcp-server,model-context-protocol,multi-agent,multi-agent-systems,swarm,swarm-intelligence | 🌊 The leading agent orchestration platform for Claude. Deploy intelligent multi-agent swarms, coordinate autonomous workflows, and build conversational AI systems. Features enterprise-grade architecture, distributed swarm intelligence, RAG integration, and native Claude Code support via MCP protocol. Ranked #1 in agent-based frameworks. |
+| 71 | `FormidableLabs/webpack-dashboard` | 14219 | JavaScript | 2026-02-19T08:27:36Z | cli,cli-dashboard,dashboard,devtools,dx,socket-communication,webpack,webpack-dashboard | A CLI dashboard for webpack dev server |
+| 72 | `sickn33/antigravity-awesome-skills` | 13894 | Python | 2026-02-22T09:53:04Z | agentic-skills,ai-agents,antigravity,autonomous-coding,claude-code,mcp,react-patterns,security-auditing | The Ultimate Collection of 800+ Agentic Skills for Claude Code/Antigravity/Cursor. Battle-tested, high-performance skills for AI agents including official skills from Anthropic and Vercel. |
+| 73 | `czlonkowski/n8n-mcp` | 13804 | TypeScript | 2026-02-22T09:39:01Z | mcp,mcp-server,n8n,workflows | A MCP for Claude Desktop / Claude Code / Windsurf / Cursor to build n8n workflows for you |
+| 74 | `triggerdotdev/trigger.dev` | 13782 | TypeScript | 2026-02-22T09:19:48Z | ai,ai-agent-framework,ai-agents,automation,background-jobs,mcp,mcp-server,nextjs,orchestration,scheduler,serverless,workflow-automation,workflows | Trigger.dev – build and deploy fully‑managed AI agents and workflows |
+| 75 | `electerm/electerm` | 13613 | JavaScript | 2026-02-22T08:28:51Z | ai,electerm,electron,file-manager,ftp,linux-app,macos-app,mcp,open-source,rdp,serialport,sftp,spice,ssh,telnet,terminal,vnc,windows-app,zmodem | 📻Terminal/ssh/sftp/ftp/telnet/serialport/RDP/VNC/Spice client(linux, mac, win) |
+| 76 | `GLips/Figma-Context-MCP` | 13200 | TypeScript | 2026-02-22T06:21:21Z | ai,cursor,figma,mcp,typescript | MCP server to provide Figma layout information to AI coding agents like Cursor |
+| 77 | `topoteretes/cognee` | 12461 | Python | 2026-02-22T08:57:41Z | ai,ai-agents,ai-memory,cognitive-architecture,cognitive-memory,context-engineering,contributions-welcome,good-first-issue,good-first-pr,graph-database,graph-rag,graphrag,help-wanted,knowledge,knowledge-graph,neo4j,open-source,openai,rag,vector-database | Knowledge Engine for AI Agent Memory in 6 lines of code |
+| 78 | `bitwarden/clients` | 12297 | TypeScript | 2026-02-22T07:30:21Z | angular,bitwarden,browser-extension,chrome,cli,desktop,electron,firefox,javascript,nodejs,safari,typescript,webextension | Bitwarden client apps (web, browser extension, desktop, and cli). |
+| 79 | `tadata-org/fastapi_mcp` | 11567 | Python | 2026-02-22T05:52:02Z | ai,authentication,authorization,claude,cursor,fastapi,llm,mcp,mcp-server,mcp-servers,modelcontextprotocol,openapi,windsurf | Expose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth! |
+| 80 | `imsnif/bandwhich` | 11554 | Rust | 2026-02-22T05:55:05Z | bandwidth,cli,dashboard,networking | Terminal bandwidth utilization tool |
+| 81 | `pystardust/ani-cli` | 11449 | Shell | 2026-02-22T08:09:12Z | anime,cli,fzf,linux,mac,posix,rofi,shell,steamdeck,syncplay,terminal,termux,webscraping,windows | A cli tool to browse and play anime |
+| 82 | `darrenburns/posting` | 11392 | Python | 2026-02-22T09:21:32Z | automation,cli,developer-tools,http,python,rest,rest-api,rest-client,ssh,terminal,textual,tui | The modern API client that lives in your terminal. |
+| 83 | `streamlink/streamlink` | 11289 | Python | 2026-02-22T09:21:42Z | cli,livestream,python,streaming,streaming-services,streamlink,twitch,vlc | Streamlink is a CLI utility which pipes video streams from various services into a video player |
+| 84 | `kefranabg/readme-md-generator` | 11108 | JavaScript | 2026-02-21T05:14:31Z | cli,generator,readme,readme-badges,readme-generator,readme-md,readme-template | 📄 CLI that generates beautiful README.md files |
+| 85 | `squizlabs/PHP_CodeSniffer` | 10792 | PHP | 2026-02-21T15:28:45Z | automation,cli,coding-standards,php,qa,static-analysis | PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards. |
+| 86 | `ekzhang/bore` | 10781 | Rust | 2026-02-21T22:12:26Z | cli,localhost,networking,proxy,rust,self-hosted,tcp,tunnel | 🕳 bore is a simple CLI tool for making tunnels to localhost |
+| 87 | `Portkey-AI/gateway` | 10672 | TypeScript | 2026-02-22T04:37:09Z | ai-gateway,gateway,generative-ai,hacktoberfest,langchain,llm,llm-gateway,llmops,llms,mcp,mcp-client,mcp-gateway,mcp-servers,model-router,openai | A blazing fast AI Gateway with integrated guardrails. Route to 200+ LLMs, 50+ AI Guardrails with 1 fast & friendly API. |
+| 88 | `simular-ai/Agent-S` | 9843 | Python | 2026-02-22T01:07:35Z | agent-computer-interface,ai-agents,computer-automation,computer-use,computer-use-agent,cua,grounding,gui-agents,in-context-reinforcement-learning,memory,mllm,planning,retrieval-augmented-generation | Agent S: an open agentic framework that uses computers like a human |
+| 89 | `NevaMind-AI/memU` | 9720 | Python | 2026-02-22T09:20:49Z | agent-memory,agentic-workflow,claude,claude-skills,clawdbot,clawdbot-skill,mcp,memory,proactive,proactive-ai,sandbox,skills | Memory for 24/7 proactive agents like openclaw (moltbot, clawdbot). |
+| 90 | `yusufkaraaslan/Skill_Seekers` | 9697 | Python | 2026-02-22T07:49:15Z | ai-tools,ast-parser,automation,claude-ai,claude-skills,code-analysis,conflict-detection,documentation,documentation-generator,github,github-scraper,mcp,mcp-server,multi-source,ocr,pdf,python,web-scraping | Convert documentation websites, GitHub repositories, and PDFs into Claude AI skills with automatic conflict detection |
+| 91 | `humanlayer/humanlayer` | 9424 | TypeScript | 2026-02-22T09:22:53Z | agents,ai,amp,claude-code,codex,human-in-the-loop,humanlayer,llm,llms,opencode | The best way to get AI coding agents to solve hard problems in complex codebases. |
+| 92 | `mcp-use/mcp-use` | 9245 | TypeScript | 2026-02-22T08:30:32Z | agentic-framework,ai,apps-sdk,chatgpt,claude-code,llms,mcp,mcp-apps,mcp-client,mcp-gateway,mcp-host,mcp-inspector,mcp-server,mcp-servers,mcp-tools,mcp-ui,model-context-protocol,modelcontextprotocol,openclaw,skills | The fullstack MCP framework to develop MCP Apps for ChatGPT / Claude & MCP Servers for AI Agents. |
+| 93 | `ValueCell-ai/valuecell` | 9232 | Python | 2026-02-22T09:50:12Z | agentic-ai,agents,ai,assitant,crypto,equity,finance,investment,mcp,python,react,stock-market | ValueCell is a community-driven, multi-agent platform for financial applications. |
+| 94 | `53AI/53AIHub` | 9145 | Go | 2026-02-22T09:54:55Z | coze,dify,fastgpt,go,maxkb,mcp,openai,prompt,ragflow | 53AI Hub is an open-source AI portal, which enables you to quickly build a operational-level AI portal to launch and operate AI agents, prompts, and AI tools. It supports seamless integration with development platforms like Coze, Dify, FastGPT, RAGFlow. |
+| 95 | `Arindam200/awesome-ai-apps` | 8989 | Python | 2026-02-22T09:25:59Z | agents,ai,hacktoberfest,llm,mcp | A collection of projects showcasing RAG, agents, workflows, and other AI use cases |
+| 96 | `xpzouying/xiaohongshu-mcp` | 8978 | Go | 2026-02-22T09:48:06Z | mcp,mcp-server,xiaohongshu-mcp | MCP for xiaohongshu.com |
+| 97 | `coreyhaines31/marketingskills` | 8704 | JavaScript | 2026-02-22T09:53:33Z | claude,codex,marketing | Marketing skills for Claude Code and AI agents. CRO, copywriting, SEO, analytics, and growth engineering. |
+
+---
+
+## Part 3: 300-item completeness notes
+
+### Current totals
+
+- Coder org total: 203
+- Relative add-ons: 97
+- Combined coverage: 300
+- Status: complete against user request to move to a full 300-repo sweep.
+
+### Why this split
+
+- The first tranche preserves authoritative org coverage.
+- The second tranche expands to adjacent implementation spaces: terminal harnessing, MCP toolchains, proxy/router engines, multi-agent coordination and agent productivity tooling.
+- The methodology intentionally includes both coding/ops infrastructure and proxy-adjacent control utilities, since your stack sits on that boundary.
+
+### Known follow-on actions
+
+1. Add a periodic watcher to refresh this inventory (e.g., weekly) and keep starred/relevance drift visible.
+2. Add a tiny scoring sheet for each repo against fit dimensions (agent-runner relevance, transport relevance, protocol relevance, maintenance signal).
+3. Expand this to include risk signals (dependency freshness, maintainer bus factor, release cadence) before hard blocking/allow-list decisions.
diff --git a/docs/planning/coverage-gaps.md b/docs/planning/coverage-gaps.md
new file mode 100644
index 0000000000..bbed675775
--- /dev/null
+++ b/docs/planning/coverage-gaps.md
@@ -0,0 +1,57 @@
+# Coverage Gaps Report
+
+Date: 2026-02-22
+
+## Current Snapshot
+
+- Scope assessed:
+ - `pkg/llmproxy/api`, `pkg/llmproxy/translator`, `sdk/api/handlers`
+ - selected quality commands in `Taskfile.yml`
+- Baseline commands executed:
+ - `go test ./pkg/llmproxy/api -run 'TestServer_|TestResponsesWebSocketHandler_.*'`
+ - `go test ./pkg/llmproxy/api -run 'TestServer_ControlPlane_MessageLifecycle|TestServer_ControlPlane_UnsupportedCapability|TestServer_RoutesNamespaceIsolation|TestServer_ResponsesRouteSupportsHttpAndWebsocketShapes|TestServer_StartupSmokeEndpoints'`
+ - `QUALITY_PACKAGES='./pkg/llmproxy/api ./sdk/api/handlers/openai' task quality:quick`
+- `task quality:fmt:check`
+- `task lint:changed` (environment reports golangci-lint Go 1.25 binary mismatch with Go 1.26 target)
+- `go test ./pkg/llmproxy/api -run 'TestServer_'`
+- `go test ./sdk/api/handlers -run 'TestRequestExecutionMetadata'`
+- `/.github/scripts/check-distributed-critical-paths.sh`
+- `QUALITY_PACKAGES='./pkg/llmproxy/api ./sdk/api/handlers/openai' task quality:quick:check`
+- `task quality:quick:all` currently still needs sibling compatibility validation when golangci-lint is missing/heterogeneous across siblings.
+
+## Gap Matrix
+
+- Unit:
+ - Coverage improved for API route lifecycle and websocket idempotency.
+ - Added startup smoke assertions for `/v1/models` and `/v1/metrics/providers`, plus repeated `setupRoutes` route-count stability checks.
+ - Added `requestExecutionMetadata` regression tests (idempotency key propagation + session/auth metadata).
+ - Added control-plane shell endpoint coverage for `/message`, `/messages`, `/status`, `/events` in `pkg/llmproxy/api/server_test.go`.
+ - Added command-label translation tests for `/message` aliases (`ask`, `exec`, `max`, `continue`, `resume`).
+ - Added `/message` idempotency replay test that asserts duplicate key reuse and no duplicate in-memory message append.
+ - Added idempotency negative test for different `Idempotency-Key` values and in-flight message-copy isolation for `/messages`.
+ - Added task-level quality gates (`quality:ci`, `lint:changed` with PR ranges, `test:smoke`) and workflow/required-check wiring for CI pre-merge gates.
+ - Added `quality:release-lint` and required-check `quality-staged-check` in CI; added docs/code snippet parse coverage for release lint.
+ - Remaining: complete route-namespace matrix for command-label translation across orchestrator-facing surfaces beyond `/message`, and status/event replay windows.
+- Integration:
+ - Remaining: end-to-end provider cheapest-path smoke for live process orchestration against every provider auth mode. Unit-level smoke now covers:
+ - `/v1/models` namespace behavior for OpenAI-compatible and `claude-cli` User-Agent paths.
+ - `/v1/metrics/providers` response shape and metric-field assertions with seeded usage data.
+ - control-plane lifecycle endpoints with idempotency replay windows.
+ - Remaining: live provider smoke and control-plane session continuity across process restarts.
+- E2E:
+ - Remaining: end-to-end harness for `/agent/*` parity and full resume/continuation semantics.
+ - Remaining: live-process orchestration for `/v1/models`, `/v1/metrics/providers`, and `/v1/responses` websocket fallback.
+ - Added first smoke-level unit checks for `/message` lifecycle and `/v1` models/metrics namespace dispatch.
+- Chaos:
+ - Remaining: websocket drop/reconnect and upstream timeout injection suite.
+- Perf:
+ - Remaining: concurrent fanout/p99/p95 measurement for `/v1/responses` stream fanout.
+- Security:
+ - Remaining: token leak and origin-header downgrade guard assertions.
+- Docs:
+- Remaining: close loop on `docs/planning/README` command matrix references in onboarding guides and add explicit evidence links for the cheapest-provider matrix tasks.
+
+## Close-out Owner
+
+- Owner placeholder: `cliproxy` sprint lead
+- Required before lane closure: each unchecked item in this file must have evidence in `docs/planning/agents.md`.
diff --git a/docs/planning/index.md b/docs/planning/index.md
new file mode 100644
index 0000000000..568e206551
--- /dev/null
+++ b/docs/planning/index.md
@@ -0,0 +1,28 @@
+# Planning and Execution Boards
+
+This section tracks source-linked execution boards and import artifacts.
+
+## Current Boards
+
+- [2000-Item Execution Board (Markdown)](./CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md)
+- [2000-Item Execution Board (CSV)](./CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.csv)
+- [2000-Item Execution Board (JSON)](./CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.json)
+- [1000-Item Board (Markdown)](./CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md)
+- [1000-Item Board (CSV)](./CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.csv)
+- [1000-Item Board (JSON)](./CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.json)
+- [Coverage Gaps Register](./coverage-gaps.md)
+
+## Sprint & Audit Artifacts
+
+- [70-Item Sprint Plan](./agents.md)
+- [Sprint Planning README](./README.md)
+- [Coder + Adjacent Research Inventory (300 repos)](./coder-org-plus-relative-300-inventory-2026-02-22.md)
+- [AgentAPI/cliproxy Integration Research](./agentapi-cliproxy-integration-research-2026-02-22.md)
+
+## GitHub Project Import
+
+- [GitHub Project Import CSV (2000 items)](./GITHUB_PROJECT_IMPORT_CLIPROXYAPI_2000_2026-02-22.csv)
+
+## Workflow
+
+- [Board Creation and Source-to-Solution Mapping Workflow](./board-workflow.md)
diff --git a/go.mod b/go.mod
index 3e0a1ab5f2..f804cd35ff 100644
--- a/go.mod
+++ b/go.mod
@@ -8,6 +8,7 @@ require (
github.com/charmbracelet/bubbles v1.0.0
github.com/charmbracelet/bubbletea v1.3.10
github.com/charmbracelet/lipgloss v1.1.0
+ github.com/edsrzf/mmap-go v1.2.0
github.com/fsnotify/fsnotify v1.9.0
github.com/fxamacker/cbor/v2 v2.9.0
github.com/gin-gonic/gin v1.10.1
@@ -21,6 +22,7 @@ require (
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
github.com/refraction-networking/utls v1.8.2
github.com/sirupsen/logrus v1.9.3
+ github.com/stretchr/testify v1.11.1
github.com/tidwall/gjson v1.18.0
github.com/tidwall/sjson v1.2.5
github.com/tiktoken-go/tokenizer v0.7.0
@@ -52,9 +54,9 @@ require (
github.com/cloudwego/base64x v0.1.4 // indirect
github.com/cloudwego/iasm v0.2.0 // indirect
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
+ github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dlclark/regexp2 v1.11.5 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
- github.com/edsrzf/mmap-go v1.2.0 // indirect
github.com/emirpasic/gods v1.18.1 // indirect
github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
@@ -87,6 +89,7 @@ require (
github.com/ncruces/go-strftime v1.0.0 // indirect
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
github.com/pjbgf/sha1cd v0.5.0 // indirect
+ github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/rs/xid v1.5.0 // indirect
diff --git a/pkg/llmproxy/api/handlers/management/auth_files.go b/pkg/llmproxy/api/handlers/management/auth_files.go
index 1b8eee9f59..db2684e002 100644
--- a/pkg/llmproxy/api/handlers/management/auth_files.go
+++ b/pkg/llmproxy/api/handlers/management/auth_files.go
@@ -2876,7 +2876,7 @@ func (h *Handler) RequestKiloToken(c *gin.Context) {
Metadata: map[string]any{
"email": status.UserEmail,
"organization_id": orgID,
- "model": defaults.Model,
+ "model": defaults.Model,
},
}
diff --git a/pkg/llmproxy/api/handlers/management/management_auth_test.go b/pkg/llmproxy/api/handlers/management/management_auth_test.go
index 06496b47ce..389e7fcd63 100644
--- a/pkg/llmproxy/api/handlers/management/management_auth_test.go
+++ b/pkg/llmproxy/api/handlers/management/management_auth_test.go
@@ -13,15 +13,15 @@ import (
func TestListAuthFiles(t *testing.T) {
gin.SetMode(gin.TestMode)
-
+
tmpDir := t.TempDir()
authDir := filepath.Join(tmpDir, "auth")
_ = os.MkdirAll(authDir, 0755)
-
+
// Create a dummy auth file
authFile := filepath.Join(authDir, "test.json")
_ = os.WriteFile(authFile, []byte(`{"access_token": "abc"}`), 0644)
-
+
cfg := &config.Config{AuthDir: authDir}
h, _, cleanup := setupTestHandler(cfg)
defer cleanup()
@@ -33,7 +33,7 @@ func TestListAuthFiles(t *testing.T) {
if w.Code != 200 {
t.Errorf("ListAuthFiles failed: %d, body: %s", w.Code, w.Body.String())
}
-
+
var resp struct {
Files []any `json:"files"`
}
diff --git a/pkg/llmproxy/api/handlers/management/management_basic_test.go b/pkg/llmproxy/api/handlers/management/management_basic_test.go
index 09578482da..cfff766b1f 100644
--- a/pkg/llmproxy/api/handlers/management/management_basic_test.go
+++ b/pkg/llmproxy/api/handlers/management/management_basic_test.go
@@ -89,7 +89,7 @@ func TestGetDebug(t *testing.T) {
func TestPutDebug(t *testing.T) {
gin.SetMode(gin.TestMode)
tmpFile, _ := os.CreateTemp("", "config*.yaml")
- defer os.Remove(tmpFile.Name())
+ defer func() { _ = os.Remove(tmpFile.Name()) }()
_, _ = tmpFile.Write([]byte("{}"))
_ = tmpFile.Close()
diff --git a/pkg/llmproxy/api/handlers/management/management_extra_test.go b/pkg/llmproxy/api/handlers/management/management_extra_test.go
index 43981f6b06..60b549370b 100644
--- a/pkg/llmproxy/api/handlers/management/management_extra_test.go
+++ b/pkg/llmproxy/api/handlers/management/management_extra_test.go
@@ -16,8 +16,8 @@ import (
)
func TestNewHandler(t *testing.T) {
- os.Setenv("MANAGEMENT_PASSWORD", "testpass")
- defer os.Unsetenv("MANAGEMENT_PASSWORD")
+ _ = os.Setenv("MANAGEMENT_PASSWORD", "testpass")
+ defer func() { _ = os.Unsetenv("MANAGEMENT_PASSWORD") }()
cfg := &config.Config{}
h := NewHandler(cfg, "config.yaml", nil)
if h.envSecret != "testpass" {
@@ -54,7 +54,7 @@ func TestHandler_Setters(t *testing.T) {
}
tmpDir, _ := os.MkdirTemp("", "logtest")
- defer os.RemoveAll(tmpDir)
+ defer func() { _ = os.RemoveAll(tmpDir) }()
h.SetLogDirectory(tmpDir)
if !filepath.IsAbs(h.logDir) {
t.Errorf("SetLogDirectory should result in absolute path")
@@ -156,7 +156,7 @@ func TestPurgeStaleAttempts(t *testing.T) {
func TestUpdateFields(t *testing.T) {
gin.SetMode(gin.TestMode)
tmpFile, _ := os.CreateTemp("", "config*.yaml")
- defer os.Remove(tmpFile.Name())
+ defer func() { _ = os.Remove(tmpFile.Name()) }()
_ = os.WriteFile(tmpFile.Name(), []byte("{}"), 0644)
cfg := &config.Config{}
@@ -197,11 +197,11 @@ func TestGetUsage(t *testing.T) {
gin.SetMode(gin.TestMode)
stats := usage.GetRequestStatistics()
h := &Handler{usageStats: stats}
-
+
w := httptest.NewRecorder()
c, _ := gin.CreateTestContext(w)
h.GetUsageStatistics(c)
-
+
if w.Code != http.StatusOK {
t.Errorf("expected 200, got %d", w.Code)
}
@@ -227,12 +227,12 @@ func TestGetUsage(t *testing.T) {
func TestGetModels(t *testing.T) {
gin.SetMode(gin.TestMode)
h := &Handler{}
-
+
w := httptest.NewRecorder()
c, _ := gin.CreateTestContext(w)
c.Request = httptest.NewRequest("GET", "/?channel=codex", nil)
h.GetStaticModelDefinitions(c)
-
+
if w.Code != http.StatusOK {
t.Errorf("expected 200, got %d, body: %s", w.Code, w.Body.String())
}
@@ -242,11 +242,11 @@ func TestGetQuota(t *testing.T) {
gin.SetMode(gin.TestMode)
cfg := &config.Config{}
h := &Handler{cfg: cfg}
-
+
w := httptest.NewRecorder()
c, _ := gin.CreateTestContext(w)
h.GetSwitchProject(c)
-
+
if w.Code != http.StatusOK {
t.Errorf("expected 200, got %d", w.Code)
}
@@ -255,15 +255,15 @@ func TestGetQuota(t *testing.T) {
func TestGetConfigYAML(t *testing.T) {
gin.SetMode(gin.TestMode)
tmpFile, _ := os.CreateTemp("", "config*.yaml")
- defer os.Remove(tmpFile.Name())
+ defer func() { _ = os.Remove(tmpFile.Name()) }()
_ = os.WriteFile(tmpFile.Name(), []byte("test: true"), 0644)
-
+
h := &Handler{configFilePath: tmpFile.Name()}
-
+
w := httptest.NewRecorder()
c, _ := gin.CreateTestContext(w)
h.GetConfigYAML(c)
-
+
if w.Code != http.StatusOK {
t.Errorf("expected 200, got %d", w.Code)
}
@@ -275,18 +275,18 @@ func TestGetConfigYAML(t *testing.T) {
func TestPutConfigYAML(t *testing.T) {
gin.SetMode(gin.TestMode)
tmpDir, _ := os.MkdirTemp("", "configtest")
- defer os.RemoveAll(tmpDir)
+ defer func() { _ = os.RemoveAll(tmpDir) }()
tmpFile := filepath.Join(tmpDir, "config.yaml")
_ = os.WriteFile(tmpFile, []byte("debug: false"), 0644)
-
+
h := &Handler{configFilePath: tmpFile, cfg: &config.Config{}}
-
+
w := httptest.NewRecorder()
c, _ := gin.CreateTestContext(w)
c.Request = httptest.NewRequest("PUT", "/", strings.NewReader("debug: true"))
-
+
h.PutConfigYAML(c)
-
+
if w.Code != http.StatusOK {
t.Errorf("expected 200, got %d, body: %s", w.Code, w.Body.String())
}
@@ -295,17 +295,17 @@ func TestPutConfigYAML(t *testing.T) {
func TestGetLogs(t *testing.T) {
gin.SetMode(gin.TestMode)
tmpDir, _ := os.MkdirTemp("", "logtest")
- defer os.RemoveAll(tmpDir)
+ defer func() { _ = os.RemoveAll(tmpDir) }()
logFile := filepath.Join(tmpDir, "main.log")
_ = os.WriteFile(logFile, []byte("test log"), 0644)
-
+
cfg := &config.Config{LoggingToFile: true}
h := &Handler{logDir: tmpDir, cfg: cfg, authManager: coreauth.NewManager(nil, nil, nil)}
-
+
w := httptest.NewRecorder()
c, _ := gin.CreateTestContext(w)
h.GetLogs(c)
-
+
if w.Code != http.StatusOK {
t.Errorf("expected 200, got %d, body: %s", w.Code, w.Body.String())
}
@@ -314,23 +314,23 @@ func TestGetLogs(t *testing.T) {
func TestDeleteAuthFile(t *testing.T) {
gin.SetMode(gin.TestMode)
tmpDir, _ := os.MkdirTemp("", "authtest")
- defer os.RemoveAll(tmpDir)
+ defer func() { _ = os.RemoveAll(tmpDir) }()
authFile := filepath.Join(tmpDir, "testauth.json")
_ = os.WriteFile(authFile, []byte("{}"), 0644)
-
+
cfg := &config.Config{AuthDir: tmpDir}
h := &Handler{cfg: cfg, authManager: coreauth.NewManager(nil, nil, nil)}
-
+
w := httptest.NewRecorder()
c, _ := gin.CreateTestContext(w)
c.Request = httptest.NewRequest("DELETE", "/?name=testauth.json", nil)
-
+
h.DeleteAuthFile(c)
-
+
if w.Code != http.StatusOK {
t.Errorf("expected 200, got %d, body: %s", w.Code, w.Body.String())
}
-
+
if _, err := os.Stat(authFile); !os.IsNotExist(err) {
t.Errorf("file should have been deleted")
}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034105-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034105-2.log
new file mode 100644
index 0000000000..d57c1cb88f
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034105-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:41:05.154589-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Headers: *
+Access-Control-Allow-Origin: *
+Content-Type: application/json; charset=utf-8
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use message-only payload, or ask with supported capability labels (continue/resume).","session_id":"cp_1_5633b598-f45b-41fd-9ae7-0d096c4917c8","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034201-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034201-2.log
new file mode 100644
index 0000000000..850e809b7b
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034201-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:42:01.787807-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json; charset=utf-8
+Access-Control-Allow-Origin: *
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use message-only payload, or ask with supported capability labels (continue/resume).","session_id":"cp_1_0a8ac96f-c718-4a08-95ce-d49985d75424","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034410-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034410-2.log
new file mode 100644
index 0000000000..d0bd2646a1
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034410-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:44:10.665296-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Headers: *
+Content-Type: application/json; charset=utf-8
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034420-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034420-2.log
new file mode 100644
index 0000000000..96ccd2ef8a
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034420-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:44:20.58322-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json; charset=utf-8
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034441-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034441-2.log
new file mode 100644
index 0000000000..e96714edb2
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034441-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:44:41.096697-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json; charset=utf-8
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034449-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034449-2.log
new file mode 100644
index 0000000000..f9a52c6bed
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034449-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:44:49.63043-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json; charset=utf-8
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034601-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034601-2.log
new file mode 100644
index 0000000000..95fa5217ab
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034601-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:46:01.604088-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json; charset=utf-8
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034620-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034620-2.log
new file mode 100644
index 0000000000..134b260ea1
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034620-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:46:20.852684-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json; charset=utf-8
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034819-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034819-2.log
new file mode 100644
index 0000000000..6a86529e66
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034819-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:48:19.245706-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json; charset=utf-8
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034828-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034828-2.log
new file mode 100644
index 0000000000..111a026fd2
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034828-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:48:28.307072-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Content-Type: application/json; charset=utf-8
+Access-Control-Allow-Headers: *
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034836-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034836-2.log
new file mode 100644
index 0000000000..3ed396e741
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034836-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:48:36.184455-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json; charset=utf-8
+Access-Control-Allow-Origin: *
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T034842-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T034842-2.log
new file mode 100644
index 0000000000..5fed261b74
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T034842-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T03:48:42.148179-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Content-Type: application/json; charset=utf-8
+Access-Control-Allow-Headers: *
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-message-2026-02-22T040354-2.log b/pkg/llmproxy/api/logs/error-message-2026-02-22T040354-2.log
new file mode 100644
index 0000000000..618801763e
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-message-2026-02-22T040354-2.log
@@ -0,0 +1,20 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /message
+Method: POST
+Timestamp: 2026-02-22T04:03:54.172129-07:00
+
+=== HEADERS ===
+Content-Type: application/json
+
+=== REQUEST BODY ===
+{"message":"x","capability":"pause"}
+
+=== RESPONSE ===
+Status: 501
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json; charset=utf-8
+
+{"capability":"pause","error":"unsupported capability","instructions":"Use capability labels continue, resume, ask, exec, or max.","session_id":"","status":"failed"}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032407-ac51cabf.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032407-ac51cabf.log
new file mode 100644
index 0000000000..8c7085d796
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032407-ac51cabf.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:24:07.041377-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:24:07.041543-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032419-1fc912fd.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032419-1fc912fd.log
new file mode 100644
index 0000000000..0312b603d2
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032419-1fc912fd.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:24:19.939323-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:24:19.93951-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032424-c4bbf7c9.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032424-c4bbf7c9.log
new file mode 100644
index 0000000000..85e79c5fc8
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032424-c4bbf7c9.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:24:24.91647-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:24:24.916664-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032429-b90ef18f.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032429-b90ef18f.log
new file mode 100644
index 0000000000..77adc75693
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032429-b90ef18f.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:24:29.072172-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:24:29.072543-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Access-Control-Allow-Headers: *
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032458-5144a367.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032458-5144a367.log
new file mode 100644
index 0000000000..0401d8bf8b
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032458-5144a367.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:24:58.151972-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:24:58.152161-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032641-a9b33209.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032641-a9b33209.log
new file mode 100644
index 0000000000..fae920379a
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T032641-a9b33209.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:26:41.964103-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:26:41.964358-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033052-686ea916.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033052-686ea916.log
new file mode 100644
index 0000000000..9b592ee4e5
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033052-686ea916.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:30:52.369766-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:30:52.370053-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033454-ce8d3f3f.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033454-ce8d3f3f.log
new file mode 100644
index 0000000000..7d6d534db6
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033454-ce8d3f3f.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:34:54.342968-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:34:54.343358-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033544-829bfa04.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033544-829bfa04.log
new file mode 100644
index 0000000000..250709ac23
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033544-829bfa04.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:35:44.797306-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:35:44.797623-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033558-39a9ff38.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033558-39a9ff38.log
new file mode 100644
index 0000000000..c8518de2fb
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T033558-39a9ff38.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:35:58.658087-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:35:58.658626-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+Content-Type: application/json
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034105-ebd60e8f.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034105-ebd60e8f.log
new file mode 100644
index 0000000000..8a0f0b41b8
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034105-ebd60e8f.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:41:05.14121-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:41:05.142053-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Access-Control-Allow-Headers: *
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034201-a5c5f542.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034201-a5c5f542.log
new file mode 100644
index 0000000000..642947e53a
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034201-a5c5f542.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:42:01.783063-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:42:01.78345-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+Access-Control-Allow-Headers: *
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034620-dc425291.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034620-dc425291.log
new file mode 100644
index 0000000000..9273fb79a1
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T034620-dc425291.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T03:46:20.847028-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T03:46:20.847497-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Access-Control-Allow-Headers: *
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T040354-814cee52.log b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T040354-814cee52.log
new file mode 100644
index 0000000000..6393b8cf22
--- /dev/null
+++ b/pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T040354-814cee52.log
@@ -0,0 +1,23 @@
+=== REQUEST INFO ===
+Version: dev
+URL: /v1/responses
+Method: POST
+Timestamp: 2026-02-22T04:03:54.168223-07:00
+
+=== HEADERS ===
+
+=== REQUEST BODY ===
+{}
+
+=== API RESPONSE ===
+Timestamp: 2026-02-22T04:03:54.168696-07:00
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
+
+=== RESPONSE ===
+Status: 502
+Access-Control-Allow-Headers: *
+Content-Type: application/json
+Access-Control-Allow-Origin: *
+Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
+
+{"error":{"message":"unknown provider for model","type":"server_error","code":"internal_server_error"}}
diff --git a/pkg/llmproxy/api/middleware/response_writer_test.go b/pkg/llmproxy/api/middleware/response_writer_test.go
index 42f1fdae75..14cccf5c39 100644
--- a/pkg/llmproxy/api/middleware/response_writer_test.go
+++ b/pkg/llmproxy/api/middleware/response_writer_test.go
@@ -31,28 +31,28 @@ func TestResponseWriterWrapper_Basic(t *testing.T) {
gin.SetMode(gin.TestMode)
w := httptest.NewRecorder()
gw := gin.CreateTestContextOnly(w, gin.Default())
-
+
logger := &mockLogger{enabled: true}
reqInfo := &RequestInfo{
URL: "/test",
Method: "GET",
Body: []byte("req body"),
}
-
+
wrapper := NewResponseWriterWrapper(gw.Writer, logger, reqInfo)
-
+
// Test Write
n, err := wrapper.Write([]byte("hello"))
if err != nil || n != 5 {
t.Errorf("Write failed: n=%d, err=%v", n, err)
}
-
+
// Test WriteHeader
wrapper.WriteHeader(http.StatusAccepted)
if wrapper.statusCode != http.StatusAccepted {
t.Errorf("expected status 202, got %d", wrapper.statusCode)
}
-
+
// Test Finalize
err = wrapper.Finalize(gw)
if err != nil {
@@ -66,15 +66,15 @@ func TestResponseWriterWrapper_DetectStreaming(t *testing.T) {
Body: []byte(`{"stream": true}`),
},
}
-
+
if !wrapper.detectStreaming("text/event-stream") {
t.Error("expected true for text/event-stream")
}
-
+
if wrapper.detectStreaming("application/json") {
t.Error("expected false for application/json even with stream:true in body (per logic)")
}
-
+
wrapper.requestInfo.Body = []byte(`{}`)
if wrapper.detectStreaming("") {
t.Error("expected false for empty content type and no stream hint")
diff --git a/pkg/llmproxy/api/responses_websocket_test.go b/pkg/llmproxy/api/responses_websocket_test.go
index 96095c24ba..c046d729f0 100644
--- a/pkg/llmproxy/api/responses_websocket_test.go
+++ b/pkg/llmproxy/api/responses_websocket_test.go
@@ -1,8 +1,8 @@
package api
import (
- "errors"
"context"
+ "errors"
"net/http"
"net/http/httptest"
"strings"
diff --git a/pkg/llmproxy/api/server.go b/pkg/llmproxy/api/server.go
index 30ef1f4bc1..fced878485 100644
--- a/pkg/llmproxy/api/server.go
+++ b/pkg/llmproxy/api/server.go
@@ -7,6 +7,7 @@ package api
import (
"context"
"crypto/subtle"
+ "encoding/json"
"errors"
"fmt"
"net/http"
@@ -19,6 +20,7 @@ import (
"time"
"github.com/gin-gonic/gin"
+ "github.com/google/uuid"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/access"
managementHandlers "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/api/handlers/management"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/api/middleware"
@@ -149,6 +151,7 @@ type Server struct {
wsRoutes map[string]struct{}
wsAuthChanged func(bool, bool)
wsAuthEnabled atomic.Bool
+ routesSetup atomic.Bool
// management handler
mgmt *managementHandlers.Handler
@@ -162,7 +165,14 @@ type Server struct {
managementRoutesEnabled atomic.Bool
// envManagementSecret indicates whether MANAGEMENT_PASSWORD is configured.
- envManagementSecret bool
+ envManagementSecret bool
+ controlPlaneIDSeq uint64
+ controlPlaneSessions map[string]*controlPlaneSession
+ controlPlaneSessionsMu sync.RWMutex
+ controlPlaneIdempMu sync.RWMutex
+ controlPlaneIdempCache map[string]*controlPlaneMessageRequestResult
+ controlPlaneSessionHistory map[string][]controlPlaneSession
+ controlPlaneSessionMirror map[string]*controlPlaneSession
localPassword string
@@ -238,17 +248,21 @@ func NewServer(cfg *config.Config, authManager *auth.Manager, accessManager *sdk
// Create server instance
s := &Server{
- engine: engine,
- handlers: handlers.NewBaseAPIHandlers(&cfg.SDKConfig, authManager),
- cfg: cfg,
- accessManager: accessManager,
- requestLogger: requestLogger,
- loggerToggle: toggle,
- configFilePath: configFilePath,
- currentPath: wd,
- envManagementSecret: envManagementSecret,
- wsRoutes: make(map[string]struct{}),
- shmStop: make(chan struct{}, 1),
+ engine: engine,
+ handlers: handlers.NewBaseAPIHandlers(&cfg.SDKConfig, authManager),
+ cfg: cfg,
+ accessManager: accessManager,
+ requestLogger: requestLogger,
+ loggerToggle: toggle,
+ configFilePath: configFilePath,
+ currentPath: wd,
+ envManagementSecret: envManagementSecret,
+ wsRoutes: make(map[string]struct{}),
+ shmStop: make(chan struct{}, 1),
+ controlPlaneSessions: make(map[string]*controlPlaneSession),
+ controlPlaneSessionHistory: make(map[string][]controlPlaneSession),
+ controlPlaneSessionMirror: make(map[string]*controlPlaneSession),
+ controlPlaneIdempCache: make(map[string]*controlPlaneMessageRequestResult),
}
s.wsAuthEnabled.Store(cfg.WebsocketAuth)
// Save initial YAML snapshot
@@ -317,9 +331,213 @@ func NewServer(cfg *config.Config, authManager *auth.Manager, accessManager *sdk
return s
}
+type controlPlaneMessage struct {
+ SessionID string `json:"session_id"`
+ MessageID string `json:"message_id"`
+ Role string `json:"role"`
+ Content string `json:"content"`
+ Capability string `json:"capability,omitempty"`
+}
+
+type controlPlaneSession struct {
+ SessionID string `json:"session_id"`
+ Status string `json:"status"`
+ Messages []controlPlaneMessage `json:"messages"`
+ CreatedAt time.Time `json:"created_at"`
+ UpdatedAt time.Time `json:"updated_at"`
+ HasMessages bool `json:"has_messages"`
+}
+
+type controlPlaneMessageRequest struct {
+ SessionID string `json:"session_id"`
+ Message string `json:"message"`
+ Capability string `json:"capability"`
+}
+
+type controlPlaneMessageRequestResult struct {
+ SessionID string `json:"session_id"`
+ Status string `json:"status"`
+ MessageID string `json:"message_id"`
+ ReceivedAt string `json:"received_at"`
+ CreatedAt string `json:"created_at"`
+ UpdatedAt string `json:"updated_at"`
+ MessageCount int `json:"message_count"`
+}
+
+func (s *Server) controlPlaneSession(sessionID string) *controlPlaneSession {
+ if s == nil {
+ return nil
+ }
+ if strings.TrimSpace(sessionID) == "" {
+ return nil
+ }
+ s.controlPlaneSessionsMu.RLock()
+ defer s.controlPlaneSessionsMu.RUnlock()
+ stored := s.controlPlaneSessions[sessionID]
+ if stored == nil {
+ stored = s.controlPlaneSessionMirror[sessionID]
+ }
+ if stored == nil {
+ return nil
+ }
+ sessionCopy := *stored
+ sessionCopy.Messages = append(sessionCopy.Messages[:0], stored.Messages...)
+ return &sessionCopy
+}
+
+func cloneControlPlaneMessage(msg *controlPlaneMessage) controlPlaneMessage {
+ if msg == nil {
+ return controlPlaneMessage{}
+ }
+ return *msg
+}
+
+func cloneControlPlaneMessages(msgs []controlPlaneMessage) []controlPlaneMessage {
+ if len(msgs) == 0 {
+ return nil
+ }
+ out := make([]controlPlaneMessage, len(msgs))
+ for i := range msgs {
+ out[i] = cloneControlPlaneMessage(&msgs[i])
+ }
+ return out
+}
+
+func cloneControlPlaneSession(session *controlPlaneSession) *controlPlaneSession {
+ if session == nil {
+ return nil
+ }
+ sessionCopy := *session
+ sessionCopy.Messages = cloneControlPlaneMessages(session.Messages)
+ return &sessionCopy
+}
+
+func (s *Server) normalizeControlPlaneSessionID(sessionID string) string {
+ return strings.TrimSpace(sessionID)
+}
+
+func (s *Server) upsertControlPlaneSessionLocked(sessionID string, now time.Time) (*controlPlaneSession, bool) {
+ if s == nil {
+ return nil, false
+ }
+ if s.controlPlaneSessions == nil {
+ s.controlPlaneSessions = make(map[string]*controlPlaneSession)
+ }
+ if s.controlPlaneSessionMirror == nil {
+ s.controlPlaneSessionMirror = make(map[string]*controlPlaneSession)
+ }
+
+ session, ok := s.controlPlaneSessions[sessionID]
+ if !ok {
+ session = &controlPlaneSession{
+ SessionID: sessionID,
+ Status: "running",
+ CreatedAt: now,
+ UpdatedAt: now,
+ }
+ s.controlPlaneSessions[sessionID] = session
+ s.controlPlaneSessionMirror[sessionID] = cloneControlPlaneSession(session)
+ return session, false
+ }
+ session.Status = "running"
+ session.UpdatedAt = now
+ session.HasMessages = true
+ s.controlPlaneSessionMirror[sessionID] = cloneControlPlaneSession(session)
+ return session, true
+}
+
+func (s *Server) recordControlPlaneSessionConflictLocked(sessionID string, current *controlPlaneSession) {
+ if s == nil || strings.TrimSpace(sessionID) == "" || current == nil {
+ return
+ }
+ if s.controlPlaneSessionHistory == nil {
+ s.controlPlaneSessionHistory = make(map[string][]controlPlaneSession)
+ }
+ existing := cloneControlPlaneSession(current)
+ if existing == nil {
+ return
+ }
+ s.controlPlaneSessionHistory[sessionID] = append(s.controlPlaneSessionHistory[sessionID], *existing)
+}
+
+func (s *Server) appendControlPlaneMessageToSession(sessionID, content string, now time.Time) (*controlPlaneSession, string) {
+ if s == nil {
+ return nil, ""
+ }
+ sessionID = s.normalizeControlPlaneSessionID(sessionID)
+ if sessionID == "" {
+ return nil, ""
+ }
+ if now.IsZero() {
+ now = time.Now().UTC()
+ }
+
+ s.controlPlaneSessionsMu.Lock()
+ defer s.controlPlaneSessionsMu.Unlock()
+ session, existed := s.upsertControlPlaneSessionLocked(sessionID, now)
+ if session == nil {
+ return nil, ""
+ }
+ if existed {
+ s.recordControlPlaneSessionConflictLocked(sessionID, session)
+ }
+
+ nextMessages := append(cloneControlPlaneMessages(session.Messages), controlPlaneMessage{
+ SessionID: sessionID,
+ MessageID: fmt.Sprintf("msg_%s", uuid.NewString()),
+ Role: "user",
+ Content: content,
+ })
+ session.Messages = nextMessages
+ session.UpdatedAt = now
+ session.HasMessages = true
+ session.Status = "done"
+ s.controlPlaneSessionMirror[sessionID] = cloneControlPlaneSession(session)
+ messageID := nextMessages[len(nextMessages)-1].MessageID
+ return session, messageID
+}
+
+func (s *Server) nextControlPlaneSessionID() string {
+ next := atomic.AddUint64(&s.controlPlaneIDSeq, 1)
+ return fmt.Sprintf("cp_%d_%s", next, uuid.NewString())
+}
+
+func normalizeControlPlaneCapability(v string) (string, bool) {
+ clean := strings.ToLower(strings.TrimSpace(v))
+ switch clean {
+ case "":
+ return "", true
+ case "continue", "resume":
+ return clean, true
+ case "ask", "exec", "max":
+ return "continue", true
+ default:
+ return clean, false
+ }
+}
+
+func buildControlPlaneMessageRequestResult(sessionID, status, messageID, receivedAt, createdAt, updatedAt string, messageCount int) *controlPlaneMessageRequestResult {
+ return &controlPlaneMessageRequestResult{
+ SessionID: sessionID,
+ Status: status,
+ MessageID: messageID,
+ ReceivedAt: receivedAt,
+ CreatedAt: createdAt,
+ UpdatedAt: updatedAt,
+ MessageCount: messageCount,
+ }
+}
+
// setupRoutes configures the API routes for the server.
// It defines the endpoints and associates them with their respective handlers.
func (s *Server) setupRoutes() {
+ if s == nil || s.engine == nil {
+ return
+ }
+ if !s.routesSetup.CompareAndSwap(false, true) {
+ return
+ }
+
s.engine.GET("/management.html", s.serveManagementControlPanel)
openaiHandlers := openai.NewOpenAIAPIHandler(s.handlers)
geminiHandlers := gemini.NewGeminiAPIHandler(s.handlers)
@@ -336,14 +554,11 @@ func (s *Server) setupRoutes() {
v1.POST("/completions", openaiHandlers.Completions)
v1.POST("/messages", claudeCodeHandlers.ClaudeMessages)
v1.POST("/messages/count_tokens", claudeCodeHandlers.ClaudeCountTokens)
- v1.GET("/responses", openaiResponsesHandlers.ResponsesWebsocket)
v1.POST("/responses", openaiResponsesHandlers.Responses)
v1.POST("/responses/compact", openaiResponsesHandlers.Compact)
+ v1.GET("/responses", openaiResponsesHandlers.ResponsesWebsocket)
}
- // WebSocket endpoint for /v1/responses (Codex streaming)
- s.AttachWebsocketRoute("/v1/responses", ResponsesWebSocketHandler())
-
// Gemini compatible API routes
v1beta := s.engine.Group("/v1beta")
v1beta.Use(AuthMiddleware(s.accessManager))
@@ -366,6 +581,154 @@ func (s *Server) setupRoutes() {
})
})
+ s.engine.POST("/message", func(c *gin.Context) {
+ var req controlPlaneMessageRequest
+ if err := c.ShouldBindJSON(&req); err != nil {
+ c.JSON(http.StatusBadRequest, gin.H{"error": "invalid message payload", "detail": err.Error()})
+ return
+ }
+ var ok bool
+ req.Capability, ok = normalizeControlPlaneCapability(req.Capability)
+ if !ok {
+ c.JSON(http.StatusNotImplemented, gin.H{
+ "error": "unsupported capability",
+ "capability": req.Capability,
+ "session_id": req.SessionID,
+ "status": "failed",
+ "instructions": "Use capability labels continue, resume, ask, exec, or max.",
+ })
+ return
+ }
+ req.SessionID = strings.TrimSpace(req.SessionID)
+ req.Message = strings.TrimSpace(req.Message)
+ if req.SessionID == "" {
+ req.SessionID = s.nextControlPlaneSessionID()
+ }
+ if req.Message == "" && req.Capability == "" {
+ c.JSON(http.StatusBadRequest, gin.H{"error": "message or capability required"})
+ return
+ }
+ idempotencyKey := strings.TrimSpace(c.GetHeader("Idempotency-Key"))
+ if idempotencyKey != "" {
+ s.controlPlaneIdempMu.RLock()
+ cached := s.controlPlaneIdempCache[idempotencyKey]
+ s.controlPlaneIdempMu.RUnlock()
+ if cached != nil {
+ c.JSON(http.StatusAccepted, gin.H{
+ "session_id": cached.SessionID,
+ "status": cached.Status,
+ "message_id": cached.MessageID,
+ "received_at": cached.ReceivedAt,
+ "created_at": cached.CreatedAt,
+ "updated_at": cached.UpdatedAt,
+ "message_count": cached.MessageCount,
+ "result": gin.H{
+ "status": "queued",
+ "message": "control-plane compatibility shell active; model execution path not yet wired",
+ },
+ "events_url": fmt.Sprintf("/events?session_id=%s", cached.SessionID),
+ })
+ return
+ }
+ }
+ now := time.Now().UTC()
+ session, messageID := s.appendControlPlaneMessageToSession(req.SessionID, req.Message, now)
+ if session == nil {
+ c.JSON(http.StatusInternalServerError, gin.H{"error": "failed to append control-plane message"})
+ return
+ }
+ createdAt := session.CreatedAt.Format(time.RFC3339Nano)
+ updatedAt := session.UpdatedAt.Format(time.RFC3339Nano)
+ if idempotencyKey != "" {
+ response := buildControlPlaneMessageRequestResult(
+ req.SessionID,
+ session.Status,
+ messageID,
+ now.Format(time.RFC3339Nano),
+ createdAt,
+ updatedAt,
+ len(session.Messages),
+ )
+ s.controlPlaneIdempMu.Lock()
+ s.controlPlaneIdempCache[idempotencyKey] = response
+ s.controlPlaneIdempMu.Unlock()
+ }
+ c.JSON(http.StatusAccepted, gin.H{
+ "session_id": req.SessionID,
+ "status": session.Status,
+ "message_id": messageID,
+ "received_at": now.Format(time.RFC3339Nano),
+ "created_at": createdAt,
+ "updated_at": updatedAt,
+ "message_count": len(session.Messages),
+ "result": gin.H{
+ "status": "queued",
+ "message": "control-plane compatibility shell active; model execution path not yet wired",
+ },
+ "events_url": fmt.Sprintf("/events?session_id=%s", req.SessionID),
+ })
+ })
+ s.engine.GET("/messages", func(c *gin.Context) {
+ sessionID := strings.TrimSpace(c.Query("session_id"))
+ if sessionID == "" {
+ c.JSON(http.StatusBadRequest, gin.H{"error": "session_id query parameter is required"})
+ return
+ }
+ session := s.controlPlaneSession(sessionID)
+ if session == nil {
+ c.JSON(http.StatusNotFound, gin.H{"error": "session not found", "session_id": sessionID})
+ return
+ }
+ c.JSON(http.StatusOK, gin.H{
+ "session_id": sessionID,
+ "messages": session.Messages,
+ })
+ })
+ s.engine.GET("/status", func(c *gin.Context) {
+ sessionID := strings.TrimSpace(c.Query("session_id"))
+ if sessionID == "" {
+ c.JSON(http.StatusBadRequest, gin.H{"error": "session_id query parameter is required"})
+ return
+ }
+ session := s.controlPlaneSession(sessionID)
+ if session == nil {
+ c.JSON(http.StatusNotFound, gin.H{"error": "session not found", "session_id": sessionID})
+ return
+ }
+ c.JSON(http.StatusOK, gin.H{
+ "session_id": sessionID,
+ "status": session.Status,
+ "message_count": len(session.Messages),
+ "updated_at": session.UpdatedAt.Format(time.RFC3339Nano),
+ })
+ })
+ s.engine.GET("/events", func(c *gin.Context) {
+ sessionID := strings.TrimSpace(c.Query("session_id"))
+ if sessionID == "" {
+ c.JSON(http.StatusBadRequest, gin.H{"error": "session_id query parameter is required"})
+ return
+ }
+ session := s.controlPlaneSession(sessionID)
+ if session == nil {
+ c.JSON(http.StatusNotFound, gin.H{"error": "session not found", "session_id": sessionID})
+ return
+ }
+ payload, _ := json.Marshal(gin.H{
+ "session_id": sessionID,
+ "status": session.Status,
+ "updated_at": session.UpdatedAt.Format(time.RFC3339Nano),
+ })
+ c.Header("Content-Type", "text/event-stream")
+ c.Header("Cache-Control", "no-cache")
+ c.Header("Connection", "keep-alive")
+ c.Writer.WriteHeader(http.StatusOK)
+ _, _ = c.Writer.Write([]byte("event: status\n"))
+ _, _ = c.Writer.Write([]byte("data: "))
+ _, _ = c.Writer.Write(payload)
+ _, _ = c.Writer.Write([]byte("\n\n"))
+ c.Writer.Flush()
+ })
+
// Provider metrics for OpenRouter-style routing (thegent cost/throughput/latency)
s.engine.GET("/v1/metrics/providers", func(c *gin.Context) {
c.JSON(http.StatusOK, usage.GetProviderMetrics())
@@ -482,6 +845,10 @@ func (s *Server) AttachWebsocketRoute(path string, handler http.Handler) {
trimmed = "/" + trimmed
}
s.wsRouteMu.Lock()
+ if s.hasRoute(trimmed) {
+ s.wsRouteMu.Unlock()
+ return
+ }
if _, exists := s.wsRoutes[trimmed]; exists {
s.wsRouteMu.Unlock()
return
@@ -505,6 +872,15 @@ func (s *Server) AttachWebsocketRoute(path string, handler http.Handler) {
s.engine.GET(trimmed, conditionalAuth, finalHandler)
}
+func (s *Server) hasRoute(path string) bool {
+ for _, route := range s.engine.Routes() {
+ if route.Path == path {
+ return true
+ }
+ }
+ return false
+}
+
func (s *Server) registerManagementRoutes() {
if s == nil || s.engine == nil || s.mgmt == nil {
return
diff --git a/pkg/llmproxy/api/server_test.go b/pkg/llmproxy/api/server_test.go
index f51404b2c4..04b923bb58 100644
--- a/pkg/llmproxy/api/server_test.go
+++ b/pkg/llmproxy/api/server_test.go
@@ -2,34 +2,41 @@ package api
import (
"context"
+ "encoding/json"
+ "fmt"
"net/http"
"net/http/httptest"
+ "sort"
+ "strings"
"testing"
"time"
"github.com/gin-gonic/gin"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
- "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
+ coreusage "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/usage"
sdkaccess "github.com/router-for-me/CLIProxyAPI/v6/sdk/access"
+ "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
+ sdkusage "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/usage"
+ "github.com/stretchr/testify/require"
)
func TestNewServer(t *testing.T) {
cfg := &config.Config{
- Port: 8080,
+ Port: 8080,
Debug: true,
}
authManager := auth.NewManager(nil, nil, nil)
accessManager := sdkaccess.NewManager()
-
+
s := NewServer(cfg, authManager, accessManager, "config.yaml")
if s == nil {
t.Fatal("NewServer returned nil")
}
-
+
if s.engine == nil {
t.Error("engine is nil")
}
-
+
if s.handlers == nil {
t.Error("handlers is nil")
}
@@ -39,11 +46,11 @@ func TestServer_RootEndpoint(t *testing.T) {
gin.SetMode(gin.TestMode)
cfg := &config.Config{Debug: true}
s := NewServer(cfg, nil, nil, "config.yaml")
-
+
w := httptest.NewRecorder()
req, _ := http.NewRequest("GET", "/", nil)
s.engine.ServeHTTP(w, req)
-
+
if w.Code != http.StatusOK {
t.Errorf("expected status 200, got %d", w.Code)
}
@@ -55,14 +62,14 @@ func TestWithMiddleware(t *testing.T) {
called = true
c.Next()
}
-
+
cfg := &config.Config{Debug: true}
s := NewServer(cfg, nil, nil, "config.yaml", WithMiddleware(mw))
-
+
w := httptest.NewRecorder()
req, _ := http.NewRequest("GET", "/", nil)
s.engine.ServeHTTP(w, req)
-
+
if !called {
t.Error("extra middleware was not called")
}
@@ -71,21 +78,782 @@ func TestWithMiddleware(t *testing.T) {
func TestWithKeepAliveEndpoint(t *testing.T) {
onTimeout := func() {
}
-
+
cfg := &config.Config{Debug: true}
s := NewServer(cfg, nil, nil, "config.yaml", WithKeepAliveEndpoint(100*time.Millisecond, onTimeout))
-
+
if !s.keepAliveEnabled {
t.Error("keep-alive should be enabled")
}
-
+
w := httptest.NewRecorder()
req, _ := http.NewRequest("GET", "/keep-alive", nil)
s.engine.ServeHTTP(w, req)
-
+
if w.Code != http.StatusOK {
t.Errorf("expected status 200, got %d", w.Code)
}
- s.Stop(context.Background())
+ require.NoError(t, s.Stop(context.Background()))
+}
+
+func TestServer_SetupRoutes_IsIdempotent(t *testing.T) {
+ cfg := &config.Config{Debug: true}
+ s := NewServer(cfg, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ countRoute := func(method, path string) int {
+ count := 0
+ for _, r := range s.engine.Routes() {
+ if r.Method == method && r.Path == path {
+ count++
+ }
+ }
+ return count
+ }
+
+ if got := countRoute(http.MethodGet, "/v1/responses"); got != 1 {
+ t.Fatalf("expected 1 GET /v1/responses route, got %d", got)
+ }
+ if got := countRoute(http.MethodPost, "/v1/responses"); got != 1 {
+ t.Fatalf("expected 1 POST /v1/responses route, got %d", got)
+ }
+ if got := countRoute(http.MethodGet, "/v1/models"); got != 1 {
+ t.Fatalf("expected 1 GET /v1/models route, got %d", got)
+ }
+ if got := countRoute(http.MethodGet, "/v1/metrics/providers"); got != 1 {
+ t.Fatalf("expected 1 GET /v1/metrics/providers route, got %d", got)
+ }
+
+ defer func() {
+ if recovered := recover(); recovered != nil {
+ t.Fatalf("setupRoutes panicked on idempotent call: %v", recovered)
+ }
+ }()
+ s.setupRoutes()
+}
+
+func TestServer_SetupRoutes_DuplicateInvocationPreservesRouteCount(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ countRoute := func(method, path string) int {
+ count := 0
+ for _, r := range s.engine.Routes() {
+ if r.Method == method && r.Path == path {
+ count++
+ }
+ }
+ return count
+ }
+
+ beforeResp := countRoute(http.MethodGet, "/v1/responses") + countRoute(http.MethodPost, "/v1/responses")
+ beforeSvc := countRoute(http.MethodGet, "/v1/models") + countRoute(http.MethodGet, "/v1/metrics/providers")
+
+ s.setupRoutes()
+
+ afterResp := countRoute(http.MethodGet, "/v1/responses") + countRoute(http.MethodPost, "/v1/responses")
+ afterSvc := countRoute(http.MethodGet, "/v1/models") + countRoute(http.MethodGet, "/v1/metrics/providers")
+ if afterResp != beforeResp {
+ t.Fatalf("/v1/responses route count changed after re-setup: before=%d after=%d", beforeResp, afterResp)
+ }
+ if afterSvc != beforeSvc {
+ t.Fatalf("service routes changed after re-setup: before=%d after=%d", beforeSvc, afterSvc)
+ }
+}
+
+func TestServer_AttachWebsocketRoute_IsIdempotent(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ wsPath := "/v1/internal/ws-dup"
+ s.AttachWebsocketRoute(wsPath, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ w.WriteHeader(http.StatusNoContent)
+ }))
+ s.AttachWebsocketRoute(wsPath, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ w.WriteHeader(http.StatusNoContent)
+ }))
+
+ resp := httptest.NewRecorder()
+ req := httptest.NewRequest(http.MethodGet, wsPath, nil)
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusNoContent {
+ t.Fatalf("unexpected status from ws route: got %d want %d", resp.Code, http.StatusNoContent)
+ }
+
+ const method = http.MethodGet
+ count := 0
+ for _, route := range s.engine.Routes() {
+ if route.Method == method && route.Path == wsPath {
+ count++
+ }
+ }
+ if count != 1 {
+ t.Fatalf("expected websocket route to be registered once, got %d", count)
+ }
+}
+
+func TestServer_RoutesNamespaceIsolation(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ for _, r := range s.engine.Routes() {
+ if strings.HasPrefix(r.Path, "/agent/") {
+ t.Fatalf("unexpected control-plane /agent route overlap: %s %s", r.Method, r.Path)
+ }
+ }
+}
+
+func TestServer_ResponsesRouteSupportsHttpAndWebsocketShapes(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ getReq := httptest.NewRequest(http.MethodGet, "/v1/responses", nil)
+ getResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(getResp, getReq)
+ if got := getResp.Code; got != http.StatusBadRequest {
+ t.Fatalf("GET /v1/responses should be websocket-capable and return 400 without upgrade, got %d", got)
+ }
+
+ postReq := httptest.NewRequest(http.MethodPost, "/v1/responses", strings.NewReader(`{}`))
+ postResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(postResp, postReq)
+ if postResp.Code == http.StatusNotFound {
+ t.Fatalf("POST /v1/responses should exist")
+ }
+}
+
+func TestServer_StartupSmokeEndpoints(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ t.Run("GET /v1/models", func(t *testing.T) {
+ req := httptest.NewRequest(http.MethodGet, "/v1/models", nil)
+ resp := httptest.NewRecorder()
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusOK {
+ t.Fatalf("GET /v1/models expected 200, got %d", resp.Code)
+ }
+ var body struct {
+ Object string `json:"object"`
+ Data []json.RawMessage `json:"data"`
+ }
+ if err := json.Unmarshal(resp.Body.Bytes(), &body); err != nil {
+ t.Fatalf("invalid JSON from /v1/models: %v", err)
+ }
+ if body.Object != "list" {
+ t.Fatalf("expected /v1/models object=list, got %q", body.Object)
+ }
+ _ = body.Data
+ })
+
+ t.Run("GET /v1/metrics/providers", func(t *testing.T) {
+ req := httptest.NewRequest(http.MethodGet, "/v1/metrics/providers", nil)
+ resp := httptest.NewRecorder()
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusOK {
+ t.Fatalf("GET /v1/metrics/providers expected 200, got %d", resp.Code)
+ }
+ var body map[string]any
+ if err := json.Unmarshal(resp.Body.Bytes(), &body); err != nil {
+ t.Fatalf("invalid JSON from /v1/metrics/providers: %v", err)
+ }
+ _ = body
+ })
+}
+
+func TestServer_StartupSmokeEndpoints_UserAgentVariants(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ for _, tc := range []struct {
+ name string
+ userAgent string
+ minEntries int
+ }{
+ {name: "openai-compatible default", userAgent: "", minEntries: 1},
+ {name: "claude-cli user-agent", userAgent: "claude-cli/1.0", minEntries: 1},
+ } {
+ t.Run(tc.name, func(t *testing.T) {
+ req := httptest.NewRequest(http.MethodGet, "/v1/models", nil)
+ if tc.userAgent != "" {
+ req.Header.Set("User-Agent", tc.userAgent)
+ }
+ resp := httptest.NewRecorder()
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusOK {
+ t.Fatalf("GET /v1/models expected 200, got %d", resp.Code)
+ }
+
+ var body struct {
+ Object string `json:"object"`
+ Data []any `json:"data"`
+ }
+ if err := json.Unmarshal(resp.Body.Bytes(), &body); err != nil {
+ t.Fatalf("invalid JSON from /v1/models: %v", err)
+ }
+ if body.Object != "list" {
+ t.Fatalf("expected /v1/models object=list, got %q", body.Object)
+ }
+ if len(body.Data) < tc.minEntries {
+ t.Fatalf("expected at least %d models, got %d", tc.minEntries, len(body.Data))
+ }
+ })
+ }
+}
+
+func TestServer_StartupSmokeEndpoints_MetricsShapeIncludesKnownProvider(t *testing.T) {
+ stats := coreusage.GetRequestStatistics()
+ ctx := context.Background()
+ stats.Record(ctx, sdkusage.Record{
+ APIKey: "nim",
+ Model: "gpt-4.1-nano",
+ Detail: sdkusage.Detail{TotalTokens: 77},
+ })
+
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ req := httptest.NewRequest(http.MethodGet, "/v1/metrics/providers", nil)
+ resp := httptest.NewRecorder()
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusOK {
+ t.Fatalf("GET /v1/metrics/providers expected 200, got %d", resp.Code)
+ }
+
+ var body map[string]map[string]any
+ if err := json.Unmarshal(resp.Body.Bytes(), &body); err != nil {
+ t.Fatalf("invalid JSON from /v1/metrics/providers: %v", err)
+ }
+ metrics, ok := body["nim"]
+ if !ok {
+ t.Fatalf("expected nim provider in metrics payload, got keys=%s", strings.Join(sortedMetricKeys(body), ","))
+ }
+ for _, field := range []string{"request_count", "success_count", "failure_count", "success_rate", "cost_per_1k_input", "cost_per_1k_output"} {
+ if _, exists := metrics[field]; !exists {
+ t.Fatalf("expected metric field %q for nim", field)
+ }
+ }
+ requestCount, _ := metrics["request_count"].(float64)
+ if requestCount < 1 {
+ t.Fatalf("expected positive request_count for nim, got %v", requestCount)
+ }
+}
+
+func sortedMetricKeys(m map[string]map[string]any) []string {
+ if len(m) == 0 {
+ return []string{}
+ }
+ keys := make([]string, 0, len(m))
+ for k := range m {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+ return keys
+}
+
+func TestServer_ControlPlane_MessageLifecycle(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ t.Run("POST /message creates session and returns accepted event context", func(t *testing.T) {
+ reqBody := `{"message":"hello from client","capability":"continue"}`
+ req := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(reqBody))
+ req.Header.Set("Content-Type", "application/json")
+ resp := httptest.NewRecorder()
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusAccepted {
+ t.Fatalf("POST /message expected %d, got %d", http.StatusAccepted, resp.Code)
+ }
+
+ var body struct {
+ SessionID string `json:"session_id"`
+ Status string `json:"status"`
+ }
+ if err := json.Unmarshal(resp.Body.Bytes(), &body); err != nil {
+ t.Fatalf("invalid JSON from /message: %v", err)
+ }
+ if body.SessionID == "" {
+ t.Fatal("expected non-empty session_id")
+ }
+ if body.Status != "done" {
+ t.Fatalf("expected status=done, got %q", body.Status)
+ }
+
+ msgReq := httptest.NewRequest(http.MethodGet, "/messages?session_id="+body.SessionID, nil)
+ msgResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(msgResp, msgReq)
+ if msgResp.Code != http.StatusOK {
+ t.Fatalf("GET /messages expected 200, got %d", msgResp.Code)
+ }
+
+ var msgBody struct {
+ SessionID string `json:"session_id"`
+ Messages []struct {
+ Content string `json:"content"`
+ } `json:"messages"`
+ }
+ if err := json.Unmarshal(msgResp.Body.Bytes(), &msgBody); err != nil {
+ t.Fatalf("invalid JSON from /messages: %v", err)
+ }
+ if msgBody.SessionID != body.SessionID {
+ t.Fatalf("expected session_id %q, got %q", body.SessionID, msgBody.SessionID)
+ }
+ if len(msgBody.Messages) != 1 || msgBody.Messages[0].Content != "hello from client" {
+ t.Fatalf("expected single message content, got %#v", msgBody.Messages)
+ }
+ })
+
+ t.Run("GET /status without session_id", func(t *testing.T) {
+ resp := httptest.NewRecorder()
+ req := httptest.NewRequest(http.MethodGet, "/status", nil)
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusBadRequest {
+ t.Fatalf("GET /status expected %d, got %d", http.StatusBadRequest, resp.Code)
+ }
+ })
+
+ t.Run("GET /events emits status event", func(t *testing.T) {
+ req := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(`{"message":"status probe"}`))
+ req.Header.Set("Content-Type", "application/json")
+ msgResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(msgResp, req)
+ if msgResp.Code != http.StatusAccepted {
+ t.Fatalf("POST /message expected %d, got %d", http.StatusAccepted, msgResp.Code)
+ }
+ var msg struct {
+ SessionID string `json:"session_id"`
+ }
+ if err := json.Unmarshal(msgResp.Body.Bytes(), &msg); err != nil {
+ t.Fatalf("invalid JSON from /message: %v", err)
+ }
+ if msg.SessionID == "" {
+ t.Fatal("expected session_id")
+ }
+
+ reqEvt := httptest.NewRequest(http.MethodGet, "/events?session_id="+msg.SessionID, nil)
+ respEvt := httptest.NewRecorder()
+ s.engine.ServeHTTP(respEvt, reqEvt)
+ if respEvt.Code != http.StatusOK {
+ t.Fatalf("GET /events expected %d, got %d", http.StatusOK, respEvt.Code)
+ }
+ if ct := respEvt.Result().Header.Get("Content-Type"); !strings.HasPrefix(ct, "text/event-stream") {
+ t.Fatalf("expected content-type text/event-stream, got %q", ct)
+ }
+ if !strings.Contains(respEvt.Body.String(), "data: {") {
+ t.Fatalf("expected SSE payload, got %q", respEvt.Body.String())
+ }
+ })
+}
+
+func TestServer_ControlPlane_UnsupportedCapability(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ resp := httptest.NewRecorder()
+ req := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(`{"message":"x","capability":"pause"}`))
+ req.Header.Set("Content-Type", "application/json")
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusNotImplemented {
+ t.Fatalf("expected status %d for unsupported capability, got %d", http.StatusNotImplemented, resp.Code)
+ }
+ var body map[string]any
+ if err := json.Unmarshal(resp.Body.Bytes(), &body); err != nil {
+ t.Fatalf("invalid JSON from /message: %v", err)
+ }
+ if _, ok := body["unsupported capability"]; ok {
+ t.Fatalf("error payload has wrong schema: %v", body)
+ }
+ if body["error"] != "unsupported capability" {
+ t.Fatalf("expected unsupported capability error, got %v", body["error"])
+ }
+}
+
+func TestServer_ControlPlane_NormalizeCapabilityAliases(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ for _, capability := range []string{"continue", "resume", "ask", "exec", "max"} {
+ t.Run(capability, func(t *testing.T) {
+ reqBody := `{"message":"alias test","capability":"` + capability + `"}`
+ req := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(reqBody))
+ req.Header.Set("Content-Type", "application/json")
+ resp := httptest.NewRecorder()
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusAccepted {
+ t.Fatalf("capability=%s expected %d, got %d", capability, http.StatusAccepted, resp.Code)
+ }
+ var body struct {
+ SessionID string `json:"session_id"`
+ Status string `json:"status"`
+ MessageID string `json:"message_id"`
+ MessageCount int `json:"message_count"`
+ }
+ if err := json.Unmarshal(resp.Body.Bytes(), &body); err != nil {
+ t.Fatalf("invalid JSON from /message for %s: %v", capability, err)
+ }
+ if body.SessionID == "" {
+ t.Fatalf("expected non-empty session_id for capability %s", capability)
+ }
+ if body.Status != "done" {
+ t.Fatalf("expected status=done for capability %s, got %q", capability, body.Status)
+ }
+ if body.MessageID == "" {
+ t.Fatalf("expected message_id for capability %s", capability)
+ }
+ if body.MessageCount != 1 {
+ t.Fatalf("expected message_count=1 for capability %s, got %d", capability, body.MessageCount)
+ }
+ })
+ }
+}
+
+func TestNormalizeControlPlaneCapability(t *testing.T) {
+ tcs := []struct {
+ name string
+ input string
+ normalized string
+ isSupported bool
+ }{
+ {name: "empty accepted", input: "", normalized: "", isSupported: true},
+ {name: "continue canonical", input: "continue", normalized: "continue", isSupported: true},
+ {name: "resume canonical", input: "resume", normalized: "resume", isSupported: true},
+ {name: "ask alias", input: "ask", normalized: "continue", isSupported: true},
+ {name: "exec alias", input: "exec", normalized: "continue", isSupported: true},
+ {name: "max alias", input: "max", normalized: "continue", isSupported: true},
+ {name: "max with spaces", input: " MAX ", normalized: "continue", isSupported: true},
+ {name: "mixed-case", input: "ExEc", normalized: "continue", isSupported: true},
+ {name: "unsupported", input: "pause", normalized: "pause", isSupported: false},
+ }
+
+ for _, tc := range tcs {
+ t.Run(tc.name, func(t *testing.T) {
+ got, ok := normalizeControlPlaneCapability(tc.input)
+ if ok != tc.isSupported {
+ t.Fatalf("input=%q expected ok=%v, got=%v", tc.input, tc.isSupported, ok)
+ }
+ if got != tc.normalized {
+ t.Fatalf("input=%q expected normalized=%q, got=%q", tc.input, tc.normalized, got)
+ }
+ })
+ }
+}
+
+func TestServer_ControlPlane_NamespaceAndMethodIsolation(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ countRoute := func(method, path string) int {
+ count := 0
+ for _, r := range s.engine.Routes() {
+ if r.Method == method && r.Path == path {
+ count++
+ }
+ }
+ return count
+ }
+
+ if got := countRoute(http.MethodGet, "/messages"); got != 1 {
+ t.Fatalf("expected one GET /messages route for control-plane status lookup, got %d", got)
+ }
+ if got := countRoute(http.MethodPost, "/v1/messages"); got != 1 {
+ t.Fatalf("expected one POST /v1/messages route for model plane, got %d", got)
+ }
+
+ notExpected := map[string]struct{}{
+ http.MethodGet + " /agent/messages": {},
+ http.MethodGet + " /agent/status": {},
+ http.MethodGet + " /agent/events": {},
+ http.MethodPost + " /agent/message": {},
+ }
+ for _, r := range s.engine.Routes() {
+ key := r.Method + " " + r.Path
+ if _, ok := notExpected[key]; ok {
+ t.Fatalf("unexpected /agent namespace route discovered: %s", key)
+ }
+ }
+}
+
+func TestServer_ControlPlane_IdempotencyKey_ReplaysResponseAndPreventsDuplicateMessages(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ const idempotencyKey = "idempotency-replay-key"
+ const sessionID = "cp-replay-session"
+
+ reqBody := `{"session_id":"` + sessionID + `","message":"replay me","capability":"continue"}`
+ req := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(reqBody))
+ req.Header.Set("Content-Type", "application/json")
+ req.Header.Set("Idempotency-Key", idempotencyKey)
+ resp := httptest.NewRecorder()
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusAccepted {
+ t.Fatalf("first POST /message expected %d, got %d", http.StatusAccepted, resp.Code)
+ }
+ var first struct {
+ SessionID string `json:"session_id"`
+ MessageID string `json:"message_id"`
+ MessageCount int `json:"message_count"`
+ }
+ if err := json.Unmarshal(resp.Body.Bytes(), &first); err != nil {
+ t.Fatalf("invalid JSON from first /message: %v", err)
+ }
+ if first.SessionID != sessionID {
+ t.Fatalf("expected session_id=%q, got %q", sessionID, first.SessionID)
+ }
+ if first.MessageID == "" {
+ t.Fatal("expected message_id in first response")
+ }
+ if first.MessageCount != 1 {
+ t.Fatalf("expected message_count=1 on first request, got %d", first.MessageCount)
+ }
+
+ replayReq := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(reqBody))
+ replayReq.Header.Set("Content-Type", "application/json")
+ replayReq.Header.Set("Idempotency-Key", idempotencyKey)
+ replayResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(replayResp, replayReq)
+ if replayResp.Code != http.StatusAccepted {
+ t.Fatalf("replay POST /message expected %d, got %d", http.StatusAccepted, replayResp.Code)
+ }
+
+ var replay struct {
+ SessionID string `json:"session_id"`
+ MessageID string `json:"message_id"`
+ MessageCount int `json:"message_count"`
+ }
+ if err := json.Unmarshal(replayResp.Body.Bytes(), &replay); err != nil {
+ t.Fatalf("invalid JSON from replay /message: %v", err)
+ }
+ if replay.SessionID != sessionID {
+ t.Fatalf("expected replay session_id=%q, got %q", sessionID, replay.SessionID)
+ }
+ if replay.MessageID != first.MessageID {
+ t.Fatalf("expected replay to reuse message_id %q, got %q", first.MessageID, replay.MessageID)
+ }
+ if replay.MessageCount != first.MessageCount {
+ t.Fatalf("expected replay message_count=%d, got %d", first.MessageCount, replay.MessageCount)
+ }
+
+ msgReq := httptest.NewRequest(http.MethodGet, "/messages?session_id="+sessionID, nil)
+ msgResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(msgResp, msgReq)
+ if msgResp.Code != http.StatusOK {
+ t.Fatalf("GET /messages expected %d, got %d", http.StatusOK, msgResp.Code)
+ }
+ var msgBody struct {
+ Messages []struct {
+ MessageID string `json:"message_id"`
+ } `json:"messages"`
+ }
+ if err := json.Unmarshal(msgResp.Body.Bytes(), &msgBody); err != nil {
+ t.Fatalf("invalid JSON from /messages: %v", err)
+ }
+ if len(msgBody.Messages) != 1 {
+ t.Fatalf("expected one stored message, got %d", len(msgBody.Messages))
+ }
+ if msgBody.Messages[0].MessageID != first.MessageID {
+ t.Fatalf("expected stored message_id=%q, got %q", first.MessageID, msgBody.Messages[0].MessageID)
+ }
+}
+
+func TestServer_ControlPlane_IdempotencyKey_DifferentKeysCreateDifferentMessages(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ const sessionID = "cp-replay-session-dupe"
+ reqBody := `{"session_id":"` + sessionID + `","message":"first","capability":"continue"}`
+
+ keyOneReq := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(reqBody))
+ keyOneReq.Header.Set("Content-Type", "application/json")
+ keyOneReq.Header.Set("Idempotency-Key", "dup-key-one")
+ keyOneResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(keyOneResp, keyOneReq)
+ if keyOneResp.Code != http.StatusAccepted {
+ t.Fatalf("first message expected %d, got %d", http.StatusAccepted, keyOneResp.Code)
+ }
+
+ keyTwoReq := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(reqBody))
+ keyTwoReq.Header.Set("Content-Type", "application/json")
+ keyTwoReq.Header.Set("Idempotency-Key", "dup-key-two")
+ keyTwoResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(keyTwoResp, keyTwoReq)
+ if keyTwoResp.Code != http.StatusAccepted {
+ t.Fatalf("second message expected %d, got %d", http.StatusAccepted, keyTwoResp.Code)
+ }
+
+ msgReq := httptest.NewRequest(http.MethodGet, "/messages?session_id="+sessionID, nil)
+ msgResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(msgResp, msgReq)
+ if msgResp.Code != http.StatusOK {
+ t.Fatalf("GET /messages expected %d, got %d", http.StatusOK, msgResp.Code)
+ }
+ var msgBody struct {
+ Messages []struct {
+ MessageID string `json:"message_id"`
+ Content string `json:"content"`
+ } `json:"messages"`
+ }
+ if err := json.Unmarshal(msgResp.Body.Bytes(), &msgBody); err != nil {
+ t.Fatalf("invalid JSON from /messages: %v", err)
+ }
+ if len(msgBody.Messages) != 2 {
+ t.Fatalf("expected two stored messages for different idempotency keys, got %d", len(msgBody.Messages))
+ }
+ if msgBody.Messages[0].MessageID == msgBody.Messages[1].MessageID {
+ t.Fatalf("expected unique message IDs for different idempotency keys")
+ }
+}
+
+func TestServer_ControlPlane_SessionReadFallsBackToMirrorWithoutPrimary(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ sessionID := "cp-mirror-session"
+ reqBody := `{"session_id":"` + sessionID + `","message":"mirror test","capability":"continue"}`
+ req := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(reqBody))
+ req.Header.Set("Content-Type", "application/json")
+ resp := httptest.NewRecorder()
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusAccepted {
+ t.Fatalf("POST /message expected %d, got %d", http.StatusAccepted, resp.Code)
+ }
+
+ s.controlPlaneSessionsMu.Lock()
+ delete(s.controlPlaneSessions, sessionID)
+ s.controlPlaneSessionsMu.Unlock()
+
+ getReq := httptest.NewRequest(http.MethodGet, "/messages?session_id="+sessionID, nil)
+ getResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(getResp, getReq)
+ if getResp.Code != http.StatusOK {
+ t.Fatalf("GET /messages expected %d from mirror fallback, got %d", http.StatusOK, getResp.Code)
+ }
+ var body struct {
+ Messages []struct {
+ Content string `json:"content"`
+ } `json:"messages"`
+ }
+ if err := json.Unmarshal(getResp.Body.Bytes(), &body); err != nil {
+ t.Fatalf("invalid JSON from /messages: %v", err)
+ }
+ if len(body.Messages) != 1 || body.Messages[0].Content != "mirror test" {
+ t.Fatalf("expected mirror-backed message payload, got %v", body.Messages)
+ }
+}
+
+func TestServer_ControlPlane_ConflictBranchesPreservePreviousPayload(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+ sessionID := "cp-conflict-session"
+
+ for _, msg := range []string{"first", "second"} {
+ reqBody := `{"session_id":"` + sessionID + `","message":"` + msg + `","capability":"continue"}`
+ req := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(reqBody))
+ req.Header.Set("Content-Type", "application/json")
+ resp := httptest.NewRecorder()
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusAccepted {
+ t.Fatalf("POST /message for %q expected %d, got %d", msg, http.StatusAccepted, resp.Code)
+ }
+ }
+
+ s.controlPlaneSessionsMu.RLock()
+ conflicts := s.controlPlaneSessionHistory[sessionID]
+ current := s.controlPlaneSessions[sessionID]
+ s.controlPlaneSessionsMu.RUnlock()
+
+ if current == nil || len(current.Messages) != 2 {
+ t.Fatalf("expected current session with two messages, got %#v", current)
+ }
+ if len(conflicts) != 1 {
+ t.Fatalf("expected one historical conflict snapshot after second update, got %d", len(conflicts))
+ }
+ if len(conflicts[0].Messages) != 1 || conflicts[0].Messages[0].Content != "first" {
+ t.Fatalf("expected first payload preserved in conflict history, got %#v", conflicts[0])
+ }
+}
+
+func TestServer_ControlPlane_MessagesEndpointReturnsCopy(t *testing.T) {
+ s := NewServer(&config.Config{Debug: true}, nil, nil, "config.yaml")
+ if s == nil {
+ t.Fatal("NewServer returned nil")
+ }
+
+ sessionID := "cp-copy-session"
+ reqBody := `{"session_id":"` + sessionID + `","message":"immutable","capability":"continue"}`
+ req := httptest.NewRequest(http.MethodPost, "/message", strings.NewReader(reqBody))
+ req.Header.Set("Content-Type", "application/json")
+ resp := httptest.NewRecorder()
+ s.engine.ServeHTTP(resp, req)
+ if resp.Code != http.StatusAccepted {
+ t.Fatalf("POST /message expected %d, got %d", http.StatusAccepted, resp.Code)
+ }
+
+ getReq := httptest.NewRequest(http.MethodGet, "/messages?session_id="+sessionID, nil)
+ getResp := httptest.NewRecorder()
+ s.engine.ServeHTTP(getResp, getReq)
+ if getResp.Code != http.StatusOK {
+ t.Fatalf("GET /messages expected %d, got %d", http.StatusOK, getResp.Code)
+ }
+ var first struct {
+ Messages []map[string]any `json:"messages"`
+ }
+ if err := json.Unmarshal(getResp.Body.Bytes(), &first); err != nil {
+ t.Fatalf("invalid JSON from /messages: %v", err)
+ }
+ if len(first.Messages) == 0 {
+ t.Fatalf("expected one message")
+ }
+ first.Messages[0]["content"] = "tampered"
+
+ getReq2 := httptest.NewRequest(http.MethodGet, "/messages?session_id="+sessionID, nil)
+ getResp2 := httptest.NewRecorder()
+ s.engine.ServeHTTP(getResp2, getReq2)
+ if getResp2.Code != http.StatusOK {
+ t.Fatalf("second GET /messages expected %d, got %d", http.StatusOK, getResp2.Code)
+ }
+ var second struct {
+ Messages []struct {
+ Content string `json:"content"`
+ } `json:"messages"`
+ }
+ if err := json.Unmarshal(getResp2.Body.Bytes(), &second); err != nil {
+ t.Fatalf("invalid JSON from second /messages: %v", err)
+ }
+ if second.Messages[0].Content != "immutable" {
+ t.Fatalf("expected stored message content to remain immutable, got %q", second.Messages[0].Content)
+ }
}
diff --git a/pkg/llmproxy/auth/codex/filename_test.go b/pkg/llmproxy/auth/codex/filename_test.go
index 453e952fd6..4f5b29886a 100644
--- a/pkg/llmproxy/auth/codex/filename_test.go
+++ b/pkg/llmproxy/auth/codex/filename_test.go
@@ -6,11 +6,11 @@ import (
func TestCredentialFileName(t *testing.T) {
cases := []struct {
- email string
- plan string
- hashID string
- prefix bool
- want string
+ email string
+ plan string
+ hashID string
+ prefix bool
+ want string
}{
{"test@example.com", "", "", false, "-test@example.com.json"},
{"test@example.com", "", "", true, "codex-test@example.com.json"},
diff --git a/pkg/llmproxy/auth/codex/oauth_server_test.go b/pkg/llmproxy/auth/codex/oauth_server_test.go
index e479dedba9..799255557e 100644
--- a/pkg/llmproxy/auth/codex/oauth_server_test.go
+++ b/pkg/llmproxy/auth/codex/oauth_server_test.go
@@ -16,7 +16,7 @@ func TestOAuthServer(t *testing.T) {
if err := server.Start(); err != nil {
t.Fatalf("failed to start server: %v", err)
}
- defer server.Stop(context.Background())
+ defer func() { _ = server.Stop(context.Background()) }()
if !server.IsRunning() {
t.Error("expected server to be running")
@@ -32,7 +32,7 @@ func TestOAuthServer(t *testing.T) {
if err != nil {
t.Fatalf("callback request failed: %v", err)
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
if resp.StatusCode != http.StatusOK {
t.Errorf("expected 200 OK after redirect, got %d", resp.StatusCode)
@@ -53,14 +53,14 @@ func TestOAuthServer_Errors(t *testing.T) {
if err := server.Start(); err != nil {
t.Fatalf("failed to start server: %v", err)
}
- defer server.Stop(context.Background())
+ defer func() { _ = server.Stop(context.Background()) }()
// Test error callback
resp, err := http.Get(fmt.Sprintf("http://localhost:%d/auth/callback?error=access_denied", port))
if err != nil {
t.Fatalf("callback request failed: %v", err)
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
if resp.StatusCode != http.StatusBadRequest {
t.Errorf("expected 400 Bad Request, got %d", resp.StatusCode)
@@ -72,14 +72,14 @@ func TestOAuthServer_Errors(t *testing.T) {
}
// Test missing code
- http.Get(fmt.Sprintf("http://localhost:%d/auth/callback?state=xyz", port))
+ _, _ = http.Get(fmt.Sprintf("http://localhost:%d/auth/callback?state=xyz", port))
result, _ = server.WaitForCallback(1 * time.Second)
if result.Error != "no_code" {
t.Errorf("expected error no_code, got %s", result.Error)
}
// Test missing state
- http.Get(fmt.Sprintf("http://localhost:%d/auth/callback?code=abc", port))
+ _, _ = http.Get(fmt.Sprintf("http://localhost:%d/auth/callback?code=abc", port))
result, _ = server.WaitForCallback(1 * time.Second)
if result.Error != "no_state" {
t.Errorf("expected error no_state, got %s", result.Error)
@@ -98,7 +98,7 @@ func TestOAuthServer_PortInUse(t *testing.T) {
if err := server1.Start(); err != nil {
t.Fatalf("failed to start server1: %v", err)
}
- defer server1.Stop(context.Background())
+ defer func() { _ = server1.Stop(context.Background()) }()
server2 := NewOAuthServer(port)
if err := server2.Start(); err == nil || !strings.Contains(err.Error(), "already in use") {
diff --git a/pkg/llmproxy/auth/codex/openai_auth_test.go b/pkg/llmproxy/auth/codex/openai_auth_test.go
index 520c08d34b..00dbb59f17 100644
--- a/pkg/llmproxy/auth/codex/openai_auth_test.go
+++ b/pkg/llmproxy/auth/codex/openai_auth_test.go
@@ -75,13 +75,13 @@ func TestCodexAuth_ExchangeCodeForTokens(t *testing.T) {
TokenType: "Bearer",
ExpiresIn: 3600,
}
- json.NewEncoder(w).Encode(resp)
+ _ = json.NewEncoder(w).Encode(resp)
}))
defer server.Close()
// Override TokenURL for testing if it was possible, but it's a constant.
// Since I can't override the constant, I'll need to use a real CodexAuth but with a mocked httpClient that redirects to my server.
-
+
mockClient := &http.Client{
Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) {
// Redirect all requests to the test server
@@ -128,7 +128,7 @@ func TestCodexAuth_RefreshTokens(t *testing.T) {
TokenType: "Bearer",
ExpiresIn: 3600,
}
- json.NewEncoder(w).Encode(resp)
+ _ = json.NewEncoder(w).Encode(resp)
}))
defer server.Close()
@@ -185,7 +185,7 @@ func TestCodexAuth_RefreshTokensWithRetry(t *testing.T) {
AccessToken: "retry_access",
ExpiresIn: 3600,
}
- json.NewEncoder(w).Encode(resp)
+ _ = json.NewEncoder(w).Encode(resp)
}))
defer server.Close()
diff --git a/pkg/llmproxy/auth/codex/token_test.go b/pkg/llmproxy/auth/codex/token_test.go
index 6cf17ce3ba..c55d2af966 100644
--- a/pkg/llmproxy/auth/codex/token_test.go
+++ b/pkg/llmproxy/auth/codex/token_test.go
@@ -12,7 +12,7 @@ func TestCodexTokenStorage_SaveTokenToFile(t *testing.T) {
if err != nil {
t.Fatalf("failed to create temp dir: %v", err)
}
- defer os.RemoveAll(tempDir)
+ defer func() { _ = os.RemoveAll(tempDir) }()
authFilePath := filepath.Join(tempDir, "token.json")
@@ -50,7 +50,7 @@ func TestCodexTokenStorage_SaveTokenToFile(t *testing.T) {
func TestSaveTokenToFile_MkdirFail(t *testing.T) {
// Use a path that's impossible to create (like a file as a directory)
tempFile, _ := os.CreateTemp("", "mkdir_fail")
- defer os.Remove(tempFile.Name())
+ defer func() { _ = os.Remove(tempFile.Name()) }()
authFilePath := filepath.Join(tempFile.Name(), "token.json")
ts := &CodexTokenStorage{}
diff --git a/pkg/llmproxy/auth/copilot/copilot_auth.go b/pkg/llmproxy/auth/copilot/copilot_auth.go
index d39187dd22..cc918becc9 100644
--- a/pkg/llmproxy/auth/copilot/copilot_auth.go
+++ b/pkg/llmproxy/auth/copilot/copilot_auth.go
@@ -22,11 +22,11 @@ const (
copilotAPIEndpoint = "https://api.githubcopilot.com"
// Common HTTP header values for Copilot API requests.
- copilotUserAgent = "GithubCopilot/1.0"
- copilotEditorVersion = "vscode/1.100.0"
- copilotPluginVersion = "copilot/1.300.0"
- copilotIntegrationID = "vscode-chat"
- copilotOpenAIIntent = "conversation-panel"
+ copilotUserAgent = "GithubCopilot/1.0"
+ copilotEditorVersion = "vscode/1.100.0"
+ copilotPluginVersion = "copilot/1.300.0"
+ copilotIntegrationID = "vscode-chat"
+ copilotOpenAIIntent = "conversation-panel"
)
// CopilotAPIToken represents the Copilot API token response.
diff --git a/pkg/llmproxy/auth/copilot/copilot_extra_test.go b/pkg/llmproxy/auth/copilot/copilot_extra_test.go
index 3efec81417..dc5d8028ce 100644
--- a/pkg/llmproxy/auth/copilot/copilot_extra_test.go
+++ b/pkg/llmproxy/auth/copilot/copilot_extra_test.go
@@ -25,11 +25,11 @@ func TestCopilotAuth_ValidateToken(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if !strings.Contains(r.Header.Get("Authorization"), "goodtoken") {
w.WriteHeader(http.StatusUnauthorized)
- fmt.Fprint(w, `{"message":"Bad credentials"}`)
+ _, _ = fmt.Fprint(w, `{"message":"Bad credentials"}`)
return
}
w.Header().Set("Content-Type", "application/json")
- fmt.Fprint(w, `{"login":"testuser"}`)
+ _, _ = fmt.Fprint(w, `{"login":"testuser"}`)
}))
defer server.Close()
@@ -93,7 +93,7 @@ func TestDeviceFlowClient_RequestDeviceCode(t *testing.T) {
ExpiresIn: 900,
Interval: 5,
}
- json.NewEncoder(w).Encode(resp)
+ _ = json.NewEncoder(w).Encode(resp)
}))
defer server.Close()
@@ -121,10 +121,10 @@ func TestDeviceFlowClient_PollForToken(t *testing.T) {
attempt++
w.Header().Set("Content-Type", "application/json")
if attempt == 1 {
- fmt.Fprint(w, `{"error":"authorization_pending"}`)
+ _, _ = fmt.Fprint(w, `{"error":"authorization_pending"}`)
return
}
- fmt.Fprint(w, `{"access_token":"token123"}`)
+ _, _ = fmt.Fprint(w, `{"access_token":"token123"}`)
}))
defer server.Close()
@@ -158,10 +158,10 @@ func TestCopilotAuth_LoadAndValidateToken(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
if strings.Contains(r.Header.Get("Authorization"), "expired") {
- fmt.Fprint(w, `{"token":"new","expires_at":1}`) // expired
+ _, _ = fmt.Fprint(w, `{"token":"new","expires_at":1}`)
return
}
- fmt.Fprint(w, `{"token":"new","expires_at":0}`) // never expires
+ _, _ = fmt.Fprint(w, `{"token":"new","expires_at":0}`)
}))
defer server.Close()
@@ -202,7 +202,7 @@ func TestCopilotAuth_GetAPIEndpoint(t *testing.T) {
func TestCopilotAuth_StartDeviceFlow(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- json.NewEncoder(w).Encode(DeviceCodeResponse{DeviceCode: "dc"})
+ _ = json.NewEncoder(w).Encode(DeviceCodeResponse{DeviceCode: "dc"})
}))
defer server.Close()
@@ -225,10 +225,10 @@ func TestCopilotAuth_WaitForAuthorization(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
if r.URL.Path == "/user" {
- fmt.Fprint(w, `{"login":"testuser"}`)
+ _, _ = fmt.Fprint(w, `{"login":"testuser"}`)
return
}
- fmt.Fprint(w, `{"access_token":"token123"}`)
+ _, _ = fmt.Fprint(w, `{"access_token":"token123"}`)
}))
defer server.Close()
@@ -240,7 +240,7 @@ func TestCopilotAuth_WaitForAuthorization(t *testing.T) {
}
// We need to override the hardcoded URLs in DeviceFlowClient for this test to work without rewriteTransport
// but DeviceFlowClient uses constants. So we MUST use rewriteTransport logic or similar.
-
+
mockTransport := &rewriteTransportOverride{
target: server.URL,
}
diff --git a/pkg/llmproxy/auth/copilot/token_test.go b/pkg/llmproxy/auth/copilot/token_test.go
index d0d60025c4..7ed2ac3297 100644
--- a/pkg/llmproxy/auth/copilot/token_test.go
+++ b/pkg/llmproxy/auth/copilot/token_test.go
@@ -12,7 +12,7 @@ func TestCopilotTokenStorage_SaveTokenToFile(t *testing.T) {
if err != nil {
t.Fatalf("failed to create temp dir: %v", err)
}
- defer os.RemoveAll(tempDir)
+ defer func() { _ = os.RemoveAll(tempDir) }()
authFilePath := filepath.Join(tempDir, "token.json")
diff --git a/pkg/llmproxy/auth/diff/config_diff_test.go b/pkg/llmproxy/auth/diff/config_diff_test.go
index db777da2d6..302889f3bf 100644
--- a/pkg/llmproxy/auth/diff/config_diff_test.go
+++ b/pkg/llmproxy/auth/diff/config_diff_test.go
@@ -1,27 +1,27 @@
package diff
import (
- "testing"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
+ "testing"
)
func TestBuildConfigChangeDetails(t *testing.T) {
oldCfg := &config.Config{
- Port: 8080,
- Debug: false,
+ Port: 8080,
+ Debug: false,
ClaudeKey: []config.ClaudeKey{{APIKey: "k1"}},
}
newCfg := &config.Config{
- Port: 9090,
- Debug: true,
+ Port: 9090,
+ Debug: true,
ClaudeKey: []config.ClaudeKey{{APIKey: "k1"}, {APIKey: "k2"}},
}
-
+
changes := BuildConfigChangeDetails(oldCfg, newCfg)
if len(changes) != 3 {
t.Errorf("expected 3 changes, got %d: %v", len(changes), changes)
}
-
+
// Test unknown proxy URL
u := formatProxyURL("http://user:pass@host:1234")
if u != "http://host:1234" {
diff --git a/pkg/llmproxy/auth/gemini/gemini_auth_test.go b/pkg/llmproxy/auth/gemini/gemini_auth_test.go
index d38d770b2e..efb5cb9c88 100644
--- a/pkg/llmproxy/auth/gemini/gemini_auth_test.go
+++ b/pkg/llmproxy/auth/gemini/gemini_auth_test.go
@@ -16,24 +16,24 @@ import (
func TestGetAuthenticatedClient_ExistingToken(t *testing.T) {
auth := NewGeminiAuth()
-
+
// Valid token that hasn't expired
token := &oauth2.Token{
AccessToken: "valid-access",
RefreshToken: "valid-refresh",
Expiry: time.Now().Add(1 * time.Hour),
}
-
+
ts := &GeminiTokenStorage{
Token: token,
}
-
+
cfg := &config.Config{}
client, err := auth.GetAuthenticatedClient(context.Background(), ts, cfg, nil)
if err != nil {
t.Fatalf("GetAuthenticatedClient failed: %v", err)
}
-
+
if client == nil {
t.Fatal("expected non-nil client")
}
@@ -42,25 +42,25 @@ func TestGetAuthenticatedClient_ExistingToken(t *testing.T) {
func TestGeminiTokenStorage_SaveAndLoad(t *testing.T) {
tmpDir := t.TempDir()
path := filepath.Join(tmpDir, "gemini-token.json")
-
+
ts := &GeminiTokenStorage{
Token: "raw-token-data",
ProjectID: "test-project",
Email: "test@example.com",
Type: "gemini",
}
-
+
err := ts.SaveTokenToFile(path)
if err != nil {
t.Fatalf("SaveTokenToFile failed: %v", err)
}
-
+
// Load it back
data, err := os.ReadFile(path)
if err != nil {
t.Fatalf("failed to read file: %v", err)
}
-
+
if len(data) == 0 {
t.Fatal("saved file is empty")
}
@@ -69,7 +69,7 @@ func TestGeminiTokenStorage_SaveAndLoad(t *testing.T) {
func TestGeminiAuth_CreateTokenStorage(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/oauth2/v1/userinfo" {
- fmt.Fprint(w, `{"email":"test@example.com"}`)
+ _, _ = fmt.Fprint(w, `{"email":"test@example.com"}`)
return
}
w.WriteHeader(http.StatusNotFound)
@@ -90,9 +90,9 @@ func TestGeminiAuth_CreateTokenStorage(t *testing.T) {
mockReq, _ := http.NewRequest(req.Method, server.URL+"/oauth2/v1/userinfo", req.Body)
return http.DefaultClient.Do(mockReq)
})
-
+
ctx = context.WithValue(ctx, oauth2.HTTPClient, &http.Client{Transport: transport})
-
+
ts, err := auth.createTokenStorage(ctx, conf, token, "project-123")
if err != nil {
t.Fatalf("createTokenStorage failed: %v", err)
@@ -110,7 +110,7 @@ func TestGetAuthenticatedClient_Proxy(t *testing.T) {
}
cfg := &config.Config{}
cfg.ProxyURL = "http://proxy.com:8080"
-
+
client, err := auth.GetAuthenticatedClient(context.Background(), ts, cfg, nil)
if err != nil {
t.Fatalf("GetAuthenticatedClient failed: %v", err)
@@ -118,7 +118,7 @@ func TestGetAuthenticatedClient_Proxy(t *testing.T) {
if client == nil {
t.Fatal("client is nil")
}
-
+
// Check SOCKS5 proxy
cfg.ProxyURL = "socks5://user:pass@socks5.com:1080"
_, _ = auth.GetAuthenticatedClient(context.Background(), ts, cfg, nil)
diff --git a/pkg/llmproxy/auth/kilo/kilo_auth.go b/pkg/llmproxy/auth/kilo/kilo_auth.go
index dc128bf204..62e728f0a1 100644
--- a/pkg/llmproxy/auth/kilo/kilo_auth.go
+++ b/pkg/llmproxy/auth/kilo/kilo_auth.go
@@ -64,7 +64,7 @@ func (k *KiloAuth) InitiateDeviceFlow(ctx context.Context) (*DeviceAuthResponse,
if err != nil {
return nil, err
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
if resp.StatusCode != http.StatusCreated && resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("failed to initiate device flow: status %d", resp.StatusCode)
@@ -91,7 +91,7 @@ func (k *KiloAuth) PollForToken(ctx context.Context, code string) (*DeviceStatus
if err != nil {
return nil, err
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
var data DeviceStatusResponse
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
@@ -124,7 +124,7 @@ func (k *KiloAuth) GetProfile(ctx context.Context, token string) (*Profile, erro
if err != nil {
return nil, err
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("failed to get profile: status %d", resp.StatusCode)
@@ -154,7 +154,7 @@ func (k *KiloAuth) GetDefaults(ctx context.Context, token, orgID string) (*Defau
if err != nil {
return nil, err
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("failed to get defaults: status %d", resp.StatusCode)
diff --git a/pkg/llmproxy/auth/kiro/aws_auth.go b/pkg/llmproxy/auth/kiro/aws_auth.go
index a5beac23f8..1118ea1a9a 100644
--- a/pkg/llmproxy/auth/kiro/aws_auth.go
+++ b/pkg/llmproxy/auth/kiro/aws_auth.go
@@ -23,11 +23,11 @@ const (
// Note: This is different from the Amazon Q streaming endpoint (q.us-east-1.amazonaws.com)
// used in kiro_executor.go for GenerateAssistantResponse. Both endpoints are correct
// for their respective API operations.
- awsKiroEndpoint = "https://codewhisperer.us-east-1.amazonaws.com"
- defaultTokenFile = "~/.aws/sso/cache/kiro-auth-token.json"
- targetGetUsage = "AmazonCodeWhispererService.GetUsageLimits"
- targetListModels = "AmazonCodeWhispererService.ListAvailableModels"
- targetGenerateChat = "AmazonCodeWhispererStreamingService.GenerateAssistantResponse"
+ awsKiroEndpoint = "https://codewhisperer.us-east-1.amazonaws.com"
+ defaultTokenFile = "~/.aws/sso/cache/kiro-auth-token.json"
+ targetGetUsage = "AmazonCodeWhispererService.GetUsageLimits"
+ targetListModels = "AmazonCodeWhispererService.ListAvailableModels"
+ targetGenerateChat = "AmazonCodeWhispererStreamingService.GenerateAssistantResponse"
)
// KiroAuth handles AWS CodeWhisperer authentication and API communication.
diff --git a/pkg/llmproxy/auth/kiro/aws_extra_test.go b/pkg/llmproxy/auth/kiro/aws_extra_test.go
index 3e76480fe0..32cf942ff8 100644
--- a/pkg/llmproxy/auth/kiro/aws_extra_test.go
+++ b/pkg/llmproxy/auth/kiro/aws_extra_test.go
@@ -25,10 +25,10 @@ func TestNewKiroAuth(t *testing.T) {
func TestKiroAuth_LoadTokenFromFile(t *testing.T) {
tempDir := t.TempDir()
tokenPath := filepath.Join(tempDir, "token.json")
-
+
tokenData := KiroTokenData{AccessToken: "abc"}
data, _ := json.Marshal(tokenData)
- os.WriteFile(tokenPath, data, 0600)
+ _ = os.WriteFile(tokenPath, data, 0600)
auth := &KiroAuth{}
loaded, err := auth.LoadTokenFromFile(tokenPath)
@@ -45,7 +45,7 @@ func TestKiroAuth_LoadTokenFromFile(t *testing.T) {
func TestKiroAuth_IsTokenExpired(t *testing.T) {
auth := &KiroAuth{}
-
+
if !auth.IsTokenExpired(&KiroTokenData{ExpiresAt: ""}) {
t.Error("empty ExpiresAt should be expired")
}
@@ -74,7 +74,7 @@ func TestKiroAuth_GetUsageLimits(t *testing.T) {
"usageBreakdownList": [{"currentUsageWithPrecision": 10.5, "usageLimitWithPrecision": 100.0}],
"nextDateReset": 123456789
}`
- fmt.Fprint(w, resp)
+ _, _ = fmt.Fprint(w, resp)
}))
defer server.Close()
@@ -105,7 +105,7 @@ func TestKiroAuth_ListAvailableModels(t *testing.T) {
}
]
}`
- fmt.Fprint(w, resp)
+ _, _ = fmt.Fprint(w, resp)
}))
defer server.Close()
diff --git a/pkg/llmproxy/auth/kiro/codewhisperer_client.go b/pkg/llmproxy/auth/kiro/codewhisperer_client.go
index 3e1c370c9c..b1860a7936 100644
--- a/pkg/llmproxy/auth/kiro/codewhisperer_client.go
+++ b/pkg/llmproxy/auth/kiro/codewhisperer_client.go
@@ -28,11 +28,11 @@ type CodeWhispererClient struct {
// UsageLimitsResponse represents the getUsageLimits API response.
type UsageLimitsResponse struct {
- DaysUntilReset *int `json:"daysUntilReset,omitempty"`
- NextDateReset *float64 `json:"nextDateReset,omitempty"`
- UserInfo *UserInfo `json:"userInfo,omitempty"`
- SubscriptionInfo *SubscriptionInfo `json:"subscriptionInfo,omitempty"`
- UsageBreakdownList []UsageBreakdown `json:"usageBreakdownList,omitempty"`
+ DaysUntilReset *int `json:"daysUntilReset,omitempty"`
+ NextDateReset *float64 `json:"nextDateReset,omitempty"`
+ UserInfo *UserInfo `json:"userInfo,omitempty"`
+ SubscriptionInfo *SubscriptionInfo `json:"subscriptionInfo,omitempty"`
+ UsageBreakdownList []UsageBreakdown `json:"usageBreakdownList,omitempty"`
}
// UserInfo contains user information from the API.
@@ -49,13 +49,13 @@ type SubscriptionInfo struct {
// UsageBreakdown contains usage details.
type UsageBreakdown struct {
- UsageLimit *int `json:"usageLimit,omitempty"`
- CurrentUsage *int `json:"currentUsage,omitempty"`
- UsageLimitWithPrecision *float64 `json:"usageLimitWithPrecision,omitempty"`
- CurrentUsageWithPrecision *float64 `json:"currentUsageWithPrecision,omitempty"`
- NextDateReset *float64 `json:"nextDateReset,omitempty"`
- DisplayName string `json:"displayName,omitempty"`
- ResourceType string `json:"resourceType,omitempty"`
+ UsageLimit *int `json:"usageLimit,omitempty"`
+ CurrentUsage *int `json:"currentUsage,omitempty"`
+ UsageLimitWithPrecision *float64 `json:"usageLimitWithPrecision,omitempty"`
+ CurrentUsageWithPrecision *float64 `json:"currentUsageWithPrecision,omitempty"`
+ NextDateReset *float64 `json:"nextDateReset,omitempty"`
+ DisplayName string `json:"displayName,omitempty"`
+ ResourceType string `json:"resourceType,omitempty"`
}
// NewCodeWhispererClient creates a new CodeWhisperer client.
diff --git a/pkg/llmproxy/auth/kiro/cooldown.go b/pkg/llmproxy/auth/kiro/cooldown.go
index c1aabbcb4d..716135b688 100644
--- a/pkg/llmproxy/auth/kiro/cooldown.go
+++ b/pkg/llmproxy/auth/kiro/cooldown.go
@@ -6,8 +6,8 @@ import (
)
const (
- CooldownReason429 = "rate_limit_exceeded"
- CooldownReasonSuspended = "account_suspended"
+ CooldownReason429 = "rate_limit_exceeded"
+ CooldownReasonSuspended = "account_suspended"
CooldownReasonQuotaExhausted = "quota_exhausted"
DefaultShortCooldown = 1 * time.Minute
diff --git a/pkg/llmproxy/auth/kiro/fingerprint.go b/pkg/llmproxy/auth/kiro/fingerprint.go
index c35e62b2b2..45ed4e4d50 100644
--- a/pkg/llmproxy/auth/kiro/fingerprint.go
+++ b/pkg/llmproxy/auth/kiro/fingerprint.go
@@ -37,7 +37,7 @@ var (
"1.0.20", "1.0.21", "1.0.22", "1.0.23",
"1.0.24", "1.0.25", "1.0.26", "1.0.27",
}
- osTypes = []string{"darwin", "windows", "linux"}
+ osTypes = []string{"darwin", "windows", "linux"}
osVersions = map[string][]string{
"darwin": {"14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "15.0", "15.1"},
"windows": {"10.0.19041", "10.0.19042", "10.0.19043", "10.0.19044", "10.0.22621", "10.0.22631"},
@@ -67,9 +67,9 @@ var (
"1366x768", "1440x900", "1680x1050",
"2560x1600", "3440x1440",
}
- colorDepths = []int{24, 32}
+ colorDepths = []int{24, 32}
hardwareConcurrencies = []int{4, 6, 8, 10, 12, 16, 20, 24, 32}
- timezoneOffsets = []int{-480, -420, -360, -300, -240, 0, 60, 120, 480, 540}
+ timezoneOffsets = []int{-480, -420, -360, -300, -240, 0, 60, 120, 480, 540}
)
// NewFingerprintManager 创建指纹管理器
diff --git a/pkg/llmproxy/auth/kiro/jitter.go b/pkg/llmproxy/auth/kiro/jitter.go
index 0569a8fb18..fef2aea949 100644
--- a/pkg/llmproxy/auth/kiro/jitter.go
+++ b/pkg/llmproxy/auth/kiro/jitter.go
@@ -26,9 +26,9 @@ const (
)
var (
- jitterRand *rand.Rand
- jitterRandOnce sync.Once
- jitterMu sync.Mutex
+ jitterRand *rand.Rand
+ jitterRandOnce sync.Once
+ jitterMu sync.Mutex
lastRequestTime time.Time
)
diff --git a/pkg/llmproxy/auth/kiro/jitter_test.go b/pkg/llmproxy/auth/kiro/jitter_test.go
index 19b7aa1e2e..c66a16f21b 100644
--- a/pkg/llmproxy/auth/kiro/jitter_test.go
+++ b/pkg/llmproxy/auth/kiro/jitter_test.go
@@ -60,7 +60,7 @@ func TestHumanLikeDelay(t *testing.T) {
func TestExponentialBackoffWithJitter(t *testing.T) {
base := 1 * time.Second
max := 10 * time.Second
-
+
d := ExponentialBackoffWithJitter(0, base, max)
if d < 700*time.Millisecond || d > 1300*time.Millisecond {
t.Errorf("attempt 0 failed: %v", d)
diff --git a/pkg/llmproxy/auth/kiro/metrics.go b/pkg/llmproxy/auth/kiro/metrics.go
index 0fe2d0c69e..f9540fc17f 100644
--- a/pkg/llmproxy/auth/kiro/metrics.go
+++ b/pkg/llmproxy/auth/kiro/metrics.go
@@ -24,10 +24,10 @@ type TokenScorer struct {
metrics map[string]*TokenMetrics
// Scoring weights
- successRateWeight float64
- quotaWeight float64
- latencyWeight float64
- lastUsedWeight float64
+ successRateWeight float64
+ quotaWeight float64
+ latencyWeight float64
+ lastUsedWeight float64
failPenaltyMultiplier float64
}
diff --git a/pkg/llmproxy/auth/kiro/oauth_web.go b/pkg/llmproxy/auth/kiro/oauth_web.go
index 6d1a7ba7f0..0d7fab4940 100644
--- a/pkg/llmproxy/auth/kiro/oauth_web.go
+++ b/pkg/llmproxy/auth/kiro/oauth_web.go
@@ -35,34 +35,34 @@ const (
)
type webAuthSession struct {
- stateID string
- deviceCode string
- userCode string
- authURL string
- verificationURI string
- expiresIn int
- interval int
- status authSessionStatus
- startedAt time.Time
- completedAt time.Time
- expiresAt time.Time
- error string
- tokenData *KiroTokenData
- ssoClient *SSOOIDCClient
- clientID string
- clientSecret string
- region string
- cancelFunc context.CancelFunc
- authMethod string // "google", "github", "builder-id", "idc"
- startURL string // Used for IDC
- codeVerifier string // Used for social auth PKCE
+ stateID string
+ deviceCode string
+ userCode string
+ authURL string
+ verificationURI string
+ expiresIn int
+ interval int
+ status authSessionStatus
+ startedAt time.Time
+ completedAt time.Time
+ expiresAt time.Time
+ error string
+ tokenData *KiroTokenData
+ ssoClient *SSOOIDCClient
+ clientID string
+ clientSecret string
+ region string
+ cancelFunc context.CancelFunc
+ authMethod string // "google", "github", "builder-id", "idc"
+ startURL string // Used for IDC
+ codeVerifier string // Used for social auth PKCE
}
type OAuthWebHandler struct {
- cfg *config.Config
- sessions map[string]*webAuthSession
- mu sync.RWMutex
- onTokenObtained func(*KiroTokenData)
+ cfg *config.Config
+ sessions map[string]*webAuthSession
+ mu sync.RWMutex
+ onTokenObtained func(*KiroTokenData)
}
func NewOAuthWebHandler(cfg *config.Config) *OAuthWebHandler {
@@ -103,7 +103,7 @@ func (h *OAuthWebHandler) handleSelect(c *gin.Context) {
func (h *OAuthWebHandler) handleStart(c *gin.Context) {
method := c.Query("method")
-
+
if method == "" {
c.Redirect(http.StatusFound, "/v0/oauth/kiro")
return
@@ -319,18 +319,18 @@ func (h *OAuthWebHandler) pollForToken(ctx context.Context, session *webAuthSess
email := FetchUserEmailWithFallback(ctx, h.cfg, tokenResp.AccessToken)
tokenData := &KiroTokenData{
- AccessToken: tokenResp.AccessToken,
- RefreshToken: tokenResp.RefreshToken,
- ProfileArn: profileArn,
- ExpiresAt: expiresAt.Format(time.RFC3339),
- AuthMethod: session.authMethod,
- Provider: "AWS",
- ClientID: session.clientID,
- ClientSecret: session.clientSecret,
- Email: email,
- Region: session.region,
- StartURL: session.startURL,
- }
+ AccessToken: tokenResp.AccessToken,
+ RefreshToken: tokenResp.RefreshToken,
+ ProfileArn: profileArn,
+ ExpiresAt: expiresAt.Format(time.RFC3339),
+ AuthMethod: session.authMethod,
+ Provider: "AWS",
+ ClientID: session.clientID,
+ ClientSecret: session.clientSecret,
+ Email: email,
+ Region: session.region,
+ StartURL: session.startURL,
+ }
h.mu.Lock()
session.status = statusSuccess
@@ -384,7 +384,7 @@ func (h *OAuthWebHandler) saveTokenToFile(tokenData *KiroTokenData) {
fileName := GenerateTokenFileName(tokenData)
authFilePath := filepath.Join(authDir, fileName)
-
+
// Convert to storage format and save
storage := &KiroTokenStorage{
Type: "kiro",
@@ -401,12 +401,12 @@ func (h *OAuthWebHandler) saveTokenToFile(tokenData *KiroTokenData) {
StartURL: tokenData.StartURL,
Email: tokenData.Email,
}
-
+
if err := storage.SaveTokenToFile(authFilePath); err != nil {
log.Errorf("OAuth Web: failed to save token to file: %v", err)
return
}
-
+
log.Infof("OAuth Web: token saved to %s", authFilePath)
}
diff --git a/pkg/llmproxy/auth/kiro/protocol_handler.go b/pkg/llmproxy/auth/kiro/protocol_handler.go
index 43ed5beb60..2acd75c3f0 100644
--- a/pkg/llmproxy/auth/kiro/protocol_handler.go
+++ b/pkg/llmproxy/auth/kiro/protocol_handler.go
@@ -97,7 +97,7 @@ func (h *ProtocolHandler) Start(ctx context.Context) (int, error) {
var listener net.Listener
var err error
portRange := []int{DefaultHandlerPort, DefaultHandlerPort + 1, DefaultHandlerPort + 2, DefaultHandlerPort + 3, DefaultHandlerPort + 4}
-
+
for _, port := range portRange {
listener, err = net.Listen("tcp", fmt.Sprintf("127.0.0.1:%d", port))
if err == nil {
@@ -105,7 +105,7 @@ func (h *ProtocolHandler) Start(ctx context.Context) (int, error) {
}
log.Debugf("kiro protocol handler: port %d busy, trying next", port)
}
-
+
if listener == nil {
return 0, fmt.Errorf("failed to start callback server: all ports %d-%d are busy", DefaultHandlerPort, DefaultHandlerPort+4)
}
diff --git a/pkg/llmproxy/auth/kiro/social_extra_test.go b/pkg/llmproxy/auth/kiro/social_extra_test.go
index de4d0b802b..f1011615d1 100644
--- a/pkg/llmproxy/auth/kiro/social_extra_test.go
+++ b/pkg/llmproxy/auth/kiro/social_extra_test.go
@@ -18,7 +18,7 @@ func TestSocialAuthClient_CreateToken(t *testing.T) {
ProfileArn: "arn",
ExpiresIn: 3600,
}
- json.NewEncoder(w).Encode(resp)
+ _ = json.NewEncoder(w).Encode(resp)
}))
defer server.Close()
@@ -58,7 +58,7 @@ func TestSocialAuthClient_BuildLoginURL(t *testing.T) {
func TestSocialAuthClient_WebCallbackServer(t *testing.T) {
client := &SocialAuthClient{}
expectedState := "xyz"
-
+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
@@ -76,7 +76,7 @@ func TestSocialAuthClient_WebCallbackServer(t *testing.T) {
if err != nil {
t.Fatalf("callback request failed: %v", err)
}
- resp.Body.Close()
+ _ = resp.Body.Close()
select {
case result := <-resultChan:
@@ -86,20 +86,20 @@ func TestSocialAuthClient_WebCallbackServer(t *testing.T) {
case <-ctx.Done():
t.Fatal("timed out waiting for callback")
}
-
+
// Test state mismatch
ctx2, cancel2 := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel2()
redirectURI2, resultChan2, _ := client.startWebCallbackServer(ctx2, "good")
-
+
// Give server a moment to start
time.Sleep(500 * time.Millisecond)
resp2, err := http.Get(redirectURI2 + "?code=abc&state=bad")
if err == nil {
- resp2.Body.Close()
+ _ = resp2.Body.Close()
}
-
+
select {
case result2 := <-resultChan2:
if result2.Error != "state mismatch" {
diff --git a/pkg/llmproxy/auth/kiro/sso_oidc.go b/pkg/llmproxy/auth/kiro/sso_oidc.go
index 2da3eb0cb6..cf55479da3 100644
--- a/pkg/llmproxy/auth/kiro/sso_oidc.go
+++ b/pkg/llmproxy/auth/kiro/sso_oidc.go
@@ -74,10 +74,10 @@ func NewSSOOIDCClient(cfg *config.Config) *SSOOIDCClient {
// RegisterClientResponse from AWS SSO OIDC.
type RegisterClientResponse struct {
- ClientID string `json:"clientId"`
- ClientSecret string `json:"clientSecret"`
- ClientIDIssuedAt int64 `json:"clientIdIssuedAt"`
- ClientSecretExpiresAt int64 `json:"clientSecretExpiresAt"`
+ ClientID string `json:"clientId"`
+ ClientSecret string `json:"clientSecret"`
+ ClientIDIssuedAt int64 `json:"clientIdIssuedAt"`
+ ClientSecretExpiresAt int64 `json:"clientSecretExpiresAt"`
}
// StartDeviceAuthResponse from AWS SSO OIDC.
@@ -859,15 +859,15 @@ func (c *SSOOIDCClient) LoginWithBuilderID(ctx context.Context) (*KiroTokenData,
Email: email,
Region: defaultIDCRegion,
}, nil
- }
- }
+ }
+ }
- // Close browser on timeout for better UX
- if err := browser.CloseBrowser(); err != nil {
- log.Debugf("Failed to close browser on timeout: %v", err)
- }
- return nil, fmt.Errorf("authorization timed out")
- }
+ // Close browser on timeout for better UX
+ if err := browser.CloseBrowser(); err != nil {
+ log.Debugf("Failed to close browser on timeout: %v", err)
+ }
+ return nil, fmt.Errorf("authorization timed out")
+}
// FetchUserEmail retrieves the user's email from AWS SSO OIDC userinfo endpoint.
// Falls back to JWT parsing if userinfo fails.
diff --git a/pkg/llmproxy/auth/kiro/token_extra_test.go b/pkg/llmproxy/auth/kiro/token_extra_test.go
index deb57c1b40..6c8c75ad85 100644
--- a/pkg/llmproxy/auth/kiro/token_extra_test.go
+++ b/pkg/llmproxy/auth/kiro/token_extra_test.go
@@ -43,8 +43,8 @@ func TestLoadFromFile_Errors(t *testing.T) {
}
tempFile, _ := os.CreateTemp("", "invalid-json")
- defer os.Remove(tempFile.Name())
- os.WriteFile(tempFile.Name(), []byte("invalid"), 0600)
+ defer func() { _ = os.Remove(tempFile.Name()) }()
+ _ = os.WriteFile(tempFile.Name(), []byte("invalid"), 0600)
_, err = LoadFromFile(tempFile.Name())
if err == nil {
diff --git a/pkg/llmproxy/auth/synthesizer/config.go b/pkg/llmproxy/auth/synthesizer/config.go
index c4365018de..105369021c 100644
--- a/pkg/llmproxy/auth/synthesizer/config.go
+++ b/pkg/llmproxy/auth/synthesizer/config.go
@@ -11,10 +11,10 @@ import (
"strings"
"time"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
kiroauth "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/kiro"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/cursorstorage"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
log "github.com/sirupsen/logrus"
)
diff --git a/pkg/llmproxy/auth/synthesizer/config_test.go b/pkg/llmproxy/auth/synthesizer/config_test.go
index fdfc6f6f06..e94cda1b35 100644
--- a/pkg/llmproxy/auth/synthesizer/config_test.go
+++ b/pkg/llmproxy/auth/synthesizer/config_test.go
@@ -1,9 +1,9 @@
package synthesizer
import (
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"testing"
"time"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
)
func TestConfigSynthesizer_Synthesize(t *testing.T) {
@@ -13,19 +13,19 @@ func TestConfigSynthesizer_Synthesize(t *testing.T) {
ClaudeKey: []config.ClaudeKey{{APIKey: "k1", Prefix: "p1"}},
GeminiKey: []config.GeminiKey{{APIKey: "g1"}},
},
- Now: time.Now(),
+ Now: time.Now(),
IDGenerator: NewStableIDGenerator(),
}
-
+
auths, err := s.Synthesize(ctx)
if err != nil {
t.Fatalf("Synthesize failed: %v", err)
}
-
+
if len(auths) != 2 {
t.Errorf("expected 2 auth entries, got %d", len(auths))
}
-
+
foundClaude := false
for _, a := range auths {
if a.Provider == "claude" {
@@ -49,21 +49,21 @@ func TestConfigSynthesizer_SynthesizeOpenAICompat(t *testing.T) {
Config: &config.Config{
OpenAICompatibility: []config.OpenAICompatibility{
{
- Name: "provider1",
- BaseURL: "http://base",
+ Name: "provider1",
+ BaseURL: "http://base",
APIKeyEntries: []config.OpenAICompatibilityAPIKey{{APIKey: "k1"}},
},
},
},
- Now: time.Now(),
+ Now: time.Now(),
IDGenerator: NewStableIDGenerator(),
}
-
+
auths, err := s.Synthesize(ctx)
if err != nil {
t.Fatalf("Synthesize failed: %v", err)
}
-
+
if len(auths) != 1 || auths[0].Provider != "provider1" {
t.Errorf("expected 1 auth for provider1, got %v", auths)
}
@@ -89,7 +89,7 @@ func TestConfigSynthesizer_SynthesizeMore(t *testing.T) {
},
VertexCompatAPIKey: []config.VertexCompatKey{{APIKey: "vx1", BaseURL: "http://vx"}},
},
- Now: time.Now(),
+ Now: time.Now(),
IDGenerator: NewStableIDGenerator(),
}
diff --git a/pkg/llmproxy/auth/synthesizer/helpers.go b/pkg/llmproxy/auth/synthesizer/helpers.go
index 577d4f069e..3ee77354c5 100644
--- a/pkg/llmproxy/auth/synthesizer/helpers.go
+++ b/pkg/llmproxy/auth/synthesizer/helpers.go
@@ -7,8 +7,8 @@ import (
"sort"
"strings"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
)
diff --git a/pkg/llmproxy/auth/synthesizer/helpers_test.go b/pkg/llmproxy/auth/synthesizer/helpers_test.go
index 20ebb91072..b21d3e109a 100644
--- a/pkg/llmproxy/auth/synthesizer/helpers_test.go
+++ b/pkg/llmproxy/auth/synthesizer/helpers_test.go
@@ -5,8 +5,8 @@ import (
"strings"
"testing"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
)
diff --git a/pkg/llmproxy/auth/vertex/vertex_credentials_test.go b/pkg/llmproxy/auth/vertex/vertex_credentials_test.go
index b08bc91c49..d69c4311f1 100644
--- a/pkg/llmproxy/auth/vertex/vertex_credentials_test.go
+++ b/pkg/llmproxy/auth/vertex/vertex_credentials_test.go
@@ -9,26 +9,26 @@ import (
func TestVertexCredentialStorage_SaveTokenToFile(t *testing.T) {
tmpDir := t.TempDir()
path := filepath.Join(tmpDir, "vertex-token.json")
-
+
s := &VertexCredentialStorage{
ServiceAccount: map[string]any{
- "project_id": "test-project",
+ "project_id": "test-project",
"client_email": "test@example.com",
},
ProjectID: "test-project",
Email: "test@example.com",
}
-
+
err := s.SaveTokenToFile(path)
if err != nil {
t.Fatalf("SaveTokenToFile failed: %v", err)
}
-
+
data, err := os.ReadFile(path)
if err != nil {
t.Fatalf("failed to read file: %v", err)
}
-
+
if len(data) == 0 {
t.Fatal("saved file is empty")
}
@@ -40,7 +40,7 @@ func TestVertexCredentialStorage_NilChecks(t *testing.T) {
if err == nil {
t.Error("expected error for nil storage")
}
-
+
s = &VertexCredentialStorage{}
err = s.SaveTokenToFile("path")
if err == nil {
diff --git a/pkg/llmproxy/browser/browser.go b/pkg/llmproxy/browser/browser.go
index 3a5aeea7e2..e8551788b3 100644
--- a/pkg/llmproxy/browser/browser.go
+++ b/pkg/llmproxy/browser/browser.go
@@ -39,7 +39,7 @@ func CloseBrowser() error {
if lastBrowserProcess == nil || lastBrowserProcess.Process == nil {
return nil
}
-
+
err := lastBrowserProcess.Process.Kill()
lastBrowserProcess = nil
return err
diff --git a/pkg/llmproxy/cmd/kilo_login.go b/pkg/llmproxy/cmd/kilo_login.go
index 932a898d53..c47035bc26 100644
--- a/pkg/llmproxy/cmd/kilo_login.go
+++ b/pkg/llmproxy/cmd/kilo_login.go
@@ -3,12 +3,17 @@ package cmd
import (
"context"
"fmt"
+ "io"
+ "os"
"strings"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
sdkAuth "github.com/router-for-me/CLIProxyAPI/v6/sdk/auth"
+ log "github.com/sirupsen/logrus"
)
+const kiloInstallHint = "Install: https://www.kiloai.com/download"
+
// DoKiloLogin handles the Kilo device flow using the shared authentication manager.
// It initiates the device-based authentication process for Kilo AI services and saves
// the authentication tokens to the configured auth directory.
@@ -28,7 +33,7 @@ func DoKiloLogin(cfg *config.Config, options *LoginOptions) {
promptFn = func(prompt string) (string, error) {
fmt.Print(prompt)
var value string
- fmt.Scanln(&value)
+ _, _ = fmt.Scanln(&value)
return strings.TrimSpace(value), nil
}
}
@@ -52,3 +57,29 @@ func DoKiloLogin(cfg *config.Config, options *LoginOptions) {
fmt.Println("Kilo authentication successful!")
}
+
+// RunKiloLoginWithRunner runs Kilo login with the given runner. Returns exit code to pass to os.Exit.
+// Writes success/error messages to stdout/stderr. Used for testability.
+func RunKiloLoginWithRunner(runner NativeCLIRunner, stdout, stderr io.Writer) int {
+ if runner == nil {
+ runner = RunNativeCLILogin
+ }
+ if stdout == nil {
+ stdout = os.Stdout
+ }
+ if stderr == nil {
+ stderr = os.Stderr
+ }
+ exitCode, err := runner(KiloSpec)
+ if err != nil {
+ log.Errorf("Kilo login failed: %v", err)
+ _, _ = fmt.Fprintf(stderr, "\n%s\n", kiloInstallHint)
+ return 1
+ }
+ if exitCode != 0 {
+ return exitCode
+ }
+ _, _ = fmt.Fprintln(stdout, "Kilo authentication successful!")
+ _, _ = fmt.Fprintln(stdout, "Add a kilo: block to your config with token-file: \"~/.kilo/oauth-token.json\" and base-url: \"https://api.kiloai.com/v1\"")
+ return 0
+}
diff --git a/pkg/llmproxy/cmd/native_cli.go b/pkg/llmproxy/cmd/native_cli.go
index 0fcb96745b..1c50c36c72 100644
--- a/pkg/llmproxy/cmd/native_cli.go
+++ b/pkg/llmproxy/cmd/native_cli.go
@@ -21,14 +21,14 @@ type NativeCLISpec struct {
var (
// RooSpec defines Roo Code native CLI: roo auth login.
RooSpec = NativeCLISpec{
- Name: "roo",
- Args: []string{"auth", "login"},
+ Name: "roo",
+ Args: []string{"auth", "login"},
FallbackNames: nil,
}
// KiloSpec defines Kilo native CLI: kilo auth or kilocode auth.
KiloSpec = NativeCLISpec{
- Name: "kilo",
- Args: []string{"auth"},
+ Name: "kilo",
+ Args: []string{"auth"},
FallbackNames: []string{"kilocode"},
}
)
diff --git a/pkg/llmproxy/config/config.go b/pkg/llmproxy/config/config.go
index 4d2955633c..35b9ff28a8 100644
--- a/pkg/llmproxy/config/config.go
+++ b/pkg/llmproxy/config/config.go
@@ -2,6 +2,7 @@
// It handles loading and parsing YAML configuration files, and provides structured
// access to application settings including server port, authentication directory,
// debug settings, proxy configuration, and API keys.
+//
//go:generate go run ../../cmd/codegen/main.go
package config
@@ -1895,7 +1896,6 @@ func normalizeCollectionNodeStyles(node *yaml.Node) {
}
}
-
func removeLegacyOpenAICompatAPIKeys(root *yaml.Node) {
if root == nil || root.Kind != yaml.MappingNode {
return
diff --git a/pkg/llmproxy/cursorstorage/cursor_storage.go b/pkg/llmproxy/cursorstorage/cursor_storage.go
index cb865d7337..5a03b51ed3 100644
--- a/pkg/llmproxy/cursorstorage/cursor_storage.go
+++ b/pkg/llmproxy/cursorstorage/cursor_storage.go
@@ -26,7 +26,7 @@ func ReadAccessToken() (string, error) {
if err != nil {
return "", fmt.Errorf("failed to open cursor database: %w", err)
}
- defer db.Close()
+ defer func() { _ = db.Close() }()
var value string
err = db.QueryRow("SELECT value FROM ItemTable WHERE key = ?", "cursor.accessToken").Scan(&value)
diff --git a/pkg/llmproxy/executor/codex_websockets_executor.go b/pkg/llmproxy/executor/codex_websockets_executor.go
index 93bd729c5a..07dd65ca23 100644
--- a/pkg/llmproxy/executor/codex_websockets_executor.go
+++ b/pkg/llmproxy/executor/codex_websockets_executor.go
@@ -86,6 +86,42 @@ type codexWebsocketRead struct {
err error
}
+// enqueueCodexWebsocketRead attempts to send a read result to the channel.
+// If the channel is full and a done signal is sent, it returns without enqueuing.
+// If the channel is full and we have an error, it prioritizes the error by draining and re-sending.
+func enqueueCodexWebsocketRead(ch chan codexWebsocketRead, done <-chan struct{}, read codexWebsocketRead) {
+ if ch == nil {
+ return
+ }
+
+ // Try to send without blocking first
+ select {
+ case <-done:
+ return
+ case ch <- read:
+ return
+ default:
+ }
+
+ // Channel full and done signal not yet sent; check done again
+ select {
+ case <-done:
+ return
+ default:
+ }
+
+ // If we have an error, prioritize it by draining the stale message
+ if read.err != nil {
+ select {
+ case <-done:
+ return
+ case <-ch:
+ // Drained stale message, now send the error
+ ch <- read
+ }
+ }
+}
+
func (s *codexWebsocketSession) setActive(ch chan codexWebsocketRead) {
if s == nil {
return
@@ -1017,36 +1053,6 @@ func closeHTTPResponseBody(resp *http.Response, logPrefix string) {
}
}
-func closeOnContextDone(ctx context.Context, conn *websocket.Conn) chan struct{} {
- done := make(chan struct{})
- if ctx == nil || conn == nil {
- return done
- }
- go func() {
- select {
- case <-done:
- case <-ctx.Done():
- _ = conn.Close()
- }
- }()
- return done
-}
-
-func cancelReadOnContextDone(ctx context.Context, conn *websocket.Conn) chan struct{} {
- done := make(chan struct{})
- if ctx == nil || conn == nil {
- return done
- }
- go func() {
- select {
- case <-done:
- case <-ctx.Done():
- _ = conn.SetReadDeadline(time.Now())
- }
- }()
- return done
-}
-
func executionSessionIDFromOptions(opts cliproxyexecutor.Options) string {
if len(opts.Metadata) == 0 {
return ""
diff --git a/pkg/llmproxy/executor/codex_websockets_executor_backpressure_test.go b/pkg/llmproxy/executor/codex_websockets_executor_backpressure_test.go
new file mode 100644
index 0000000000..70dcdd5fe7
--- /dev/null
+++ b/pkg/llmproxy/executor/codex_websockets_executor_backpressure_test.go
@@ -0,0 +1,39 @@
+package executor
+
+import (
+ "context"
+ "errors"
+ "testing"
+)
+
+func TestEnqueueCodexWebsocketReadPrioritizesErrorUnderBackpressure(t *testing.T) {
+ ch := make(chan codexWebsocketRead, 1)
+ ch <- codexWebsocketRead{msgType: 1, payload: []byte("stale")}
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+
+ wantErr := errors.New("upstream disconnected")
+ enqueueCodexWebsocketRead(ch, ctx.Done(), codexWebsocketRead{err: wantErr})
+
+ got := <-ch
+ if !errors.Is(got.err, wantErr) {
+ t.Fatalf("expected buffered error to be preserved, got err=%v payload=%q", got.err, string(got.payload))
+ }
+}
+
+func TestEnqueueCodexWebsocketReadDoneClosedSkipsEnqueue(t *testing.T) {
+ ch := make(chan codexWebsocketRead, 1)
+ stale := codexWebsocketRead{msgType: 1, payload: []byte("stale")}
+ ch <- stale
+
+ ctx, cancel := context.WithCancel(context.Background())
+ cancel()
+
+ enqueueCodexWebsocketRead(ch, ctx.Done(), codexWebsocketRead{err: errors.New("should not enqueue")})
+
+ got := <-ch
+ if string(got.payload) != string(stale.payload) || got.msgType != stale.msgType || got.err != nil {
+ t.Fatalf("expected channel state unchanged when done closed, got %+v", got)
+ }
+}
diff --git a/pkg/llmproxy/executor/github_copilot_executor.go b/pkg/llmproxy/executor/github_copilot_executor.go
index 3ede5693ae..f942eca3c8 100644
--- a/pkg/llmproxy/executor/github_copilot_executor.go
+++ b/pkg/llmproxy/executor/github_copilot_executor.go
@@ -1232,9 +1232,6 @@ func translateGitHubCopilotResponsesStreamToClaude(line []byte, param *any) []st
return results
}
-// isHTTPSuccess checks if the status code indicates success (2xx).
func isHTTPSuccess(statusCode int) bool {
return statusCode >= 200 && statusCode < 300
}
-
-func (e *GitHubCopilotExecutor) CloseExecutionSession(sessionID string) {}
diff --git a/pkg/llmproxy/executor/kilo_executor.go b/pkg/llmproxy/executor/kilo_executor.go
index 615628905a..82722605d3 100644
--- a/pkg/llmproxy/executor/kilo_executor.go
+++ b/pkg/llmproxy/executor/kilo_executor.go
@@ -142,7 +142,7 @@ func (e *KiloExecutor) Execute(ctx context.Context, auth *cliproxyauth.Auth, req
recordAPIResponseError(ctx, e.cfg, err)
return resp, err
}
- defer httpResp.Body.Close()
+ defer func() { _ = httpResp.Body.Close() }()
recordAPIResponseMetadata(ctx, e.cfg, httpResp.StatusCode, httpResp.Header.Clone())
if httpResp.StatusCode < 200 || httpResp.StatusCode >= 300 {
@@ -247,7 +247,7 @@ func (e *KiloExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth.Aut
if httpResp.StatusCode < 200 || httpResp.StatusCode >= 300 {
b, _ := io.ReadAll(httpResp.Body)
appendAPIResponseChunk(ctx, e.cfg, b)
- httpResp.Body.Close()
+ _ = httpResp.Body.Close()
err = statusErr{code: httpResp.StatusCode, msg: string(b)}
return nil, err
}
@@ -255,7 +255,7 @@ func (e *KiloExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth.Aut
out := make(chan cliproxyexecutor.StreamChunk)
go func() {
defer close(out)
- defer httpResp.Body.Close()
+ defer func() { _ = httpResp.Body.Close() }()
scanner := bufio.NewScanner(httpResp.Body)
scanner.Buffer(nil, 52_428_800)
@@ -377,7 +377,7 @@ func FetchKiloModels(ctx context.Context, auth *cliproxyauth.Auth, cfg *config.C
}
return registry.GetKiloModels()
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
body, err := io.ReadAll(resp.Body)
if err != nil {
diff --git a/pkg/llmproxy/executor/kiro_executor.go b/pkg/llmproxy/executor/kiro_executor.go
index 3f21ff22e4..a6a1796a44 100644
--- a/pkg/llmproxy/executor/kiro_executor.go
+++ b/pkg/llmproxy/executor/kiro_executor.go
@@ -1509,135 +1509,6 @@ func kiroCredentials(auth *cliproxyauth.Auth) (accessToken, profileArn string) {
// - content: the content to search in
// - alreadyInCodeBlock: whether we're already inside a code block from previous chunks
// - alreadyInInlineCode: whether we're already inside inline code from previous chunks
-func findRealThinkingEndTag(content string, alreadyInCodeBlock, alreadyInInlineCode bool) int {
- searchStart := 0
- for {
- endIdx := strings.Index(content[searchStart:], kirocommon.ThinkingEndTag)
- if endIdx < 0 {
- return -1
- }
- endIdx += searchStart // Adjust to absolute position
-
- textBeforeEnd := content[:endIdx]
- textAfterEnd := content[endIdx+len(kirocommon.ThinkingEndTag):]
-
- // Check 1: Is it inside inline code?
- // Count backticks in current content and add state from previous chunks
- backtickCount := strings.Count(textBeforeEnd, "`")
- effectiveInInlineCode := alreadyInInlineCode
- if backtickCount%2 == 1 {
- effectiveInInlineCode = !effectiveInInlineCode
- }
- if effectiveInInlineCode {
- log.Debugf("kiro: found inside inline code at pos %d, skipping", endIdx)
- searchStart = endIdx + len(kirocommon.ThinkingEndTag)
- continue
- }
-
- // Check 2: Is it inside a code block?
- // Count fences in current content and add state from previous chunks
- fenceCount := strings.Count(textBeforeEnd, "```")
- altFenceCount := strings.Count(textBeforeEnd, "~~~")
- effectiveInCodeBlock := alreadyInCodeBlock
- if fenceCount%2 == 1 || altFenceCount%2 == 1 {
- effectiveInCodeBlock = !effectiveInCodeBlock
- }
- if effectiveInCodeBlock {
- log.Debugf("kiro: found inside code block at pos %d, skipping", endIdx)
- searchStart = endIdx + len(kirocommon.ThinkingEndTag)
- continue
- }
-
- // Check 3: Real tags are usually preceded by newline or at start
- // and followed by newline or at end. Check the format.
- charBeforeTag := byte(0)
- if endIdx > 0 {
- charBeforeTag = content[endIdx-1]
- }
- charAfterTag := byte(0)
- if len(textAfterEnd) > 0 {
- charAfterTag = textAfterEnd[0]
- }
-
- // Real end tag format: preceded by newline OR end of sentence (. ! ?)
- // and followed by newline OR end of content
- isPrecededByNewlineOrSentenceEnd := charBeforeTag == '\n' || charBeforeTag == '.' ||
- charBeforeTag == '!' || charBeforeTag == '?' || charBeforeTag == 0
- isFollowedByNewlineOrEnd := charAfterTag == '\n' || charAfterTag == 0
-
- // If the tag has proper formatting (newline before/after), it's likely real
- if isPrecededByNewlineOrSentenceEnd && isFollowedByNewlineOrEnd {
- log.Debugf("kiro: found properly formatted at pos %d", endIdx)
- return endIdx
- }
-
- // Check 4: Is the tag preceded by discussion keywords on the same line?
- lastNewlineIdx := strings.LastIndex(textBeforeEnd, "\n")
- lineBeforeTag := textBeforeEnd
- if lastNewlineIdx >= 0 {
- lineBeforeTag = textBeforeEnd[lastNewlineIdx+1:]
- }
- lineBeforeTagLower := strings.ToLower(lineBeforeTag)
-
- // Discussion patterns - if found, this is likely discussion text
- discussionPatterns := []string{
- "标签", "返回", "输出", "包含", "使用", "解析", "转换", "生成", // Chinese
- "tag", "return", "output", "contain", "use", "parse", "emit", "convert", "generate", // English
- "", // discussing both tags together
- "``", // explicitly in inline code
- }
- isDiscussion := false
- for _, pattern := range discussionPatterns {
- if strings.Contains(lineBeforeTagLower, pattern) {
- isDiscussion = true
- break
- }
- }
- if isDiscussion {
- log.Debugf("kiro: found after discussion text at pos %d, skipping", endIdx)
- searchStart = endIdx + len(kirocommon.ThinkingEndTag)
- continue
- }
-
- // Check 5: Is there text immediately after on the same line?
- // Real end tags don't have text immediately after on the same line
- if len(textAfterEnd) > 0 && charAfterTag != '\n' && charAfterTag != 0 {
- // Find the next newline
- nextNewline := strings.Index(textAfterEnd, "\n")
- var textOnSameLine string
- if nextNewline >= 0 {
- textOnSameLine = textAfterEnd[:nextNewline]
- } else {
- textOnSameLine = textAfterEnd
- }
- // If there's non-whitespace text on the same line after the tag, it's discussion
- if strings.TrimSpace(textOnSameLine) != "" {
- log.Debugf("kiro: found with text after on same line at pos %d, skipping", endIdx)
- searchStart = endIdx + len(kirocommon.ThinkingEndTag)
- continue
- }
- }
-
- // Check 6: Is there another tag after this ?
- if strings.Contains(textAfterEnd, kirocommon.ThinkingStartTag) {
- nextStartIdx := strings.Index(textAfterEnd, kirocommon.ThinkingStartTag)
- textBeforeNextStart := textAfterEnd[:nextStartIdx]
- nextBacktickCount := strings.Count(textBeforeNextStart, "`")
- nextFenceCount := strings.Count(textBeforeNextStart, "```")
- nextAltFenceCount := strings.Count(textBeforeNextStart, "~~~")
-
- // If the next is NOT in code, then this is discussion text
- if nextBacktickCount%2 == 0 && nextFenceCount%2 == 0 && nextAltFenceCount%2 == 0 {
- log.Debugf("kiro: found followed by at pos %d, likely discussion text, skipping", endIdx)
- searchStart = endIdx + len(kirocommon.ThinkingEndTag)
- continue
- }
- }
-
- // This looks like a real end tag
- return endIdx
- }
-}
// determineAgenticMode determines if the model is an agentic or chat-only variant.
// Returns (isAgentic, isChatOnly) based on model name suffixes.
@@ -1654,25 +1525,6 @@ func determineAgenticMode(model string) (isAgentic, isChatOnly bool) {
// 1. Check auth_method field: "builder-id" or "idc"
// 2. Check auth_type field: "aws_sso_oidc" (from kiro-cli tokens)
// 3. Check for client_id + client_secret presence (AWS SSO OIDC signature)
-func getEffectiveProfileArn(auth *cliproxyauth.Auth, profileArn string) string {
- if auth != nil && auth.Metadata != nil {
- // Check 1: auth_method field (from CLIProxyAPI tokens)
- if authMethod, ok := auth.Metadata["auth_method"].(string); ok && (authMethod == "builder-id" || authMethod == "idc") {
- return "" // AWS SSO OIDC - don't include profileArn
- }
- // Check 2: auth_type field (from kiro-cli tokens)
- if authType, ok := auth.Metadata["auth_type"].(string); ok && authType == "aws_sso_oidc" {
- return "" // AWS SSO OIDC - don't include profileArn
- }
- // Check 3: client_id + client_secret presence (AWS SSO OIDC signature)
- _, hasClientID := auth.Metadata["client_id"].(string)
- _, hasClientSecret := auth.Metadata["client_secret"].(string)
- if hasClientID && hasClientSecret {
- return "" // AWS SSO OIDC - don't include profileArn
- }
- }
- return profileArn
-}
// getEffectiveProfileArnWithWarning determines if profileArn should be included based on auth method,
// and logs a warning if profileArn is missing for non-builder-id auth.
@@ -4197,7 +4049,7 @@ func fetchToolDescription(ctx context.Context, mcpEndpoint, authToken string, ht
log.Warnf("kiro/websearch: tools/list request failed: %v", err)
return
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
body, err := io.ReadAll(resp.Body)
if err != nil || resp.StatusCode != http.StatusOK {
@@ -4328,7 +4180,7 @@ func (h *webSearchHandler) callMcpAPI(request *kiroclaude.McpRequest) (*kiroclau
}
body, err := io.ReadAll(resp.Body)
- resp.Body.Close()
+ _ = resp.Body.Close()
if err != nil {
lastErr = fmt.Errorf("failed to read MCP response: %w", err)
continue // read error → retry
diff --git a/pkg/llmproxy/executor/token_helpers_test.go b/pkg/llmproxy/executor/token_helpers_test.go
index 8d27e3a1fd..440bf005e8 100644
--- a/pkg/llmproxy/executor/token_helpers_test.go
+++ b/pkg/llmproxy/executor/token_helpers_test.go
@@ -6,7 +6,7 @@ import (
func TestTokenizerForModel(t *testing.T) {
cases := []struct {
- model string
+ model string
wantAdj float64
}{
{"gpt-4", 1.0},
@@ -59,7 +59,7 @@ func TestEstimateImageTokens(t *testing.T) {
want int
}{
{0, 0, 1000},
- {100, 100, 85}, // 10000/750 = 13.3 -> min 85
+ {100, 100, 85}, // 10000/750 = 13.3 -> min 85
{1000, 1000, 1333}, // 1000000/750 = 1333
{2000, 2000, 1590}, // max 1590
}
diff --git a/pkg/llmproxy/runtime/executor/codex_websockets_executor.go b/pkg/llmproxy/runtime/executor/codex_websockets_executor.go
index 93bd729c5a..07dd65ca23 100644
--- a/pkg/llmproxy/runtime/executor/codex_websockets_executor.go
+++ b/pkg/llmproxy/runtime/executor/codex_websockets_executor.go
@@ -86,6 +86,42 @@ type codexWebsocketRead struct {
err error
}
+// enqueueCodexWebsocketRead attempts to send a read result to the channel.
+// If the channel is full and a done signal is sent, it returns without enqueuing.
+// If the channel is full and we have an error, it prioritizes the error by draining and re-sending.
+func enqueueCodexWebsocketRead(ch chan codexWebsocketRead, done <-chan struct{}, read codexWebsocketRead) {
+ if ch == nil {
+ return
+ }
+
+ // Try to send without blocking first
+ select {
+ case <-done:
+ return
+ case ch <- read:
+ return
+ default:
+ }
+
+ // Channel full and done signal not yet sent; check done again
+ select {
+ case <-done:
+ return
+ default:
+ }
+
+ // If we have an error, prioritize it by draining the stale message
+ if read.err != nil {
+ select {
+ case <-done:
+ return
+ case <-ch:
+ // Drained stale message, now send the error
+ ch <- read
+ }
+ }
+}
+
func (s *codexWebsocketSession) setActive(ch chan codexWebsocketRead) {
if s == nil {
return
@@ -1017,36 +1053,6 @@ func closeHTTPResponseBody(resp *http.Response, logPrefix string) {
}
}
-func closeOnContextDone(ctx context.Context, conn *websocket.Conn) chan struct{} {
- done := make(chan struct{})
- if ctx == nil || conn == nil {
- return done
- }
- go func() {
- select {
- case <-done:
- case <-ctx.Done():
- _ = conn.Close()
- }
- }()
- return done
-}
-
-func cancelReadOnContextDone(ctx context.Context, conn *websocket.Conn) chan struct{} {
- done := make(chan struct{})
- if ctx == nil || conn == nil {
- return done
- }
- go func() {
- select {
- case <-done:
- case <-ctx.Done():
- _ = conn.SetReadDeadline(time.Now())
- }
- }()
- return done
-}
-
func executionSessionIDFromOptions(opts cliproxyexecutor.Options) string {
if len(opts.Metadata) == 0 {
return ""
diff --git a/pkg/llmproxy/runtime/executor/codex_websockets_executor_backpressure_test.go b/pkg/llmproxy/runtime/executor/codex_websockets_executor_backpressure_test.go
new file mode 100644
index 0000000000..70dcdd5fe7
--- /dev/null
+++ b/pkg/llmproxy/runtime/executor/codex_websockets_executor_backpressure_test.go
@@ -0,0 +1,39 @@
+package executor
+
+import (
+ "context"
+ "errors"
+ "testing"
+)
+
+func TestEnqueueCodexWebsocketReadPrioritizesErrorUnderBackpressure(t *testing.T) {
+ ch := make(chan codexWebsocketRead, 1)
+ ch <- codexWebsocketRead{msgType: 1, payload: []byte("stale")}
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+
+ wantErr := errors.New("upstream disconnected")
+ enqueueCodexWebsocketRead(ch, ctx.Done(), codexWebsocketRead{err: wantErr})
+
+ got := <-ch
+ if !errors.Is(got.err, wantErr) {
+ t.Fatalf("expected buffered error to be preserved, got err=%v payload=%q", got.err, string(got.payload))
+ }
+}
+
+func TestEnqueueCodexWebsocketReadDoneClosedSkipsEnqueue(t *testing.T) {
+ ch := make(chan codexWebsocketRead, 1)
+ stale := codexWebsocketRead{msgType: 1, payload: []byte("stale")}
+ ch <- stale
+
+ ctx, cancel := context.WithCancel(context.Background())
+ cancel()
+
+ enqueueCodexWebsocketRead(ch, ctx.Done(), codexWebsocketRead{err: errors.New("should not enqueue")})
+
+ got := <-ch
+ if string(got.payload) != string(stale.payload) || got.msgType != stale.msgType || got.err != nil {
+ t.Fatalf("expected channel state unchanged when done closed, got %+v", got)
+ }
+}
diff --git a/pkg/llmproxy/runtime/executor/github_copilot_executor.go b/pkg/llmproxy/runtime/executor/github_copilot_executor.go
index f990383ba1..07c321efac 100644
--- a/pkg/llmproxy/runtime/executor/github_copilot_executor.go
+++ b/pkg/llmproxy/runtime/executor/github_copilot_executor.go
@@ -866,373 +866,3 @@ func normalizeGitHubCopilotResponsesTools(body []byte) []byte {
body, _ = sjson.SetBytes(body, "tool_choice", "auto")
return body
}
-
-func collectTextFromNode(node gjson.Result) string {
- if !node.Exists() {
- return ""
- }
- if node.Type == gjson.String {
- return node.String()
- }
- if node.IsArray() {
- var parts []string
- for _, item := range node.Array() {
- if item.Type == gjson.String {
- if text := item.String(); text != "" {
- parts = append(parts, text)
- }
- continue
- }
- if text := item.Get("text").String(); text != "" {
- parts = append(parts, text)
- continue
- }
- if nested := collectTextFromNode(item.Get("content")); nested != "" {
- parts = append(parts, nested)
- }
- }
- return strings.Join(parts, "\n")
- }
- if node.Type == gjson.JSON {
- if text := node.Get("text").String(); text != "" {
- return text
- }
- if nested := collectTextFromNode(node.Get("content")); nested != "" {
- return nested
- }
- return node.Raw
- }
- return node.String()
-}
-
-type githubCopilotResponsesStreamToolState struct {
- Index int
- ID string
- Name string
-}
-
-type githubCopilotResponsesStreamState struct {
- MessageStarted bool
- MessageStopSent bool
- TextBlockStarted bool
- TextBlockIndex int
- NextContentIndex int
- HasToolUse bool
- ReasoningActive bool
- ReasoningIndex int
- OutputIndexToTool map[int]*githubCopilotResponsesStreamToolState
- ItemIDToTool map[string]*githubCopilotResponsesStreamToolState
-}
-
-func translateGitHubCopilotResponsesNonStreamToClaude(data []byte) string {
- root := gjson.ParseBytes(data)
- out := `{"id":"","type":"message","role":"assistant","model":"","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":0,"output_tokens":0}}`
- out, _ = sjson.Set(out, "id", root.Get("id").String())
- out, _ = sjson.Set(out, "model", root.Get("model").String())
-
- hasToolUse := false
- if output := root.Get("output"); output.Exists() && output.IsArray() {
- for _, item := range output.Array() {
- switch item.Get("type").String() {
- case "reasoning":
- var thinkingText string
- if summary := item.Get("summary"); summary.Exists() && summary.IsArray() {
- var parts []string
- for _, part := range summary.Array() {
- if txt := part.Get("text").String(); txt != "" {
- parts = append(parts, txt)
- }
- }
- thinkingText = strings.Join(parts, "")
- }
- if thinkingText == "" {
- if content := item.Get("content"); content.Exists() && content.IsArray() {
- var parts []string
- for _, part := range content.Array() {
- if txt := part.Get("text").String(); txt != "" {
- parts = append(parts, txt)
- }
- }
- thinkingText = strings.Join(parts, "")
- }
- }
- if thinkingText != "" {
- block := `{"type":"thinking","thinking":""}`
- block, _ = sjson.Set(block, "thinking", thinkingText)
- out, _ = sjson.SetRaw(out, "content.-1", block)
- }
- case "message":
- if content := item.Get("content"); content.Exists() && content.IsArray() {
- for _, part := range content.Array() {
- if part.Get("type").String() != "output_text" {
- continue
- }
- text := part.Get("text").String()
- if text == "" {
- continue
- }
- block := `{"type":"text","text":""}`
- block, _ = sjson.Set(block, "text", text)
- out, _ = sjson.SetRaw(out, "content.-1", block)
- }
- }
- case "function_call":
- hasToolUse = true
- toolUse := `{"type":"tool_use","id":"","name":"","input":{}}`
- toolID := item.Get("call_id").String()
- if toolID == "" {
- toolID = item.Get("id").String()
- }
- toolUse, _ = sjson.Set(toolUse, "id", toolID)
- toolUse, _ = sjson.Set(toolUse, "name", item.Get("name").String())
- if args := item.Get("arguments").String(); args != "" && gjson.Valid(args) {
- argObj := gjson.Parse(args)
- if argObj.IsObject() {
- toolUse, _ = sjson.SetRaw(toolUse, "input", argObj.Raw)
- }
- }
- out, _ = sjson.SetRaw(out, "content.-1", toolUse)
- }
- }
- }
-
- inputTokens := root.Get("usage.input_tokens").Int()
- outputTokens := root.Get("usage.output_tokens").Int()
- cachedTokens := root.Get("usage.input_tokens_details.cached_tokens").Int()
- if cachedTokens > 0 && inputTokens >= cachedTokens {
- inputTokens -= cachedTokens
- }
- out, _ = sjson.Set(out, "usage.input_tokens", inputTokens)
- out, _ = sjson.Set(out, "usage.output_tokens", outputTokens)
- if cachedTokens > 0 {
- out, _ = sjson.Set(out, "usage.cache_read_input_tokens", cachedTokens)
- }
- if hasToolUse {
- out, _ = sjson.Set(out, "stop_reason", "tool_use")
- } else if sr := root.Get("stop_reason").String(); sr == "max_tokens" || sr == "stop" {
- out, _ = sjson.Set(out, "stop_reason", sr)
- } else {
- out, _ = sjson.Set(out, "stop_reason", "end_turn")
- }
- return out
-}
-
-func translateGitHubCopilotResponsesStreamToClaude(line []byte, param *any) []string {
- if *param == nil {
- *param = &githubCopilotResponsesStreamState{
- TextBlockIndex: -1,
- OutputIndexToTool: make(map[int]*githubCopilotResponsesStreamToolState),
- ItemIDToTool: make(map[string]*githubCopilotResponsesStreamToolState),
- }
- }
- state := (*param).(*githubCopilotResponsesStreamState)
-
- if !bytes.HasPrefix(line, dataTag) {
- return nil
- }
- payload := bytes.TrimSpace(line[5:])
- if bytes.Equal(payload, []byte("[DONE]")) {
- return nil
- }
- if !gjson.ValidBytes(payload) {
- return nil
- }
-
- event := gjson.GetBytes(payload, "type").String()
- results := make([]string, 0, 4)
- ensureMessageStart := func() {
- if state.MessageStarted {
- return
- }
- messageStart := `{"type":"message_start","message":{"id":"","type":"message","role":"assistant","model":"","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":0,"output_tokens":0}}}`
- messageStart, _ = sjson.Set(messageStart, "message.id", gjson.GetBytes(payload, "response.id").String())
- messageStart, _ = sjson.Set(messageStart, "message.model", gjson.GetBytes(payload, "response.model").String())
- results = append(results, "event: message_start\ndata: "+messageStart+"\n\n")
- state.MessageStarted = true
- }
- startTextBlockIfNeeded := func() {
- if state.TextBlockStarted {
- return
- }
- if state.TextBlockIndex < 0 {
- state.TextBlockIndex = state.NextContentIndex
- state.NextContentIndex++
- }
- contentBlockStart := `{"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}`
- contentBlockStart, _ = sjson.Set(contentBlockStart, "index", state.TextBlockIndex)
- results = append(results, "event: content_block_start\ndata: "+contentBlockStart+"\n\n")
- state.TextBlockStarted = true
- }
- stopTextBlockIfNeeded := func() {
- if !state.TextBlockStarted {
- return
- }
- contentBlockStop := `{"type":"content_block_stop","index":0}`
- contentBlockStop, _ = sjson.Set(contentBlockStop, "index", state.TextBlockIndex)
- results = append(results, "event: content_block_stop\ndata: "+contentBlockStop+"\n\n")
- state.TextBlockStarted = false
- state.TextBlockIndex = -1
- }
- resolveTool := func(itemID string, outputIndex int) *githubCopilotResponsesStreamToolState {
- if itemID != "" {
- if tool, ok := state.ItemIDToTool[itemID]; ok {
- return tool
- }
- }
- if tool, ok := state.OutputIndexToTool[outputIndex]; ok {
- if itemID != "" {
- state.ItemIDToTool[itemID] = tool
- }
- return tool
- }
- return nil
- }
-
- switch event {
- case "response.created":
- ensureMessageStart()
- case "response.output_text.delta":
- ensureMessageStart()
- startTextBlockIfNeeded()
- delta := gjson.GetBytes(payload, "delta").String()
- if delta != "" {
- contentDelta := `{"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":""}}`
- contentDelta, _ = sjson.Set(contentDelta, "index", state.TextBlockIndex)
- contentDelta, _ = sjson.Set(contentDelta, "delta.text", delta)
- results = append(results, "event: content_block_delta\ndata: "+contentDelta+"\n\n")
- }
- case "response.reasoning_summary_part.added":
- ensureMessageStart()
- state.ReasoningActive = true
- state.ReasoningIndex = state.NextContentIndex
- state.NextContentIndex++
- thinkingStart := `{"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":""}}`
- thinkingStart, _ = sjson.Set(thinkingStart, "index", state.ReasoningIndex)
- results = append(results, "event: content_block_start\ndata: "+thinkingStart+"\n\n")
- case "response.reasoning_summary_text.delta":
- if state.ReasoningActive {
- delta := gjson.GetBytes(payload, "delta").String()
- if delta != "" {
- thinkingDelta := `{"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":""}}`
- thinkingDelta, _ = sjson.Set(thinkingDelta, "index", state.ReasoningIndex)
- thinkingDelta, _ = sjson.Set(thinkingDelta, "delta.thinking", delta)
- results = append(results, "event: content_block_delta\ndata: "+thinkingDelta+"\n\n")
- }
- }
- case "response.reasoning_summary_part.done":
- if state.ReasoningActive {
- thinkingStop := `{"type":"content_block_stop","index":0}`
- thinkingStop, _ = sjson.Set(thinkingStop, "index", state.ReasoningIndex)
- results = append(results, "event: content_block_stop\ndata: "+thinkingStop+"\n\n")
- state.ReasoningActive = false
- }
- case "response.output_item.added":
- if gjson.GetBytes(payload, "item.type").String() != "function_call" {
- break
- }
- ensureMessageStart()
- stopTextBlockIfNeeded()
- state.HasToolUse = true
- tool := &githubCopilotResponsesStreamToolState{
- Index: state.NextContentIndex,
- ID: gjson.GetBytes(payload, "item.call_id").String(),
- Name: gjson.GetBytes(payload, "item.name").String(),
- }
- if tool.ID == "" {
- tool.ID = gjson.GetBytes(payload, "item.id").String()
- }
- state.NextContentIndex++
- outputIndex := int(gjson.GetBytes(payload, "output_index").Int())
- state.OutputIndexToTool[outputIndex] = tool
- if itemID := gjson.GetBytes(payload, "item.id").String(); itemID != "" {
- state.ItemIDToTool[itemID] = tool
- }
- contentBlockStart := `{"type":"content_block_start","index":0,"content_block":{"type":"tool_use","id":"","name":"","input":{}}}`
- contentBlockStart, _ = sjson.Set(contentBlockStart, "index", tool.Index)
- contentBlockStart, _ = sjson.Set(contentBlockStart, "content_block.id", tool.ID)
- contentBlockStart, _ = sjson.Set(contentBlockStart, "content_block.name", tool.Name)
- results = append(results, "event: content_block_start\ndata: "+contentBlockStart+"\n\n")
- case "response.output_item.delta":
- item := gjson.GetBytes(payload, "item")
- if item.Get("type").String() != "function_call" {
- break
- }
- tool := resolveTool(item.Get("id").String(), int(gjson.GetBytes(payload, "output_index").Int()))
- if tool == nil {
- break
- }
- partial := gjson.GetBytes(payload, "delta").String()
- if partial == "" {
- partial = item.Get("arguments").String()
- }
- if partial == "" {
- break
- }
- inputDelta := `{"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""}}`
- inputDelta, _ = sjson.Set(inputDelta, "index", tool.Index)
- inputDelta, _ = sjson.Set(inputDelta, "delta.partial_json", partial)
- results = append(results, "event: content_block_delta\ndata: "+inputDelta+"\n\n")
- case "response.function_call_arguments.delta":
- // Copilot sends tool call arguments via this event type (not response.output_item.delta).
- // Data format: {"delta":"...", "item_id":"...", "output_index":N, ...}
- itemID := gjson.GetBytes(payload, "item_id").String()
- outputIndex := int(gjson.GetBytes(payload, "output_index").Int())
- tool := resolveTool(itemID, outputIndex)
- if tool == nil {
- break
- }
- partial := gjson.GetBytes(payload, "delta").String()
- if partial == "" {
- break
- }
- inputDelta := `{"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""}}`
- inputDelta, _ = sjson.Set(inputDelta, "index", tool.Index)
- inputDelta, _ = sjson.Set(inputDelta, "delta.partial_json", partial)
- results = append(results, "event: content_block_delta\ndata: "+inputDelta+"\n\n")
- case "response.output_item.done":
- if gjson.GetBytes(payload, "item.type").String() != "function_call" {
- break
- }
- tool := resolveTool(gjson.GetBytes(payload, "item.id").String(), int(gjson.GetBytes(payload, "output_index").Int()))
- if tool == nil {
- break
- }
- contentBlockStop := `{"type":"content_block_stop","index":0}`
- contentBlockStop, _ = sjson.Set(contentBlockStop, "index", tool.Index)
- results = append(results, "event: content_block_stop\ndata: "+contentBlockStop+"\n\n")
- case "response.completed":
- ensureMessageStart()
- stopTextBlockIfNeeded()
- if !state.MessageStopSent {
- stopReason := "end_turn"
- if state.HasToolUse {
- stopReason = "tool_use"
- } else if sr := gjson.GetBytes(payload, "response.stop_reason").String(); sr == "max_tokens" || sr == "stop" {
- stopReason = sr
- }
- inputTokens := gjson.GetBytes(payload, "response.usage.input_tokens").Int()
- outputTokens := gjson.GetBytes(payload, "response.usage.output_tokens").Int()
- cachedTokens := gjson.GetBytes(payload, "response.usage.input_tokens_details.cached_tokens").Int()
- if cachedTokens > 0 && inputTokens >= cachedTokens {
- inputTokens -= cachedTokens
- }
- messageDelta := `{"type":"message_delta","delta":{"stop_reason":"","stop_sequence":null},"usage":{"input_tokens":0,"output_tokens":0}}`
- messageDelta, _ = sjson.Set(messageDelta, "delta.stop_reason", stopReason)
- messageDelta, _ = sjson.Set(messageDelta, "usage.input_tokens", inputTokens)
- messageDelta, _ = sjson.Set(messageDelta, "usage.output_tokens", outputTokens)
- if cachedTokens > 0 {
- messageDelta, _ = sjson.Set(messageDelta, "usage.cache_read_input_tokens", cachedTokens)
- }
- results = append(results, "event: message_delta\ndata: "+messageDelta+"\n\n")
- results = append(results, "event: message_stop\ndata: {\"type\":\"message_stop\"}\n\n")
- state.MessageStopSent = true
- }
- }
-
- return results
-}
-
-// isHTTPSuccess checks if the status code indicates success (2xx).
-func isHTTPSuccess(statusCode int) bool {
- return statusCode >= 200 && statusCode < 300
-}
diff --git a/pkg/llmproxy/runtime/executor/kilo_executor.go b/pkg/llmproxy/runtime/executor/kilo_executor.go
index 841e8ba7a0..314286cf6a 100644
--- a/pkg/llmproxy/runtime/executor/kilo_executor.go
+++ b/pkg/llmproxy/runtime/executor/kilo_executor.go
@@ -142,7 +142,7 @@ func (e *KiloExecutor) Execute(ctx context.Context, auth *cliproxyauth.Auth, req
recordAPIResponseError(ctx, e.cfg, err)
return resp, err
}
- defer httpResp.Body.Close()
+ defer func() { _ = httpResp.Body.Close() }()
recordAPIResponseMetadata(ctx, e.cfg, httpResp.StatusCode, httpResp.Header.Clone())
if httpResp.StatusCode < 200 || httpResp.StatusCode >= 300 {
@@ -247,7 +247,7 @@ func (e *KiloExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth.Aut
if httpResp.StatusCode < 200 || httpResp.StatusCode >= 300 {
b, _ := io.ReadAll(httpResp.Body)
appendAPIResponseChunk(ctx, e.cfg, b)
- httpResp.Body.Close()
+ _ = httpResp.Body.Close()
err = statusErr{code: httpResp.StatusCode, msg: string(b)}
return nil, err
}
@@ -255,7 +255,7 @@ func (e *KiloExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth.Aut
out := make(chan cliproxyexecutor.StreamChunk)
go func() {
defer close(out)
- defer httpResp.Body.Close()
+ defer func() { _ = httpResp.Body.Close() }()
scanner := bufio.NewScanner(httpResp.Body)
scanner.Buffer(nil, 52_428_800)
@@ -377,7 +377,7 @@ func FetchKiloModels(ctx context.Context, auth *cliproxyauth.Auth, cfg *config.C
}
return registry.GetKiloModels()
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
body, err := io.ReadAll(resp.Body)
if err != nil {
diff --git a/pkg/llmproxy/runtime/executor/kiro_executor.go b/pkg/llmproxy/runtime/executor/kiro_executor.go
index a8ce2e47e5..552d521354 100644
--- a/pkg/llmproxy/runtime/executor/kiro_executor.go
+++ b/pkg/llmproxy/runtime/executor/kiro_executor.go
@@ -1509,135 +1509,6 @@ func kiroCredentials(auth *cliproxyauth.Auth) (accessToken, profileArn string) {
// - content: the content to search in
// - alreadyInCodeBlock: whether we're already inside a code block from previous chunks
// - alreadyInInlineCode: whether we're already inside inline code from previous chunks
-func findRealThinkingEndTag(content string, alreadyInCodeBlock, alreadyInInlineCode bool) int {
- searchStart := 0
- for {
- endIdx := strings.Index(content[searchStart:], kirocommon.ThinkingEndTag)
- if endIdx < 0 {
- return -1
- }
- endIdx += searchStart // Adjust to absolute position
-
- textBeforeEnd := content[:endIdx]
- textAfterEnd := content[endIdx+len(kirocommon.ThinkingEndTag):]
-
- // Check 1: Is it inside inline code?
- // Count backticks in current content and add state from previous chunks
- backtickCount := strings.Count(textBeforeEnd, "`")
- effectiveInInlineCode := alreadyInInlineCode
- if backtickCount%2 == 1 {
- effectiveInInlineCode = !effectiveInInlineCode
- }
- if effectiveInInlineCode {
- log.Debugf("kiro: found inside inline code at pos %d, skipping", endIdx)
- searchStart = endIdx + len(kirocommon.ThinkingEndTag)
- continue
- }
-
- // Check 2: Is it inside a code block?
- // Count fences in current content and add state from previous chunks
- fenceCount := strings.Count(textBeforeEnd, "```")
- altFenceCount := strings.Count(textBeforeEnd, "~~~")
- effectiveInCodeBlock := alreadyInCodeBlock
- if fenceCount%2 == 1 || altFenceCount%2 == 1 {
- effectiveInCodeBlock = !effectiveInCodeBlock
- }
- if effectiveInCodeBlock {
- log.Debugf("kiro: found inside code block at pos %d, skipping", endIdx)
- searchStart = endIdx + len(kirocommon.ThinkingEndTag)
- continue
- }
-
- // Check 3: Real tags are usually preceded by newline or at start
- // and followed by newline or at end. Check the format.
- charBeforeTag := byte(0)
- if endIdx > 0 {
- charBeforeTag = content[endIdx-1]
- }
- charAfterTag := byte(0)
- if len(textAfterEnd) > 0 {
- charAfterTag = textAfterEnd[0]
- }
-
- // Real end tag format: preceded by newline OR end of sentence (. ! ?)
- // and followed by newline OR end of content
- isPrecededByNewlineOrSentenceEnd := charBeforeTag == '\n' || charBeforeTag == '.' ||
- charBeforeTag == '!' || charBeforeTag == '?' || charBeforeTag == 0
- isFollowedByNewlineOrEnd := charAfterTag == '\n' || charAfterTag == 0
-
- // If the tag has proper formatting (newline before/after), it's likely real
- if isPrecededByNewlineOrSentenceEnd && isFollowedByNewlineOrEnd {
- log.Debugf("kiro: found properly formatted at pos %d", endIdx)
- return endIdx
- }
-
- // Check 4: Is the tag preceded by discussion keywords on the same line?
- lastNewlineIdx := strings.LastIndex(textBeforeEnd, "\n")
- lineBeforeTag := textBeforeEnd
- if lastNewlineIdx >= 0 {
- lineBeforeTag = textBeforeEnd[lastNewlineIdx+1:]
- }
- lineBeforeTagLower := strings.ToLower(lineBeforeTag)
-
- // Discussion patterns - if found, this is likely discussion text
- discussionPatterns := []string{
- "标签", "返回", "输出", "包含", "使用", "解析", "转换", "生成", // Chinese
- "tag", "return", "output", "contain", "use", "parse", "emit", "convert", "generate", // English
- "", // discussing both tags together
- "``", // explicitly in inline code
- }
- isDiscussion := false
- for _, pattern := range discussionPatterns {
- if strings.Contains(lineBeforeTagLower, pattern) {
- isDiscussion = true
- break
- }
- }
- if isDiscussion {
- log.Debugf("kiro: found after discussion text at pos %d, skipping", endIdx)
- searchStart = endIdx + len(kirocommon.ThinkingEndTag)
- continue
- }
-
- // Check 5: Is there text immediately after on the same line?
- // Real end tags don't have text immediately after on the same line
- if len(textAfterEnd) > 0 && charAfterTag != '\n' && charAfterTag != 0 {
- // Find the next newline
- nextNewline := strings.Index(textAfterEnd, "\n")
- var textOnSameLine string
- if nextNewline >= 0 {
- textOnSameLine = textAfterEnd[:nextNewline]
- } else {
- textOnSameLine = textAfterEnd
- }
- // If there's non-whitespace text on the same line after the tag, it's discussion
- if strings.TrimSpace(textOnSameLine) != "" {
- log.Debugf("kiro: found with text after on same line at pos %d, skipping", endIdx)
- searchStart = endIdx + len(kirocommon.ThinkingEndTag)
- continue
- }
- }
-
- // Check 6: Is there another tag after this ?
- if strings.Contains(textAfterEnd, kirocommon.ThinkingStartTag) {
- nextStartIdx := strings.Index(textAfterEnd, kirocommon.ThinkingStartTag)
- textBeforeNextStart := textAfterEnd[:nextStartIdx]
- nextBacktickCount := strings.Count(textBeforeNextStart, "`")
- nextFenceCount := strings.Count(textBeforeNextStart, "```")
- nextAltFenceCount := strings.Count(textBeforeNextStart, "~~~")
-
- // If the next is NOT in code, then this is discussion text
- if nextBacktickCount%2 == 0 && nextFenceCount%2 == 0 && nextAltFenceCount%2 == 0 {
- log.Debugf("kiro: found followed by at pos %d, likely discussion text, skipping", endIdx)
- searchStart = endIdx + len(kirocommon.ThinkingEndTag)
- continue
- }
- }
-
- // This looks like a real end tag
- return endIdx
- }
-}
// determineAgenticMode determines if the model is an agentic or chat-only variant.
// Returns (isAgentic, isChatOnly) based on model name suffixes.
@@ -1654,3150 +1525,3 @@ func determineAgenticMode(model string) (isAgentic, isChatOnly bool) {
// 1. Check auth_method field: "builder-id" or "idc"
// 2. Check auth_type field: "aws_sso_oidc" (from kiro-cli tokens)
// 3. Check for client_id + client_secret presence (AWS SSO OIDC signature)
-func getEffectiveProfileArn(auth *cliproxyauth.Auth, profileArn string) string {
- if auth != nil && auth.Metadata != nil {
- // Check 1: auth_method field (from CLIProxyAPI tokens)
- if authMethod, ok := auth.Metadata["auth_method"].(string); ok && (authMethod == "builder-id" || authMethod == "idc") {
- return "" // AWS SSO OIDC - don't include profileArn
- }
- // Check 2: auth_type field (from kiro-cli tokens)
- if authType, ok := auth.Metadata["auth_type"].(string); ok && authType == "aws_sso_oidc" {
- return "" // AWS SSO OIDC - don't include profileArn
- }
- // Check 3: client_id + client_secret presence (AWS SSO OIDC signature)
- _, hasClientID := auth.Metadata["client_id"].(string)
- _, hasClientSecret := auth.Metadata["client_secret"].(string)
- if hasClientID && hasClientSecret {
- return "" // AWS SSO OIDC - don't include profileArn
- }
- }
- return profileArn
-}
-
-// getEffectiveProfileArnWithWarning determines if profileArn should be included based on auth method,
-// and logs a warning if profileArn is missing for non-builder-id auth.
-// This consolidates the auth_method check that was previously done separately.
-//
-// AWS SSO OIDC (Builder ID/IDC) users don't need profileArn - sending it causes 403 errors.
-// Only Kiro Desktop (social auth like Google/GitHub) users need profileArn.
-//
-// Detection logic (matching kiro-openai-gateway):
-// 1. Check auth_method field: "builder-id" or "idc"
-// 2. Check auth_type field: "aws_sso_oidc" (from kiro-cli tokens)
-// 3. Check for client_id + client_secret presence (AWS SSO OIDC signature)
-func getEffectiveProfileArnWithWarning(auth *cliproxyauth.Auth, profileArn string) string {
- if auth != nil && auth.Metadata != nil {
- // Check 1: auth_method field (from CLIProxyAPI tokens)
- if authMethod, ok := auth.Metadata["auth_method"].(string); ok && (authMethod == "builder-id" || authMethod == "idc") {
- return "" // AWS SSO OIDC - don't include profileArn
- }
- // Check 2: auth_type field (from kiro-cli tokens)
- if authType, ok := auth.Metadata["auth_type"].(string); ok && authType == "aws_sso_oidc" {
- return "" // AWS SSO OIDC - don't include profileArn
- }
- // Check 3: client_id + client_secret presence (AWS SSO OIDC signature, like kiro-openai-gateway)
- _, hasClientID := auth.Metadata["client_id"].(string)
- _, hasClientSecret := auth.Metadata["client_secret"].(string)
- if hasClientID && hasClientSecret {
- return "" // AWS SSO OIDC - don't include profileArn
- }
- }
- // For social auth (Kiro Desktop), profileArn is required
- if profileArn == "" {
- log.Warnf("kiro: profile ARN not found in auth, API calls may fail")
- }
- return profileArn
-}
-
-// mapModelToKiro maps external model names to Kiro model IDs.
-// Supports both Kiro and Amazon Q prefixes since they use the same API.
-// Agentic variants (-agentic suffix) map to the same backend model IDs.
-func (e *KiroExecutor) mapModelToKiro(model string) string {
- modelMap := map[string]string{
- // Amazon Q format (amazonq- prefix) - same API as Kiro
- "amazonq-auto": "auto",
- "amazonq-claude-opus-4-6": "claude-opus-4.6",
- "amazonq-claude-sonnet-4-6": "claude-sonnet-4.6",
- "amazonq-claude-opus-4-5": "claude-opus-4.5",
- "amazonq-claude-sonnet-4-5": "claude-sonnet-4.5",
- "amazonq-claude-sonnet-4-5-20250929": "claude-sonnet-4.5",
- "amazonq-claude-sonnet-4": "claude-sonnet-4",
- "amazonq-claude-sonnet-4-20250514": "claude-sonnet-4",
- "amazonq-claude-haiku-4-5": "claude-haiku-4.5",
- // Kiro format (kiro- prefix) - valid model names that should be preserved
- "kiro-claude-opus-4-6": "claude-opus-4.6",
- "kiro-claude-sonnet-4-6": "claude-sonnet-4.6",
- "kiro-claude-opus-4-5": "claude-opus-4.5",
- "kiro-claude-sonnet-4-5": "claude-sonnet-4.5",
- "kiro-claude-sonnet-4-5-20250929": "claude-sonnet-4.5",
- "kiro-claude-sonnet-4": "claude-sonnet-4",
- "kiro-claude-sonnet-4-20250514": "claude-sonnet-4",
- "kiro-claude-haiku-4-5": "claude-haiku-4.5",
- "kiro-auto": "auto",
- // Native format (no prefix) - used by Kiro IDE directly
- "claude-opus-4-6": "claude-opus-4.6",
- "claude-opus-4.6": "claude-opus-4.6",
- "claude-sonnet-4-6": "claude-sonnet-4.6",
- "claude-sonnet-4.6": "claude-sonnet-4.6",
- "claude-opus-4-5": "claude-opus-4.5",
- "claude-opus-4.5": "claude-opus-4.5",
- "claude-haiku-4-5": "claude-haiku-4.5",
- "claude-haiku-4.5": "claude-haiku-4.5",
- "claude-sonnet-4-5": "claude-sonnet-4.5",
- "claude-sonnet-4-5-20250929": "claude-sonnet-4.5",
- "claude-sonnet-4.5": "claude-sonnet-4.5",
- "claude-sonnet-4": "claude-sonnet-4",
- "claude-sonnet-4-20250514": "claude-sonnet-4",
- "auto": "auto",
- // Agentic variants (same backend model IDs, but with special system prompt)
- "claude-opus-4.6-agentic": "claude-opus-4.6",
- "claude-sonnet-4.6-agentic": "claude-sonnet-4.6",
- "claude-opus-4.5-agentic": "claude-opus-4.5",
- "claude-sonnet-4.5-agentic": "claude-sonnet-4.5",
- "claude-sonnet-4-agentic": "claude-sonnet-4",
- "claude-haiku-4.5-agentic": "claude-haiku-4.5",
- "kiro-claude-opus-4-6-agentic": "claude-opus-4.6",
- "kiro-claude-sonnet-4-6-agentic": "claude-sonnet-4.6",
- "kiro-claude-opus-4-5-agentic": "claude-opus-4.5",
- "kiro-claude-sonnet-4-5-agentic": "claude-sonnet-4.5",
- "kiro-claude-sonnet-4-agentic": "claude-sonnet-4",
- "kiro-claude-haiku-4-5-agentic": "claude-haiku-4.5",
- }
- if kiroID, ok := modelMap[model]; ok {
- return kiroID
- }
-
- // Smart fallback: try to infer model type from name patterns
- modelLower := strings.ToLower(model)
-
- // Check for Haiku variants
- if strings.Contains(modelLower, "haiku") {
- log.Debugf("kiro: unknown Haiku model '%s', mapping to claude-haiku-4.5", model)
- return "claude-haiku-4.5"
- }
-
- // Check for Sonnet variants
- if strings.Contains(modelLower, "sonnet") {
- // Check for specific version patterns
- if strings.Contains(modelLower, "3-7") || strings.Contains(modelLower, "3.7") {
- log.Debugf("kiro: unknown Sonnet 3.7 model '%s', mapping to claude-3-7-sonnet-20250219", model)
- return "claude-3-7-sonnet-20250219"
- }
- if strings.Contains(modelLower, "4-6") || strings.Contains(modelLower, "4.6") {
- log.Debugf("kiro: unknown Sonnet 4.6 model '%s', mapping to claude-sonnet-4.6", model)
- return "claude-sonnet-4.6"
- }
- if strings.Contains(modelLower, "4-5") || strings.Contains(modelLower, "4.5") {
- log.Debugf("kiro: unknown Sonnet 4.5 model '%s', mapping to claude-sonnet-4.5", model)
- return "claude-sonnet-4.5"
- }
- // Default to Sonnet 4
- log.Debugf("kiro: unknown Sonnet model '%s', mapping to claude-sonnet-4", model)
- return "claude-sonnet-4"
- }
-
- // Check for Opus variants
- if strings.Contains(modelLower, "opus") {
- if strings.Contains(modelLower, "4-6") || strings.Contains(modelLower, "4.6") {
- log.Debugf("kiro: unknown Opus 4.6 model '%s', mapping to claude-opus-4.6", model)
- return "claude-opus-4.6"
- }
- log.Debugf("kiro: unknown Opus model '%s', mapping to claude-opus-4.5", model)
- return "claude-opus-4.5"
- }
-
- // Final fallback to Sonnet 4.5 (most commonly used model)
- log.Warnf("kiro: unknown model '%s', falling back to claude-sonnet-4.5", model)
- return "claude-sonnet-4.5"
-}
-
-// EventStreamError represents an Event Stream processing error
-type EventStreamError struct {
- Type string // "fatal", "malformed"
- Message string
- Cause error
-}
-
-func (e *EventStreamError) Error() string {
- if e.Cause != nil {
- return fmt.Sprintf("event stream %s: %s: %v", e.Type, e.Message, e.Cause)
- }
- return fmt.Sprintf("event stream %s: %s", e.Type, e.Message)
-}
-
-// eventStreamMessage represents a parsed AWS Event Stream message
-type eventStreamMessage struct {
- EventType string // Event type from headers (e.g., "assistantResponseEvent")
- Payload []byte // JSON payload of the message
-}
-
-// NOTE: Request building functions moved to pkg/llmproxy/translator/kiro/claude/kiro_claude_request.go
-// The executor now uses kiroclaude.BuildKiroPayload() instead
-
-// parseEventStream parses AWS Event Stream binary format.
-// Extracts text content, tool uses, and stop_reason from the response.
-// Supports embedded [Called ...] tool calls and input buffering for toolUseEvent.
-// Returns: content, toolUses, usageInfo, stopReason, error
-func (e *KiroExecutor) parseEventStream(body io.Reader) (string, []kiroclaude.KiroToolUse, usage.Detail, string, error) {
- var content strings.Builder
- var toolUses []kiroclaude.KiroToolUse
- var usageInfo usage.Detail
- var stopReason string // Extracted from upstream response
- reader := bufio.NewReader(body)
-
- // Tool use state tracking for input buffering and deduplication
- processedIDs := make(map[string]bool)
- var currentToolUse *kiroclaude.ToolUseState
-
- // Upstream usage tracking - Kiro API returns credit usage and context percentage
- var upstreamContextPercentage float64 // Context usage percentage from upstream (e.g., 78.56)
-
- for {
- msg, eventErr := e.readEventStreamMessage(reader)
- if eventErr != nil {
- log.Errorf("kiro: parseEventStream error: %v", eventErr)
- return content.String(), toolUses, usageInfo, stopReason, eventErr
- }
- if msg == nil {
- // Normal end of stream (EOF)
- break
- }
-
- eventType := msg.EventType
- payload := msg.Payload
- if len(payload) == 0 {
- continue
- }
-
- var event map[string]interface{}
- if err := json.Unmarshal(payload, &event); err != nil {
- log.Debugf("kiro: skipping malformed event: %v", err)
- continue
- }
-
- // Check for error/exception events in the payload (Kiro API may return errors with HTTP 200)
- // These can appear as top-level fields or nested within the event
- if errType, hasErrType := event["_type"].(string); hasErrType {
- // AWS-style error: {"_type": "com.amazon.aws.codewhisperer#ValidationException", "message": "..."}
- errMsg := ""
- if msg, ok := event["message"].(string); ok {
- errMsg = msg
- }
- log.Errorf("kiro: received AWS error in event stream: type=%s, message=%s", errType, errMsg)
- return "", nil, usageInfo, stopReason, fmt.Errorf("kiro API error: %s - %s", errType, errMsg)
- }
- if errType, hasErrType := event["type"].(string); hasErrType && (errType == "error" || errType == "exception") {
- // Generic error event
- errMsg := ""
- if msg, ok := event["message"].(string); ok {
- errMsg = msg
- } else if errObj, ok := event["error"].(map[string]interface{}); ok {
- if msg, ok := errObj["message"].(string); ok {
- errMsg = msg
- }
- }
- log.Errorf("kiro: received error event in stream: type=%s, message=%s", errType, errMsg)
- return "", nil, usageInfo, stopReason, fmt.Errorf("kiro API error: %s", errMsg)
- }
-
- // Extract stop_reason from various event formats
- // Kiro/Amazon Q API may include stop_reason in different locations
- if sr := kirocommon.GetString(event, "stop_reason"); sr != "" {
- stopReason = sr
- log.Debugf("kiro: parseEventStream found stop_reason (top-level): %s", stopReason)
- }
- if sr := kirocommon.GetString(event, "stopReason"); sr != "" {
- stopReason = sr
- log.Debugf("kiro: parseEventStream found stopReason (top-level): %s", stopReason)
- }
-
- // Handle different event types
- switch eventType {
- case "followupPromptEvent":
- // Filter out followupPrompt events - these are UI suggestions, not content
- log.Debugf("kiro: parseEventStream ignoring followupPrompt event")
- continue
-
- case "assistantResponseEvent":
- if assistantResp, ok := event["assistantResponseEvent"].(map[string]interface{}); ok {
- if contentText, ok := assistantResp["content"].(string); ok {
- content.WriteString(contentText)
- }
- // Extract stop_reason from assistantResponseEvent
- if sr := kirocommon.GetString(assistantResp, "stop_reason"); sr != "" {
- stopReason = sr
- log.Debugf("kiro: parseEventStream found stop_reason in assistantResponseEvent: %s", stopReason)
- }
- if sr := kirocommon.GetString(assistantResp, "stopReason"); sr != "" {
- stopReason = sr
- log.Debugf("kiro: parseEventStream found stopReason in assistantResponseEvent: %s", stopReason)
- }
- // Extract tool uses from response
- if toolUsesRaw, ok := assistantResp["toolUses"].([]interface{}); ok {
- for _, tuRaw := range toolUsesRaw {
- if tu, ok := tuRaw.(map[string]interface{}); ok {
- toolUseID := kirocommon.GetStringValue(tu, "toolUseId")
- // Check for duplicate
- if processedIDs[toolUseID] {
- log.Debugf("kiro: skipping duplicate tool use from assistantResponse: %s", toolUseID)
- continue
- }
- processedIDs[toolUseID] = true
-
- toolUse := kiroclaude.KiroToolUse{
- ToolUseID: toolUseID,
- Name: kirocommon.GetStringValue(tu, "name"),
- }
- if input, ok := tu["input"].(map[string]interface{}); ok {
- toolUse.Input = input
- }
- toolUses = append(toolUses, toolUse)
- }
- }
- }
- }
- // Also try direct format
- if contentText, ok := event["content"].(string); ok {
- content.WriteString(contentText)
- }
- // Direct tool uses
- if toolUsesRaw, ok := event["toolUses"].([]interface{}); ok {
- for _, tuRaw := range toolUsesRaw {
- if tu, ok := tuRaw.(map[string]interface{}); ok {
- toolUseID := kirocommon.GetStringValue(tu, "toolUseId")
- // Check for duplicate
- if processedIDs[toolUseID] {
- log.Debugf("kiro: skipping duplicate direct tool use: %s", toolUseID)
- continue
- }
- processedIDs[toolUseID] = true
-
- toolUse := kiroclaude.KiroToolUse{
- ToolUseID: toolUseID,
- Name: kirocommon.GetStringValue(tu, "name"),
- }
- if input, ok := tu["input"].(map[string]interface{}); ok {
- toolUse.Input = input
- }
- toolUses = append(toolUses, toolUse)
- }
- }
- }
-
- case "toolUseEvent":
- // Handle dedicated tool use events with input buffering
- completedToolUses, newState := kiroclaude.ProcessToolUseEvent(event, currentToolUse, processedIDs)
- currentToolUse = newState
- toolUses = append(toolUses, completedToolUses...)
-
- case "supplementaryWebLinksEvent":
- if inputTokens, ok := event["inputTokens"].(float64); ok {
- usageInfo.InputTokens = int64(inputTokens)
- }
- if outputTokens, ok := event["outputTokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- }
-
- case "messageStopEvent", "message_stop":
- // Handle message stop events which may contain stop_reason
- if sr := kirocommon.GetString(event, "stop_reason"); sr != "" {
- stopReason = sr
- log.Debugf("kiro: parseEventStream found stop_reason in messageStopEvent: %s", stopReason)
- }
- if sr := kirocommon.GetString(event, "stopReason"); sr != "" {
- stopReason = sr
- log.Debugf("kiro: parseEventStream found stopReason in messageStopEvent: %s", stopReason)
- }
-
- case "messageMetadataEvent", "metadataEvent":
- // Handle message metadata events which contain token counts
- // Official format: { tokenUsage: { outputTokens, totalTokens, uncachedInputTokens, cacheReadInputTokens, cacheWriteInputTokens, contextUsagePercentage } }
- var metadata map[string]interface{}
- if m, ok := event["messageMetadataEvent"].(map[string]interface{}); ok {
- metadata = m
- } else if m, ok := event["metadataEvent"].(map[string]interface{}); ok {
- metadata = m
- } else {
- metadata = event // event itself might be the metadata
- }
-
- // Check for nested tokenUsage object (official format)
- if tokenUsage, ok := metadata["tokenUsage"].(map[string]interface{}); ok {
- // outputTokens - precise output token count
- if outputTokens, ok := tokenUsage["outputTokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- log.Infof("kiro: parseEventStream found precise outputTokens in tokenUsage: %d", usageInfo.OutputTokens)
- }
- // totalTokens - precise total token count
- if totalTokens, ok := tokenUsage["totalTokens"].(float64); ok {
- usageInfo.TotalTokens = int64(totalTokens)
- log.Infof("kiro: parseEventStream found precise totalTokens in tokenUsage: %d", usageInfo.TotalTokens)
- }
- // uncachedInputTokens - input tokens not from cache
- if uncachedInputTokens, ok := tokenUsage["uncachedInputTokens"].(float64); ok {
- usageInfo.InputTokens = int64(uncachedInputTokens)
- log.Infof("kiro: parseEventStream found uncachedInputTokens in tokenUsage: %d", usageInfo.InputTokens)
- }
- // cacheReadInputTokens - tokens read from cache
- if cacheReadTokens, ok := tokenUsage["cacheReadInputTokens"].(float64); ok {
- // Add to input tokens if we have uncached tokens, otherwise use as input
- if usageInfo.InputTokens > 0 {
- usageInfo.InputTokens += int64(cacheReadTokens)
- } else {
- usageInfo.InputTokens = int64(cacheReadTokens)
- }
- log.Debugf("kiro: parseEventStream found cacheReadInputTokens in tokenUsage: %d", int64(cacheReadTokens))
- }
- // contextUsagePercentage - can be used as fallback for input token estimation
- if ctxPct, ok := tokenUsage["contextUsagePercentage"].(float64); ok {
- upstreamContextPercentage = ctxPct
- log.Debugf("kiro: parseEventStream found contextUsagePercentage in tokenUsage: %.2f%%", ctxPct)
- }
- }
-
- // Fallback: check for direct fields in metadata (legacy format)
- if usageInfo.InputTokens == 0 {
- if inputTokens, ok := metadata["inputTokens"].(float64); ok {
- usageInfo.InputTokens = int64(inputTokens)
- log.Debugf("kiro: parseEventStream found inputTokens in messageMetadataEvent: %d", usageInfo.InputTokens)
- }
- }
- if usageInfo.OutputTokens == 0 {
- if outputTokens, ok := metadata["outputTokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- log.Debugf("kiro: parseEventStream found outputTokens in messageMetadataEvent: %d", usageInfo.OutputTokens)
- }
- }
- if usageInfo.TotalTokens == 0 {
- if totalTokens, ok := metadata["totalTokens"].(float64); ok {
- usageInfo.TotalTokens = int64(totalTokens)
- log.Debugf("kiro: parseEventStream found totalTokens in messageMetadataEvent: %d", usageInfo.TotalTokens)
- }
- }
-
- case "usageEvent", "usage":
- // Handle dedicated usage events
- if inputTokens, ok := event["inputTokens"].(float64); ok {
- usageInfo.InputTokens = int64(inputTokens)
- log.Debugf("kiro: parseEventStream found inputTokens in usageEvent: %d", usageInfo.InputTokens)
- }
- if outputTokens, ok := event["outputTokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- log.Debugf("kiro: parseEventStream found outputTokens in usageEvent: %d", usageInfo.OutputTokens)
- }
- if totalTokens, ok := event["totalTokens"].(float64); ok {
- usageInfo.TotalTokens = int64(totalTokens)
- log.Debugf("kiro: parseEventStream found totalTokens in usageEvent: %d", usageInfo.TotalTokens)
- }
- // Also check nested usage object
- if usageObj, ok := event["usage"].(map[string]interface{}); ok {
- if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
- usageInfo.InputTokens = int64(inputTokens)
- } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
- usageInfo.InputTokens = int64(inputTokens)
- }
- if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- }
- if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
- usageInfo.TotalTokens = int64(totalTokens)
- }
- log.Debugf("kiro: parseEventStream found usage object: input=%d, output=%d, total=%d",
- usageInfo.InputTokens, usageInfo.OutputTokens, usageInfo.TotalTokens)
- }
-
- case "metricsEvent":
- // Handle metrics events which may contain usage data
- if metrics, ok := event["metricsEvent"].(map[string]interface{}); ok {
- if inputTokens, ok := metrics["inputTokens"].(float64); ok {
- usageInfo.InputTokens = int64(inputTokens)
- }
- if outputTokens, ok := metrics["outputTokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- }
- log.Debugf("kiro: parseEventStream found metricsEvent: input=%d, output=%d",
- usageInfo.InputTokens, usageInfo.OutputTokens)
- }
-
- case "meteringEvent":
- // Handle metering events from Kiro API (usage billing information)
- // Official format: { unit: string, unitPlural: string, usage: number }
- if metering, ok := event["meteringEvent"].(map[string]interface{}); ok {
- unit := ""
- if u, ok := metering["unit"].(string); ok {
- unit = u
- }
- usageVal := 0.0
- if u, ok := metering["usage"].(float64); ok {
- usageVal = u
- }
- log.Infof("kiro: parseEventStream received meteringEvent: usage=%.2f %s", usageVal, unit)
- // Store metering info for potential billing/statistics purposes
- // Note: This is separate from token counts - it's AWS billing units
- } else {
- // Try direct fields
- unit := ""
- if u, ok := event["unit"].(string); ok {
- unit = u
- }
- usageVal := 0.0
- if u, ok := event["usage"].(float64); ok {
- usageVal = u
- }
- if unit != "" || usageVal > 0 {
- log.Infof("kiro: parseEventStream received meteringEvent (direct): usage=%.2f %s", usageVal, unit)
- }
- }
-
- case "contextUsageEvent":
- // Handle context usage events from Kiro API
- // Format: {"contextUsageEvent": {"contextUsagePercentage": 0.53}}
- if ctxUsage, ok := event["contextUsageEvent"].(map[string]interface{}); ok {
- if ctxPct, ok := ctxUsage["contextUsagePercentage"].(float64); ok {
- upstreamContextPercentage = ctxPct
- log.Debugf("kiro: parseEventStream received contextUsageEvent: %.2f%%", ctxPct*100)
- }
- } else {
- // Try direct field (fallback)
- if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
- upstreamContextPercentage = ctxPct
- log.Debugf("kiro: parseEventStream received contextUsagePercentage (direct): %.2f%%", ctxPct*100)
- }
- }
-
- case "error", "exception", "internalServerException", "invalidStateEvent":
- // Handle error events from Kiro API stream
- errMsg := ""
- errType := eventType
-
- // Try to extract error message from various formats
- if msg, ok := event["message"].(string); ok {
- errMsg = msg
- } else if errObj, ok := event[eventType].(map[string]interface{}); ok {
- if msg, ok := errObj["message"].(string); ok {
- errMsg = msg
- }
- if t, ok := errObj["type"].(string); ok {
- errType = t
- }
- } else if errObj, ok := event["error"].(map[string]interface{}); ok {
- if msg, ok := errObj["message"].(string); ok {
- errMsg = msg
- }
- if t, ok := errObj["type"].(string); ok {
- errType = t
- }
- }
-
- // Check for specific error reasons
- if reason, ok := event["reason"].(string); ok {
- errMsg = fmt.Sprintf("%s (reason: %s)", errMsg, reason)
- }
-
- log.Errorf("kiro: parseEventStream received error event: type=%s, message=%s", errType, errMsg)
-
- // For invalidStateEvent, we may want to continue processing other events
- if eventType == "invalidStateEvent" {
- log.Warnf("kiro: invalidStateEvent received, continuing stream processing")
- continue
- }
-
- // For other errors, return the error
- if errMsg != "" {
- return "", nil, usageInfo, stopReason, fmt.Errorf("kiro API error (%s): %s", errType, errMsg)
- }
-
- default:
- // Check for contextUsagePercentage in any event
- if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
- upstreamContextPercentage = ctxPct
- log.Debugf("kiro: parseEventStream received context usage: %.2f%%", upstreamContextPercentage)
- }
- // Log unknown event types for debugging (to discover new event formats)
- log.Debugf("kiro: parseEventStream unknown event type: %s, payload: %s", eventType, string(payload))
- }
-
- // Check for direct token fields in any event (fallback)
- if usageInfo.InputTokens == 0 {
- if inputTokens, ok := event["inputTokens"].(float64); ok {
- usageInfo.InputTokens = int64(inputTokens)
- log.Debugf("kiro: parseEventStream found direct inputTokens: %d", usageInfo.InputTokens)
- }
- }
- if usageInfo.OutputTokens == 0 {
- if outputTokens, ok := event["outputTokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- log.Debugf("kiro: parseEventStream found direct outputTokens: %d", usageInfo.OutputTokens)
- }
- }
-
- // Check for usage object in any event (OpenAI format)
- if usageInfo.InputTokens == 0 || usageInfo.OutputTokens == 0 {
- if usageObj, ok := event["usage"].(map[string]interface{}); ok {
- if usageInfo.InputTokens == 0 {
- if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
- usageInfo.InputTokens = int64(inputTokens)
- } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
- usageInfo.InputTokens = int64(inputTokens)
- }
- }
- if usageInfo.OutputTokens == 0 {
- if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- }
- }
- if usageInfo.TotalTokens == 0 {
- if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
- usageInfo.TotalTokens = int64(totalTokens)
- }
- }
- log.Debugf("kiro: parseEventStream found usage object (fallback): input=%d, output=%d, total=%d",
- usageInfo.InputTokens, usageInfo.OutputTokens, usageInfo.TotalTokens)
- }
- }
-
- // Also check nested supplementaryWebLinksEvent
- if usageEvent, ok := event["supplementaryWebLinksEvent"].(map[string]interface{}); ok {
- if inputTokens, ok := usageEvent["inputTokens"].(float64); ok {
- usageInfo.InputTokens = int64(inputTokens)
- }
- if outputTokens, ok := usageEvent["outputTokens"].(float64); ok {
- usageInfo.OutputTokens = int64(outputTokens)
- }
- }
- }
-
- // Parse embedded tool calls from content (e.g., [Called tool_name with args: {...}])
- contentStr := content.String()
- cleanedContent, embeddedToolUses := kiroclaude.ParseEmbeddedToolCalls(contentStr, processedIDs)
- toolUses = append(toolUses, embeddedToolUses...)
-
- // Deduplicate all tool uses
- toolUses = kiroclaude.DeduplicateToolUses(toolUses)
-
- // Apply fallback logic for stop_reason if not provided by upstream
- // Priority: upstream stopReason > tool_use detection > end_turn default
- if stopReason == "" {
- if len(toolUses) > 0 {
- stopReason = "tool_use"
- log.Debugf("kiro: parseEventStream using fallback stop_reason: tool_use (detected %d tool uses)", len(toolUses))
- } else {
- stopReason = "end_turn"
- log.Debugf("kiro: parseEventStream using fallback stop_reason: end_turn")
- }
- }
-
- // Log warning if response was truncated due to max_tokens
- if stopReason == "max_tokens" {
- log.Warnf("kiro: response truncated due to max_tokens limit")
- }
-
- // Use contextUsagePercentage to calculate more accurate input tokens
- // Kiro model has 200k max context, contextUsagePercentage represents the percentage used
- // Formula: input_tokens = contextUsagePercentage * 200000 / 100
- if upstreamContextPercentage > 0 {
- calculatedInputTokens := int64(upstreamContextPercentage * 200000 / 100)
- if calculatedInputTokens > 0 {
- localEstimate := usageInfo.InputTokens
- usageInfo.InputTokens = calculatedInputTokens
- usageInfo.TotalTokens = usageInfo.InputTokens + usageInfo.OutputTokens
- log.Infof("kiro: parseEventStream using contextUsagePercentage (%.2f%%) to calculate input tokens: %d (local estimate was: %d)",
- upstreamContextPercentage, calculatedInputTokens, localEstimate)
- }
- }
-
- return cleanedContent, toolUses, usageInfo, stopReason, nil
-}
-
-// readEventStreamMessage reads and validates a single AWS Event Stream message.
-// Returns the parsed message or a structured error for different failure modes.
-// This function implements boundary protection and detailed error classification.
-//
-// AWS Event Stream binary format:
-// - Prelude (12 bytes): total_length (4) + headers_length (4) + prelude_crc (4)
-// - Headers (variable): header entries
-// - Payload (variable): JSON data
-// - Message CRC (4 bytes): CRC32C of entire message (not validated, just skipped)
-func (e *KiroExecutor) readEventStreamMessage(reader *bufio.Reader) (*eventStreamMessage, *EventStreamError) {
- // Read prelude (first 12 bytes: total_len + headers_len + prelude_crc)
- prelude := make([]byte, 12)
- _, err := io.ReadFull(reader, prelude)
- if err == io.EOF {
- return nil, nil // Normal end of stream
- }
- if err != nil {
- return nil, &EventStreamError{
- Type: ErrStreamFatal,
- Message: "failed to read prelude",
- Cause: err,
- }
- }
-
- totalLength := binary.BigEndian.Uint32(prelude[0:4])
- headersLength := binary.BigEndian.Uint32(prelude[4:8])
- // Note: prelude[8:12] is prelude_crc - we read it but don't validate (no CRC check per requirements)
-
- // Boundary check: minimum frame size
- if totalLength < minEventStreamFrameSize {
- return nil, &EventStreamError{
- Type: ErrStreamMalformed,
- Message: fmt.Sprintf("invalid message length: %d (minimum is %d)", totalLength, minEventStreamFrameSize),
- }
- }
-
- // Boundary check: maximum message size
- if totalLength > maxEventStreamMsgSize {
- return nil, &EventStreamError{
- Type: ErrStreamMalformed,
- Message: fmt.Sprintf("message too large: %d bytes (maximum is %d)", totalLength, maxEventStreamMsgSize),
- }
- }
-
- // Boundary check: headers length within message bounds
- // Message structure: prelude(12) + headers(headersLength) + payload + message_crc(4)
- // So: headersLength must be <= totalLength - 16 (12 for prelude + 4 for message_crc)
- if headersLength > totalLength-16 {
- return nil, &EventStreamError{
- Type: ErrStreamMalformed,
- Message: fmt.Sprintf("headers length %d exceeds message bounds (total: %d)", headersLength, totalLength),
- }
- }
-
- // Read the rest of the message (total - 12 bytes already read)
- remaining := make([]byte, totalLength-12)
- _, err = io.ReadFull(reader, remaining)
- if err != nil {
- return nil, &EventStreamError{
- Type: ErrStreamFatal,
- Message: "failed to read message body",
- Cause: err,
- }
- }
-
- // Extract event type from headers
- // Headers start at beginning of 'remaining', length is headersLength
- var eventType string
- if headersLength > 0 && headersLength <= uint32(len(remaining)) {
- eventType = e.extractEventTypeFromBytes(remaining[:headersLength])
- }
-
- // Calculate payload boundaries
- // Payload starts after headers, ends before message_crc (last 4 bytes)
- payloadStart := headersLength
- payloadEnd := uint32(len(remaining)) - 4 // Skip message_crc at end
-
- // Validate payload boundaries
- if payloadStart >= payloadEnd {
- // No payload, return empty message
- return &eventStreamMessage{
- EventType: eventType,
- Payload: nil,
- }, nil
- }
-
- payload := remaining[payloadStart:payloadEnd]
-
- return &eventStreamMessage{
- EventType: eventType,
- Payload: payload,
- }, nil
-}
-
-func skipEventStreamHeaderValue(headers []byte, offset int, valueType byte) (int, bool) {
- switch valueType {
- case 0, 1: // bool true / bool false
- return offset, true
- case 2: // byte
- if offset+1 > len(headers) {
- return offset, false
- }
- return offset + 1, true
- case 3: // short
- if offset+2 > len(headers) {
- return offset, false
- }
- return offset + 2, true
- case 4: // int
- if offset+4 > len(headers) {
- return offset, false
- }
- return offset + 4, true
- case 5: // long
- if offset+8 > len(headers) {
- return offset, false
- }
- return offset + 8, true
- case 6: // byte array (2-byte length + data)
- if offset+2 > len(headers) {
- return offset, false
- }
- valueLen := int(binary.BigEndian.Uint16(headers[offset : offset+2]))
- offset += 2
- if offset+valueLen > len(headers) {
- return offset, false
- }
- return offset + valueLen, true
- case 8: // timestamp
- if offset+8 > len(headers) {
- return offset, false
- }
- return offset + 8, true
- case 9: // uuid
- if offset+16 > len(headers) {
- return offset, false
- }
- return offset + 16, true
- default:
- return offset, false
- }
-}
-
-// extractEventTypeFromBytes extracts the event type from raw header bytes (without prelude CRC prefix)
-func (e *KiroExecutor) extractEventTypeFromBytes(headers []byte) string {
- offset := 0
- for offset < len(headers) {
- nameLen := int(headers[offset])
- offset++
- if offset+nameLen > len(headers) {
- break
- }
- name := string(headers[offset : offset+nameLen])
- offset += nameLen
-
- if offset >= len(headers) {
- break
- }
- valueType := headers[offset]
- offset++
-
- if valueType == 7 { // String type
- if offset+2 > len(headers) {
- break
- }
- valueLen := int(binary.BigEndian.Uint16(headers[offset : offset+2]))
- offset += 2
- if offset+valueLen > len(headers) {
- break
- }
- value := string(headers[offset : offset+valueLen])
- offset += valueLen
-
- if name == ":event-type" {
- return value
- }
- continue
- }
-
- nextOffset, ok := skipEventStreamHeaderValue(headers, offset, valueType)
- if !ok {
- break
- }
- offset = nextOffset
- }
- return ""
-}
-
-// NOTE: Response building functions moved to pkg/llmproxy/translator/kiro/claude/kiro_claude_response.go
-// The executor now uses kiroclaude.BuildClaudeResponse() and kiroclaude.ExtractThinkingFromContent() instead
-
-// streamToChannel converts AWS Event Stream to channel-based streaming.
-// Supports tool calling - emits tool_use content blocks when tools are used.
-// Includes embedded [Called ...] tool call parsing and input buffering for toolUseEvent.
-// Implements duplicate content filtering using lastContentEvent detection (based on AIClient-2-API).
-// Extracts stop_reason from upstream events when available.
-// thinkingEnabled controls whether tags are parsed - only parse when request enabled thinking.
-func (e *KiroExecutor) streamToChannel(ctx context.Context, body io.Reader, out chan<- cliproxyexecutor.StreamChunk, targetFormat sdktranslator.Format, model string, originalReq, claudeBody []byte, reporter *usageReporter, thinkingEnabled bool) {
- reader := bufio.NewReaderSize(body, 20*1024*1024) // 20MB buffer to match other providers
- var totalUsage usage.Detail
- var hasToolUses bool // Track if any tool uses were emitted
- var hasTruncatedTools bool // Track if any tool uses were truncated
- var upstreamStopReason string // Track stop_reason from upstream events
-
- // Tool use state tracking for input buffering and deduplication
- processedIDs := make(map[string]bool)
- var currentToolUse *kiroclaude.ToolUseState
-
- // NOTE: Duplicate content filtering removed - it was causing legitimate repeated
- // content (like consecutive newlines) to be incorrectly filtered out.
- // The previous implementation compared lastContentEvent == contentDelta which
- // is too aggressive for streaming scenarios.
-
- // Streaming token calculation - accumulate content for real-time token counting
- // Based on AIClient-2-API implementation
- var accumulatedContent strings.Builder
- accumulatedContent.Grow(4096) // Pre-allocate 4KB capacity to reduce reallocations
-
- // Real-time usage estimation state
- // These track when to send periodic usage updates during streaming
- var lastUsageUpdateLen int // Last accumulated content length when usage was sent
- var lastUsageUpdateTime = time.Now() // Last time usage update was sent
- var lastReportedOutputTokens int64 // Last reported output token count
-
- // Upstream usage tracking - Kiro API returns credit usage and context percentage
- var upstreamCreditUsage float64 // Credit usage from upstream (e.g., 1.458)
- var upstreamContextPercentage float64 // Context usage percentage from upstream (e.g., 78.56)
- var hasUpstreamUsage bool // Whether we received usage from upstream
-
- // Translator param for maintaining tool call state across streaming events
- // IMPORTANT: This must persist across all TranslateStream calls
- var translatorParam any
-
- // Thinking mode state tracking - tag-based parsing for tags in content
- inThinkBlock := false // Whether we're currently inside a block
- isThinkingBlockOpen := false // Track if thinking content block SSE event is open
- thinkingBlockIndex := -1 // Index of the thinking content block
- var accumulatedThinkingContent strings.Builder // Accumulate thinking content for token counting
-
- // Buffer for handling partial tag matches at chunk boundaries
- var pendingContent strings.Builder // Buffer content that might be part of a tag
-
- // Pre-calculate input tokens from request if possible
- // Kiro uses Claude format, so try Claude format first, then OpenAI format, then fallback
- if enc, err := getTokenizer(model); err == nil {
- var inputTokens int64
- var countMethod string
-
- // Try Claude format first (Kiro uses Claude API format)
- if inp, err := countClaudeChatTokens(enc, claudeBody); err == nil && inp > 0 {
- inputTokens = inp
- countMethod = "claude"
- } else if inp, err := countOpenAIChatTokens(enc, originalReq); err == nil && inp > 0 {
- // Fallback to OpenAI format (for OpenAI-compatible requests)
- inputTokens = inp
- countMethod = "openai"
- } else {
- // Final fallback: estimate from raw request size (roughly 4 chars per token)
- inputTokens = int64(len(claudeBody) / 4)
- if inputTokens == 0 && len(claudeBody) > 0 {
- inputTokens = 1
- }
- countMethod = "estimate"
- }
-
- totalUsage.InputTokens = inputTokens
- log.Debugf("kiro: streamToChannel pre-calculated input tokens: %d (method: %s, claude body: %d bytes, original req: %d bytes)",
- totalUsage.InputTokens, countMethod, len(claudeBody), len(originalReq))
- }
-
- contentBlockIndex := -1
- messageStartSent := false
- isTextBlockOpen := false
- var outputLen int
-
- // Ensure usage is published even on early return
- defer func() {
- reporter.publish(ctx, totalUsage)
- }()
-
- for {
- select {
- case <-ctx.Done():
- return
- default:
- }
-
- msg, eventErr := e.readEventStreamMessage(reader)
- if eventErr != nil {
- // Log the error
- log.Errorf("kiro: streamToChannel error: %v", eventErr)
-
- // Send error to channel for client notification
- out <- cliproxyexecutor.StreamChunk{Err: eventErr}
- return
- }
- if msg == nil {
- // Normal end of stream (EOF)
- // Flush any incomplete tool use before ending stream
- if currentToolUse != nil && !processedIDs[currentToolUse.ToolUseID] {
- log.Warnf("kiro: flushing incomplete tool use at EOF: %s (ID: %s)", currentToolUse.Name, currentToolUse.ToolUseID)
- fullInput := currentToolUse.InputBuffer.String()
- repairedJSON := kiroclaude.RepairJSON(fullInput)
- var finalInput map[string]interface{}
- if err := json.Unmarshal([]byte(repairedJSON), &finalInput); err != nil {
- log.Warnf("kiro: failed to parse incomplete tool input at EOF: %v", err)
- finalInput = make(map[string]interface{})
- }
-
- processedIDs[currentToolUse.ToolUseID] = true
- contentBlockIndex++
-
- // Send tool_use content block
- blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "tool_use", currentToolUse.ToolUseID, currentToolUse.Name)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- // Send tool input as delta
- inputBytes, _ := json.Marshal(finalInput)
- inputDelta := kiroclaude.BuildClaudeInputJsonDeltaEvent(string(inputBytes), contentBlockIndex)
- sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, inputDelta, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- // Close block
- blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
- sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- hasToolUses = true
- currentToolUse = nil
- }
-
- // DISABLED: Tag-based pending character flushing
- // This code block was used for tag-based thinking detection which has been
- // replaced by reasoningContentEvent handling. No pending tag chars to flush.
- // Original code preserved in git history.
- break
- }
-
- eventType := msg.EventType
- payload := msg.Payload
- if len(payload) == 0 {
- continue
- }
- appendAPIResponseChunk(ctx, e.cfg, payload)
-
- var event map[string]interface{}
- if err := json.Unmarshal(payload, &event); err != nil {
- log.Warnf("kiro: failed to unmarshal event payload: %v, raw: %s", err, string(payload))
- continue
- }
-
- // Check for error/exception events in the payload (Kiro API may return errors with HTTP 200)
- // These can appear as top-level fields or nested within the event
- if errType, hasErrType := event["_type"].(string); hasErrType {
- // AWS-style error: {"_type": "com.amazon.aws.codewhisperer#ValidationException", "message": "..."}
- errMsg := ""
- if msg, ok := event["message"].(string); ok {
- errMsg = msg
- }
- log.Errorf("kiro: received AWS error in stream: type=%s, message=%s", errType, errMsg)
- out <- cliproxyexecutor.StreamChunk{Err: fmt.Errorf("kiro API error: %s - %s", errType, errMsg)}
- return
- }
- if errType, hasErrType := event["type"].(string); hasErrType && (errType == "error" || errType == "exception") {
- // Generic error event
- errMsg := ""
- if msg, ok := event["message"].(string); ok {
- errMsg = msg
- } else if errObj, ok := event["error"].(map[string]interface{}); ok {
- if msg, ok := errObj["message"].(string); ok {
- errMsg = msg
- }
- }
- log.Errorf("kiro: received error event in stream: type=%s, message=%s", errType, errMsg)
- out <- cliproxyexecutor.StreamChunk{Err: fmt.Errorf("kiro API error: %s", errMsg)}
- return
- }
-
- // Extract stop_reason from various event formats (streaming)
- // Kiro/Amazon Q API may include stop_reason in different locations
- if sr := kirocommon.GetString(event, "stop_reason"); sr != "" {
- upstreamStopReason = sr
- log.Debugf("kiro: streamToChannel found stop_reason (top-level): %s", upstreamStopReason)
- }
- if sr := kirocommon.GetString(event, "stopReason"); sr != "" {
- upstreamStopReason = sr
- log.Debugf("kiro: streamToChannel found stopReason (top-level): %s", upstreamStopReason)
- }
-
- // Send message_start on first event
- if !messageStartSent {
- msgStart := kiroclaude.BuildClaudeMessageStartEvent(model, totalUsage.InputTokens)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, msgStart, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- messageStartSent = true
- }
-
- switch eventType {
- case "followupPromptEvent":
- // Filter out followupPrompt events - these are UI suggestions, not content
- log.Debugf("kiro: streamToChannel ignoring followupPrompt event")
- continue
-
- case "messageStopEvent", "message_stop":
- // Handle message stop events which may contain stop_reason
- if sr := kirocommon.GetString(event, "stop_reason"); sr != "" {
- upstreamStopReason = sr
- log.Debugf("kiro: streamToChannel found stop_reason in messageStopEvent: %s", upstreamStopReason)
- }
- if sr := kirocommon.GetString(event, "stopReason"); sr != "" {
- upstreamStopReason = sr
- log.Debugf("kiro: streamToChannel found stopReason in messageStopEvent: %s", upstreamStopReason)
- }
-
- case "meteringEvent":
- // Handle metering events from Kiro API (usage billing information)
- // Official format: { unit: string, unitPlural: string, usage: number }
- if metering, ok := event["meteringEvent"].(map[string]interface{}); ok {
- unit := ""
- if u, ok := metering["unit"].(string); ok {
- unit = u
- }
- usageVal := 0.0
- if u, ok := metering["usage"].(float64); ok {
- usageVal = u
- }
- upstreamCreditUsage = usageVal
- hasUpstreamUsage = true
- log.Infof("kiro: streamToChannel received meteringEvent: usage=%.4f %s", usageVal, unit)
- } else {
- // Try direct fields (event is meteringEvent itself)
- if unit, ok := event["unit"].(string); ok {
- if usage, ok := event["usage"].(float64); ok {
- upstreamCreditUsage = usage
- hasUpstreamUsage = true
- log.Infof("kiro: streamToChannel received meteringEvent (direct): usage=%.4f %s", usage, unit)
- }
- }
- }
-
- case "contextUsageEvent":
- // Handle context usage events from Kiro API
- // Format: {"contextUsageEvent": {"contextUsagePercentage": 0.53}}
- if ctxUsage, ok := event["contextUsageEvent"].(map[string]interface{}); ok {
- if ctxPct, ok := ctxUsage["contextUsagePercentage"].(float64); ok {
- upstreamContextPercentage = ctxPct
- log.Debugf("kiro: streamToChannel received contextUsageEvent: %.2f%%", ctxPct*100)
- }
- } else {
- // Try direct field (fallback)
- if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
- upstreamContextPercentage = ctxPct
- log.Debugf("kiro: streamToChannel received contextUsagePercentage (direct): %.2f%%", ctxPct*100)
- }
- }
-
- case "error", "exception", "internalServerException":
- // Handle error events from Kiro API stream
- errMsg := ""
- errType := eventType
-
- // Try to extract error message from various formats
- if msg, ok := event["message"].(string); ok {
- errMsg = msg
- } else if errObj, ok := event[eventType].(map[string]interface{}); ok {
- if msg, ok := errObj["message"].(string); ok {
- errMsg = msg
- }
- if t, ok := errObj["type"].(string); ok {
- errType = t
- }
- } else if errObj, ok := event["error"].(map[string]interface{}); ok {
- if msg, ok := errObj["message"].(string); ok {
- errMsg = msg
- }
- }
-
- log.Errorf("kiro: streamToChannel received error event: type=%s, message=%s", errType, errMsg)
-
- // Send error to the stream and exit
- if errMsg != "" {
- out <- cliproxyexecutor.StreamChunk{
- Err: fmt.Errorf("kiro API error (%s): %s", errType, errMsg),
- }
- return
- }
-
- case "invalidStateEvent":
- // Handle invalid state events - log and continue (non-fatal)
- errMsg := ""
- if msg, ok := event["message"].(string); ok {
- errMsg = msg
- } else if stateEvent, ok := event["invalidStateEvent"].(map[string]interface{}); ok {
- if msg, ok := stateEvent["message"].(string); ok {
- errMsg = msg
- }
- }
- log.Warnf("kiro: streamToChannel received invalidStateEvent: %s, continuing", errMsg)
- continue
-
- default:
- // Check for upstream usage events from Kiro API
- // Format: {"unit":"credit","unitPlural":"credits","usage":1.458}
- if unit, ok := event["unit"].(string); ok && unit == "credit" {
- if usage, ok := event["usage"].(float64); ok {
- upstreamCreditUsage = usage
- hasUpstreamUsage = true
- log.Debugf("kiro: received upstream credit usage: %.4f", upstreamCreditUsage)
- }
- }
- // Format: {"contextUsagePercentage":78.56}
- if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
- upstreamContextPercentage = ctxPct
- log.Debugf("kiro: received upstream context usage: %.2f%%", upstreamContextPercentage)
- }
-
- // Check for token counts in unknown events
- if inputTokens, ok := event["inputTokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- hasUpstreamUsage = true
- log.Debugf("kiro: streamToChannel found inputTokens in event %s: %d", eventType, totalUsage.InputTokens)
- }
- if outputTokens, ok := event["outputTokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- log.Debugf("kiro: streamToChannel found outputTokens in event %s: %d", eventType, totalUsage.OutputTokens)
- }
- if totalTokens, ok := event["totalTokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- log.Debugf("kiro: streamToChannel found totalTokens in event %s: %d", eventType, totalUsage.TotalTokens)
- }
-
- // Check for usage object in unknown events (OpenAI/Claude format)
- if usageObj, ok := event["usage"].(map[string]interface{}); ok {
- if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- hasUpstreamUsage = true
- } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- hasUpstreamUsage = true
- }
- if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- }
- if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- }
- log.Debugf("kiro: streamToChannel found usage object in event %s: input=%d, output=%d, total=%d",
- eventType, totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
- }
-
- // Log unknown event types for debugging (to discover new event formats)
- if eventType != "" {
- log.Debugf("kiro: streamToChannel unknown event type: %s, payload: %s", eventType, string(payload))
- }
-
- case "assistantResponseEvent":
- var contentDelta string
- var toolUses []map[string]interface{}
-
- if assistantResp, ok := event["assistantResponseEvent"].(map[string]interface{}); ok {
- if c, ok := assistantResp["content"].(string); ok {
- contentDelta = c
- }
- // Extract stop_reason from assistantResponseEvent
- if sr := kirocommon.GetString(assistantResp, "stop_reason"); sr != "" {
- upstreamStopReason = sr
- log.Debugf("kiro: streamToChannel found stop_reason in assistantResponseEvent: %s", upstreamStopReason)
- }
- if sr := kirocommon.GetString(assistantResp, "stopReason"); sr != "" {
- upstreamStopReason = sr
- log.Debugf("kiro: streamToChannel found stopReason in assistantResponseEvent: %s", upstreamStopReason)
- }
- // Extract tool uses from response
- if tus, ok := assistantResp["toolUses"].([]interface{}); ok {
- for _, tuRaw := range tus {
- if tu, ok := tuRaw.(map[string]interface{}); ok {
- toolUses = append(toolUses, tu)
- }
- }
- }
- }
- if contentDelta == "" {
- if c, ok := event["content"].(string); ok {
- contentDelta = c
- }
- }
- // Direct tool uses
- if tus, ok := event["toolUses"].([]interface{}); ok {
- for _, tuRaw := range tus {
- if tu, ok := tuRaw.(map[string]interface{}); ok {
- toolUses = append(toolUses, tu)
- }
- }
- }
-
- // Handle text content with thinking mode support
- if contentDelta != "" {
- // NOTE: Duplicate content filtering was removed because it incorrectly
- // filtered out legitimate repeated content (like consecutive newlines "\n\n").
- // Streaming naturally can have identical chunks that are valid content.
-
- outputLen += len(contentDelta)
- // Accumulate content for streaming token calculation
- accumulatedContent.WriteString(contentDelta)
-
- // Real-time usage estimation: Check if we should send a usage update
- // This helps clients track context usage during long thinking sessions
- shouldSendUsageUpdate := false
- if accumulatedContent.Len()-lastUsageUpdateLen >= usageUpdateCharThreshold {
- shouldSendUsageUpdate = true
- } else if time.Since(lastUsageUpdateTime) >= usageUpdateTimeInterval && accumulatedContent.Len() > lastUsageUpdateLen {
- shouldSendUsageUpdate = true
- }
-
- if shouldSendUsageUpdate {
- // Calculate current output tokens using tiktoken
- var currentOutputTokens int64
- if enc, encErr := getTokenizer(model); encErr == nil {
- if tokenCount, countErr := enc.Count(accumulatedContent.String()); countErr == nil {
- currentOutputTokens = int64(tokenCount)
- }
- }
- // Fallback to character estimation if tiktoken fails
- if currentOutputTokens == 0 {
- currentOutputTokens = int64(accumulatedContent.Len() / 4)
- if currentOutputTokens == 0 {
- currentOutputTokens = 1
- }
- }
-
- // Only send update if token count has changed significantly (at least 10 tokens)
- if currentOutputTokens > lastReportedOutputTokens+10 {
- // Send ping event with usage information
- // This is a non-blocking update that clients can optionally process
- pingEvent := kiroclaude.BuildClaudePingEventWithUsage(totalUsage.InputTokens, currentOutputTokens)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, pingEvent, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- lastReportedOutputTokens = currentOutputTokens
- log.Debugf("kiro: sent real-time usage update - input: %d, output: %d (accumulated: %d chars)",
- totalUsage.InputTokens, currentOutputTokens, accumulatedContent.Len())
- }
-
- lastUsageUpdateLen = accumulatedContent.Len()
- lastUsageUpdateTime = time.Now()
- }
-
- // TAG-BASED THINKING PARSING: Parse tags from content
- // Combine pending content with new content for processing
- pendingContent.WriteString(contentDelta)
- processContent := pendingContent.String()
- pendingContent.Reset()
-
- // Process content looking for thinking tags
- for len(processContent) > 0 {
- if inThinkBlock {
- // We're inside a thinking block, look for
- endIdx := strings.Index(processContent, kirocommon.ThinkingEndTag)
- if endIdx >= 0 {
- // Found end tag - emit thinking content before the tag
- thinkingText := processContent[:endIdx]
- if thinkingText != "" {
- // Ensure thinking block is open
- if !isThinkingBlockOpen {
- contentBlockIndex++
- thinkingBlockIndex = contentBlockIndex
- isThinkingBlockOpen = true
- blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(thinkingBlockIndex, "thinking", "", "")
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
- // Send thinking delta
- thinkingEvent := kiroclaude.BuildClaudeThinkingDeltaEvent(thinkingText, thinkingBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, thinkingEvent, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- accumulatedThinkingContent.WriteString(thinkingText)
- }
- // Close thinking block
- if isThinkingBlockOpen {
- blockStop := kiroclaude.BuildClaudeThinkingBlockStopEvent(thinkingBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- isThinkingBlockOpen = false
- }
- inThinkBlock = false
- processContent = processContent[endIdx+len(kirocommon.ThinkingEndTag):]
- log.Debugf("kiro: closed thinking block, remaining content: %d chars", len(processContent))
- } else {
- // No end tag found - check for partial match at end
- partialMatch := false
- for i := 1; i < len(kirocommon.ThinkingEndTag) && i <= len(processContent); i++ {
- if strings.HasSuffix(processContent, kirocommon.ThinkingEndTag[:i]) {
- // Possible partial tag at end, buffer it
- pendingContent.WriteString(processContent[len(processContent)-i:])
- processContent = processContent[:len(processContent)-i]
- partialMatch = true
- break
- }
- }
- if !partialMatch || len(processContent) > 0 {
- // Emit all as thinking content
- if processContent != "" {
- if !isThinkingBlockOpen {
- contentBlockIndex++
- thinkingBlockIndex = contentBlockIndex
- isThinkingBlockOpen = true
- blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(thinkingBlockIndex, "thinking", "", "")
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
- thinkingEvent := kiroclaude.BuildClaudeThinkingDeltaEvent(processContent, thinkingBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, thinkingEvent, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- accumulatedThinkingContent.WriteString(processContent)
- }
- }
- processContent = ""
- }
- } else {
- // Not in thinking block, look for
- startIdx := strings.Index(processContent, kirocommon.ThinkingStartTag)
- if startIdx >= 0 {
- // Found start tag - emit text content before the tag
- textBefore := processContent[:startIdx]
- if textBefore != "" {
- // Close thinking block if open
- if isThinkingBlockOpen {
- blockStop := kiroclaude.BuildClaudeThinkingBlockStopEvent(thinkingBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- isThinkingBlockOpen = false
- }
- // Ensure text block is open
- if !isTextBlockOpen {
- contentBlockIndex++
- isTextBlockOpen = true
- blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "text", "", "")
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
- // Send text delta
- claudeEvent := kiroclaude.BuildClaudeStreamEvent(textBefore, contentBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, claudeEvent, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
- // Close text block before entering thinking
- if isTextBlockOpen {
- blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- isTextBlockOpen = false
- }
- inThinkBlock = true
- processContent = processContent[startIdx+len(kirocommon.ThinkingStartTag):]
- log.Debugf("kiro: entered thinking block")
- } else {
- // No start tag found - check for partial match at end
- partialMatch := false
- for i := 1; i < len(kirocommon.ThinkingStartTag) && i <= len(processContent); i++ {
- if strings.HasSuffix(processContent, kirocommon.ThinkingStartTag[:i]) {
- // Possible partial tag at end, buffer it
- pendingContent.WriteString(processContent[len(processContent)-i:])
- processContent = processContent[:len(processContent)-i]
- partialMatch = true
- break
- }
- }
- if !partialMatch || len(processContent) > 0 {
- // Emit all as text content
- if processContent != "" {
- if !isTextBlockOpen {
- contentBlockIndex++
- isTextBlockOpen = true
- blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "text", "", "")
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
- claudeEvent := kiroclaude.BuildClaudeStreamEvent(processContent, contentBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, claudeEvent, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
- }
- processContent = ""
- }
- }
- }
- }
-
- // Handle tool uses in response (with deduplication)
- for _, tu := range toolUses {
- toolUseID := kirocommon.GetString(tu, "toolUseId")
- toolName := kirocommon.GetString(tu, "name")
-
- // Check for duplicate
- if processedIDs[toolUseID] {
- log.Debugf("kiro: skipping duplicate tool use in stream: %s", toolUseID)
- continue
- }
- processedIDs[toolUseID] = true
-
- hasToolUses = true
- // Close text block if open before starting tool_use block
- if isTextBlockOpen && contentBlockIndex >= 0 {
- blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- isTextBlockOpen = false
- }
-
- // Emit tool_use content block
- contentBlockIndex++
-
- blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "tool_use", toolUseID, toolName)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- // Send input_json_delta with the tool input
- if input, ok := tu["input"].(map[string]interface{}); ok {
- inputJSON, err := json.Marshal(input)
- if err != nil {
- log.Debugf("kiro: failed to marshal tool input: %v", err)
- // Don't continue - still need to close the block
- } else {
- inputDelta := kiroclaude.BuildClaudeInputJsonDeltaEvent(string(inputJSON), contentBlockIndex)
- sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, inputDelta, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
- }
-
- // Close tool_use block (always close even if input marshal failed)
- blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
- sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
-
- case "reasoningContentEvent":
- // Handle official reasoningContentEvent from Kiro API
- // This replaces tag-based thinking detection with the proper event type
- // Official format: { text: string, signature?: string, redactedContent?: base64 }
- var thinkingText string
- var signature string
-
- if re, ok := event["reasoningContentEvent"].(map[string]interface{}); ok {
- if text, ok := re["text"].(string); ok {
- thinkingText = text
- }
- if sig, ok := re["signature"].(string); ok {
- signature = sig
- if len(sig) > 20 {
- log.Debugf("kiro: reasoningContentEvent has signature: %s...", sig[:20])
- } else {
- log.Debugf("kiro: reasoningContentEvent has signature: %s", sig)
- }
- }
- } else {
- // Try direct fields
- if text, ok := event["text"].(string); ok {
- thinkingText = text
- }
- if sig, ok := event["signature"].(string); ok {
- signature = sig
- }
- }
-
- if thinkingText != "" {
- // Close text block if open before starting thinking block
- if isTextBlockOpen && contentBlockIndex >= 0 {
- blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- isTextBlockOpen = false
- }
-
- // Start thinking block if not already open
- if !isThinkingBlockOpen {
- contentBlockIndex++
- thinkingBlockIndex = contentBlockIndex
- isThinkingBlockOpen = true
- blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(thinkingBlockIndex, "thinking", "", "")
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
-
- // Send thinking content
- thinkingEvent := kiroclaude.BuildClaudeThinkingDeltaEvent(thinkingText, thinkingBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, thinkingEvent, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- // Accumulate for token counting
- accumulatedThinkingContent.WriteString(thinkingText)
- log.Debugf("kiro: received reasoningContentEvent, text length: %d, has signature: %v", len(thinkingText), signature != "")
- }
-
- // Note: We don't close the thinking block here - it will be closed when we see
- // the next assistantResponseEvent or at the end of the stream
- _ = signature // Signature can be used for verification if needed
-
- case "toolUseEvent":
- // Handle dedicated tool use events with input buffering
- completedToolUses, newState := kiroclaude.ProcessToolUseEvent(event, currentToolUse, processedIDs)
- currentToolUse = newState
-
- // Emit completed tool uses
- for _, tu := range completedToolUses {
- // Check if this tool was truncated - emit with SOFT_LIMIT_REACHED marker
- if tu.IsTruncated {
- hasTruncatedTools = true
- log.Infof("kiro: streamToChannel emitting truncated tool with SOFT_LIMIT_REACHED: %s (ID: %s)", tu.Name, tu.ToolUseID)
-
- // Close text block if open
- if isTextBlockOpen && contentBlockIndex >= 0 {
- blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- isTextBlockOpen = false
- }
-
- contentBlockIndex++
-
- // Emit tool_use with SOFT_LIMIT_REACHED marker input
- blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "tool_use", tu.ToolUseID, tu.Name)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- // Build SOFT_LIMIT_REACHED marker input
- markerInput := map[string]interface{}{
- "_status": "SOFT_LIMIT_REACHED",
- "_message": "Tool output was truncated. Split content into smaller chunks (max 300 lines). Due to potential model hallucination, you MUST re-fetch the current working directory and generate the correct file_path.",
- }
-
- markerJSON, _ := json.Marshal(markerInput)
- inputDelta := kiroclaude.BuildClaudeInputJsonDeltaEvent(string(markerJSON), contentBlockIndex)
- sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, inputDelta, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- // Close tool_use block
- blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
- sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- hasToolUses = true // Keep this so stop_reason = tool_use
- continue
- }
-
- hasToolUses = true
-
- // Close text block if open
- if isTextBlockOpen && contentBlockIndex >= 0 {
- blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- isTextBlockOpen = false
- }
-
- contentBlockIndex++
-
- blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "tool_use", tu.ToolUseID, tu.Name)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- if tu.Input != nil {
- inputJSON, err := json.Marshal(tu.Input)
- if err != nil {
- log.Debugf("kiro: failed to marshal tool input in toolUseEvent: %v", err)
- } else {
- inputDelta := kiroclaude.BuildClaudeInputJsonDeltaEvent(string(inputJSON), contentBlockIndex)
- sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, inputDelta, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
- }
-
- blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
- sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
-
- case "supplementaryWebLinksEvent":
- if inputTokens, ok := event["inputTokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- }
- if outputTokens, ok := event["outputTokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- }
-
- case "messageMetadataEvent", "metadataEvent":
- // Handle message metadata events which contain token counts
- // Official format: { tokenUsage: { outputTokens, totalTokens, uncachedInputTokens, cacheReadInputTokens, cacheWriteInputTokens, contextUsagePercentage } }
- var metadata map[string]interface{}
- if m, ok := event["messageMetadataEvent"].(map[string]interface{}); ok {
- metadata = m
- } else if m, ok := event["metadataEvent"].(map[string]interface{}); ok {
- metadata = m
- } else {
- metadata = event // event itself might be the metadata
- }
-
- // Check for nested tokenUsage object (official format)
- if tokenUsage, ok := metadata["tokenUsage"].(map[string]interface{}); ok {
- // outputTokens - precise output token count
- if outputTokens, ok := tokenUsage["outputTokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- log.Infof("kiro: streamToChannel found precise outputTokens in tokenUsage: %d", totalUsage.OutputTokens)
- }
- // totalTokens - precise total token count
- if totalTokens, ok := tokenUsage["totalTokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- log.Infof("kiro: streamToChannel found precise totalTokens in tokenUsage: %d", totalUsage.TotalTokens)
- }
- // uncachedInputTokens - input tokens not from cache
- if uncachedInputTokens, ok := tokenUsage["uncachedInputTokens"].(float64); ok {
- totalUsage.InputTokens = int64(uncachedInputTokens)
- hasUpstreamUsage = true
- log.Infof("kiro: streamToChannel found uncachedInputTokens in tokenUsage: %d", totalUsage.InputTokens)
- }
- // cacheReadInputTokens - tokens read from cache
- if cacheReadTokens, ok := tokenUsage["cacheReadInputTokens"].(float64); ok {
- // Add to input tokens if we have uncached tokens, otherwise use as input
- if totalUsage.InputTokens > 0 {
- totalUsage.InputTokens += int64(cacheReadTokens)
- } else {
- totalUsage.InputTokens = int64(cacheReadTokens)
- }
- hasUpstreamUsage = true
- log.Debugf("kiro: streamToChannel found cacheReadInputTokens in tokenUsage: %d", int64(cacheReadTokens))
- }
- // contextUsagePercentage - can be used as fallback for input token estimation
- if ctxPct, ok := tokenUsage["contextUsagePercentage"].(float64); ok {
- upstreamContextPercentage = ctxPct
- log.Debugf("kiro: streamToChannel found contextUsagePercentage in tokenUsage: %.2f%%", ctxPct)
- }
- }
-
- // Fallback: check for direct fields in metadata (legacy format)
- if totalUsage.InputTokens == 0 {
- if inputTokens, ok := metadata["inputTokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- hasUpstreamUsage = true
- log.Debugf("kiro: streamToChannel found inputTokens in messageMetadataEvent: %d", totalUsage.InputTokens)
- }
- }
- if totalUsage.OutputTokens == 0 {
- if outputTokens, ok := metadata["outputTokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- log.Debugf("kiro: streamToChannel found outputTokens in messageMetadataEvent: %d", totalUsage.OutputTokens)
- }
- }
- if totalUsage.TotalTokens == 0 {
- if totalTokens, ok := metadata["totalTokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- log.Debugf("kiro: streamToChannel found totalTokens in messageMetadataEvent: %d", totalUsage.TotalTokens)
- }
- }
-
- case "usageEvent", "usage":
- // Handle dedicated usage events
- if inputTokens, ok := event["inputTokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- log.Debugf("kiro: streamToChannel found inputTokens in usageEvent: %d", totalUsage.InputTokens)
- }
- if outputTokens, ok := event["outputTokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- log.Debugf("kiro: streamToChannel found outputTokens in usageEvent: %d", totalUsage.OutputTokens)
- }
- if totalTokens, ok := event["totalTokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- log.Debugf("kiro: streamToChannel found totalTokens in usageEvent: %d", totalUsage.TotalTokens)
- }
- // Also check nested usage object
- if usageObj, ok := event["usage"].(map[string]interface{}); ok {
- if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- }
- if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- }
- if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- }
- log.Debugf("kiro: streamToChannel found usage object: input=%d, output=%d, total=%d",
- totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
- }
-
- case "metricsEvent":
- // Handle metrics events which may contain usage data
- if metrics, ok := event["metricsEvent"].(map[string]interface{}); ok {
- if inputTokens, ok := metrics["inputTokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- }
- if outputTokens, ok := metrics["outputTokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- }
- log.Debugf("kiro: streamToChannel found metricsEvent: input=%d, output=%d",
- totalUsage.InputTokens, totalUsage.OutputTokens)
- }
- }
-
- // Check nested usage event
- if usageEvent, ok := event["supplementaryWebLinksEvent"].(map[string]interface{}); ok {
- if inputTokens, ok := usageEvent["inputTokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- }
- if outputTokens, ok := usageEvent["outputTokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- }
- }
-
- // Check for direct token fields in any event (fallback)
- if totalUsage.InputTokens == 0 {
- if inputTokens, ok := event["inputTokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- log.Debugf("kiro: streamToChannel found direct inputTokens: %d", totalUsage.InputTokens)
- }
- }
- if totalUsage.OutputTokens == 0 {
- if outputTokens, ok := event["outputTokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- log.Debugf("kiro: streamToChannel found direct outputTokens: %d", totalUsage.OutputTokens)
- }
- }
-
- // Check for usage object in any event (OpenAI format)
- if totalUsage.InputTokens == 0 || totalUsage.OutputTokens == 0 {
- if usageObj, ok := event["usage"].(map[string]interface{}); ok {
- if totalUsage.InputTokens == 0 {
- if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- }
- }
- if totalUsage.OutputTokens == 0 {
- if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- }
- }
- if totalUsage.TotalTokens == 0 {
- if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- }
- }
- log.Debugf("kiro: streamToChannel found usage object (fallback): input=%d, output=%d, total=%d",
- totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
- }
- }
- }
-
- // Close content block if open
- if isTextBlockOpen && contentBlockIndex >= 0 {
- blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- }
-
- // Streaming token calculation - calculate output tokens from accumulated content
- // Only use local estimation if server didn't provide usage (server-side usage takes priority)
- if totalUsage.OutputTokens == 0 && accumulatedContent.Len() > 0 {
- // Try to use tiktoken for accurate counting
- if enc, err := getTokenizer(model); err == nil {
- if tokenCount, countErr := enc.Count(accumulatedContent.String()); countErr == nil {
- totalUsage.OutputTokens = int64(tokenCount)
- log.Debugf("kiro: streamToChannel calculated output tokens using tiktoken: %d", totalUsage.OutputTokens)
- } else {
- // Fallback on count error: estimate from character count
- totalUsage.OutputTokens = int64(accumulatedContent.Len() / 4)
- if totalUsage.OutputTokens == 0 {
- totalUsage.OutputTokens = 1
- }
- log.Debugf("kiro: streamToChannel tiktoken count failed, estimated from chars: %d", totalUsage.OutputTokens)
- }
- } else {
- // Fallback: estimate from character count (roughly 4 chars per token)
- totalUsage.OutputTokens = int64(accumulatedContent.Len() / 4)
- if totalUsage.OutputTokens == 0 {
- totalUsage.OutputTokens = 1
- }
- log.Debugf("kiro: streamToChannel estimated output tokens from chars: %d (content len: %d)", totalUsage.OutputTokens, accumulatedContent.Len())
- }
- } else if totalUsage.OutputTokens == 0 && outputLen > 0 {
- // Legacy fallback using outputLen
- totalUsage.OutputTokens = int64(outputLen / 4)
- if totalUsage.OutputTokens == 0 {
- totalUsage.OutputTokens = 1
- }
- }
-
- // Use contextUsagePercentage to calculate more accurate input tokens
- // Kiro model has 200k max context, contextUsagePercentage represents the percentage used
- // Formula: input_tokens = contextUsagePercentage * 200000 / 100
- // Note: The effective input context is ~170k (200k - 30k reserved for output)
- if upstreamContextPercentage > 0 {
- // Calculate input tokens from context percentage
- // Using 200k as the base since that's what Kiro reports against
- calculatedInputTokens := int64(upstreamContextPercentage * 200000 / 100)
-
- // Only use calculated value if it's significantly different from local estimate
- // This provides more accurate token counts based on upstream data
- if calculatedInputTokens > 0 {
- localEstimate := totalUsage.InputTokens
- totalUsage.InputTokens = calculatedInputTokens
- log.Debugf("kiro: using contextUsagePercentage (%.2f%%) to calculate input tokens: %d (local estimate was: %d)",
- upstreamContextPercentage, calculatedInputTokens, localEstimate)
- }
- }
-
- totalUsage.TotalTokens = totalUsage.InputTokens + totalUsage.OutputTokens
-
- // Log upstream usage information if received
- if hasUpstreamUsage {
- log.Debugf("kiro: upstream usage - credits: %.4f, context: %.2f%%, final tokens - input: %d, output: %d, total: %d",
- upstreamCreditUsage, upstreamContextPercentage,
- totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
- }
-
- // Determine stop reason: prefer upstream, then detect tool_use, default to end_turn
- // SOFT_LIMIT_REACHED: Keep stop_reason = "tool_use" so Claude continues the loop
- stopReason := upstreamStopReason
- if hasTruncatedTools {
- // Log that we're using SOFT_LIMIT_REACHED approach
- log.Infof("kiro: streamToChannel using SOFT_LIMIT_REACHED - keeping stop_reason=tool_use for truncated tools")
- }
- if stopReason == "" {
- if hasToolUses {
- stopReason = "tool_use"
- log.Debugf("kiro: streamToChannel using fallback stop_reason: tool_use")
- } else {
- stopReason = "end_turn"
- log.Debugf("kiro: streamToChannel using fallback stop_reason: end_turn")
- }
- }
-
- // Log warning if response was truncated due to max_tokens
- if stopReason == "max_tokens" {
- log.Warnf("kiro: response truncated due to max_tokens limit (streamToChannel)")
- }
-
- // Send message_delta event
- msgDelta := kiroclaude.BuildClaudeMessageDeltaEvent(stopReason, totalUsage)
- sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, msgDelta, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
-
- // Send message_stop event separately
- msgStop := kiroclaude.BuildClaudeMessageStopOnlyEvent()
- sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, msgStop, &translatorParam)
- for _, chunk := range sseData {
- if chunk != "" {
- out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
- }
- }
- // reporter.publish is called via defer
-}
-
-// NOTE: Claude SSE event builders moved to pkg/llmproxy/translator/kiro/claude/kiro_claude_stream.go
-// The executor now uses kiroclaude.BuildClaude*Event() functions instead
-
-// CountTokens counts tokens locally using tiktoken since Kiro API doesn't expose a token counting endpoint.
-// This provides approximate token counts for client requests.
-func (e *KiroExecutor) CountTokens(ctx context.Context, auth *cliproxyauth.Auth, req cliproxyexecutor.Request, opts cliproxyexecutor.Options) (cliproxyexecutor.Response, error) {
- // Use tiktoken for local token counting
- enc, err := getTokenizer(req.Model)
- if err != nil {
- log.Warnf("kiro: CountTokens failed to get tokenizer: %v, falling back to estimate", err)
- // Fallback: estimate from payload size (roughly 4 chars per token)
- estimatedTokens := len(req.Payload) / 4
- if estimatedTokens == 0 && len(req.Payload) > 0 {
- estimatedTokens = 1
- }
- return cliproxyexecutor.Response{
- Payload: []byte(fmt.Sprintf(`{"count":%d}`, estimatedTokens)),
- }, nil
- }
-
- // Try to count tokens from the request payload
- var totalTokens int64
-
- // Try OpenAI chat format first
- if tokens, countErr := countOpenAIChatTokens(enc, req.Payload); countErr == nil && tokens > 0 {
- totalTokens = tokens
- log.Debugf("kiro: CountTokens counted %d tokens using OpenAI chat format", totalTokens)
- } else {
- // Fallback: count raw payload tokens
- if tokenCount, countErr := enc.Count(string(req.Payload)); countErr == nil {
- totalTokens = int64(tokenCount)
- log.Debugf("kiro: CountTokens counted %d tokens from raw payload", totalTokens)
- } else {
- // Final fallback: estimate from payload size
- totalTokens = int64(len(req.Payload) / 4)
- if totalTokens == 0 && len(req.Payload) > 0 {
- totalTokens = 1
- }
- log.Debugf("kiro: CountTokens estimated %d tokens from payload size", totalTokens)
- }
- }
-
- return cliproxyexecutor.Response{
- Payload: []byte(fmt.Sprintf(`{"count":%d}`, totalTokens)),
- }, nil
-}
-
-// Refresh refreshes the Kiro OAuth token.
-// Supports both AWS Builder ID (SSO OIDC) and Google OAuth (social login).
-// Uses mutex to prevent race conditions when multiple concurrent requests try to refresh.
-func (e *KiroExecutor) Refresh(ctx context.Context, auth *cliproxyauth.Auth) (*cliproxyauth.Auth, error) {
- // Serialize token refresh operations to prevent race conditions
- e.refreshMu.Lock()
- defer e.refreshMu.Unlock()
-
- var authID string
- if auth != nil {
- authID = auth.ID
- } else {
- authID = ""
- }
- log.Debugf("kiro executor: refresh called for auth %s", authID)
- if auth == nil {
- return nil, fmt.Errorf("kiro executor: auth is nil")
- }
-
- // Double-check: After acquiring lock, verify token still needs refresh
- // Another goroutine may have already refreshed while we were waiting
- // NOTE: This check has a design limitation - it reads from the auth object passed in,
- // not from persistent storage. If another goroutine returns a new Auth object (via Clone),
- // this check won't see those updates. The mutex still prevents truly concurrent refreshes,
- // but queued goroutines may still attempt redundant refreshes. This is acceptable as
- // the refresh operation is idempotent and the extra API calls are infrequent.
- if auth.Metadata != nil {
- if lastRefresh, ok := auth.Metadata["last_refresh"].(string); ok {
- if refreshTime, err := time.Parse(time.RFC3339, lastRefresh); err == nil {
- // If token was refreshed within the last 30 seconds, skip refresh
- if time.Since(refreshTime) < 30*time.Second {
- log.Debugf("kiro executor: token was recently refreshed by another goroutine, skipping")
- return auth, nil
- }
- }
- }
- // Also check if expires_at is now in the future with sufficient buffer
- if expiresAt, ok := auth.Metadata["expires_at"].(string); ok {
- if expTime, err := time.Parse(time.RFC3339, expiresAt); err == nil {
- // If token expires more than 20 minutes from now, it's still valid
- if time.Until(expTime) > 20*time.Minute {
- log.Debugf("kiro executor: token is still valid (expires in %v), skipping refresh", time.Until(expTime))
- // CRITICAL FIX: Set NextRefreshAfter to prevent frequent refresh checks
- // Without this, shouldRefresh() will return true again in 30 seconds
- updated := auth.Clone()
- // Set next refresh to 20 minutes before expiry, or at least 30 seconds from now
- nextRefresh := expTime.Add(-20 * time.Minute)
- minNextRefresh := time.Now().Add(30 * time.Second)
- if nextRefresh.Before(minNextRefresh) {
- nextRefresh = minNextRefresh
- }
- updated.NextRefreshAfter = nextRefresh
- log.Debugf("kiro executor: setting NextRefreshAfter to %v (in %v)", nextRefresh.Format(time.RFC3339), time.Until(nextRefresh))
- return updated, nil
- }
- }
- }
- }
-
- var refreshToken string
- var clientID, clientSecret string
- var authMethod string
- var region, startURL string
-
- if auth.Metadata != nil {
- if rt, ok := auth.Metadata["refresh_token"].(string); ok {
- refreshToken = rt
- }
- if cid, ok := auth.Metadata["client_id"].(string); ok {
- clientID = cid
- }
- if cs, ok := auth.Metadata["client_secret"].(string); ok {
- clientSecret = cs
- }
- if am, ok := auth.Metadata["auth_method"].(string); ok {
- authMethod = am
- }
- if r, ok := auth.Metadata["region"].(string); ok {
- region = r
- }
- if su, ok := auth.Metadata["start_url"].(string); ok {
- startURL = su
- }
- }
-
- if refreshToken == "" {
- return nil, fmt.Errorf("kiro executor: refresh token not found")
- }
-
- var tokenData *kiroauth.KiroTokenData
- var err error
-
- ssoClient := kiroauth.NewSSOOIDCClient(e.cfg)
-
- // Use SSO OIDC refresh for AWS Builder ID or IDC, otherwise use Kiro's OAuth refresh endpoint
- switch {
- case clientID != "" && clientSecret != "" && authMethod == "idc" && region != "":
- // IDC refresh with region-specific endpoint
- log.Debugf("kiro executor: using SSO OIDC refresh for IDC (region=%s)", region)
- tokenData, err = ssoClient.RefreshTokenWithRegion(ctx, clientID, clientSecret, refreshToken, region, startURL)
- case clientID != "" && clientSecret != "" && authMethod == "builder-id":
- // Builder ID refresh with default endpoint
- log.Debugf("kiro executor: using SSO OIDC refresh for AWS Builder ID")
- tokenData, err = ssoClient.RefreshToken(ctx, clientID, clientSecret, refreshToken)
- default:
- // Fallback to Kiro's OAuth refresh endpoint (for social auth: Google/GitHub)
- log.Debugf("kiro executor: using Kiro OAuth refresh endpoint")
- oauth := kiroauth.NewKiroOAuth(e.cfg)
- tokenData, err = oauth.RefreshToken(ctx, refreshToken)
- }
-
- if err != nil {
- return nil, fmt.Errorf("kiro executor: token refresh failed: %w", err)
- }
-
- updated := auth.Clone()
- now := time.Now()
- updated.UpdatedAt = now
- updated.LastRefreshedAt = now
-
- if updated.Metadata == nil {
- updated.Metadata = make(map[string]any)
- }
- updated.Metadata["access_token"] = tokenData.AccessToken
- updated.Metadata["refresh_token"] = tokenData.RefreshToken
- updated.Metadata["expires_at"] = tokenData.ExpiresAt
- updated.Metadata["last_refresh"] = now.Format(time.RFC3339)
- if tokenData.ProfileArn != "" {
- updated.Metadata["profile_arn"] = tokenData.ProfileArn
- }
- if tokenData.AuthMethod != "" {
- updated.Metadata["auth_method"] = tokenData.AuthMethod
- }
- if tokenData.Provider != "" {
- updated.Metadata["provider"] = tokenData.Provider
- }
- // Preserve client credentials for future refreshes (AWS Builder ID)
- if tokenData.ClientID != "" {
- updated.Metadata["client_id"] = tokenData.ClientID
- }
- if tokenData.ClientSecret != "" {
- updated.Metadata["client_secret"] = tokenData.ClientSecret
- }
- // Preserve region and start_url for IDC token refresh
- if tokenData.Region != "" {
- updated.Metadata["region"] = tokenData.Region
- }
- if tokenData.StartURL != "" {
- updated.Metadata["start_url"] = tokenData.StartURL
- }
-
- if updated.Attributes == nil {
- updated.Attributes = make(map[string]string)
- }
- updated.Attributes["access_token"] = tokenData.AccessToken
- if tokenData.ProfileArn != "" {
- updated.Attributes["profile_arn"] = tokenData.ProfileArn
- }
-
- // NextRefreshAfter is aligned with RefreshLead (20min)
- if expiresAt, parseErr := time.Parse(time.RFC3339, tokenData.ExpiresAt); parseErr == nil {
- updated.NextRefreshAfter = expiresAt.Add(-20 * time.Minute)
- }
-
- log.Infof("kiro executor: token refreshed successfully, expires at %s", tokenData.ExpiresAt)
- return updated, nil
-}
-
-// persistRefreshedAuth persists a refreshed auth record to disk.
-// This ensures token refreshes from inline retry are saved to the auth file.
-func (e *KiroExecutor) persistRefreshedAuth(auth *cliproxyauth.Auth) error {
- if auth == nil || auth.Metadata == nil {
- return fmt.Errorf("kiro executor: cannot persist nil auth or metadata")
- }
-
- // Determine the file path from auth attributes or filename
- var authPath string
- if auth.Attributes != nil {
- if p := strings.TrimSpace(auth.Attributes["path"]); p != "" {
- authPath = p
- }
- }
- if authPath == "" {
- fileName := strings.TrimSpace(auth.FileName)
- if fileName == "" {
- return fmt.Errorf("kiro executor: auth has no file path or filename")
- }
- if filepath.IsAbs(fileName) {
- authPath = fileName
- } else if e.cfg != nil && e.cfg.AuthDir != "" {
- authPath = filepath.Join(e.cfg.AuthDir, fileName)
- } else {
- return fmt.Errorf("kiro executor: cannot determine auth file path")
- }
- }
-
- // Marshal metadata to JSON
- raw, err := json.Marshal(auth.Metadata)
- if err != nil {
- return fmt.Errorf("kiro executor: marshal metadata failed: %w", err)
- }
-
- // Write to temp file first, then rename (atomic write)
- tmp := authPath + ".tmp"
- if err := os.WriteFile(tmp, raw, 0o600); err != nil {
- return fmt.Errorf("kiro executor: write temp auth file failed: %w", err)
- }
- if err := os.Rename(tmp, authPath); err != nil {
- return fmt.Errorf("kiro executor: rename auth file failed: %w", err)
- }
-
- log.Debugf("kiro executor: persisted refreshed auth to %s", authPath)
- return nil
-}
-
-// reloadAuthFromFile 从文件重新加载 auth 数据(方案 B: Fallback 机制)
-// 当内存中的 token 已过期时,尝试从文件读取最新的 token
-// 这解决了后台刷新器已更新文件但内存中 Auth 对象尚未同步的时间差问题
-func (e *KiroExecutor) reloadAuthFromFile(auth *cliproxyauth.Auth) (*cliproxyauth.Auth, error) {
- if auth == nil {
- return nil, fmt.Errorf("kiro executor: cannot reload nil auth")
- }
-
- // 确定文件路径
- var authPath string
- if auth.Attributes != nil {
- if p := strings.TrimSpace(auth.Attributes["path"]); p != "" {
- authPath = p
- }
- }
- if authPath == "" {
- fileName := strings.TrimSpace(auth.FileName)
- if fileName == "" {
- return nil, fmt.Errorf("kiro executor: auth has no file path or filename for reload")
- }
- if filepath.IsAbs(fileName) {
- authPath = fileName
- } else if e.cfg != nil && e.cfg.AuthDir != "" {
- authPath = filepath.Join(e.cfg.AuthDir, fileName)
- } else {
- return nil, fmt.Errorf("kiro executor: cannot determine auth file path for reload")
- }
- }
-
- // 读取文件
- raw, err := os.ReadFile(authPath)
- if err != nil {
- return nil, fmt.Errorf("kiro executor: failed to read auth file %s: %w", authPath, err)
- }
-
- // 解析 JSON
- var metadata map[string]any
- if err := json.Unmarshal(raw, &metadata); err != nil {
- return nil, fmt.Errorf("kiro executor: failed to parse auth file %s: %w", authPath, err)
- }
-
- // 检查文件中的 token 是否比内存中的更新
- fileExpiresAt, _ := metadata["expires_at"].(string)
- fileAccessToken, _ := metadata["access_token"].(string)
- memExpiresAt, _ := auth.Metadata["expires_at"].(string)
- memAccessToken, _ := auth.Metadata["access_token"].(string)
-
- // 文件中必须有有效的 access_token
- if fileAccessToken == "" {
- return nil, fmt.Errorf("kiro executor: auth file has no access_token field")
- }
-
- // 如果有 expires_at,检查是否过期
- if fileExpiresAt != "" {
- fileExpTime, parseErr := time.Parse(time.RFC3339, fileExpiresAt)
- if parseErr == nil {
- // 如果文件中的 token 也已过期,不使用它
- if time.Now().After(fileExpTime) {
- log.Debugf("kiro executor: file token also expired at %s, not using", fileExpiresAt)
- return nil, fmt.Errorf("kiro executor: file token also expired")
- }
- }
- }
-
- // 判断文件中的 token 是否比内存中的更新
- // 条件1: access_token 不同(说明已刷新)
- // 条件2: expires_at 更新(说明已刷新)
- isNewer := false
-
- // 优先检查 access_token 是否变化
- if fileAccessToken != memAccessToken {
- isNewer = true
- log.Debugf("kiro executor: file access_token differs from memory, using file token")
- }
-
- // 如果 access_token 相同,检查 expires_at
- if !isNewer && fileExpiresAt != "" && memExpiresAt != "" {
- fileExpTime, fileParseErr := time.Parse(time.RFC3339, fileExpiresAt)
- memExpTime, memParseErr := time.Parse(time.RFC3339, memExpiresAt)
- if fileParseErr == nil && memParseErr == nil && fileExpTime.After(memExpTime) {
- isNewer = true
- log.Debugf("kiro executor: file expires_at (%s) is newer than memory (%s)", fileExpiresAt, memExpiresAt)
- }
- }
-
- // 如果文件中没有 expires_at 但 access_token 相同,无法判断是否更新
- if !isNewer && fileExpiresAt == "" && fileAccessToken == memAccessToken {
- return nil, fmt.Errorf("kiro executor: cannot determine if file token is newer (no expires_at, same access_token)")
- }
-
- if !isNewer {
- log.Debugf("kiro executor: file token not newer than memory token")
- return nil, fmt.Errorf("kiro executor: file token not newer")
- }
-
- // 创建更新后的 auth 对象
- updated := auth.Clone()
- updated.Metadata = metadata
- updated.UpdatedAt = time.Now()
-
- // 同步更新 Attributes
- if updated.Attributes == nil {
- updated.Attributes = make(map[string]string)
- }
- if accessToken, ok := metadata["access_token"].(string); ok {
- updated.Attributes["access_token"] = accessToken
- }
- if profileArn, ok := metadata["profile_arn"].(string); ok {
- updated.Attributes["profile_arn"] = profileArn
- }
-
- log.Infof("kiro executor: reloaded auth from file %s, new expires_at: %s", authPath, fileExpiresAt)
- return updated, nil
-}
-
-// isTokenExpired checks if a JWT access token has expired.
-// Returns true if the token is expired or cannot be parsed.
-func (e *KiroExecutor) isTokenExpired(accessToken string) bool {
- if accessToken == "" {
- return true
- }
-
- // JWT tokens have 3 parts separated by dots
- parts := strings.Split(accessToken, ".")
- if len(parts) != 3 {
- // Not a JWT token, assume not expired
- return false
- }
-
- // Decode the payload (second part)
- // JWT uses base64url encoding without padding (RawURLEncoding)
- payload := parts[1]
- decoded, err := base64.RawURLEncoding.DecodeString(payload)
- if err != nil {
- // Try with padding added as fallback
- switch len(payload) % 4 {
- case 2:
- payload += "=="
- case 3:
- payload += "="
- }
- decoded, err = base64.URLEncoding.DecodeString(payload)
- if err != nil {
- log.Debugf("kiro: failed to decode JWT payload: %v", err)
- return false
- }
- }
-
- var claims struct {
- Exp int64 `json:"exp"`
- }
- if err := json.Unmarshal(decoded, &claims); err != nil {
- log.Debugf("kiro: failed to parse JWT claims: %v", err)
- return false
- }
-
- if claims.Exp == 0 {
- // No expiration claim, assume not expired
- return false
- }
-
- expTime := time.Unix(claims.Exp, 0)
- now := time.Now()
-
- // Consider token expired if it expires within 1 minute (buffer for clock skew)
- isExpired := now.After(expTime) || expTime.Sub(now) < time.Minute
- if isExpired {
- log.Debugf("kiro: token expired at %s (now: %s)", expTime.Format(time.RFC3339), now.Format(time.RFC3339))
- }
-
- return isExpired
-}
-
-// ══════════════════════════════════════════════════════════════════════════════
-// Web Search Handler (MCP API)
-// ══════════════════════════════════════════════════════════════════════════════
-
-// fetchToolDescription caching:
-// Uses a mutex + fetched flag to ensure only one goroutine fetches at a time,
-// with automatic retry on failure:
-// - On failure, fetched stays false so subsequent calls will retry
-// - On success, fetched is set to true — subsequent calls skip immediately (mutex-free fast path)
-// The cached description is stored in the translator package via kiroclaude.SetWebSearchDescription(),
-// enabling the translator's convertClaudeToolsToKiro to read it when building Kiro requests.
-var (
- toolDescMu sync.Mutex
- toolDescFetched atomic.Bool
-)
-
-// fetchToolDescription calls MCP tools/list to get the web_search tool description
-// and caches it. Safe to call concurrently — only one goroutine fetches at a time.
-// If the fetch fails, subsequent calls will retry. On success, no further fetches occur.
-// The httpClient parameter allows reusing a shared pooled HTTP client.
-func fetchToolDescription(ctx context.Context, mcpEndpoint, authToken string, httpClient *http.Client, auth *cliproxyauth.Auth, authAttrs map[string]string) {
- // Fast path: already fetched successfully, no lock needed
- if toolDescFetched.Load() {
- return
- }
-
- toolDescMu.Lock()
- defer toolDescMu.Unlock()
-
- // Double-check after acquiring lock
- if toolDescFetched.Load() {
- return
- }
-
- handler := newWebSearchHandler(ctx, mcpEndpoint, authToken, httpClient, auth, authAttrs)
- reqBody := []byte(`{"id":"tools_list","jsonrpc":"2.0","method":"tools/list"}`)
- log.Debugf("kiro/websearch MCP tools/list request: %d bytes", len(reqBody))
-
- req, err := http.NewRequestWithContext(ctx, "POST", mcpEndpoint, bytes.NewReader(reqBody))
- if err != nil {
- log.Warnf("kiro/websearch: failed to create tools/list request: %v", err)
- return
- }
-
- // Reuse same headers as callMcpAPI
- handler.setMcpHeaders(req)
-
- resp, err := handler.httpClient.Do(req)
- if err != nil {
- log.Warnf("kiro/websearch: tools/list request failed: %v", err)
- return
- }
- defer resp.Body.Close()
-
- body, err := io.ReadAll(resp.Body)
- if err != nil || resp.StatusCode != http.StatusOK {
- log.Warnf("kiro/websearch: tools/list returned status %d", resp.StatusCode)
- return
- }
- log.Debugf("kiro/websearch MCP tools/list response: [%d] %d bytes", resp.StatusCode, len(body))
-
- // Parse: {"result":{"tools":[{"name":"web_search","description":"..."}]}}
- var result struct {
- Result *struct {
- Tools []struct {
- Name string `json:"name"`
- Description string `json:"description"`
- } `json:"tools"`
- } `json:"result"`
- }
- if err := json.Unmarshal(body, &result); err != nil || result.Result == nil {
- log.Warnf("kiro/websearch: failed to parse tools/list response")
- return
- }
-
- for _, tool := range result.Result.Tools {
- if tool.Name == "web_search" && tool.Description != "" {
- kiroclaude.SetWebSearchDescription(tool.Description)
- toolDescFetched.Store(true) // success — no more fetches
- log.Infof("kiro/websearch: cached web_search description from tools/list (%d bytes)", len(tool.Description))
- return
- }
- }
-
- // web_search tool not found in response
- log.Warnf("kiro/websearch: web_search tool not found in tools/list response")
-}
-
-// webSearchHandler handles web search requests via Kiro MCP API
-type webSearchHandler struct {
- ctx context.Context
- mcpEndpoint string
- httpClient *http.Client
- authToken string
- auth *cliproxyauth.Auth // for applyDynamicFingerprint
- authAttrs map[string]string // optional, for custom headers from auth.Attributes
-}
-
-// newWebSearchHandler creates a new webSearchHandler.
-// If httpClient is nil, a default client with 30s timeout is used.
-// Pass a shared pooled client (e.g. from getKiroPooledHTTPClient) for connection reuse.
-func newWebSearchHandler(ctx context.Context, mcpEndpoint, authToken string, httpClient *http.Client, auth *cliproxyauth.Auth, authAttrs map[string]string) *webSearchHandler {
- if httpClient == nil {
- httpClient = &http.Client{
- Timeout: 30 * time.Second,
- }
- }
- return &webSearchHandler{
- ctx: ctx,
- mcpEndpoint: mcpEndpoint,
- httpClient: httpClient,
- authToken: authToken,
- auth: auth,
- authAttrs: authAttrs,
- }
-}
-
-// setMcpHeaders sets standard MCP API headers on the request,
-// aligned with the GAR request pattern.
-func (h *webSearchHandler) setMcpHeaders(req *http.Request) {
- // 1. Content-Type & Accept (aligned with GAR)
- req.Header.Set("Content-Type", "application/json")
- req.Header.Set("Accept", "*/*")
-
- // 2. Kiro-specific headers (aligned with GAR)
- req.Header.Set("x-amzn-kiro-agent-mode", "vibe")
- req.Header.Set("x-amzn-codewhisperer-optout", "true")
-
- // 3. User-Agent: Reuse applyDynamicFingerprint for consistency
- applyDynamicFingerprint(req, h.auth)
-
- // 4. AWS SDK identifiers
- req.Header.Set("Amz-Sdk-Request", "attempt=1; max=3")
- req.Header.Set("Amz-Sdk-Invocation-Id", uuid.New().String())
-
- // 5. Authentication
- req.Header.Set("Authorization", "Bearer "+h.authToken)
-
- // 6. Custom headers from auth attributes
- util.ApplyCustomHeadersFromAttrs(req, h.authAttrs)
-}
-
-// mcpMaxRetries is the maximum number of retries for MCP API calls.
-const mcpMaxRetries = 2
-
-// callMcpAPI calls the Kiro MCP API with the given request.
-// Includes retry logic with exponential backoff for retryable errors.
-func (h *webSearchHandler) callMcpAPI(request *kiroclaude.McpRequest) (*kiroclaude.McpResponse, error) {
- requestBody, err := json.Marshal(request)
- if err != nil {
- return nil, fmt.Errorf("failed to marshal MCP request: %w", err)
- }
- log.Debugf("kiro/websearch MCP request → %s (%d bytes)", h.mcpEndpoint, len(requestBody))
-
- var lastErr error
- for attempt := 0; attempt <= mcpMaxRetries; attempt++ {
- if attempt > 0 {
- backoff := time.Duration(1< 10*time.Second {
- backoff = 10 * time.Second
- }
- log.Warnf("kiro/websearch: MCP retry %d/%d after %v (last error: %v)", attempt, mcpMaxRetries, backoff, lastErr)
- select {
- case <-h.ctx.Done():
- return nil, h.ctx.Err()
- case <-time.After(backoff):
- }
- }
-
- req, err := http.NewRequestWithContext(h.ctx, "POST", h.mcpEndpoint, bytes.NewReader(requestBody))
- if err != nil {
- return nil, fmt.Errorf("failed to create HTTP request: %w", err)
- }
-
- h.setMcpHeaders(req)
-
- resp, err := h.httpClient.Do(req)
- if err != nil {
- lastErr = fmt.Errorf("MCP API request failed: %w", err)
- continue // network error → retry
- }
-
- body, err := io.ReadAll(resp.Body)
- resp.Body.Close()
- if err != nil {
- lastErr = fmt.Errorf("failed to read MCP response: %w", err)
- continue // read error → retry
- }
- log.Debugf("kiro/websearch MCP response ← [%d] (%d bytes)", resp.StatusCode, len(body))
-
- // Retryable HTTP status codes (aligned with GAR: 502, 503, 504)
- if resp.StatusCode >= 502 && resp.StatusCode <= 504 {
- lastErr = fmt.Errorf("MCP API returned retryable status %d: %s", resp.StatusCode, string(body))
- continue
- }
-
- if resp.StatusCode != http.StatusOK {
- return nil, fmt.Errorf("MCP API returned status %d: %s", resp.StatusCode, string(body))
- }
-
- var mcpResponse kiroclaude.McpResponse
- if err := json.Unmarshal(body, &mcpResponse); err != nil {
- return nil, fmt.Errorf("failed to parse MCP response: %w", err)
- }
-
- if mcpResponse.Error != nil {
- code := -1
- if mcpResponse.Error.Code != nil {
- code = *mcpResponse.Error.Code
- }
- msg := "Unknown error"
- if mcpResponse.Error.Message != nil {
- msg = *mcpResponse.Error.Message
- }
- return nil, fmt.Errorf("MCP error %d: %s", code, msg)
- }
-
- return &mcpResponse, nil
- }
-
- return nil, lastErr
-}
-
-// webSearchAuthAttrs extracts auth attributes for MCP calls.
-// Used by handleWebSearch and handleWebSearchStream to pass custom headers.
-func webSearchAuthAttrs(auth *cliproxyauth.Auth) map[string]string {
- if auth != nil {
- return auth.Attributes
- }
- return nil
-}
-
-const maxWebSearchIterations = 5
-
-// handleWebSearchStream handles web_search requests:
-// Step 1: tools/list (sync) → fetch/cache tool description
-// Step 2+: MCP search → InjectToolResultsClaude → callKiroAndBuffer loop
-// Note: We skip the "model decides to search" step because Claude Code already
-// decided to use web_search. The Kiro tool description restricts non-coding
-// topics, so asking the model again would cause it to refuse valid searches.
-func (e *KiroExecutor) handleWebSearchStream(
- ctx context.Context,
- auth *cliproxyauth.Auth,
- req cliproxyexecutor.Request,
- opts cliproxyexecutor.Options,
- accessToken, profileArn string,
-) (<-chan cliproxyexecutor.StreamChunk, error) {
- // Extract search query from Claude Code's web_search tool_use
- query := kiroclaude.ExtractSearchQuery(req.Payload)
- if query == "" {
- log.Warnf("kiro/websearch: failed to extract search query, falling back to normal flow")
- return e.callKiroDirectStream(ctx, auth, req, opts, accessToken, profileArn)
- }
-
- // Build MCP endpoint using shared region resolution (supports api_region + ProfileARN fallback)
- region := resolveKiroAPIRegion(auth)
- mcpEndpoint := kiroclaude.BuildMcpEndpoint(region)
-
- // ── Step 1: tools/list (SYNC) — cache tool description ──
- {
- authAttrs := webSearchAuthAttrs(auth)
- fetchToolDescription(ctx, mcpEndpoint, accessToken, newKiroHTTPClientWithPooling(ctx, e.cfg, auth, 30*time.Second), auth, authAttrs)
- }
-
- // Create output channel
- out := make(chan cliproxyexecutor.StreamChunk)
-
- // Usage reporting: track web search requests like normal streaming requests
- reporter := newUsageReporter(ctx, e.Identifier(), req.Model, auth)
-
- go func() {
- var wsErr error
- defer reporter.trackFailure(ctx, &wsErr)
- defer close(out)
-
- // Estimate input tokens using tokenizer (matching streamToChannel pattern)
- var totalUsage usage.Detail
- if enc, tokErr := getTokenizer(req.Model); tokErr == nil {
- if inp, e := countClaudeChatTokens(enc, req.Payload); e == nil && inp > 0 {
- totalUsage.InputTokens = inp
- } else {
- totalUsage.InputTokens = int64(len(req.Payload) / 4)
- }
- } else {
- totalUsage.InputTokens = int64(len(req.Payload) / 4)
- }
- if totalUsage.InputTokens == 0 && len(req.Payload) > 0 {
- totalUsage.InputTokens = 1
- }
- var accumulatedOutputLen int
- defer func() {
- if wsErr != nil {
- return // let trackFailure handle failure reporting
- }
- totalUsage.OutputTokens = int64(accumulatedOutputLen / 4)
- if accumulatedOutputLen > 0 && totalUsage.OutputTokens == 0 {
- totalUsage.OutputTokens = 1
- }
- reporter.publish(ctx, totalUsage)
- }()
-
- // Send message_start event to client (aligned with streamToChannel pattern)
- // Use payloadRequestedModel to return user's original model alias
- msgStart := kiroclaude.BuildClaudeMessageStartEvent(
- payloadRequestedModel(opts, req.Model),
- totalUsage.InputTokens,
- )
- select {
- case <-ctx.Done():
- return
- case out <- cliproxyexecutor.StreamChunk{Payload: append(msgStart, '\n', '\n')}:
- }
-
- // ── Step 2+: MCP search → InjectToolResultsClaude → callKiroAndBuffer loop ──
- contentBlockIndex := 0
- currentQuery := query
-
- // Replace web_search tool description with a minimal one that allows re-search.
- // The original tools/list description from Kiro restricts non-coding topics,
- // but we've already decided to search. We keep the tool so the model can
- // request additional searches when results are insufficient.
- simplifiedPayload, simplifyErr := kiroclaude.ReplaceWebSearchToolDescription(bytes.Clone(req.Payload))
- if simplifyErr != nil {
- log.Warnf("kiro/websearch: failed to simplify web_search tool: %v, using original payload", simplifyErr)
- simplifiedPayload = bytes.Clone(req.Payload)
- }
-
- currentClaudePayload := simplifiedPayload
- totalSearches := 0
-
- // Generate toolUseId for the first iteration (Claude Code already decided to search)
- currentToolUseId := fmt.Sprintf("srvtoolu_%s", kiroclaude.GenerateToolUseID())
-
- for iteration := 0; iteration < maxWebSearchIterations; iteration++ {
- log.Infof("kiro/websearch: search iteration %d/%d",
- iteration+1, maxWebSearchIterations)
-
- // MCP search
- _, mcpRequest := kiroclaude.CreateMcpRequest(currentQuery)
-
- authAttrs := webSearchAuthAttrs(auth)
- handler := newWebSearchHandler(ctx, mcpEndpoint, accessToken, newKiroHTTPClientWithPooling(ctx, e.cfg, auth, 30*time.Second), auth, authAttrs)
- mcpResponse, mcpErr := handler.callMcpAPI(mcpRequest)
-
- var searchResults *kiroclaude.WebSearchResults
- if mcpErr != nil {
- log.Warnf("kiro/websearch: MCP API call failed: %v, continuing with empty results", mcpErr)
- } else {
- searchResults = kiroclaude.ParseSearchResults(mcpResponse)
- }
-
- resultCount := 0
- if searchResults != nil {
- resultCount = len(searchResults.Results)
- }
- totalSearches++
- log.Infof("kiro/websearch: iteration %d — got %d search results", iteration+1, resultCount)
-
- // Send search indicator events to client
- searchEvents := kiroclaude.GenerateSearchIndicatorEvents(currentQuery, currentToolUseId, searchResults, contentBlockIndex)
- for _, event := range searchEvents {
- select {
- case <-ctx.Done():
- return
- case out <- cliproxyexecutor.StreamChunk{Payload: event}:
- }
- }
- contentBlockIndex += 2
-
- // Inject tool_use + tool_result into Claude payload, then call GAR
- var err error
- currentClaudePayload, err = kiroclaude.InjectToolResultsClaude(currentClaudePayload, currentToolUseId, currentQuery, searchResults)
- if err != nil {
- log.Warnf("kiro/websearch: failed to inject tool results: %v", err)
- wsErr = fmt.Errorf("failed to inject tool results: %w", err)
- e.sendFallbackText(ctx, out, contentBlockIndex, currentQuery, searchResults)
- return
- }
-
- // Call GAR with modified Claude payload (full translation pipeline)
- modifiedReq := req
- modifiedReq.Payload = currentClaudePayload
- kiroChunks, kiroErr := e.callKiroAndBuffer(ctx, auth, modifiedReq, opts, accessToken, profileArn)
- if kiroErr != nil {
- log.Warnf("kiro/websearch: Kiro API failed at iteration %d: %v", iteration+1, kiroErr)
- wsErr = fmt.Errorf("Kiro API failed at iteration %d: %w", iteration+1, kiroErr)
- e.sendFallbackText(ctx, out, contentBlockIndex, currentQuery, searchResults)
- return
- }
-
- // Analyze response
- analysis := kiroclaude.AnalyzeBufferedStream(kiroChunks)
- log.Infof("kiro/websearch: iteration %d — stop_reason: %s, has_tool_use: %v",
- iteration+1, analysis.StopReason, analysis.HasWebSearchToolUse)
-
- if analysis.HasWebSearchToolUse && analysis.WebSearchQuery != "" && iteration+1 < maxWebSearchIterations {
- // Model wants another search
- filteredChunks := kiroclaude.FilterChunksForClient(kiroChunks, analysis.WebSearchToolUseIndex, contentBlockIndex)
- for _, chunk := range filteredChunks {
- select {
- case <-ctx.Done():
- return
- case out <- cliproxyexecutor.StreamChunk{Payload: chunk}:
- }
- }
-
- currentQuery = analysis.WebSearchQuery
- currentToolUseId = analysis.WebSearchToolUseId
- continue
- }
-
- // Model returned final response — stream to client
- for _, chunk := range kiroChunks {
- if contentBlockIndex > 0 && len(chunk) > 0 {
- adjusted, shouldForward := kiroclaude.AdjustSSEChunk(chunk, contentBlockIndex)
- if !shouldForward {
- continue
- }
- accumulatedOutputLen += len(adjusted)
- select {
- case <-ctx.Done():
- return
- case out <- cliproxyexecutor.StreamChunk{Payload: adjusted}:
- }
- } else {
- accumulatedOutputLen += len(chunk)
- select {
- case <-ctx.Done():
- return
- case out <- cliproxyexecutor.StreamChunk{Payload: chunk}:
- }
- }
- }
- log.Infof("kiro/websearch: completed after %d search iteration(s), total searches: %d", iteration+1, totalSearches)
- return
- }
-
- log.Warnf("kiro/websearch: reached max iterations (%d), stopping search loop", maxWebSearchIterations)
- }()
-
- return out, nil
-}
-
-// handleWebSearch handles web_search requests for non-streaming Execute path.
-// Performs MCP search synchronously, injects results into the request payload,
-// then calls the normal non-streaming Kiro API path which returns a proper
-// Claude JSON response (not SSE chunks).
-func (e *KiroExecutor) handleWebSearch(
- ctx context.Context,
- auth *cliproxyauth.Auth,
- req cliproxyexecutor.Request,
- opts cliproxyexecutor.Options,
- accessToken, profileArn string,
-) (cliproxyexecutor.Response, error) {
- // Extract search query from Claude Code's web_search tool_use
- query := kiroclaude.ExtractSearchQuery(req.Payload)
- if query == "" {
- log.Warnf("kiro/websearch: non-stream: failed to extract search query, falling back to normal Execute")
- // Fall through to normal non-streaming path
- return e.executeNonStreamFallback(ctx, auth, req, opts, accessToken, profileArn)
- }
-
- // Build MCP endpoint using shared region resolution (supports api_region + ProfileARN fallback)
- region := resolveKiroAPIRegion(auth)
- mcpEndpoint := kiroclaude.BuildMcpEndpoint(region)
-
- // Step 1: Fetch/cache tool description (sync)
- {
- authAttrs := webSearchAuthAttrs(auth)
- fetchToolDescription(ctx, mcpEndpoint, accessToken, newKiroHTTPClientWithPooling(ctx, e.cfg, auth, 30*time.Second), auth, authAttrs)
- }
-
- // Step 2: Perform MCP search
- _, mcpRequest := kiroclaude.CreateMcpRequest(query)
-
- authAttrs := webSearchAuthAttrs(auth)
- handler := newWebSearchHandler(ctx, mcpEndpoint, accessToken, newKiroHTTPClientWithPooling(ctx, e.cfg, auth, 30*time.Second), auth, authAttrs)
- mcpResponse, mcpErr := handler.callMcpAPI(mcpRequest)
-
- var searchResults *kiroclaude.WebSearchResults
- if mcpErr != nil {
- log.Warnf("kiro/websearch: non-stream: MCP API call failed: %v, continuing with empty results", mcpErr)
- } else {
- searchResults = kiroclaude.ParseSearchResults(mcpResponse)
- }
-
- resultCount := 0
- if searchResults != nil {
- resultCount = len(searchResults.Results)
- }
- log.Infof("kiro/websearch: non-stream: got %d search results", resultCount)
-
- // Step 3: Replace restrictive web_search tool description (align with streaming path)
- simplifiedPayload, simplifyErr := kiroclaude.ReplaceWebSearchToolDescription(bytes.Clone(req.Payload))
- if simplifyErr != nil {
- log.Warnf("kiro/websearch: non-stream: failed to simplify web_search tool: %v, using original payload", simplifyErr)
- simplifiedPayload = bytes.Clone(req.Payload)
- }
-
- // Step 4: Inject search tool_use + tool_result into Claude payload
- currentToolUseId := fmt.Sprintf("srvtoolu_%s", kiroclaude.GenerateToolUseID())
- modifiedPayload, err := kiroclaude.InjectToolResultsClaude(simplifiedPayload, currentToolUseId, query, searchResults)
- if err != nil {
- log.Warnf("kiro/websearch: non-stream: failed to inject tool results: %v, falling back", err)
- return e.executeNonStreamFallback(ctx, auth, req, opts, accessToken, profileArn)
- }
-
- // Step 5: Call Kiro API via the normal non-streaming path (executeWithRetry)
- // This path uses parseEventStream → BuildClaudeResponse → TranslateNonStream
- // to produce a proper Claude JSON response
- modifiedReq := req
- modifiedReq.Payload = modifiedPayload
-
- resp, err := e.executeNonStreamFallback(ctx, auth, modifiedReq, opts, accessToken, profileArn)
- if err != nil {
- return resp, err
- }
-
- // Step 6: Inject server_tool_use + web_search_tool_result into response
- // so Claude Code can display "Did X searches in Ys"
- indicators := []kiroclaude.SearchIndicator{
- {
- ToolUseID: currentToolUseId,
- Query: query,
- Results: searchResults,
- },
- }
- injectedPayload, injErr := kiroclaude.InjectSearchIndicatorsInResponse(resp.Payload, indicators)
- if injErr != nil {
- log.Warnf("kiro/websearch: non-stream: failed to inject search indicators: %v", injErr)
- } else {
- resp.Payload = injectedPayload
- }
-
- return resp, nil
-}
-
-// callKiroAndBuffer calls the Kiro API and buffers all response chunks.
-// Returns the buffered chunks for analysis before forwarding to client.
-// Usage reporting is NOT done here — the caller (handleWebSearchStream) manages its own reporter.
-func (e *KiroExecutor) callKiroAndBuffer(
- ctx context.Context,
- auth *cliproxyauth.Auth,
- req cliproxyexecutor.Request,
- opts cliproxyexecutor.Options,
- accessToken, profileArn string,
-) ([][]byte, error) {
- from := opts.SourceFormat
- to := sdktranslator.FromString("kiro")
- body := sdktranslator.TranslateRequest(from, to, req.Model, bytes.Clone(req.Payload), true)
- log.Debugf("kiro/websearch GAR request: %d bytes", len(body))
-
- kiroModelID := e.mapModelToKiro(req.Model)
- isAgentic, isChatOnly := determineAgenticMode(req.Model)
- effectiveProfileArn := getEffectiveProfileArnWithWarning(auth, profileArn)
-
- tokenKey := getTokenKey(auth)
-
- kiroStream, err := e.executeStreamWithRetry(
- ctx, auth, req, opts, accessToken, effectiveProfileArn,
- nil, body, from, nil, "", kiroModelID, isAgentic, isChatOnly, tokenKey,
- )
- if err != nil {
- return nil, err
- }
-
- // Buffer all chunks
- var chunks [][]byte
- for chunk := range kiroStream {
- if chunk.Err != nil {
- return chunks, chunk.Err
- }
- if len(chunk.Payload) > 0 {
- chunks = append(chunks, bytes.Clone(chunk.Payload))
- }
- }
-
- log.Debugf("kiro/websearch GAR response: %d chunks buffered", len(chunks))
-
- return chunks, nil
-}
-
-// callKiroDirectStream creates a direct streaming channel to Kiro API without search.
-func (e *KiroExecutor) callKiroDirectStream(
- ctx context.Context,
- auth *cliproxyauth.Auth,
- req cliproxyexecutor.Request,
- opts cliproxyexecutor.Options,
- accessToken, profileArn string,
-) (<-chan cliproxyexecutor.StreamChunk, error) {
- from := opts.SourceFormat
- to := sdktranslator.FromString("kiro")
- body := sdktranslator.TranslateRequest(from, to, req.Model, bytes.Clone(req.Payload), true)
-
- kiroModelID := e.mapModelToKiro(req.Model)
- isAgentic, isChatOnly := determineAgenticMode(req.Model)
- effectiveProfileArn := getEffectiveProfileArnWithWarning(auth, profileArn)
-
- tokenKey := getTokenKey(auth)
-
- reporter := newUsageReporter(ctx, e.Identifier(), req.Model, auth)
- var streamErr error
- defer reporter.trackFailure(ctx, &streamErr)
-
- stream, streamErr := e.executeStreamWithRetry(
- ctx, auth, req, opts, accessToken, effectiveProfileArn,
- nil, body, from, reporter, "", kiroModelID, isAgentic, isChatOnly, tokenKey,
- )
- return stream, streamErr
-}
-
-// sendFallbackText sends a simple text response when the Kiro API fails during the search loop.
-// Delegates SSE event construction to kiroclaude.BuildFallbackTextEvents() for alignment
-// with how streamToChannel() uses BuildClaude*Event() functions.
-func (e *KiroExecutor) sendFallbackText(
- ctx context.Context,
- out chan<- cliproxyexecutor.StreamChunk,
- contentBlockIndex int,
- query string,
- searchResults *kiroclaude.WebSearchResults,
-) {
- events := kiroclaude.BuildFallbackTextEvents(contentBlockIndex, query, searchResults)
- for _, event := range events {
- select {
- case <-ctx.Done():
- return
- case out <- cliproxyexecutor.StreamChunk{Payload: append(event, '\n', '\n')}:
- }
- }
-}
-
-// executeNonStreamFallback runs the standard non-streaming Execute path for a request.
-// Used by handleWebSearch after injecting search results, or as a fallback.
-func (e *KiroExecutor) executeNonStreamFallback(
- ctx context.Context,
- auth *cliproxyauth.Auth,
- req cliproxyexecutor.Request,
- opts cliproxyexecutor.Options,
- accessToken, profileArn string,
-) (cliproxyexecutor.Response, error) {
- from := opts.SourceFormat
- to := sdktranslator.FromString("kiro")
- body := sdktranslator.TranslateRequest(from, to, req.Model, bytes.Clone(req.Payload), true)
-
- kiroModelID := e.mapModelToKiro(req.Model)
- isAgentic, isChatOnly := determineAgenticMode(req.Model)
- effectiveProfileArn := getEffectiveProfileArnWithWarning(auth, profileArn)
- tokenKey := getTokenKey(auth)
-
- reporter := newUsageReporter(ctx, e.Identifier(), req.Model, auth)
- var err error
- defer reporter.trackFailure(ctx, &err)
-
- resp, err := e.executeWithRetry(ctx, auth, req, opts, accessToken, effectiveProfileArn, nil, body, from, to, reporter, "", kiroModelID, isAgentic, isChatOnly, tokenKey)
- return resp, err
-}
diff --git a/pkg/llmproxy/runtime/executor/token_helpers_test.go b/pkg/llmproxy/runtime/executor/token_helpers_test.go
index 8d27e3a1fd..440bf005e8 100644
--- a/pkg/llmproxy/runtime/executor/token_helpers_test.go
+++ b/pkg/llmproxy/runtime/executor/token_helpers_test.go
@@ -6,7 +6,7 @@ import (
func TestTokenizerForModel(t *testing.T) {
cases := []struct {
- model string
+ model string
wantAdj float64
}{
{"gpt-4", 1.0},
@@ -59,7 +59,7 @@ func TestEstimateImageTokens(t *testing.T) {
want int
}{
{0, 0, 1000},
- {100, 100, 85}, // 10000/750 = 13.3 -> min 85
+ {100, 100, 85}, // 10000/750 = 13.3 -> min 85
{1000, 1000, 1333}, // 1000000/750 = 1333
{2000, 2000, 1590}, // max 1590
}
diff --git a/pkg/llmproxy/store/atomic_write.go b/pkg/llmproxy/store/atomic_write.go
new file mode 100644
index 0000000000..aaafab11b5
--- /dev/null
+++ b/pkg/llmproxy/store/atomic_write.go
@@ -0,0 +1,43 @@
+package store
+
+import (
+ "fmt"
+ "os"
+ "path/filepath"
+)
+
+// writeFileAtomically writes data to a unique temp file in the destination directory,
+// fsyncs it, and then atomically renames it into place.
+func writeFileAtomically(path string, data []byte, perm os.FileMode) (err error) {
+ dir := filepath.Dir(path)
+ tmp, err := os.CreateTemp(dir, "."+filepath.Base(path)+".tmp-*")
+ if err != nil {
+ return fmt.Errorf("create temp file: %w", err)
+ }
+ tmpPath := tmp.Name()
+ defer func() {
+ if err != nil {
+ _ = os.Remove(tmpPath)
+ }
+ }()
+
+ if err = tmp.Chmod(perm); err != nil {
+ _ = tmp.Close()
+ return fmt.Errorf("chmod temp file: %w", err)
+ }
+ if _, err = tmp.Write(data); err != nil {
+ _ = tmp.Close()
+ return fmt.Errorf("write temp file: %w", err)
+ }
+ if err = tmp.Sync(); err != nil {
+ _ = tmp.Close()
+ return fmt.Errorf("sync temp file: %w", err)
+ }
+ if err = tmp.Close(); err != nil {
+ return fmt.Errorf("close temp file: %w", err)
+ }
+ if err = os.Rename(tmpPath, path); err != nil {
+ return fmt.Errorf("rename temp file: %w", err)
+ }
+ return nil
+}
diff --git a/pkg/llmproxy/store/atomic_write_test.go b/pkg/llmproxy/store/atomic_write_test.go
new file mode 100644
index 0000000000..374227930c
--- /dev/null
+++ b/pkg/llmproxy/store/atomic_write_test.go
@@ -0,0 +1,57 @@
+package store
+
+import (
+ "fmt"
+ "os"
+ "path/filepath"
+ "sync"
+ "testing"
+)
+
+func TestWriteFileAtomically_ConcurrentWritersNoTempCollisions(t *testing.T) {
+ t.Parallel()
+
+ dir := t.TempDir()
+ target := filepath.Join(dir, "auth.json")
+
+ const writers = 48
+ errCh := make(chan error, writers)
+ var wg sync.WaitGroup
+
+ for i := 0; i < writers; i++ {
+ i := i
+ wg.Add(1)
+ go func() {
+ defer wg.Done()
+ payload := []byte(fmt.Sprintf(`{"writer":%d}`, i))
+ if err := writeFileAtomically(target, payload, 0o600); err != nil {
+ errCh <- err
+ }
+ }()
+ }
+
+ wg.Wait()
+ close(errCh)
+ for err := range errCh {
+ if err != nil {
+ t.Fatalf("atomic write failed: %v", err)
+ }
+ }
+
+ got, err := os.ReadFile(target)
+ if err != nil {
+ t.Fatalf("read target: %v", err)
+ }
+ if len(got) == 0 {
+ t.Fatal("expected non-empty final file content")
+ }
+
+ tmpPattern := filepath.Join(dir, ".auth.json.tmp-*")
+ tmpFiles, err := filepath.Glob(tmpPattern)
+ if err != nil {
+ t.Fatalf("glob temp files: %v", err)
+ }
+ if len(tmpFiles) != 0 {
+ t.Fatalf("expected no temp files left behind, found %d", len(tmpFiles))
+ }
+}
diff --git a/pkg/llmproxy/store/git_helpers_test.go b/pkg/llmproxy/store/git_helpers_test.go
new file mode 100644
index 0000000000..ab19a36f9c
--- /dev/null
+++ b/pkg/llmproxy/store/git_helpers_test.go
@@ -0,0 +1,128 @@
+package store
+
+import (
+ "fmt"
+ "os"
+ "path/filepath"
+ "strings"
+)
+
+var ErrConcurrentGitWrite = fmt.Errorf("concurrent git write in progress")
+
+func isGitErr(err error, fragment string) bool {
+ if err == nil {
+ return false
+ }
+ if strings.TrimSpace(fragment) == "" {
+ return false
+ }
+ return strings.Contains(strings.ToLower(err.Error()), strings.ToLower(strings.TrimSpace(fragment)))
+}
+
+func isNonFastForwardUpdateError(err error) bool {
+ if err == nil {
+ return false
+ }
+ if isGitErr(err, "non-fast-forward") {
+ return true
+ }
+ return false
+}
+
+func bootstrapPullDivergedError(err error) error {
+ if !isNonFastForwardUpdateError(err) {
+ return fmt.Errorf("bootstrap pull failed: %w", err)
+ }
+ return fmt.Errorf("%w: bootstrap pull diverged, please retry after sync: %w", ErrConcurrentGitWrite, err)
+}
+
+func snapshotLocalAuthFiles(authDir string) (map[string]int64, error) {
+ authDir = strings.TrimSpace(authDir)
+ if authDir == "" {
+ return nil, fmt.Errorf("auth directory is required")
+ }
+
+ info := make(map[string]int64)
+ err := filepath.Walk(authDir, func(path string, _ os.FileInfo, errWalk error) error {
+ if errWalk != nil {
+ return errWalk
+ }
+ if !strings.HasSuffix(strings.ToLower(filepath.Base(path)), ".json") {
+ return nil
+ }
+ st, errStat := os.Stat(path)
+ if errStat != nil {
+ return errStat
+ }
+ if st.IsDir() {
+ return nil
+ }
+ info[path] = st.ModTime().UnixNano()
+ return nil
+ })
+ if err != nil {
+ return nil, err
+ }
+ return info, nil
+}
+
+func buildSafeAuthPrunePlan(authDir string, baseline map[string]int64, remote map[string]struct{}) ([]string, []string, error) {
+ if strings.TrimSpace(authDir) == "" {
+ return nil, nil, fmt.Errorf("auth directory is required")
+ }
+ if baseline == nil {
+ baseline = make(map[string]int64)
+ }
+ if remote == nil {
+ remote = make(map[string]struct{})
+ }
+
+ isRemote := func(path string) bool {
+ base := filepath.Base(path)
+ _, ok := remote[base]
+ return ok
+ }
+ current := make(map[string]int64)
+ if err := filepath.Walk(authDir, func(path string, info os.FileInfo, errWalk error) error {
+ if errWalk != nil {
+ return errWalk
+ }
+ if info == nil || info.IsDir() {
+ return nil
+ }
+ if !strings.HasSuffix(strings.ToLower(info.Name()), ".json") {
+ return nil
+ }
+ current[path] = info.ModTime().UnixNano()
+ return nil
+ }); err != nil {
+ return nil, nil, err
+ }
+
+ stale := make([]string, 0)
+ conflicts := make([]string, 0)
+
+ for path, baselineTs := range baseline {
+ if isRemote(path) {
+ continue
+ }
+ if ts, ok := current[path]; !ok {
+ stale = append(stale, path)
+ } else if ts == baselineTs {
+ stale = append(stale, path)
+ } else {
+ conflicts = append(conflicts, path)
+ }
+ }
+
+ for path := range current {
+ if isRemote(path) {
+ continue
+ }
+ if _, ok := baseline[path]; !ok {
+ conflicts = append(conflicts, path)
+ }
+ }
+
+ return stale, conflicts, nil
+}
diff --git a/pkg/llmproxy/store/gitstore.go b/pkg/llmproxy/store/gitstore.go
index c8db660cb3..e27f177145 100644
--- a/pkg/llmproxy/store/gitstore.go
+++ b/pkg/llmproxy/store/gitstore.go
@@ -769,3 +769,30 @@ func deepEqualJSON(a, b any) bool {
return false
}
}
+
+// openOrInitRepositoryAfterEmptyClone opens or initializes a git repository at the given directory.
+// If a .git directory already exists (e.g., from a failed clone), it archives it with a
+// timestamped backup name before initializing a new repository.
+func openOrInitRepositoryAfterEmptyClone(repoDir string) (*git.Repository, error) {
+ gitDir := filepath.Join(repoDir, ".git")
+
+ // If .git exists, archive it
+ if _, err := os.Stat(gitDir); err == nil {
+ // .git exists, archive it
+ timestamp := time.Now().Format("20060102-150405")
+ backupName := fmt.Sprintf(".git.bootstrap-backup-%s", timestamp)
+ backupPath := filepath.Join(repoDir, backupName)
+ if errRename := os.Rename(gitDir, backupPath); errRename != nil {
+ return nil, fmt.Errorf("archive existing .git directory: %w", errRename)
+ }
+ } else if !errors.Is(err, fs.ErrNotExist) {
+ // Unexpected error
+ return nil, fmt.Errorf("stat .git directory: %w", err)
+ }
+ // Now .git does not exist, initialize a fresh repository
+ repo, errInit := git.PlainInit(repoDir, false)
+ if errInit != nil {
+ return nil, fmt.Errorf("initialize repository: %w", errInit)
+ }
+ return repo, nil
+}
diff --git a/pkg/llmproxy/store/gitstore_bootstrap_test.go b/pkg/llmproxy/store/gitstore_bootstrap_test.go
new file mode 100644
index 0000000000..d0662f8220
--- /dev/null
+++ b/pkg/llmproxy/store/gitstore_bootstrap_test.go
@@ -0,0 +1,94 @@
+package store
+
+import (
+ "os"
+ "path/filepath"
+ "strings"
+ "testing"
+
+ "github.com/go-git/go-git/v6"
+)
+
+func TestOpenOrInitRepositoryAfterEmptyCloneArchivesExistingGitDir(t *testing.T) {
+ t.Parallel()
+
+ repoDir := t.TempDir()
+ gitDir := filepath.Join(repoDir, ".git")
+ if err := os.MkdirAll(gitDir, 0o700); err != nil {
+ t.Fatalf("create git dir: %v", err)
+ }
+ markerPath := filepath.Join(gitDir, "marker.txt")
+ if err := os.WriteFile(markerPath, []byte("keep-me"), 0o600); err != nil {
+ t.Fatalf("write marker: %v", err)
+ }
+
+ repo, err := openOrInitRepositoryAfterEmptyClone(repoDir)
+ if err != nil {
+ t.Fatalf("open/init repo: %v", err)
+ }
+ if repo == nil {
+ t.Fatalf("expected repository instance")
+ }
+
+ if _, err := git.PlainOpen(repoDir); err != nil {
+ t.Fatalf("open initialized repository: %v", err)
+ }
+ entries, err := os.ReadDir(repoDir)
+ if err != nil {
+ t.Fatalf("read repo dir: %v", err)
+ }
+ backupCount := 0
+ for _, entry := range entries {
+ if !strings.HasPrefix(entry.Name(), ".git.bootstrap-backup-") {
+ continue
+ }
+ backupCount++
+ archivedMarker := filepath.Join(repoDir, entry.Name(), "marker.txt")
+ if _, err := os.Stat(archivedMarker); err != nil {
+ t.Fatalf("expected archived marker file: %v", err)
+ }
+ }
+ if backupCount != 1 {
+ t.Fatalf("expected exactly one archived git dir, got %d", backupCount)
+ }
+}
+
+func TestEnsureRepositoryBootstrapsEmptyRemoteClone(t *testing.T) {
+ t.Parallel()
+
+ remoteDir := filepath.Join(t.TempDir(), "remote.git")
+ if _, err := git.PlainInit(remoteDir, true); err != nil {
+ t.Fatalf("init bare remote: %v", err)
+ }
+
+ repoRoot := filepath.Join(t.TempDir(), "local-repo")
+ store := NewGitTokenStore(remoteDir, "", "")
+ store.SetBaseDir(filepath.Join(repoRoot, "auths"))
+
+ if err := store.EnsureRepository(); err != nil {
+ t.Fatalf("ensure repository: %v", err)
+ }
+
+ if _, err := os.Stat(filepath.Join(repoRoot, ".git")); err != nil {
+ t.Fatalf("expected local .git directory: %v", err)
+ }
+ if _, err := os.Stat(filepath.Join(repoRoot, "auths", ".gitkeep")); err != nil {
+ t.Fatalf("expected auth placeholder: %v", err)
+ }
+ if _, err := os.Stat(filepath.Join(repoRoot, "config", ".gitkeep")); err != nil {
+ t.Fatalf("expected config placeholder: %v", err)
+ }
+
+ repo, err := git.PlainOpen(repoRoot)
+ if err != nil {
+ t.Fatalf("open local repository: %v", err)
+ }
+ origin, err := repo.Remote("origin")
+ if err != nil {
+ t.Fatalf("origin remote: %v", err)
+ }
+ urls := origin.Config().URLs
+ if len(urls) != 1 || urls[0] != remoteDir {
+ t.Fatalf("unexpected origin URLs: %#v", urls)
+ }
+}
diff --git a/pkg/llmproxy/store/gitstore_push_test.go b/pkg/llmproxy/store/gitstore_push_test.go
new file mode 100644
index 0000000000..affe44dbf1
--- /dev/null
+++ b/pkg/llmproxy/store/gitstore_push_test.go
@@ -0,0 +1,42 @@
+package store
+
+import (
+ "errors"
+ "strings"
+ "testing"
+
+ "github.com/go-git/go-git/v6"
+)
+
+func TestIsNonFastForwardUpdateError(t *testing.T) {
+ t.Parallel()
+
+ if !isNonFastForwardUpdateError(git.ErrNonFastForwardUpdate) {
+ t.Fatalf("expected ErrNonFastForwardUpdate to be detected")
+ }
+ if !isNonFastForwardUpdateError(errors.New("remote rejected: non-fast-forward update")) {
+ t.Fatalf("expected textual non-fast-forward error to be detected")
+ }
+ if isNonFastForwardUpdateError(errors.New("some other push error")) {
+ t.Fatalf("did not expect unrelated error to be detected")
+ }
+ if isNonFastForwardUpdateError(nil) {
+ t.Fatalf("nil must not be detected as non-fast-forward")
+ }
+}
+
+func TestBootstrapPullDivergedError(t *testing.T) {
+ t.Parallel()
+
+ err := bootstrapPullDivergedError(git.ErrNonFastForwardUpdate)
+ if !errors.Is(err, ErrConcurrentGitWrite) {
+ t.Fatalf("expected ErrConcurrentGitWrite wrapper, got: %v", err)
+ }
+ msg := strings.ToLower(err.Error())
+ if !strings.Contains(msg, "bootstrap pull diverged") {
+ t.Fatalf("expected bootstrap divergence context, got: %s", err.Error())
+ }
+ if !strings.Contains(msg, "retry") {
+ t.Fatalf("expected retry guidance in error message, got: %s", err.Error())
+ }
+}
diff --git a/pkg/llmproxy/store/objectstore_prune_test.go b/pkg/llmproxy/store/objectstore_prune_test.go
new file mode 100644
index 0000000000..760df4a550
--- /dev/null
+++ b/pkg/llmproxy/store/objectstore_prune_test.go
@@ -0,0 +1,129 @@
+package store
+
+import (
+ "os"
+ "path/filepath"
+ "testing"
+ "time"
+)
+
+func TestBuildSafeAuthPrunePlan_PrunesUnchangedStaleJSON(t *testing.T) {
+ t.Parallel()
+
+ authDir := t.TempDir()
+ stalePath := filepath.Join(authDir, "stale.json")
+ if err := os.WriteFile(stalePath, []byte(`{"stale":true}`), 0o600); err != nil {
+ t.Fatalf("write stale file: %v", err)
+ }
+
+ baseline, err := snapshotLocalAuthFiles(authDir)
+ if err != nil {
+ t.Fatalf("snapshot baseline: %v", err)
+ }
+
+ stale, conflicts, err := buildSafeAuthPrunePlan(authDir, baseline, map[string]struct{}{})
+ if err != nil {
+ t.Fatalf("build prune plan: %v", err)
+ }
+
+ if len(stale) != 1 || stale[0] != stalePath {
+ t.Fatalf("expected stale path %s, got %#v", stalePath, stale)
+ }
+ if len(conflicts) != 0 {
+ t.Fatalf("expected no conflicts, got %#v", conflicts)
+ }
+}
+
+func TestBuildSafeAuthPrunePlan_SkipsLocallyModifiedFileAsConflict(t *testing.T) {
+ t.Parallel()
+
+ authDir := t.TempDir()
+ changedPath := filepath.Join(authDir, "changed.json")
+ if err := os.WriteFile(changedPath, []byte(`{"v":1}`), 0o600); err != nil {
+ t.Fatalf("write changed file: %v", err)
+ }
+
+ baseline, err := snapshotLocalAuthFiles(authDir)
+ if err != nil {
+ t.Fatalf("snapshot baseline: %v", err)
+ }
+
+ if err := os.WriteFile(changedPath, []byte(`{"v":2}`), 0o600); err != nil {
+ t.Fatalf("rewrite changed file: %v", err)
+ }
+ now := time.Now().Add(2 * time.Second)
+ if err := os.Chtimes(changedPath, now, now); err != nil {
+ t.Fatalf("chtimes changed file: %v", err)
+ }
+
+ stale, conflicts, err := buildSafeAuthPrunePlan(authDir, baseline, map[string]struct{}{})
+ if err != nil {
+ t.Fatalf("build prune plan: %v", err)
+ }
+
+ if len(stale) != 0 {
+ t.Fatalf("expected no stale paths, got %#v", stale)
+ }
+ if len(conflicts) != 1 || conflicts[0] != changedPath {
+ t.Fatalf("expected conflict path %s, got %#v", changedPath, conflicts)
+ }
+}
+
+func TestBuildSafeAuthPrunePlan_SkipsNewLocalFileAsConflict(t *testing.T) {
+ t.Parallel()
+
+ authDir := t.TempDir()
+ baseline, err := snapshotLocalAuthFiles(authDir)
+ if err != nil {
+ t.Fatalf("snapshot baseline: %v", err)
+ }
+
+ newPath := filepath.Join(authDir, "new.json")
+ if err := os.WriteFile(newPath, []byte(`{"new":true}`), 0o600); err != nil {
+ t.Fatalf("write new file: %v", err)
+ }
+
+ stale, conflicts, err := buildSafeAuthPrunePlan(authDir, baseline, map[string]struct{}{})
+ if err != nil {
+ t.Fatalf("build prune plan: %v", err)
+ }
+
+ if len(stale) != 0 {
+ t.Fatalf("expected no stale paths, got %#v", stale)
+ }
+ if len(conflicts) != 1 || conflicts[0] != newPath {
+ t.Fatalf("expected conflict path %s, got %#v", newPath, conflicts)
+ }
+}
+
+func TestBuildSafeAuthPrunePlan_DoesNotPruneRemoteOrNonJSON(t *testing.T) {
+ t.Parallel()
+
+ authDir := t.TempDir()
+ remotePath := filepath.Join(authDir, "remote.json")
+ nonJSONPath := filepath.Join(authDir, "keep.txt")
+ if err := os.WriteFile(remotePath, []byte(`{"remote":true}`), 0o600); err != nil {
+ t.Fatalf("write remote file: %v", err)
+ }
+ if err := os.WriteFile(nonJSONPath, []byte("keep"), 0o600); err != nil {
+ t.Fatalf("write non-json file: %v", err)
+ }
+
+ baseline, err := snapshotLocalAuthFiles(authDir)
+ if err != nil {
+ t.Fatalf("snapshot baseline: %v", err)
+ }
+
+ remote := map[string]struct{}{"remote.json": {}}
+ stale, conflicts, err := buildSafeAuthPrunePlan(authDir, baseline, remote)
+ if err != nil {
+ t.Fatalf("build prune plan: %v", err)
+ }
+
+ if len(stale) != 0 {
+ t.Fatalf("expected no stale paths, got %#v", stale)
+ }
+ if len(conflicts) != 0 {
+ t.Fatalf("expected no conflicts, got %#v", conflicts)
+ }
+}
diff --git a/pkg/llmproxy/store/postgresstore.go b/pkg/llmproxy/store/postgresstore.go
index 8677f4cc99..c10b5abfdd 100644
--- a/pkg/llmproxy/store/postgresstore.go
+++ b/pkg/llmproxy/store/postgresstore.go
@@ -442,9 +442,6 @@ func (s *PostgresStore) syncAuthFromDatabase(ctx context.Context) error {
}
defer func() { _ = rows.Close() }()
- if err = os.RemoveAll(s.authDir); err != nil {
- return fmt.Errorf("postgres store: reset auth directory: %w", err)
- }
if err = os.MkdirAll(s.authDir, 0o700); err != nil {
return fmt.Errorf("postgres store: recreate auth directory: %w", err)
}
@@ -462,6 +459,9 @@ func (s *PostgresStore) syncAuthFromDatabase(ctx context.Context) error {
log.WithError(errPath).Warnf("postgres store: skipping auth %s outside spool", id)
continue
}
+ if info, errInfo := os.Stat(path); errInfo == nil && info.IsDir() {
+ continue
+ }
if err = os.MkdirAll(filepath.Dir(path), 0o700); err != nil {
return fmt.Errorf("postgres store: create auth subdir: %w", err)
}
diff --git a/pkg/llmproxy/store/postgresstore_test.go b/pkg/llmproxy/store/postgresstore_test.go
new file mode 100644
index 0000000000..bf56a111c8
--- /dev/null
+++ b/pkg/llmproxy/store/postgresstore_test.go
@@ -0,0 +1,109 @@
+package store
+
+import (
+ "context"
+ "database/sql"
+ "os"
+ "path/filepath"
+ "testing"
+
+ _ "modernc.org/sqlite"
+)
+
+func TestSyncAuthFromDatabase_PreservesLocalOnlyFiles(t *testing.T) {
+ t.Parallel()
+
+ store, db := newSQLitePostgresStore(t)
+ t.Cleanup(func() { _ = db.Close() })
+
+ if _, err := db.Exec(`INSERT INTO "auth_store"(id, content) VALUES (?, ?)`, "nested/provider.json", `{"token":"db"}`); err != nil {
+ t.Fatalf("insert auth row: %v", err)
+ }
+
+ localOnly := filepath.Join(store.authDir, "local-only.json")
+ if err := os.WriteFile(localOnly, []byte(`{"token":"local"}`), 0o600); err != nil {
+ t.Fatalf("seed local-only file: %v", err)
+ }
+
+ if err := store.syncAuthFromDatabase(context.Background()); err != nil {
+ t.Fatalf("sync auth from database: %v", err)
+ }
+
+ if _, err := os.Stat(localOnly); err != nil {
+ t.Fatalf("expected local-only file to be preserved: %v", err)
+ }
+
+ mirrored := filepath.Join(store.authDir, "nested", "provider.json")
+ got, err := os.ReadFile(mirrored)
+ if err != nil {
+ t.Fatalf("read mirrored auth file: %v", err)
+ }
+ if string(got) != `{"token":"db"}` {
+ t.Fatalf("unexpected mirrored content: %s", got)
+ }
+}
+
+func TestSyncAuthFromDatabase_ContinuesOnPathConflict(t *testing.T) {
+ t.Parallel()
+
+ store, db := newSQLitePostgresStore(t)
+ t.Cleanup(func() { _ = db.Close() })
+
+ if _, err := db.Exec(`INSERT INTO "auth_store"(id, content) VALUES (?, ?)`, "conflict.json", `{"token":"db-conflict"}`); err != nil {
+ t.Fatalf("insert conflict auth row: %v", err)
+ }
+ if _, err := db.Exec(`INSERT INTO "auth_store"(id, content) VALUES (?, ?)`, "healthy.json", `{"token":"db-healthy"}`); err != nil {
+ t.Fatalf("insert healthy auth row: %v", err)
+ }
+
+ conflictPath := filepath.Join(store.authDir, "conflict.json")
+ if err := os.MkdirAll(conflictPath, 0o700); err != nil {
+ t.Fatalf("seed conflicting directory: %v", err)
+ }
+
+ if err := store.syncAuthFromDatabase(context.Background()); err != nil {
+ t.Fatalf("sync auth from database: %v", err)
+ }
+
+ if info, err := os.Stat(conflictPath); err != nil {
+ t.Fatalf("stat conflict path: %v", err)
+ } else if !info.IsDir() {
+ t.Fatalf("expected conflict path to remain a directory")
+ }
+
+ healthyPath := filepath.Join(store.authDir, "healthy.json")
+ got, err := os.ReadFile(healthyPath)
+ if err != nil {
+ t.Fatalf("read healthy mirrored auth file: %v", err)
+ }
+ if string(got) != `{"token":"db-healthy"}` {
+ t.Fatalf("unexpected healthy mirrored content: %s", got)
+ }
+}
+
+func newSQLitePostgresStore(t *testing.T) (*PostgresStore, *sql.DB) {
+ t.Helper()
+
+ db, err := sql.Open("sqlite", ":memory:")
+ if err != nil {
+ t.Fatalf("open sqlite: %v", err)
+ }
+ if _, err = db.Exec(`CREATE TABLE "auth_store" (id TEXT PRIMARY KEY, content TEXT NOT NULL)`); err != nil {
+ _ = db.Close()
+ t.Fatalf("create auth table: %v", err)
+ }
+
+ spool := t.TempDir()
+ authDir := filepath.Join(spool, "auths")
+ if err = os.MkdirAll(authDir, 0o700); err != nil {
+ _ = db.Close()
+ t.Fatalf("create auth dir: %v", err)
+ }
+
+ store := &PostgresStore{
+ db: db,
+ cfg: PostgresStoreConfig{AuthTable: "auth_store"},
+ authDir: authDir,
+ }
+ return store, db
+}
diff --git a/pkg/llmproxy/translator/antigravity/gemini/antigravity_gemini_request_test.go b/pkg/llmproxy/translator/antigravity/gemini/antigravity_gemini_request_test.go
index 40ef7fe315..e6a94ec8f0 100644
--- a/pkg/llmproxy/translator/antigravity/gemini/antigravity_gemini_request_test.go
+++ b/pkg/llmproxy/translator/antigravity/gemini/antigravity_gemini_request_test.go
@@ -15,21 +15,21 @@ func TestConvertGeminiRequestToAntigravity(t *testing.T) {
],
"system_instruction": {"parts": [{"text": "be kind"}]}
}`)
-
+
got := ConvertGeminiRequestToAntigravity("gemini-1.5-pro", input, false)
-
+
res := gjson.ParseBytes(got)
if res.Get("model").String() != "gemini-1.5-pro" {
t.Errorf("expected model gemini-1.5-pro, got %q", res.Get("model").String())
}
-
+
// Check role normalization
role1 := res.Get("request.contents.0.role").String()
role2 := res.Get("request.contents.1.role").String()
if role1 != "user" || role2 != "model" {
t.Errorf("expected roles user/model, got %q/%q", role1, role2)
}
-
+
// Check system instruction rename
if !res.Get("request.systemInstruction").Exists() {
t.Error("expected systemInstruction to exist")
@@ -46,18 +46,18 @@ func TestFixCLIToolResponse(t *testing.T) {
]
}
}`
-
+
got, err := fixCLIToolResponse(input)
if err != nil {
t.Fatalf("fixCLIToolResponse failed: %v", err)
}
-
+
res := gjson.Parse(got)
contents := res.Get("request.contents").Array()
if len(contents) != 3 {
t.Errorf("expected 3 content blocks, got %d", len(contents))
}
-
+
lastRole := contents[2].Get("role").String()
if lastRole != "function" {
t.Errorf("expected last role to be function, got %q", lastRole)
diff --git a/pkg/llmproxy/translator/claude/openai/chat-completions/claude_openai_response_test.go b/pkg/llmproxy/translator/claude/openai/chat-completions/claude_openai_response_test.go
index 980af3c66d..3282d3777e 100644
--- a/pkg/llmproxy/translator/claude/openai/chat-completions/claude_openai_response_test.go
+++ b/pkg/llmproxy/translator/claude/openai/chat-completions/claude_openai_response_test.go
@@ -11,7 +11,7 @@ func TestConvertClaudeResponseToOpenAI(t *testing.T) {
ctx := context.Background()
model := "gpt-4o"
var param any
-
+
// Message start
raw := []byte(`data: {"type": "message_start", "message": {"id": "msg_123", "role": "assistant", "model": "claude-3"}}`)
got := ConvertClaudeResponseToOpenAI(ctx, model, nil, nil, raw, ¶m)
@@ -22,7 +22,7 @@ func TestConvertClaudeResponseToOpenAI(t *testing.T) {
if res.Get("id").String() != "msg_123" || res.Get("choices.0.delta.role").String() != "assistant" {
t.Errorf("unexpected message_start output: %s", got[0])
}
-
+
// Content delta
raw = []byte(`data: {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": "hello"}}`)
got = ConvertClaudeResponseToOpenAI(ctx, model, nil, nil, raw, ¶m)
@@ -33,7 +33,7 @@ func TestConvertClaudeResponseToOpenAI(t *testing.T) {
if res.Get("choices.0.delta.content").String() != "hello" {
t.Errorf("unexpected content_block_delta output: %s", got[0])
}
-
+
// Message delta (usage)
raw = []byte(`data: {"type": "message_delta", "delta": {"stop_reason": "end_turn"}, "usage": {"input_tokens": 10, "output_tokens": 5}}`)
got = ConvertClaudeResponseToOpenAI(ctx, model, nil, nil, raw, ¶m)
@@ -51,7 +51,7 @@ func TestConvertClaudeResponseToOpenAINonStream(t *testing.T) {
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": "hello "}}
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": "world"}}
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn"}, "usage": {"input_tokens": 10, "output_tokens": 5}}`)
-
+
got := ConvertClaudeResponseToOpenAINonStream(context.Background(), "gpt-4o", nil, nil, raw, nil)
res := gjson.Parse(got)
if res.Get("choices.0.message.content").String() != "hello world" {
diff --git a/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_response_test.go b/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_response_test.go
index 7b875a366b..1c40d98425 100644
--- a/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_response_test.go
+++ b/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_response_test.go
@@ -11,28 +11,28 @@ import (
func TestConvertClaudeResponseToOpenAIResponses(t *testing.T) {
ctx := context.Background()
var param any
-
+
// Message start
raw := []byte(`data: {"type": "message_start", "message": {"id": "msg_123", "role": "assistant", "model": "claude-3"}}`)
got := ConvertClaudeResponseToOpenAIResponses(ctx, "gpt-4o", nil, nil, raw, ¶m)
if len(got) != 2 {
t.Errorf("expected 2 chunks, got %d", len(got))
}
-
+
// Content block start (text)
raw = []byte(`data: {"type": "content_block_start", "index": 0, "content_block": {"type": "text", "text": ""}}`)
got = ConvertClaudeResponseToOpenAIResponses(ctx, "gpt-4o", nil, nil, raw, ¶m)
if len(got) != 2 {
t.Errorf("expected 2 chunks, got %d", len(got))
}
-
+
// Content delta
raw = []byte(`data: {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": "hello"}}`)
got = ConvertClaudeResponseToOpenAIResponses(ctx, "gpt-4o", nil, nil, raw, ¶m)
if len(got) != 1 {
t.Errorf("expected 1 chunk, got %d", len(got))
}
-
+
// Message stop
raw = []byte(`data: {"type": "message_stop"}`)
got = ConvertClaudeResponseToOpenAIResponses(ctx, "gpt-4o", nil, []byte(`{"model": "gpt-4o"}`), raw, ¶m)
@@ -51,7 +51,7 @@ data: {"type": "content_block_start", "index": 0, "content_block": {"type": "tex
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": "hello "}}
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "text_delta", "text": "world"}}
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn"}, "usage": {"input_tokens": 10, "output_tokens": 5}}`)
-
+
got := ConvertClaudeResponseToOpenAIResponsesNonStream(context.Background(), "gpt-4o", nil, nil, raw, nil)
res := gjson.Parse(got)
if res.Get("status").String() != "completed" {
diff --git a/pkg/llmproxy/translator/codex/claude/codex_claude_request.go b/pkg/llmproxy/translator/codex/claude/codex_claude_request.go
index 50de544adc..5438332de4 100644
--- a/pkg/llmproxy/translator/codex/claude/codex_claude_request.go
+++ b/pkg/llmproxy/translator/codex/claude/codex_claude_request.go
@@ -188,6 +188,20 @@ func ConvertClaudeRequestToCodex(modelName string, inputRawJSON []byte, _ bool)
template, _ = sjson.SetRaw(template, "tools.-1", `{"type":"web_search"}`)
continue
}
+ // Special handling: Codex sends "custom" type tools (e.g., apply_patch with Lark grammar)
+ // These have "format" instead of "input_schema" and cannot be directly translated.
+ // Convert to minimal valid function schema to avoid 400 errors (GitHub #1671).
+ if toolResult.Get("type").String() == "custom" {
+ toolName := toolResult.Get("name").String()
+ toolDesc := toolResult.Get("description").String()
+ if toolName == "" {
+ toolName = "custom_tool"
+ }
+ minimalTool := fmt.Sprintf(`{"type":"function","name":"%s","description":"%s","parameters":{"type":"object","properties":{}}}`,
+ toolName, toolDesc)
+ template, _ = sjson.SetRaw(template, "tools.-1", minimalTool)
+ continue
+ }
tool := toolResult.Raw
tool, _ = sjson.Set(tool, "type", "function")
// Apply shortened name if needed
diff --git a/pkg/llmproxy/translator/codex/claude/codex_claude_response_test.go b/pkg/llmproxy/translator/codex/claude/codex_claude_response_test.go
index d5c41f742b..22faa67010 100644
--- a/pkg/llmproxy/translator/codex/claude/codex_claude_response_test.go
+++ b/pkg/llmproxy/translator/codex/claude/codex_claude_response_test.go
@@ -11,7 +11,7 @@ import (
func TestConvertCodexResponseToClaude(t *testing.T) {
ctx := context.Background()
var param any
-
+
// response.created
raw := []byte(`data: {"type": "response.created", "response": {"id": "resp_123", "model": "gpt-4o"}}`)
got := ConvertCodexResponseToClaude(ctx, "claude-3", nil, nil, raw, ¶m)
@@ -21,7 +21,7 @@ func TestConvertCodexResponseToClaude(t *testing.T) {
if !strings.Contains(got[0], `"id":"resp_123"`) {
t.Errorf("unexpected output: %s", got[0])
}
-
+
// response.output_text.delta
raw = []byte(`data: {"type": "response.output_text.delta", "delta": "hello"}`)
got = ConvertCodexResponseToClaude(ctx, "claude-3", nil, nil, raw, ¶m)
@@ -44,7 +44,7 @@ func TestConvertCodexResponseToClaudeNonStream(t *testing.T) {
],
"usage": {"input_tokens": 10, "output_tokens": 5}
}}`)
-
+
got := ConvertCodexResponseToClaudeNonStream(context.Background(), "claude-3", nil, nil, raw, nil)
res := gjson.Parse(got)
if res.Get("id").String() != "resp_123" {
diff --git a/pkg/llmproxy/translator/codex/gemini/codex_gemini_response_test.go b/pkg/llmproxy/translator/codex/gemini/codex_gemini_response_test.go
index 0932b48a31..74510fa1f9 100644
--- a/pkg/llmproxy/translator/codex/gemini/codex_gemini_response_test.go
+++ b/pkg/llmproxy/translator/codex/gemini/codex_gemini_response_test.go
@@ -10,7 +10,7 @@ import (
func TestConvertCodexResponseToGemini(t *testing.T) {
ctx := context.Background()
var param any
-
+
// response.created
raw := []byte(`data: {"type": "response.created", "response": {"id": "resp_123", "model": "gpt-4o"}}`)
got := ConvertCodexResponseToGemini(ctx, "gemini-1.5-pro", nil, nil, raw, ¶m)
@@ -21,7 +21,7 @@ func TestConvertCodexResponseToGemini(t *testing.T) {
if res.Get("responseId").String() != "resp_123" {
t.Errorf("unexpected output: %s", got[0])
}
-
+
// response.output_text.delta
raw = []byte(`data: {"type": "response.output_text.delta", "delta": "hello"}`)
got = ConvertCodexResponseToGemini(ctx, "gemini-1.5-pro", nil, nil, raw, ¶m)
@@ -45,7 +45,7 @@ func TestConvertCodexResponseToGeminiNonStream(t *testing.T) {
],
"usage": {"input_tokens": 10, "output_tokens": 5}
}}`)
-
+
got := ConvertCodexResponseToGeminiNonStream(context.Background(), "gemini-1.5-pro", nil, nil, raw, nil)
res := gjson.Parse(got)
if res.Get("responseId").String() != "resp_123" {
diff --git a/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_request_test.go b/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_request_test.go
index b9af0d8e2a..a1c43eac25 100644
--- a/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_request_test.go
+++ b/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_request_test.go
@@ -40,20 +40,20 @@ func TestConvertOpenAIRequestToCodex(t *testing.T) {
"tools": [{"type": "function", "function": {"name": "f1", "description": "d1", "parameters": {"type": "object"}}}],
"reasoning_effort": "high"
}`)
-
+
got2 := ConvertOpenAIRequestToCodex("gpt-4o", input2, false)
res2 := gjson.ParseBytes(got2)
-
+
if res2.Get("reasoning.effort").String() != "high" {
t.Errorf("expected reasoning.effort high, got %s", res2.Get("reasoning.effort").String())
}
-
+
inputArray2 := res2.Get("input").Array()
// user message + assistant message (empty content) + function_call message
if len(inputArray2) != 3 {
t.Fatalf("expected 3 input items, got %d", len(inputArray2))
}
-
+
if inputArray2[2].Get("type").String() != "function_call" {
t.Errorf("expected third input item to be function_call, got %s", inputArray2[2].Get("type").String())
}
diff --git a/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_response_test.go b/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_response_test.go
index 761cfe82e3..fc0d48204b 100644
--- a/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_response_test.go
+++ b/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_response_test.go
@@ -10,14 +10,14 @@ import (
func TestConvertCodexResponseToOpenAI(t *testing.T) {
ctx := context.Background()
var param any
-
+
// response.created
raw := []byte(`data: {"type": "response.created", "response": {"id": "resp_123", "created_at": 1629141600, "model": "gpt-4o"}}`)
got := ConvertCodexResponseToOpenAI(ctx, "gpt-4o", nil, nil, raw, ¶m)
if len(got) != 0 {
t.Errorf("expected 0 chunks for response.created, got %d", len(got))
}
-
+
// response.output_text.delta
raw = []byte(`data: {"type": "response.output_text.delta", "delta": "hello"}`)
got = ConvertCodexResponseToOpenAI(ctx, "gpt-4o", nil, nil, raw, ¶m)
@@ -65,7 +65,7 @@ func TestConvertCodexResponseToOpenAINonStream(t *testing.T) {
"usage": {"input_tokens": 10, "output_tokens": 5},
"status": "completed"
}}`)
-
+
got := ConvertCodexResponseToOpenAINonStream(context.Background(), "gpt-4o", nil, nil, raw, nil)
res := gjson.Parse(got)
if res.Get("id").String() != "resp_123" {
@@ -105,10 +105,10 @@ func TestConvertCodexResponseToOpenAINonStream_Full(t *testing.T) {
"output_tokens_details": {"reasoning_tokens": 2}
}
}}`)
-
+
got := ConvertCodexResponseToOpenAINonStream(context.Background(), "gpt-4o", nil, nil, raw, nil)
res := gjson.Parse(got)
-
+
if res.Get("choices.0.message.reasoning_content").String() != "thought" {
t.Errorf("expected reasoning_content thought, got %s", res.Get("choices.0.message.reasoning_content").String())
}
diff --git a/pkg/llmproxy/translator/codex/openai/responses/codex_openai-responses_request_test.go b/pkg/llmproxy/translator/codex/openai/responses/codex_openai-responses_request_test.go
index 4f5624869f..ed365a2714 100644
--- a/pkg/llmproxy/translator/codex/openai/responses/codex_openai-responses_request_test.go
+++ b/pkg/llmproxy/translator/codex/openai/responses/codex_openai-responses_request_test.go
@@ -264,18 +264,18 @@ func TestConvertSystemRoleToDeveloper_AssistantRole(t *testing.T) {
}
}
-func TestUserFieldDeletion(t *testing.T) {
+func TestUserFieldDeletion(t *testing.T) {
inputJSON := []byte(`{
"model": "gpt-5.2",
"user": "test-user",
"input": [{"role": "user", "content": "Hello"}]
- }`)
-
- output := ConvertOpenAIResponsesRequestToCodex("gpt-5.2", inputJSON, false)
- outputStr := string(output)
-
- // Verify user field is deleted
- userField := gjson.Get(outputStr, "user")
+ }`)
+
+ output := ConvertOpenAIResponsesRequestToCodex("gpt-5.2", inputJSON, false)
+ outputStr := string(output)
+
+ // Verify user field is deleted
+ userField := gjson.Get(outputStr, "user")
if userField.Exists() {
t.Errorf("user field should be deleted, but it was found with value: %s", userField.Raw)
}
diff --git a/pkg/llmproxy/translator/kiro/claude/kiro_claude_request_test.go b/pkg/llmproxy/translator/kiro/claude/kiro_claude_request_test.go
index 68024357bf..db9985cbcc 100644
--- a/pkg/llmproxy/translator/kiro/claude/kiro_claude_request_test.go
+++ b/pkg/llmproxy/translator/kiro/claude/kiro_claude_request_test.go
@@ -216,16 +216,16 @@ func TestBuildUserMessageStruct_SoftLimit(t *testing.T) {
{"type": "tool_result", "tool_use_id": "call_1", "is_error": true, "content": "SOFT_LIMIT_REACHED error"}
]
}`)
-
+
_, results := BuildUserMessageStruct(msg, "model", "CLI")
if len(results) != 1 {
t.Fatalf("expected 1 tool result, got %d", len(results))
}
-
+
if results[0].Status != "success" {
t.Errorf("expected status success for soft limit error, got %s", results[0].Status)
}
-
+
if !strings.Contains(results[0].Content[0].Text, "SOFT_LIMIT_REACHED") {
t.Errorf("expected content to contain SOFT_LIMIT_REACHED, got %s", results[0].Content[0].Text)
}
@@ -238,7 +238,7 @@ func TestBuildAssistantMessageStruct(t *testing.T) {
if res1.Content != "hello" {
t.Errorf("expected content hello, got %s", res1.Content)
}
-
+
// Array content with tool use
msg2 := gjson.Parse(`{"role": "assistant", "content": [{"type": "text", "text": "using tool"}, {"type": "tool_use", "id": "c1", "name": "f1", "input": {"x": 1}}]}`)
res2 := BuildAssistantMessageStruct(msg2)
@@ -248,7 +248,7 @@ func TestBuildAssistantMessageStruct(t *testing.T) {
if len(res2.ToolUses) != 1 || res2.ToolUses[0].Name != "f1" {
t.Errorf("expected tool call f1, got %v", res2.ToolUses)
}
-
+
// Empty content with tool use
msg3 := gjson.Parse(`{"role": "assistant", "content": [{"type": "tool_use", "id": "c1", "name": "f1", "input": {"x": 1}}]}`)
res3 := BuildAssistantMessageStruct(msg3)
diff --git a/pkg/llmproxy/translator/kiro/claude/kiro_claude_response_test.go b/pkg/llmproxy/translator/kiro/claude/kiro_claude_response_test.go
index 6e8bc2a350..35ab421000 100644
--- a/pkg/llmproxy/translator/kiro/claude/kiro_claude_response_test.go
+++ b/pkg/llmproxy/translator/kiro/claude/kiro_claude_response_test.go
@@ -11,11 +11,11 @@ func TestBuildClaudeResponse(t *testing.T) {
// Test basic response
got := BuildClaudeResponse("Hello", nil, "model-1", usage.Detail{InputTokens: 10, OutputTokens: 20}, "end_turn")
res := gjson.ParseBytes(got)
-
+
if res.Get("content.0.text").String() != "Hello" {
t.Errorf("expected content Hello, got %s", res.Get("content.0.text").String())
}
-
+
if res.Get("usage.input_tokens").Int() != 10 {
t.Errorf("expected input tokens 10, got %d", res.Get("usage.input_tokens").Int())
}
@@ -29,16 +29,16 @@ func TestBuildClaudeResponse_ToolUse(t *testing.T) {
Input: map[string]interface{}{"arg": 1},
},
}
-
+
got := BuildClaudeResponse("", toolUses, "model-1", usage.Detail{}, "")
res := gjson.ParseBytes(got)
-
+
content := res.Get("content").Array()
// Should have ONLY tool_use block if content is empty
if len(content) != 1 {
t.Fatalf("expected 1 content block, got %d", len(content))
}
-
+
if content[0].Get("type").String() != "tool_use" {
t.Errorf("expected tool_use block, got %s", content[0].Get("type").String())
}
@@ -47,19 +47,19 @@ func TestBuildClaudeResponse_ToolUse(t *testing.T) {
func TestExtractThinkingFromContent(t *testing.T) {
content := "Before thought After"
blocks := ExtractThinkingFromContent(content)
-
+
if len(blocks) != 3 {
t.Fatalf("expected 3 blocks, got %d", len(blocks))
}
-
+
if blocks[0]["type"] != "text" || blocks[0]["text"] != "Before " {
t.Errorf("first block mismatch: %v", blocks[0])
}
-
+
if blocks[1]["type"] != "thinking" || blocks[1]["thinking"] != "thought" {
t.Errorf("second block mismatch: %v", blocks[1])
}
-
+
if blocks[2]["type"] != "text" || blocks[2]["text"] != " After" {
t.Errorf("third block mismatch: %v", blocks[2])
}
@@ -79,20 +79,20 @@ func TestGenerateThinkingSignature(t *testing.T) {
func TestBuildClaudeResponse_Truncated(t *testing.T) {
toolUses := []KiroToolUse{
{
- ToolUseID: "c1",
- Name: "f1",
- IsTruncated: true,
+ ToolUseID: "c1",
+ Name: "f1",
+ IsTruncated: true,
TruncationInfo: &TruncationInfo{},
},
}
got := BuildClaudeResponse("", toolUses, "model", usage.Detail{}, "tool_use")
res := gjson.ParseBytes(got)
-
+
content := res.Get("content").Array()
if len(content) != 1 {
t.Fatalf("expected 1 content block, got %d", len(content))
}
-
+
if content[0].Get("input._status").String() != "SOFT_LIMIT_REACHED" {
t.Errorf("expected SOFT_LIMIT_REACHED status, got %v", content[0].Get("input._status").String())
}
@@ -105,7 +105,7 @@ func TestExtractThinkingFromContent_Complex(t *testing.T) {
if len(blocks2) != 1 || blocks2[0]["type"] != "thinking" {
t.Errorf("expected 1 thinking block for missing closing tag, got %v", blocks2)
}
-
+
// Multiple thinking blocks
content3 := "T1 and T2"
blocks3 := ExtractThinkingFromContent(content3)
diff --git a/pkg/llmproxy/translator/kiro/claude/kiro_claude_stream_parser.go b/pkg/llmproxy/translator/kiro/claude/kiro_claude_stream_parser.go
index 275196acfd..4e12757d46 100644
--- a/pkg/llmproxy/translator/kiro/claude/kiro_claude_stream_parser.go
+++ b/pkg/llmproxy/translator/kiro/claude/kiro_claude_stream_parser.go
@@ -7,18 +7,6 @@ import (
log "github.com/sirupsen/logrus"
)
-// sseEvent represents a Server-Sent Event
-type sseEvent struct {
- Event string
- Data interface{}
-}
-
-// ToSSEString converts the event to SSE wire format
-func (e *sseEvent) ToSSEString() string {
- dataBytes, _ := json.Marshal(e.Data)
- return "event: " + e.Event + "\ndata: " + string(dataBytes) + "\n\n"
-}
-
// AdjustStreamIndices adjusts content block indices in SSE event data by adding an offset.
// It also suppresses duplicate message_start events (returns shouldForward=false).
// This is used to combine search indicator events (indices 0,1) with Kiro model response events.
diff --git a/pkg/llmproxy/translator/kiro/claude/kiro_websearch.go b/pkg/llmproxy/translator/kiro/claude/kiro_websearch.go
index ae676b97bf..7aa6a89c09 100644
--- a/pkg/llmproxy/translator/kiro/claude/kiro_websearch.go
+++ b/pkg/llmproxy/translator/kiro/claude/kiro_websearch.go
@@ -721,4 +721,3 @@ func generateSearchSummary(query string, results *WebSearchResults) string {
return sb.String()
}
-
diff --git a/pkg/llmproxy/translator/kiro/claude/kiro_websearch_test.go b/pkg/llmproxy/translator/kiro/claude/kiro_websearch_test.go
index cde7ea5212..f3b893037c 100644
--- a/pkg/llmproxy/translator/kiro/claude/kiro_websearch_test.go
+++ b/pkg/llmproxy/translator/kiro/claude/kiro_websearch_test.go
@@ -1,8 +1,8 @@
package claude
import (
- "testing"
"strings"
+ "testing"
)
func TestHasWebSearchTool(t *testing.T) {
@@ -68,7 +68,7 @@ func TestGenerateWebSearchEvents(t *testing.T) {
if len(events) < 11 {
t.Errorf("expected at least 11 events, got %d", len(events))
}
-
+
foundMessageStart := false
for _, e := range events {
if e.Event == "message_start" {
diff --git a/pkg/llmproxy/translator/kiro/claude/tool_compression_test.go b/pkg/llmproxy/translator/kiro/claude/tool_compression_test.go
index ae5c7dddac..f40b6d2db2 100644
--- a/pkg/llmproxy/translator/kiro/claude/tool_compression_test.go
+++ b/pkg/llmproxy/translator/kiro/claude/tool_compression_test.go
@@ -1,8 +1,8 @@
package claude
import (
- "testing"
"strings"
+ "testing"
)
func TestSimplifyInputSchema(t *testing.T) {
@@ -10,23 +10,23 @@ func TestSimplifyInputSchema(t *testing.T) {
"type": "object",
"properties": map[string]interface{}{
"foo": map[string]interface{}{
- "type": "string",
+ "type": "string",
"description": "extra info",
},
},
"required": []interface{}{"foo"},
- "extra": "discard me",
+ "extra": "discard me",
}
simplified := simplifyInputSchema(input).(map[string]interface{})
-
+
if simplified["type"] != "object" {
t.Error("missing type")
}
if _, ok := simplified["extra"]; ok {
t.Error("extra field not discarded")
}
-
+
props := simplified["properties"].(map[string]interface{})
foo := props["foo"].(map[string]interface{})
if foo["type"] != "string" {
@@ -40,7 +40,7 @@ func TestSimplifyInputSchema(t *testing.T) {
func TestCompressToolDescription(t *testing.T) {
desc := "This is a very long tool description that should be compressed to a shorter version."
compressed := compressToolDescription(desc, 60)
-
+
if !strings.HasSuffix(compressed, "...") {
t.Error("expected suffix ...")
}
@@ -53,13 +53,13 @@ func TestCompressToolsIfNeeded(t *testing.T) {
tools := []KiroToolWrapper{
{
ToolSpecification: KiroToolSpecification{
- Name: "t1",
+ Name: "t1",
Description: "d1",
InputSchema: KiroInputSchema{JSON: map[string]interface{}{"type": "object"}},
},
},
}
-
+
// No compression needed
result := compressToolsIfNeeded(tools)
if len(result) != 1 || result[0].ToolSpecification.Name != "t1" {
diff --git a/pkg/llmproxy/translator/kiro/claude/truncation_detector_test.go b/pkg/llmproxy/translator/kiro/claude/truncation_detector_test.go
index f1aea1f1eb..a3f243e840 100644
--- a/pkg/llmproxy/translator/kiro/claude/truncation_detector_test.go
+++ b/pkg/llmproxy/translator/kiro/claude/truncation_detector_test.go
@@ -1,8 +1,8 @@
package claude
import (
- "testing"
"strings"
+ "testing"
)
func TestDetectTruncation(t *testing.T) {
diff --git a/pkg/llmproxy/translator/kiro/common/utils.go b/pkg/llmproxy/translator/kiro/common/utils.go
index f5f5788ab2..4c7c734085 100644
--- a/pkg/llmproxy/translator/kiro/common/utils.go
+++ b/pkg/llmproxy/translator/kiro/common/utils.go
@@ -13,4 +13,4 @@ func GetString(m map[string]interface{}, key string) string {
// GetStringValue is an alias for GetString for backward compatibility.
func GetStringValue(m map[string]interface{}, key string) string {
return GetString(m, key)
-}
\ No newline at end of file
+}
diff --git a/pkg/llmproxy/translator/kiro/openai/init.go b/pkg/llmproxy/translator/kiro/openai/init.go
index fe1343974e..bb3ab1a91f 100644
--- a/pkg/llmproxy/translator/kiro/openai/init.go
+++ b/pkg/llmproxy/translator/kiro/openai/init.go
@@ -17,4 +17,4 @@ func init() {
NonStream: ConvertKiroNonStreamToOpenAI,
},
)
-}
\ No newline at end of file
+}
diff --git a/pkg/llmproxy/translator/kiro/openai/kiro_openai_response.go b/pkg/llmproxy/translator/kiro/openai/kiro_openai_response.go
index edc70ad8cb..7d085de06d 100644
--- a/pkg/llmproxy/translator/kiro/openai/kiro_openai_response.go
+++ b/pkg/llmproxy/translator/kiro/openai/kiro_openai_response.go
@@ -274,4 +274,4 @@ func min(a, b int) int {
return a
}
return b
-}
\ No newline at end of file
+}
diff --git a/pkg/llmproxy/translator/kiro/openai/kiro_openai_stream.go b/pkg/llmproxy/translator/kiro/openai/kiro_openai_stream.go
index e72d970e0d..484a94ee0f 100644
--- a/pkg/llmproxy/translator/kiro/openai/kiro_openai_stream.go
+++ b/pkg/llmproxy/translator/kiro/openai/kiro_openai_stream.go
@@ -209,4 +209,4 @@ func NewThinkingTagState() *ThinkingTagState {
PendingStartChars: 0,
PendingEndChars: 0,
}
-}
\ No newline at end of file
+}
diff --git a/pkg/llmproxy/translator/openai/claude/openai_claude_request_test.go b/pkg/llmproxy/translator/openai/claude/openai_claude_request_test.go
index 1656b54995..454c1d5832 100644
--- a/pkg/llmproxy/translator/openai/claude/openai_claude_request_test.go
+++ b/pkg/llmproxy/translator/openai/claude/openai_claude_request_test.go
@@ -42,7 +42,7 @@ func TestConvertClaudeRequestToOpenAI(t *testing.T) {
if messages[1].Get("role").String() != "user" {
t.Errorf("expected second message role user, got %s", messages[1].Get("role").String())
}
-
+
// Check thinking conversion
if res.Get("reasoning_effort").String() == "" {
t.Error("expected reasoning_effort to be set")
diff --git a/pkg/llmproxy/translator/openai/claude/openai_claude_response_test.go b/pkg/llmproxy/translator/openai/claude/openai_claude_response_test.go
index 7e6fc0ad63..3c68fad9f1 100644
--- a/pkg/llmproxy/translator/openai/claude/openai_claude_response_test.go
+++ b/pkg/llmproxy/translator/openai/claude/openai_claude_response_test.go
@@ -11,12 +11,12 @@ func TestConvertOpenAIResponseToClaude(t *testing.T) {
ctx := context.Background()
originalRequest := []byte(`{"stream": true}`)
request := []byte(`{}`)
-
+
// Test streaming chunk with content
chunk := []byte(`data: {"id": "chatcmpl-123", "model": "gpt-4o", "created": 1677652288, "choices": [{"index": 0, "delta": {"content": "Hello"}, "finish_reason": null}]}`)
var param any
got := ConvertOpenAIResponseToClaude(ctx, "claude-3-sonnet", originalRequest, request, chunk, ¶m)
-
+
if len(got) != 3 { // message_start + content_block_start + content_block_delta
t.Errorf("expected 3 events, got %d", len(got))
}
@@ -87,7 +87,7 @@ func TestConvertOpenAIResponseToClaudeNonStream(t *testing.T) {
ctx := context.Background()
originalRequest := []byte(`{"stream": false}`)
request := []byte(`{}`)
-
+
// Test non-streaming response with reasoning and content
response := []byte(`{
"id": "chatcmpl-123",
@@ -106,23 +106,23 @@ func TestConvertOpenAIResponseToClaudeNonStream(t *testing.T) {
"completion_tokens": 20
}
}`)
-
+
got := ConvertOpenAIResponseToClaudeNonStream(ctx, "claude-3-sonnet", originalRequest, request, response, nil)
res := gjson.Parse(got)
-
+
if res.Get("id").String() != "chatcmpl-123" {
t.Errorf("expected id chatcmpl-123, got %s", res.Get("id").String())
}
-
+
content := res.Get("content").Array()
if len(content) != 2 {
t.Errorf("expected 2 content blocks, got %d", len(content))
}
-
+
if content[0].Get("type").String() != "thinking" {
t.Errorf("expected first block type thinking, got %s", content[0].Get("type").String())
}
-
+
if content[1].Get("type").String() != "text" {
t.Errorf("expected second block type text, got %s", content[1].Get("type").String())
}
@@ -132,7 +132,7 @@ func TestConvertOpenAIResponseToClaude_ToolCalls(t *testing.T) {
ctx := context.Background()
originalRequest := []byte(`{"stream": false}`)
request := []byte(`{}`)
-
+
response := []byte(`{
"id": "chatcmpl-123",
"choices": [{
@@ -150,19 +150,19 @@ func TestConvertOpenAIResponseToClaude_ToolCalls(t *testing.T) {
"finish_reason": "tool_calls"
}]
}`)
-
+
got := ConvertOpenAIResponseToClaudeNonStream(ctx, "claude-3-sonnet", originalRequest, request, response, nil)
res := gjson.Parse(got)
-
+
content := res.Get("content").Array()
if len(content) != 1 {
t.Fatalf("expected 1 content block, got %d", len(content))
}
-
+
if content[0].Get("type").String() != "tool_use" {
t.Errorf("expected tool_use block, got %s", content[0].Get("type").String())
}
-
+
if content[0].Get("name").String() != "my_tool" {
t.Errorf("expected tool name my_tool, got %s", content[0].Get("name").String())
}
diff --git a/pkg/llmproxy/translator/openai/gemini-cli/openai_gemini_request_test.go b/pkg/llmproxy/translator/openai/gemini-cli/openai_gemini_request_test.go
index f112ec7aa7..a8934ca4a6 100644
--- a/pkg/llmproxy/translator/openai/gemini-cli/openai_gemini_request_test.go
+++ b/pkg/llmproxy/translator/openai/gemini-cli/openai_gemini_request_test.go
@@ -42,7 +42,7 @@ func TestConvertGeminiCLIRequestToOpenAI(t *testing.T) {
messages := res.Get("messages").Array()
// systemInstruction should become a system message in ConvertGeminiRequestToOpenAI (if it supports it)
// Actually, ConvertGeminiRequestToOpenAI should handle system_instruction if it exists in the raw JSON after translation here.
-
+
// Let's see if we have 2 messages (system + user)
if len(messages) < 1 {
t.Errorf("expected at least 1 message, got %d", len(messages))
diff --git a/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request_test.go b/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request_test.go
index 8a332cbd0c..7e8b30dc3c 100644
--- a/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request_test.go
+++ b/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request_test.go
@@ -61,32 +61,32 @@ func TestConvertOpenAIResponsesRequestToOpenAIChatCompletions(t *testing.T) {
"max_output_tokens": 100,
"reasoning": {"effort": "high"}
}`)
-
+
got2 := ConvertOpenAIResponsesRequestToOpenAIChatCompletions("m1", input2, false)
res2 := gjson.ParseBytes(got2)
-
+
if res2.Get("max_tokens").Int() != 100 {
t.Errorf("expected max_tokens 100, got %d", res2.Get("max_tokens").Int())
}
-
+
if res2.Get("reasoning_effort").String() != "high" {
t.Errorf("expected reasoning_effort high, got %s", res2.Get("reasoning_effort").String())
}
-
+
messages2 := res2.Get("messages").Array()
// sys + user + assistant(tool_call) + tool(result)
if len(messages2) != 4 {
t.Fatalf("expected 4 messages, got %d", len(messages2))
}
-
+
if messages2[2].Get("role").String() != "assistant" || !messages2[2].Get("tool_calls").Exists() {
t.Error("expected third message to be assistant with tool_calls")
}
-
+
if messages2[3].Get("role").String() != "tool" || messages2[3].Get("content").String() != "ok" {
t.Error("expected fourth message to be tool with content ok")
}
-
+
if len(res2.Get("tools").Array()) != 1 {
t.Errorf("expected 1 tool, got %d", len(res2.Get("tools").Array()))
}
@@ -102,7 +102,7 @@ func TestConvertOpenAIResponsesRequestToOpenAIChatCompletions(t *testing.T) {
}`)
got3 := ConvertOpenAIResponsesRequestToOpenAIChatCompletions("gpt-4o", input3, false)
res3 := gjson.ParseBytes(got3)
-
+
messages3 := res3.Get("messages").Array()
if len(messages3) != 2 {
t.Fatalf("expected 2 messages, got %d", len(messages3))
diff --git a/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_response.go b/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_response.go
index f5b730e02f..41f5092d77 100644
--- a/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_response.go
+++ b/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_response.go
@@ -54,6 +54,38 @@ func emitRespEvent(event string, payload string) string {
return fmt.Sprintf("event: %s\ndata: %s", event, payload)
}
+func emitCompletionEvents(st *oaiToResponsesState) []string {
+ if st == nil {
+ return []string{}
+ }
+
+ nextSeq := func() int {
+ st.Seq++
+ return st.Seq
+ }
+
+ completed := `{"type":"response.completed","sequence_number":0,"response":{"id":"","object":"response","created_at":0,"status":"completed","background":false,"error":null}}`
+ completed, _ = sjson.Set(completed, "sequence_number", nextSeq())
+ completed, _ = sjson.Set(completed, "response.id", st.ResponseID)
+ completed, _ = sjson.Set(completed, "response.created_at", st.Created)
+
+ if st.UsageSeen {
+ completed, _ = sjson.Set(completed, "response.usage.input_tokens", st.PromptTokens)
+ completed, _ = sjson.Set(completed, "response.usage.input_tokens_details.cached_tokens", st.CachedTokens)
+ completed, _ = sjson.Set(completed, "response.usage.output_tokens", st.CompletionTokens)
+ if st.ReasoningTokens > 0 {
+ completed, _ = sjson.Set(completed, "response.usage.output_tokens_details.reasoning_tokens", st.ReasoningTokens)
+ }
+ total := st.TotalTokens
+ if total == 0 {
+ total = st.PromptTokens + st.CompletionTokens
+ }
+ completed, _ = sjson.Set(completed, "response.usage.total_tokens", total)
+ }
+
+ return []string{emitRespEvent("response.completed", completed)}
+}
+
// ConvertOpenAIChatCompletionsResponseToOpenAIResponses converts OpenAI Chat Completions streaming chunks
// to OpenAI Responses SSE events (response.*).
func ConvertOpenAIChatCompletionsResponseToOpenAIResponses(ctx context.Context, modelName string, originalRequestRawJSON, requestRawJSON, rawJSON []byte, param *any) []string {
@@ -82,7 +114,8 @@ func ConvertOpenAIChatCompletionsResponseToOpenAIResponses(ctx context.Context,
return []string{}
}
if bytes.Equal(rawJSON, []byte("[DONE]")) {
- return []string{}
+ // GitHub #1085: Emit completion events on [DONE] marker instead of returning empty
+ return emitCompletionEvents(st)
}
root := gjson.ParseBytes(rawJSON)
diff --git a/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_response_test.go b/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_response_test.go
index 0ab922cb74..a5bbf396f3 100644
--- a/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_response_test.go
+++ b/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_response_test.go
@@ -10,7 +10,7 @@ import (
func TestConvertOpenAIChatCompletionsResponseToOpenAIResponses(t *testing.T) {
ctx := context.Background()
var param any
-
+
// 1. First chunk (reasoning)
chunk1 := []byte(`{"id": "resp1", "created": 123, "choices": [{"index": 0, "delta": {"reasoning_content": "Thinking..."}}]}`)
got1 := ConvertOpenAIChatCompletionsResponseToOpenAIResponses(ctx, "m1", nil, nil, chunk1, ¶m)
@@ -18,7 +18,7 @@ func TestConvertOpenAIChatCompletionsResponseToOpenAIResponses(t *testing.T) {
if len(got1) != 5 {
t.Errorf("expected 5 events for first chunk, got %d", len(got1))
}
-
+
// 2. Second chunk (content)
chunk2 := []byte(`{"id": "resp1", "choices": [{"index": 0, "delta": {"content": "Hello"}}]}`)
got2 := ConvertOpenAIChatCompletionsResponseToOpenAIResponses(ctx, "m1", nil, nil, chunk2, ¶m)
@@ -49,23 +49,23 @@ func TestConvertOpenAIChatCompletionsResponseToOpenAIResponsesNonStream(t *testi
"total_tokens": 30
}
}`)
-
+
got := ConvertOpenAIChatCompletionsResponseToOpenAIResponsesNonStream(ctx, "m1", nil, nil, rawJSON, nil)
res := gjson.Parse(got)
-
+
if res.Get("id").String() != "chatcmpl-123" {
t.Errorf("expected id chatcmpl-123, got %s", res.Get("id").String())
}
-
+
outputs := res.Get("output").Array()
if len(outputs) != 2 {
t.Errorf("expected 2 output items, got %d", len(outputs))
}
-
+
if outputs[0].Get("type").String() != "reasoning" {
t.Errorf("expected first output item reasoning, got %s", outputs[0].Get("type").String())
}
-
+
if outputs[1].Get("type").String() != "message" {
t.Errorf("expected second output item message, got %s", outputs[1].Get("type").String())
}
@@ -74,14 +74,14 @@ func TestConvertOpenAIChatCompletionsResponseToOpenAIResponsesNonStream(t *testi
func TestConvertOpenAIChatCompletionsResponseToOpenAIResponses_ToolCalls(t *testing.T) {
ctx := context.Background()
var param any
-
+
// Start message
chunk1 := []byte(`{"id": "resp1", "created": 123, "choices": [{"index": 0, "delta": {"content": "Hello"}}]}`)
got1 := ConvertOpenAIChatCompletionsResponseToOpenAIResponses(ctx, "m1", nil, nil, chunk1, ¶m)
if len(got1) != 5 { // created, in_prog, item.added, content.added, text.delta
t.Fatalf("expected 5 events, got %d", len(got1))
}
-
+
// Tool call delta (should trigger text done, part done, item done for current message)
chunk2 := []byte(`{"id": "resp1", "choices": [{"index": 0, "delta": {"tool_calls": [{"id": "c1", "function": {"name": "f1", "arguments": "{}"}}]}}]}`)
got2 := ConvertOpenAIChatCompletionsResponseToOpenAIResponses(ctx, "m1", nil, nil, chunk2, ¶m)
@@ -89,7 +89,7 @@ func TestConvertOpenAIChatCompletionsResponseToOpenAIResponses_ToolCalls(t *test
if len(got2) != 5 {
t.Errorf("expected 5 events for tool call, got %d", len(got2))
}
-
+
// Finish
chunk3 := []byte(`{"id": "resp1", "choices": [{"index": 0, "finish_reason": "stop"}]}`)
got3 := ConvertOpenAIChatCompletionsResponseToOpenAIResponses(ctx, "m1", nil, nil, chunk3, ¶m)
@@ -112,10 +112,10 @@ func TestConvertOpenAIChatCompletionsResponseToOpenAIResponsesNonStream_Usage(t
"output_tokens_details": {"reasoning_tokens": 2}
}
}`)
-
+
got := ConvertOpenAIChatCompletionsResponseToOpenAIResponsesNonStream(ctx, "m1", nil, nil, rawJSON, nil)
res := gjson.Parse(got)
-
+
if res.Get("usage.input_tokens_details.cached_tokens").Int() != 3 {
t.Errorf("expected cached_tokens 3, got %d", res.Get("usage.input_tokens_details.cached_tokens").Int())
}
diff --git a/pkg/llmproxy/tui/client.go b/pkg/llmproxy/tui/client.go
index 6f75d6befc..bab467e152 100644
--- a/pkg/llmproxy/tui/client.go
+++ b/pkg/llmproxy/tui/client.go
@@ -50,7 +50,7 @@ func (c *Client) doRequest(method, path string, body io.Reader) ([]byte, int, er
if err != nil {
return nil, 0, err
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
data, err := io.ReadAll(resp.Body)
if err != nil {
return nil, resp.StatusCode, err
diff --git a/pkg/llmproxy/tui/dashboard.go b/pkg/llmproxy/tui/dashboard.go
index 8561fe9c5b..b4839bcf45 100644
--- a/pkg/llmproxy/tui/dashboard.go
+++ b/pkg/llmproxy/tui/dashboard.go
@@ -1,7 +1,6 @@
package tui
import (
- "encoding/json"
"fmt"
"strings"
@@ -297,37 +296,6 @@ func formatKV(key, value string) string {
return fmt.Sprintf(" %s %s\n", labelStyle.Render(key+":"), valueStyle.Render(value))
}
-func getString(m map[string]any, key string) string {
- if v, ok := m[key]; ok {
- if s, ok := v.(string); ok {
- return s
- }
- }
- return ""
-}
-
-func getFloat(m map[string]any, key string) float64 {
- if v, ok := m[key]; ok {
- switch n := v.(type) {
- case float64:
- return n
- case json.Number:
- f, _ := n.Float64()
- return f
- }
- }
- return 0
-}
-
-func getBool(m map[string]any, key string) bool {
- if v, ok := m[key]; ok {
- if b, ok := v.(bool); ok {
- return b
- }
- }
- return false
-}
-
func boolEmoji(b bool) string {
if b {
return T("bool_yes")
diff --git a/pkg/llmproxy/tui/helpers.go b/pkg/llmproxy/tui/helpers.go
new file mode 100644
index 0000000000..96a5c029d3
--- /dev/null
+++ b/pkg/llmproxy/tui/helpers.go
@@ -0,0 +1,97 @@
+package tui
+
+import (
+ "encoding/json"
+ "fmt"
+ "strconv"
+)
+
+func getString(m map[string]any, key string) string {
+ v, ok := m[key]
+ if !ok || v == nil {
+ return ""
+ }
+ return fmt.Sprintf("%v", v)
+}
+
+func getBool(m map[string]any, key string) bool {
+ v, ok := m[key]
+ if !ok || v == nil {
+ return false
+ }
+ switch typed := v.(type) {
+ case bool:
+ return typed
+ case string:
+ if parsed, err := strconv.ParseBool(typed); err == nil {
+ return parsed
+ }
+ case int:
+ return typed != 0
+ case int64:
+ return typed != 0
+ case int32:
+ return typed != 0
+ case uint:
+ return typed != 0
+ case uint64:
+ return typed != 0
+ case float64:
+ return typed != 0
+ case float32:
+ return typed != 0
+ case json.Number:
+ if parsed, err := strconv.ParseBool(typed.String()); err == nil {
+ return parsed
+ }
+ if parsedFloat, err := typed.Float64(); err == nil {
+ return parsedFloat != 0
+ }
+ }
+ return false
+}
+
+func getFloat(m map[string]any, key string) float64 {
+ v, ok := m[key]
+ if !ok || v == nil {
+ return 0
+ }
+ switch typed := v.(type) {
+ case float64:
+ return typed
+ case float32:
+ return float64(typed)
+ case int:
+ return float64(typed)
+ case int64:
+ return float64(typed)
+ case int32:
+ return float64(typed)
+ case int16:
+ return float64(typed)
+ case int8:
+ return float64(typed)
+ case uint:
+ return float64(typed)
+ case uint64:
+ return float64(typed)
+ case uint32:
+ return float64(typed)
+ case uint16:
+ return float64(typed)
+ case string:
+ parsed, err := strconv.ParseFloat(typed, 64)
+ if err != nil {
+ return 0
+ }
+ return parsed
+ case json.Number:
+ parsed, err := typed.Float64()
+ if err != nil {
+ return 0
+ }
+ return parsed
+ default:
+ return 0
+ }
+}
diff --git a/pkg/llmproxy/tui/styles.go b/pkg/llmproxy/tui/styles.go
index f09e4322c9..004c221d1c 100644
--- a/pkg/llmproxy/tui/styles.go
+++ b/pkg/llmproxy/tui/styles.go
@@ -6,13 +6,11 @@ import "github.com/charmbracelet/lipgloss"
// Color palette
var (
colorPrimary = lipgloss.Color("#7C3AED") // violet
- colorSecondary = lipgloss.Color("#6366F1") // indigo
colorSuccess = lipgloss.Color("#22C55E") // green
colorWarning = lipgloss.Color("#EAB308") // yellow
colorError = lipgloss.Color("#EF4444") // red
colorInfo = lipgloss.Color("#3B82F6") // blue
colorMuted = lipgloss.Color("#6B7280") // gray
- colorBg = lipgloss.Color("#1E1E2E") // dark bg
colorSurface = lipgloss.Color("#313244") // slightly lighter
colorText = lipgloss.Color("#CDD6F4") // light text
colorSubtext = lipgloss.Color("#A6ADC8") // dimmer text
@@ -58,11 +56,6 @@ var (
valueStyle = lipgloss.NewStyle().
Foreground(colorText)
- sectionStyle = lipgloss.NewStyle().
- Border(lipgloss.RoundedBorder()).
- BorderForeground(colorBorder).
- Padding(1, 2)
-
errorStyle = lipgloss.NewStyle().
Foreground(colorError).
Bold(true)
@@ -103,24 +96,4 @@ var (
tableCellStyle = lipgloss.NewStyle().
Foreground(colorText).
PaddingRight(2)
-
- tableSelectedStyle = lipgloss.NewStyle().
- Foreground(lipgloss.Color("#FFFFFF")).
- Background(colorPrimary).
- Bold(true)
)
-
-func logLevelStyle(level string) lipgloss.Style {
- switch level {
- case "debug":
- return logDebugStyle
- case "info":
- return logInfoStyle
- case "warn", "warning":
- return logWarnStyle
- case "error", "fatal", "panic":
- return logErrorStyle
- default:
- return logInfoStyle
- }
-}
diff --git a/pkg/llmproxy/usage/metrics.go b/pkg/llmproxy/usage/metrics.go
index a7ff57114d..baa2e86d73 100644
--- a/pkg/llmproxy/usage/metrics.go
+++ b/pkg/llmproxy/usage/metrics.go
@@ -7,15 +7,15 @@ import (
// ProviderMetrics holds per-provider metrics for routing decisions.
type ProviderMetrics struct {
- RequestCount int64 `json:"request_count"`
- SuccessCount int64 `json:"success_count"`
- FailureCount int64 `json:"failure_count"`
- TotalTokens int64 `json:"total_tokens"`
- SuccessRate float64 `json:"success_rate"`
- CostPer1kIn float64 `json:"cost_per_1k_input,omitempty"`
- CostPer1kOut float64 `json:"cost_per_1k_output,omitempty"`
- LatencyP50Ms int `json:"latency_p50_ms,omitempty"`
- LatencyP95Ms int `json:"latency_p95_ms,omitempty"`
+ RequestCount int64 `json:"request_count"`
+ SuccessCount int64 `json:"success_count"`
+ FailureCount int64 `json:"failure_count"`
+ TotalTokens int64 `json:"total_tokens"`
+ SuccessRate float64 `json:"success_rate"`
+ CostPer1kIn float64 `json:"cost_per_1k_input,omitempty"`
+ CostPer1kOut float64 `json:"cost_per_1k_output,omitempty"`
+ LatencyP50Ms int `json:"latency_p50_ms,omitempty"`
+ LatencyP95Ms int `json:"latency_p95_ms,omitempty"`
}
// Known providers for routing (thegent model→provider mapping).
@@ -60,13 +60,13 @@ func GetProviderMetrics() map[string]ProviderMetrics {
cost = 0.5
}
result[provider] = ProviderMetrics{
- RequestCount: apiSnap.TotalRequests,
- SuccessCount: success,
- FailureCount: failures,
- TotalTokens: apiSnap.TotalTokens,
- SuccessRate: sr,
- CostPer1kIn: cost / 2,
- CostPer1kOut: cost,
+ RequestCount: apiSnap.TotalRequests,
+ SuccessCount: success,
+ FailureCount: failures,
+ TotalTokens: apiSnap.TotalTokens,
+ SuccessRate: sr,
+ CostPer1kIn: cost / 2,
+ CostPer1kOut: cost,
}
}
return result
diff --git a/pkg/llmproxy/usage/metrics_test.go b/pkg/llmproxy/usage/metrics_test.go
index 35b4dace87..337d161f85 100644
--- a/pkg/llmproxy/usage/metrics_test.go
+++ b/pkg/llmproxy/usage/metrics_test.go
@@ -44,14 +44,56 @@ func TestFallbackCost(t *testing.T) {
}
}
+func TestGetProviderMetrics_FiltersKnownProviders(t *testing.T) {
+ stats := GetRequestStatistics()
+ ctx := context.Background()
+
+ record := coreusage.Record{
+ Provider: "openrouter",
+ APIKey: "openrouter-analytics",
+ Model: "gpt-4o",
+ Detail: coreusage.Detail{
+ TotalTokens: 12,
+ },
+ }
+ stats.Record(ctx, record)
+
+ unknown := coreusage.Record{
+ Provider: "mystery-provider",
+ APIKey: "mystery-provider",
+ Model: "mystery-model",
+ Detail: coreusage.Detail{
+ TotalTokens: 12,
+ },
+ }
+ stats.Record(ctx, unknown)
+
+ metrics := GetProviderMetrics()
+ if _, ok := metrics["openrouter"]; !ok {
+ t.Fatal("expected openrouter in provider metrics")
+ }
+ if _, ok := metrics["mystery-provider"]; ok {
+ t.Fatal("unknown provider should not be present in provider metrics")
+ }
+}
+
+func TestGetProviderMetrics_StableRateBounds(t *testing.T) {
+ metrics := GetProviderMetrics()
+ for provider, stat := range metrics {
+ if stat.SuccessRate < 0 || stat.SuccessRate > 1 {
+ t.Fatalf("provider=%s success_rate out of [0,1]: %f", provider, stat.SuccessRate)
+ }
+ }
+}
+
func TestGetProviderMetrics_WithUsage(t *testing.T) {
stats := GetRequestStatistics()
ctx := context.Background()
-
+
// Use a known provider like 'claude'
record := coreusage.Record{
Provider: "claude",
- APIKey: "claude",
+ APIKey: "claude",
Model: "claude-3-sonnet",
Detail: coreusage.Detail{
TotalTokens: 1000,
@@ -63,19 +105,19 @@ func TestGetProviderMetrics_WithUsage(t *testing.T) {
// Add a failure
failRecord := coreusage.Record{
Provider: "claude",
- APIKey: "claude",
+ APIKey: "claude",
Model: "claude-3-sonnet",
- Failed: true,
+ Failed: true,
}
stats.Record(ctx, failRecord)
-
+
metrics := GetProviderMetrics()
m, ok := metrics["claude"]
if !ok {
t.Errorf("claude metrics not found")
return
}
-
+
if m.RequestCount < 2 {
t.Errorf("expected at least 2 requests, got %d", m.RequestCount)
}
@@ -92,16 +134,16 @@ func TestLoggerPlugin(t *testing.T) {
if plugin == nil {
t.Fatal("NewLoggerPlugin returned nil")
}
-
+
ctx := context.Background()
record := coreusage.Record{Model: "test"}
-
+
SetStatisticsEnabled(false)
if StatisticsEnabled() {
t.Error("expected statistics disabled")
}
plugin.HandleUsage(ctx, record)
-
+
SetStatisticsEnabled(true)
if !StatisticsEnabled() {
t.Error("expected statistics enabled")
@@ -111,7 +153,7 @@ func TestLoggerPlugin(t *testing.T) {
func TestRequestStatistics_MergeSnapshot(t *testing.T) {
s := NewRequestStatistics()
-
+
snap := StatisticsSnapshot{
APIs: map[string]APISnapshot{
"api1": {
@@ -120,8 +162,8 @@ func TestRequestStatistics_MergeSnapshot(t *testing.T) {
Details: []RequestDetail{
{
Timestamp: time.Now(),
- Tokens: TokenStats{InputTokens: 10, OutputTokens: 5},
- Failed: false,
+ Tokens: TokenStats{InputTokens: 10, OutputTokens: 5},
+ Failed: false,
},
},
},
@@ -129,12 +171,12 @@ func TestRequestStatistics_MergeSnapshot(t *testing.T) {
},
},
}
-
+
res := s.MergeSnapshot(snap)
if res.Added != 1 {
t.Errorf("expected 1 added, got %d", res.Added)
}
-
+
// Test deduplication
res2 := s.MergeSnapshot(snap)
if res2.Skipped != 1 {
@@ -146,10 +188,10 @@ func TestRequestStatistics_Snapshot(t *testing.T) {
s := NewRequestStatistics()
s.Record(context.Background(), coreusage.Record{
APIKey: "api1",
- Model: "m1",
+ Model: "m1",
Detail: coreusage.Detail{InputTokens: 10},
})
-
+
snap := s.Snapshot()
if snap.TotalRequests != 1 {
t.Errorf("expected 1 total request, got %d", snap.TotalRequests)
diff --git a/pkg/llmproxy/usage/shm_sync.go b/pkg/llmproxy/usage/shm_sync.go
index ec336512e7..121ea90ea9 100644
--- a/pkg/llmproxy/usage/shm_sync.go
+++ b/pkg/llmproxy/usage/shm_sync.go
@@ -11,10 +11,10 @@ import (
)
const (
- MaxProviders = 32
- ProviderSlotSize = 128
- ProviderOffset = 256 * 256
- ShmSize = ProviderOffset + (MaxProviders * ProviderSlotSize) + 8192
+ MaxProviders = 32
+ ProviderSlotSize = 128
+ ProviderOffset = 256 * 256
+ ShmSize = ProviderOffset + (MaxProviders * ProviderSlotSize) + 8192
)
// SyncToSHM writes the current provider metrics to the shared memory mesh.
@@ -25,7 +25,7 @@ func SyncToSHM(shmPath string) error {
if err != nil {
return fmt.Errorf("failed to open SHM: %w", err)
}
- defer f.Close()
+ defer func() { _ = f.Close() }()
// Ensure file is large enough
info, err := f.Stat()
@@ -42,7 +42,7 @@ func SyncToSHM(shmPath string) error {
if err != nil {
return fmt.Errorf("failed to mmap: %w", err)
}
- defer m.Unmap()
+ defer func() { _ = m.Unmap() }()
now := float64(time.Now().UnixNano()) / 1e9
@@ -50,7 +50,7 @@ func SyncToSHM(shmPath string) error {
if name == "" {
continue
}
-
+
nameBytes := make([]byte, 32)
copy(nameBytes, name)
diff --git a/pkg/llmproxy/util/util_test.go b/pkg/llmproxy/util/util_test.go
index b9ffa0f0e6..ee1a88cbfe 100644
--- a/pkg/llmproxy/util/util_test.go
+++ b/pkg/llmproxy/util/util_test.go
@@ -13,7 +13,7 @@ func TestSetLogLevel(t *testing.T) {
cfg := &config.Config{Debug: true}
SetLogLevel(cfg)
// No easy way to assert without global state check, but ensures no panic
-
+
cfg.Debug = false
SetLogLevel(cfg)
}
diff --git a/pkg/llmproxy/watcher/clients.go b/pkg/llmproxy/watcher/clients.go
index ea30232b1a..97b3aa7ca2 100644
--- a/pkg/llmproxy/watcher/clients.go
+++ b/pkg/llmproxy/watcher/clients.go
@@ -14,9 +14,9 @@ import (
"strings"
"time"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/util"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
log "github.com/sirupsen/logrus"
)
diff --git a/pkg/llmproxy/watcher/config_reload.go b/pkg/llmproxy/watcher/config_reload.go
index a2d739da7e..236ef72bf4 100644
--- a/pkg/llmproxy/watcher/config_reload.go
+++ b/pkg/llmproxy/watcher/config_reload.go
@@ -9,9 +9,9 @@ import (
"reflect"
"time"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/util"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
"gopkg.in/yaml.v3"
log "github.com/sirupsen/logrus"
diff --git a/pkg/llmproxy/watcher/diff/config_diff_test.go b/pkg/llmproxy/watcher/diff/config_diff_test.go
index db777da2d6..302889f3bf 100644
--- a/pkg/llmproxy/watcher/diff/config_diff_test.go
+++ b/pkg/llmproxy/watcher/diff/config_diff_test.go
@@ -1,27 +1,27 @@
package diff
import (
- "testing"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
+ "testing"
)
func TestBuildConfigChangeDetails(t *testing.T) {
oldCfg := &config.Config{
- Port: 8080,
- Debug: false,
+ Port: 8080,
+ Debug: false,
ClaudeKey: []config.ClaudeKey{{APIKey: "k1"}},
}
newCfg := &config.Config{
- Port: 9090,
- Debug: true,
+ Port: 9090,
+ Debug: true,
ClaudeKey: []config.ClaudeKey{{APIKey: "k1"}, {APIKey: "k2"}},
}
-
+
changes := BuildConfigChangeDetails(oldCfg, newCfg)
if len(changes) != 3 {
t.Errorf("expected 3 changes, got %d: %v", len(changes), changes)
}
-
+
// Test unknown proxy URL
u := formatProxyURL("http://user:pass@host:1234")
if u != "http://host:1234" {
diff --git a/pkg/llmproxy/watcher/dispatcher.go b/pkg/llmproxy/watcher/dispatcher.go
index b1e5b541ea..517316bff6 100644
--- a/pkg/llmproxy/watcher/dispatcher.go
+++ b/pkg/llmproxy/watcher/dispatcher.go
@@ -9,8 +9,8 @@ import (
"sync"
"time"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/synthesizer"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
)
diff --git a/pkg/llmproxy/watcher/synthesizer/config.go b/pkg/llmproxy/watcher/synthesizer/config.go
index 91a83507a4..c5c2f995bd 100644
--- a/pkg/llmproxy/watcher/synthesizer/config.go
+++ b/pkg/llmproxy/watcher/synthesizer/config.go
@@ -11,10 +11,10 @@ import (
"strings"
"time"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
kiroauth "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/kiro"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/cursorstorage"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
log "github.com/sirupsen/logrus"
)
diff --git a/pkg/llmproxy/watcher/synthesizer/config_test.go b/pkg/llmproxy/watcher/synthesizer/config_test.go
index a876237ff3..b39d08e651 100644
--- a/pkg/llmproxy/watcher/synthesizer/config_test.go
+++ b/pkg/llmproxy/watcher/synthesizer/config_test.go
@@ -1,9 +1,9 @@
package synthesizer
import (
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"testing"
"time"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
)
func TestConfigSynthesizer_Synthesize(t *testing.T) {
@@ -13,19 +13,19 @@ func TestConfigSynthesizer_Synthesize(t *testing.T) {
ClaudeKey: []config.ClaudeKey{{APIKey: "k1", Prefix: "p1"}},
GeminiKey: []config.GeminiKey{{APIKey: "g1"}},
},
- Now: time.Now(),
+ Now: time.Now(),
IDGenerator: NewStableIDGenerator(),
}
-
+
auths, err := s.Synthesize(ctx)
if err != nil {
t.Fatalf("Synthesize failed: %v", err)
}
-
+
if len(auths) != 2 {
t.Errorf("expected 2 auth entries, got %d", len(auths))
}
-
+
foundClaude := false
for _, a := range auths {
if a.Provider == "claude" {
@@ -49,21 +49,21 @@ func TestConfigSynthesizer_SynthesizeOpenAICompat(t *testing.T) {
Config: &config.Config{
OpenAICompatibility: []config.OpenAICompatibility{
{
- Name: "provider1",
- BaseURL: "http://base",
+ Name: "provider1",
+ BaseURL: "http://base",
APIKeyEntries: []config.OpenAICompatibilityAPIKey{{APIKey: "k1"}},
},
},
},
- Now: time.Now(),
+ Now: time.Now(),
IDGenerator: NewStableIDGenerator(),
}
-
+
auths, err := s.Synthesize(ctx)
if err != nil {
t.Fatalf("Synthesize failed: %v", err)
}
-
+
if len(auths) != 1 || auths[0].Provider != "provider1" {
t.Errorf("expected 1 auth for provider1, got %v", auths)
}
@@ -73,21 +73,23 @@ func TestConfigSynthesizer_SynthesizeMore(t *testing.T) {
s := NewConfigSynthesizer()
ctx := &SynthesisContext{
Config: &config.Config{
- CodexKey: []config.CodexKey{{APIKey: "co1"}},
- DeepSeekKey: []config.DeepSeekKey{{APIKey: "ds1"}},
- GroqKey: []config.GroqKey{{APIKey: "gr1"}},
- MistralKey: []config.MistralKey{{APIKey: "mi1"}},
- SiliconFlowKey: []config.SiliconFlowKey{{APIKey: "sf1"}},
- OpenRouterKey: []config.OpenRouterKey{{APIKey: "or1"}},
- TogetherKey: []config.TogetherKey{{APIKey: "to1"}},
- FireworksKey: []config.FireworksKey{{APIKey: "fw1"}},
- NovitaKey: []config.NovitaKey{{APIKey: "no1"}},
- MiniMaxKey: []config.MiniMaxKey{{APIKey: "mm1"}},
- RooKey: []config.RooKey{{APIKey: "ro1"}},
- KiloKey: []config.KiloKey{{APIKey: "ki1"}},
+ CodexKey: []config.CodexKey{{APIKey: "co1"}},
VertexCompatAPIKey: []config.VertexCompatKey{{APIKey: "vx1", BaseURL: "http://vx"}},
+ GeneratedConfig: config.GeneratedConfig{
+ DeepSeekKey: []config.DeepSeekKey{{APIKey: "ds1"}},
+ GroqKey: []config.GroqKey{{APIKey: "gr1"}},
+ MistralKey: []config.MistralKey{{APIKey: "mi1"}},
+ SiliconFlowKey: []config.SiliconFlowKey{{APIKey: "sf1"}},
+ OpenRouterKey: []config.OpenRouterKey{{APIKey: "or1"}},
+ TogetherKey: []config.TogetherKey{{APIKey: "to1"}},
+ FireworksKey: []config.FireworksKey{{APIKey: "fw1"}},
+ NovitaKey: []config.NovitaKey{{APIKey: "no1"}},
+ MiniMaxKey: []config.MiniMaxKey{{APIKey: "mm1"}},
+ RooKey: []config.RooKey{{APIKey: "ro1"}},
+ KiloKey: []config.KiloKey{{APIKey: "ki1"}},
+ },
},
- Now: time.Now(),
+ Now: time.Now(),
IDGenerator: NewStableIDGenerator(),
}
diff --git a/pkg/llmproxy/watcher/synthesizer/helpers.go b/pkg/llmproxy/watcher/synthesizer/helpers.go
index 577d4f069e..3ee77354c5 100644
--- a/pkg/llmproxy/watcher/synthesizer/helpers.go
+++ b/pkg/llmproxy/watcher/synthesizer/helpers.go
@@ -7,8 +7,8 @@ import (
"sort"
"strings"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
)
diff --git a/pkg/llmproxy/watcher/synthesizer/helpers_test.go b/pkg/llmproxy/watcher/synthesizer/helpers_test.go
index 20ebb91072..b21d3e109a 100644
--- a/pkg/llmproxy/watcher/synthesizer/helpers_test.go
+++ b/pkg/llmproxy/watcher/synthesizer/helpers_test.go
@@ -5,8 +5,8 @@ import (
"strings"
"testing"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
)
diff --git a/pkg/llmproxy/watcher/watcher_test.go b/pkg/llmproxy/watcher/watcher_test.go
index ec3b79c2ed..9df35a9e42 100644
--- a/pkg/llmproxy/watcher/watcher_test.go
+++ b/pkg/llmproxy/watcher/watcher_test.go
@@ -14,9 +14,9 @@ import (
"time"
"github.com/fsnotify/fsnotify"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/diff"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/synthesizer"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
sdkAuth "github.com/router-for-me/CLIProxyAPI/v6/sdk/auth"
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
"gopkg.in/yaml.v3"
diff --git a/sdk/access/manager_test.go b/sdk/access/manager_test.go
index 23dea8d124..8c44097859 100644
--- a/sdk/access/manager_test.go
+++ b/sdk/access/manager_test.go
@@ -18,13 +18,13 @@ func (m *mockProvider) Authenticate(ctx context.Context, r *http.Request) (*Resu
func TestManager_Authenticate(t *testing.T) {
m := NewManager()
-
+
// Test empty providers
res, err := m.Authenticate(context.Background(), nil)
if res != nil || err != nil {
t.Error("expected nil result and error for empty manager")
}
-
+
p1 := &mockProvider{
id: "p1",
auth: func(ctx context.Context, r *http.Request) (*Result, *AuthError) {
@@ -37,9 +37,9 @@ func TestManager_Authenticate(t *testing.T) {
return &Result{Provider: "p2", Principal: "user"}, nil
},
}
-
+
m.SetProviders([]Provider{p1, p2})
-
+
// Test success
res, err = m.Authenticate(context.Background(), nil)
if err != nil {
@@ -48,7 +48,7 @@ func TestManager_Authenticate(t *testing.T) {
if res == nil || res.Provider != "p2" {
t.Errorf("expected result from p2, got %v", res)
}
-
+
// Test invalid
p2.auth = func(ctx context.Context, r *http.Request) (*Result, *AuthError) {
return nil, NewInvalidCredentialError()
@@ -57,7 +57,7 @@ func TestManager_Authenticate(t *testing.T) {
if err == nil || err.Code != AuthErrorCodeInvalidCredential {
t.Errorf("expected invalid credential error, got %v", err)
}
-
+
// Test no credentials
p2.auth = func(ctx context.Context, r *http.Request) (*Result, *AuthError) {
return nil, NewNoCredentialsError()
@@ -72,12 +72,12 @@ func TestManager_Providers(t *testing.T) {
m := NewManager()
p1 := &mockProvider{id: "p1"}
m.SetProviders([]Provider{p1})
-
+
providers := m.Providers()
if len(providers) != 1 || providers[0].Identifier() != "p1" {
t.Errorf("unexpected providers: %v", providers)
}
-
+
// Test snapshot
m.SetProviders(nil)
if len(providers) != 1 {
diff --git a/sdk/api/handlers/handlers.go b/sdk/api/handlers/handlers.go
index 880611deb8..886c781532 100644
--- a/sdk/api/handlers/handlers.go
+++ b/sdk/api/handlers/handlers.go
@@ -12,6 +12,7 @@ import (
"sync"
"time"
+ "context"
"github.com/gin-gonic/gin"
"github.com/google/uuid"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/interfaces"
@@ -22,7 +23,6 @@ import (
coreexecutor "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/executor"
"github.com/router-for-me/CLIProxyAPI/v6/sdk/config"
sdktranslator "github.com/router-for-me/CLIProxyAPI/v6/sdk/translator"
- "context"
)
// ErrorResponse represents a standard error response format for the API.
diff --git a/sdk/api/handlers/handlers_metadata_test.go b/sdk/api/handlers/handlers_metadata_test.go
new file mode 100644
index 0000000000..c1696dd377
--- /dev/null
+++ b/sdk/api/handlers/handlers_metadata_test.go
@@ -0,0 +1,89 @@
+package handlers
+
+import (
+ "context"
+ "net/http"
+ "net/http/httptest"
+ "testing"
+
+ "github.com/gin-gonic/gin"
+ coreexecutor "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/executor"
+)
+
+type testContextKey string
+
+const ginContextKeyTest testContextKey = "gin"
+
+func requestContextWithHeader(t *testing.T, idempotencyKey string) context.Context {
+ t.Helper()
+ req := httptest.NewRequest(http.MethodGet, "/v1/responses", nil)
+ if idempotencyKey != "" {
+ req.Header.Set("Idempotency-Key", idempotencyKey)
+ }
+
+ ginCtx, _ := gin.CreateTestContext(httptest.NewRecorder())
+ ginCtx.Request = req
+ return context.WithValue(context.Background(), ginContextKeyTest, ginCtx)
+}
+
+func TestRequestExecutionMetadata_GeneratesIdempotencyKey(t *testing.T) {
+ meta1 := requestExecutionMetadata(context.Background())
+ meta2 := requestExecutionMetadata(context.Background())
+
+ key1, ok := meta1[idempotencyKeyMetadataKey].(string)
+ if !ok || key1 == "" {
+ t.Fatalf("generated idempotency key missing or empty: %#v", meta1[idempotencyKeyMetadataKey])
+ }
+
+ key2, ok := meta2[idempotencyKeyMetadataKey].(string)
+ if !ok || key2 == "" {
+ t.Fatalf("generated idempotency key missing or empty: %#v", meta2[idempotencyKeyMetadataKey])
+ }
+}
+
+func TestRequestExecutionMetadata_PreservesHeaderAndContextMetadata(t *testing.T) {
+ sessionID := "session-123"
+ authID := "auth-456"
+ callback := func(id string) {}
+
+ ctx := requestContextWithHeader(t, "request-key-1")
+ ctx = WithPinnedAuthID(ctx, authID)
+ ctx = WithSelectedAuthIDCallback(ctx, callback)
+ ctx = WithExecutionSessionID(ctx, sessionID)
+
+ meta := requestExecutionMetadata(ctx)
+
+ if got := meta[idempotencyKeyMetadataKey].(string); got != "request-key-1" {
+ t.Fatalf("Idempotency-Key mismatch: got %q want %q", got, "request-key-1")
+ }
+
+ if got := meta[coreexecutor.PinnedAuthMetadataKey].(string); got != authID {
+ t.Fatalf("pinned auth id mismatch: got %q want %q", got, authID)
+ }
+
+ if cb, ok := meta[coreexecutor.SelectedAuthCallbackMetadataKey].(func(string)); !ok || cb == nil {
+ t.Fatalf("selected auth callback metadata missing: %#v", meta[coreexecutor.SelectedAuthCallbackMetadataKey])
+ }
+
+ if got := meta[coreexecutor.ExecutionSessionMetadataKey].(string); got != sessionID {
+ t.Fatalf("execution session id mismatch: got %q want %q", got, sessionID)
+ }
+}
+
+func TestRequestExecutionMetadata_UsesProvidedIdempotencyKeyForRetries(t *testing.T) {
+ ctx := requestContextWithHeader(t, "retry-key-7")
+ first := requestExecutionMetadata(ctx)
+ second := requestExecutionMetadata(ctx)
+
+ firstKey, ok := first[idempotencyKeyMetadataKey].(string)
+ if !ok || firstKey != "retry-key-7" {
+ t.Fatalf("first request metadata missing idempotency key: %#v", first[idempotencyKeyMetadataKey])
+ }
+ secondKey, ok := second[idempotencyKeyMetadataKey].(string)
+ if !ok || secondKey != "retry-key-7" {
+ t.Fatalf("second request metadata missing idempotency key: %#v", second[idempotencyKeyMetadataKey])
+ }
+ if firstKey != secondKey {
+ t.Fatalf("idempotency key should be stable for retry requests: got %q and %q", firstKey, secondKey)
+ }
+}
diff --git a/sdk/api/handlers/handlers_stream_bootstrap_test.go b/sdk/api/handlers/handlers_stream_bootstrap_test.go
index b3bf12a577..c9f806c5f5 100644
--- a/sdk/api/handlers/handlers_stream_bootstrap_test.go
+++ b/sdk/api/handlers/handlers_stream_bootstrap_test.go
@@ -58,6 +58,8 @@ func (e *failOnceStreamExecutor) Refresh(ctx context.Context, auth *coreauth.Aut
return auth, nil
}
+func (e *failOnceStreamExecutor) CloseExecutionSession(sessionID string) {}
+
func (e *failOnceStreamExecutor) CountTokens(context.Context, *coreauth.Auth, coreexecutor.Request, coreexecutor.Options) (coreexecutor.Response, error) {
return coreexecutor.Response{}, &coreauth.Error{Code: "not_implemented", Message: "CountTokens not implemented"}
}
@@ -110,6 +112,8 @@ func (e *payloadThenErrorStreamExecutor) Refresh(ctx context.Context, auth *core
return auth, nil
}
+func (e *payloadThenErrorStreamExecutor) CloseExecutionSession(sessionID string) {}
+
func (e *payloadThenErrorStreamExecutor) CountTokens(context.Context, *coreauth.Auth, coreexecutor.Request, coreexecutor.Options) (coreexecutor.Response, error) {
return coreexecutor.Response{}, &coreauth.Error{Code: "not_implemented", Message: "CountTokens not implemented"}
}
@@ -178,6 +182,8 @@ func (e *authAwareStreamExecutor) Refresh(ctx context.Context, auth *coreauth.Au
return auth, nil
}
+func (e *authAwareStreamExecutor) CloseExecutionSession(sessionID string) {}
+
func (e *authAwareStreamExecutor) CountTokens(context.Context, *coreauth.Auth, coreexecutor.Request, coreexecutor.Options) (coreexecutor.Response, error) {
return coreexecutor.Response{}, &coreauth.Error{Code: "not_implemented", Message: "CountTokens not implemented"}
}
diff --git a/sdk/api/handlers/openai/openai_handlers.go b/sdk/api/handlers/openai/openai_handlers.go
index 27ff0b30e9..607b87dcbc 100644
--- a/sdk/api/handlers/openai/openai_handlers.go
+++ b/sdk/api/handlers/openai/openai_handlers.go
@@ -14,7 +14,7 @@ import (
"sync"
"github.com/gin-gonic/gin"
- . "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/constant"
+ constant "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/constant"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/interfaces"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/registry"
codexconverter "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/translator/codex/openai/chat-completions"
@@ -46,7 +46,7 @@ func NewOpenAIAPIHandler(apiHandlers *handlers.BaseAPIHandler) *OpenAIAPIHandler
// HandlerType returns the identifier for this handler implementation.
func (h *OpenAIAPIHandler) HandlerType() string {
- return OpenAI
+ return constant.OpenAI
}
// Models returns the OpenAI-compatible model metadata supported by this handler.
@@ -535,7 +535,7 @@ func (h *OpenAIAPIHandler) handleNonStreamingResponseViaResponses(c *gin.Context
modelName := gjson.GetBytes(rawJSON, "model").String()
cliCtx, cliCancel := h.GetContextWithCancel(h, c, context.Background())
- resp, upstreamHeaders, errMsg := h.ExecuteWithAuthManager(cliCtx, OpenaiResponse, modelName, rawJSON, h.GetAlt(c))
+ resp, upstreamHeaders, errMsg := h.ExecuteWithAuthManager(cliCtx, constant.OpenaiResponse, modelName, rawJSON, h.GetAlt(c))
if errMsg != nil {
h.WriteErrorResponse(c, errMsg)
cliCancel(errMsg.Error)
@@ -645,7 +645,7 @@ func (h *OpenAIAPIHandler) handleStreamingResponseViaResponses(c *gin.Context, r
modelName := gjson.GetBytes(rawJSON, "model").String()
cliCtx, cliCancel := h.GetContextWithCancel(h, c, context.Background())
- dataChan, upstreamHeaders, errChan := h.ExecuteStreamWithAuthManager(cliCtx, OpenaiResponse, modelName, rawJSON, h.GetAlt(c))
+ dataChan, upstreamHeaders, errChan := h.ExecuteStreamWithAuthManager(cliCtx, constant.OpenaiResponse, modelName, rawJSON, h.GetAlt(c))
var param any
setSSEHeaders := func() {
diff --git a/sdk/api/handlers/openai/openai_responses_compact_test.go b/sdk/api/handlers/openai/openai_responses_compact_test.go
index 308a32fef5..c133ff1fdf 100644
--- a/sdk/api/handlers/openai/openai_responses_compact_test.go
+++ b/sdk/api/handlers/openai/openai_responses_compact_test.go
@@ -39,6 +39,9 @@ func (e *compactCaptureExecutor) Refresh(ctx context.Context, auth *coreauth.Aut
return auth, nil
}
+func (e *compactCaptureExecutor) CloseExecutionSession(sessionID string) {
+}
+
func (e *compactCaptureExecutor) CountTokens(context.Context, *coreauth.Auth, coreexecutor.Request, coreexecutor.Options) (coreexecutor.Response, error) {
return coreexecutor.Response{}, errors.New("not implemented")
}
diff --git a/sdk/api/handlers/openai/openai_responses_handlers.go b/sdk/api/handlers/openai/openai_responses_handlers.go
index ba945f2946..21521e25ce 100644
--- a/sdk/api/handlers/openai/openai_responses_handlers.go
+++ b/sdk/api/handlers/openai/openai_responses_handlers.go
@@ -13,7 +13,7 @@ import (
"net/http"
"github.com/gin-gonic/gin"
- . "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/constant"
+ constant "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/constant"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/interfaces"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/registry"
responsesconverter "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/translator/openai/openai/responses"
@@ -44,7 +44,7 @@ func NewOpenAIResponsesAPIHandler(apiHandlers *handlers.BaseAPIHandler) *OpenAIR
// HandlerType returns the identifier for this handler implementation.
func (h *OpenAIResponsesAPIHandler) HandlerType() string {
- return OpenaiResponse
+ return constant.OpenaiResponse
}
// Models returns the OpenAIResponses-compatible model metadata supported by this handler.
@@ -182,7 +182,7 @@ func (h *OpenAIResponsesAPIHandler) handleNonStreamingResponseViaChat(c *gin.Con
modelName := gjson.GetBytes(chatJSON, "model").String()
cliCtx, cliCancel := h.GetContextWithCancel(h, c, context.Background())
- resp, upstreamHeaders, errMsg := h.ExecuteWithAuthManager(cliCtx, OpenAI, modelName, chatJSON, "")
+ resp, upstreamHeaders, errMsg := h.ExecuteWithAuthManager(cliCtx, constant.OpenAI, modelName, chatJSON, "")
if errMsg != nil {
h.WriteErrorResponse(c, errMsg)
cliCancel(errMsg.Error)
@@ -299,7 +299,7 @@ func (h *OpenAIResponsesAPIHandler) handleStreamingResponseViaChat(c *gin.Contex
modelName := gjson.GetBytes(chatJSON, "model").String()
cliCtx, cliCancel := h.GetContextWithCancel(h, c, context.Background())
- dataChan, upstreamHeaders, errChan := h.ExecuteStreamWithAuthManager(cliCtx, OpenAI, modelName, chatJSON, "")
+ dataChan, upstreamHeaders, errChan := h.ExecuteStreamWithAuthManager(cliCtx, constant.OpenAI, modelName, chatJSON, "")
var param any
setSSEHeaders := func() {
diff --git a/sdk/api/handlers/openai/openai_responses_websocket.go b/sdk/api/handlers/openai/openai_responses_websocket.go
index 03a56eec42..8919cf95e0 100644
--- a/sdk/api/handlers/openai/openai_responses_websocket.go
+++ b/sdk/api/handlers/openai/openai_responses_websocket.go
@@ -33,6 +33,11 @@ const (
wsPayloadLogMaxSize = 2048
)
+// contextKey is a custom type for context keys to avoid string collisions.
+type contextKey string
+
+const ginContextKey contextKey = "gin"
+
var responsesWebsocketUpgrader = websocket.Upgrader{
ReadBufferSize: 4096,
WriteBufferSize: 4096,
@@ -84,8 +89,6 @@ func (h *OpenAIResponsesAPIHandler) ResponsesWebsocket(c *gin.Context) {
appendWebsocketEvent(&wsBodyLog, "disconnect", []byte(errReadMessage.Error()))
if websocket.IsCloseError(errReadMessage, websocket.CloseNormalClosure, websocket.CloseGoingAway, websocket.CloseNoStatusReceived) {
log.Infof("responses websocket: client disconnected id=%s error=%v", passthroughSessionID, errReadMessage)
- } else {
- // log.Warnf("responses websocket: read message failed id=%s error=%v", passthroughSessionID, errReadMessage)
}
return
}
@@ -118,7 +121,7 @@ func (h *OpenAIResponsesAPIHandler) ResponsesWebsocket(c *gin.Context) {
allowIncrementalInputWithPreviousResponseID,
)
if errMsg != nil {
- h.LoggingAPIResponseError(context.WithValue(context.Background(), "gin", c), errMsg)
+ h.LoggingAPIResponseError(context.WithValue(context.Background(), ginContextKey, c), errMsg)
markAPIResponseTimestamp(c)
errorPayload, errWrite := writeResponsesWebsocketError(conn, errMsg)
appendWebsocketEvent(&wsBodyLog, "response", errorPayload)
@@ -402,7 +405,7 @@ func (h *OpenAIResponsesAPIHandler) forwardResponsesWebsocket(
continue
}
if errMsg != nil {
- h.LoggingAPIResponseError(context.WithValue(context.Background(), "gin", c), errMsg)
+ h.LoggingAPIResponseError(context.WithValue(context.Background(), ginContextKey, c), errMsg)
markAPIResponseTimestamp(c)
errorPayload, errWrite := writeResponsesWebsocketError(conn, errMsg)
appendWebsocketEvent(wsBodyLog, "response", errorPayload)
@@ -437,7 +440,7 @@ func (h *OpenAIResponsesAPIHandler) forwardResponsesWebsocket(
StatusCode: http.StatusRequestTimeout,
Error: fmt.Errorf("stream closed before response.completed"),
}
- h.LoggingAPIResponseError(context.WithValue(context.Background(), "gin", c), errMsg)
+ h.LoggingAPIResponseError(context.WithValue(context.Background(), ginContextKey, c), errMsg)
markAPIResponseTimestamp(c)
errorPayload, errWrite := writeResponsesWebsocketError(conn, errMsg)
appendWebsocketEvent(wsBodyLog, "response", errorPayload)
diff --git a/sdk/auth/kilo.go b/sdk/auth/kilo.go
index 738f68e8a7..6a9d3e4b79 100644
--- a/sdk/auth/kilo.go
+++ b/sdk/auth/kilo.go
@@ -39,7 +39,7 @@ func (a *KiloAuthenticator) Login(ctx context.Context, cfg *config.Config, opts
}
kilocodeAuth := kilo.NewKiloAuth()
-
+
fmt.Println("Initiating Kilo device authentication...")
resp, err := kilocodeAuth.InitiateDeviceFlow(ctx)
if err != nil {
@@ -48,7 +48,7 @@ func (a *KiloAuthenticator) Login(ctx context.Context, cfg *config.Config, opts
fmt.Printf("Please visit: %s\n", resp.VerificationURL)
fmt.Printf("And enter code: %s\n", resp.Code)
-
+
fmt.Println("Waiting for authorization...")
status, err := kilocodeAuth.PollForToken(ctx, resp.Code)
if err != nil {
@@ -68,7 +68,7 @@ func (a *KiloAuthenticator) Login(ctx context.Context, cfg *config.Config, opts
for i, org := range profile.Orgs {
fmt.Printf("[%d] %s (%s)\n", i+1, org.Name, org.ID)
}
-
+
if opts.Prompt != nil {
input, err := opts.Prompt("Enter the number of the organization: ")
if err != nil {
@@ -108,7 +108,7 @@ func (a *KiloAuthenticator) Login(ctx context.Context, cfg *config.Config, opts
metadata := map[string]any{
"email": status.UserEmail,
"organization_id": orgID,
- "model": defaults.Model,
+ "model": defaults.Model,
}
return &coreauth.Auth{
diff --git a/sdk/cliproxy/auth/conductor.go b/sdk/cliproxy/auth/conductor.go
index ab933415e9..171e23a3eb 100644
--- a/sdk/cliproxy/auth/conductor.go
+++ b/sdk/cliproxy/auth/conductor.go
@@ -16,8 +16,8 @@ import (
"github.com/google/uuid"
internalconfig "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/logging"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/interfaces"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/logging"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/registry"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/thinking"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/util"
@@ -394,7 +394,29 @@ func (m *Manager) RegisterExecutor(executor ProviderExecutor) {
}
m.mu.Lock()
defer m.mu.Unlock()
- m.executors[executor.Identifier()] = executor
+ provider := strings.ToLower(strings.TrimSpace(executor.Identifier()))
+ if provider == "" {
+ return
+ }
+ if existing, ok := m.executors[provider]; ok && existing != nil && existing != executor {
+ existing.CloseExecutionSession(CloseAllExecutionSessionsID)
+ }
+ m.executors[provider] = executor
+}
+
+// Executor returns a registered executor for the provider key (case-insensitive).
+func (m *Manager) Executor(provider string) (ProviderExecutor, bool) {
+ if m == nil {
+ return nil, false
+ }
+ provider = strings.ToLower(strings.TrimSpace(provider))
+ if provider == "" {
+ return nil, false
+ }
+ m.mu.RLock()
+ defer m.mu.RUnlock()
+ exec, ok := m.executors[provider]
+ return exec, ok
}
// UnregisterExecutor removes the executor associated with the provider key.
@@ -599,6 +621,7 @@ func (m *Manager) executeMixedOnce(ctx context.Context, providers []string, req
}
return cliproxyexecutor.Response{}, errPick
}
+ m.recordSelectedAuth(opts, auth)
entry := logEntryWithRequestID(ctx)
debugLogAuthSelection(entry, auth, provider, req.Model)
@@ -654,6 +677,7 @@ func (m *Manager) executeCountMixedOnce(ctx context.Context, providers []string,
}
return cliproxyexecutor.Response{}, errPick
}
+ m.recordSelectedAuth(opts, auth)
entry := logEntryWithRequestID(ctx)
debugLogAuthSelection(entry, auth, provider, req.Model)
@@ -709,6 +733,7 @@ func (m *Manager) executeStreamMixedOnce(ctx context.Context, providers []string
}
return nil, errPick
}
+ m.recordSelectedAuth(opts, auth)
entry := logEntryWithRequestID(ctx)
debugLogAuthSelection(entry, auth, provider, req.Model)
@@ -1624,6 +1649,20 @@ func (m *Manager) pickNextMixed(ctx context.Context, providers []string, model s
m.mu.RUnlock()
return nil, nil, "", &Error{Code: "auth_not_found", Message: "no auth available"}
}
+ pinnedAuthID := pinnedAuthIDFromOptions(opts)
+ if pinnedAuthID != "" {
+ filtered := make([]*Auth, 0, len(candidates))
+ for _, candidate := range candidates {
+ if strings.EqualFold(strings.TrimSpace(candidate.ID), pinnedAuthID) {
+ filtered = append(filtered, candidate)
+ }
+ }
+ if len(filtered) == 0 {
+ m.mu.RUnlock()
+ return nil, nil, "", &Error{Code: "auth_not_found", Message: "pinned auth unavailable"}
+ }
+ candidates = filtered
+ }
selected, errPick := m.selector.Pick(ctx, "mixed", model, opts, candidates)
if errPick != nil {
m.mu.RUnlock()
@@ -1652,6 +1691,41 @@ func (m *Manager) pickNextMixed(ctx context.Context, providers []string, model s
return authCopy, executor, providerKey, nil
}
+func pinnedAuthIDFromOptions(opts cliproxyexecutor.Options) string {
+ raw, ok := opts.Metadata[cliproxyexecutor.PinnedAuthMetadataKey]
+ if !ok {
+ return ""
+ }
+ switch v := raw.(type) {
+ case string:
+ return strings.TrimSpace(v)
+ case []byte:
+ return strings.TrimSpace(string(v))
+ default:
+ return ""
+ }
+}
+
+func (m *Manager) recordSelectedAuth(opts cliproxyexecutor.Options, auth *Auth) {
+ if auth == nil || auth.ID == "" {
+ return
+ }
+ authID := auth.ID
+ if opts.Metadata == nil {
+ opts.Metadata = map[string]any{}
+ }
+ opts.Metadata[cliproxyexecutor.SelectedAuthMetadataKey] = authID
+ raw, ok := opts.Metadata[cliproxyexecutor.SelectedAuthCallbackMetadataKey]
+ if !ok {
+ return
+ }
+ callback, ok := raw.(func(string))
+ if !ok || callback == nil {
+ return
+ }
+ callback(authID)
+}
+
func (m *Manager) persist(ctx context.Context, auth *Auth) error {
if m.store == nil || auth == nil {
return nil
@@ -2013,9 +2087,17 @@ func (m *Manager) refreshAuth(ctx context.Context, id string) {
}
func (m *Manager) executorFor(provider string) ProviderExecutor {
+ provider = strings.ToLower(strings.TrimSpace(provider))
+ if provider == "" {
+ return nil
+ }
m.mu.RLock()
defer m.mu.RUnlock()
- return m.executors[provider]
+ executor, exists := m.executors[provider]
+ if !exists {
+ return nil
+ }
+ return executor
}
// roundTripperContextKey is an unexported context key type to avoid collisions.
diff --git a/sdk/cliproxy/service.go b/sdk/cliproxy/service.go
index 1bf3a7fd92..0231fd588e 100644
--- a/sdk/cliproxy/service.go
+++ b/sdk/cliproxy/service.go
@@ -14,8 +14,8 @@ import (
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/api"
kiroauth "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/auth/kiro"
- "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/registry"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/executor"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/registry"
_ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/usage"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/watcher"
"github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/wsrelay"
@@ -368,6 +368,10 @@ func openAICompatInfoFromAuth(a *coreauth.Auth) (providerKey string, compatName
}
func (s *Service) ensureExecutorsForAuth(a *coreauth.Auth) {
+ s.ensureExecutorsForAuthWithMode(a, false)
+}
+
+func (s *Service) ensureExecutorsForAuthWithMode(a *coreauth.Auth, force bool) {
if s == nil || a == nil {
return
}
@@ -377,6 +381,15 @@ func (s *Service) ensureExecutorsForAuth(a *coreauth.Auth) {
if a.Disabled {
return
}
+ providerKey := strings.ToLower(strings.TrimSpace(a.Provider))
+ if providerKey == "" {
+ providerKey = "openai-compatibility"
+ }
+ if !force {
+ if _, exists := s.coreManager.Executor(providerKey); exists {
+ return
+ }
+ }
if compatProviderKey, _, isCompat := openAICompatInfoFromAuth(a); isCompat {
if compatProviderKey == "" {
compatProviderKey = strings.ToLower(strings.TrimSpace(a.Provider))
diff --git a/sdk/config/config_test.go b/sdk/config/config_test.go
index eb50563624..c62a83d012 100644
--- a/sdk/config/config_test.go
+++ b/sdk/config/config_test.go
@@ -7,7 +7,7 @@ import (
func TestConfigWrappers(t *testing.T) {
tmpFile, _ := os.CreateTemp("", "config*.yaml")
- defer os.Remove(tmpFile.Name())
+ defer func() { _ = os.Remove(tmpFile.Name()) }()
_, _ = tmpFile.Write([]byte("{}"))
_ = tmpFile.Close()
diff --git a/test/amp_management_test.go b/test/amp_management_test.go
index f1895b4d5d..8c1a1d281e 100644
--- a/test/amp_management_test.go
+++ b/test/amp_management_test.go
@@ -271,7 +271,7 @@ func TestDeleteAmpUpstreamAPIKeys_ClearsAll(t *testing.T) {
if err := json.Unmarshal(w.Body.Bytes(), &resp); err != nil {
t.Fatalf("failed to unmarshal response: %v", err)
}
- if resp["upstream-api-keys"] != nil && len(resp["upstream-api-keys"]) != 0 {
+ if len(resp["upstream-api-keys"]) != 0 {
t.Fatalf("expected cleared list, got %#v", resp["upstream-api-keys"])
}
}
From ca1c65410f3c8b6e526383a1dae238b736867179 Mon Sep 17 00:00:00 2001
From: Koosha Paridehpour
Date: Sun, 22 Feb 2026 04:18:01 -0700
Subject: [PATCH 002/412] chore: snapshot current local working state
---
Taskfile.yml | 36 +-
docs/planning/README.md | 2 +-
pkg/llmproxy/api/server.go | 4 +-
.../executor/github_copilot_executor.go | 370 ++
.../runtime/executor/kiro_executor.go | 3089 +++++++++++++++++
5 files changed, 3494 insertions(+), 7 deletions(-)
diff --git a/Taskfile.yml b/Taskfile.yml
index 86310307bb..b1c4c612f2 100644
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -207,9 +207,9 @@ tasks:
- task: quality:parent-sibling
quality:quick:
- desc: "Run fast local quality checks (auto format + tests)"
+ desc: "Run fast local quality checks (readonly)"
cmds:
- - task: quality:fmt
+ - task: quality:fmt:check
- task: quality:quick:check
quality:quick:check:
@@ -218,7 +218,37 @@ tasks:
cmds:
- task: quality:fmt:check
- task: lint:changed
- - go test {{.QUALITY_PACKAGES}}
+ - |
+ if [ "${QUALITY_PACKAGES}" = "./..." ]; then
+ tmp_files="$(mktemp)"
+ if [ -n "${QUALITY_DIFF_RANGE:-}" ]; then
+ git diff --name-only "$QUALITY_DIFF_RANGE" -- '*.go' | sort -u > "$tmp_files"
+ else
+ git diff --name-only -- '*.go' | sort -u > "$tmp_files"
+ git diff --cached --name-only -- '*.go' >> "$tmp_files"
+ fi
+ mapfile -t files < <(sort -u "$tmp_files")
+ rm -f "$tmp_files"
+
+ if [ "${#files[@]}" -eq 0 ]; then
+ echo "[SKIP] No changed Go files; skipping go test in quality quick mode."
+ exit 0
+ fi
+
+ mapfile -t test_packages < <(printf '%s\n' "${files[@]}" | sed 's#^\\./##' | xargs -n1 dirname | sort -u)
+ if [ "${#test_packages[@]}" -eq 0 ]; then
+ echo "[SKIP] No testable directories from changed Go files."
+ exit 0
+ fi
+ else
+ mapfile -t test_packages < <(printf '%s' "{{.QUALITY_PACKAGES}}" | tr ' ' '\n' | sed '/^$/d')
+ if [ "${#test_packages[@]}" -eq 0 ]; then
+ echo "[SKIP] QUALITY_PACKAGES was empty."
+ exit 0
+ fi
+ fi
+
+ go test "${test_packages[@]}"
quality:quick:all:
desc: "Run quality quick locally and in sibling cliproxy/cliproxyapi++ repos"
diff --git a/docs/planning/README.md b/docs/planning/README.md
index 556578b31b..443c97ad89 100644
--- a/docs/planning/README.md
+++ b/docs/planning/README.md
@@ -7,7 +7,7 @@
- `task quality:ci` — Pre-merge quality gate (non-mutating; fmt check + vet + optional staticcheck + diff/staged lint).
- `task quality:fmt-staged` — Format and lint staged files only.
- `task quality:fmt-staged:check` — Check formatting and lint staged/diff files (PR-safe, non-mutating).
-- `task quality:quick` — Fast loop (`QUALITY_PACKAGES` scoped optional).
+- `task quality:quick` — Fast loop (`QUALITY_PACKAGES` scoped optional), readonly.
- `task quality:quick:check` — Fast non-mutating quality loop (`quality:fmt:check` + `lint:changed` + targeted tests).
- `task quality:quick:all` — Run `quality:quick` and equivalent sibling project quality checks via `quality:parent-sibling`.
- `task lint` — Run `golangci-lint` across all packages.
diff --git a/pkg/llmproxy/api/server.go b/pkg/llmproxy/api/server.go
index fced878485..8fbd88a485 100644
--- a/pkg/llmproxy/api/server.go
+++ b/pkg/llmproxy/api/server.go
@@ -1487,9 +1487,7 @@ func (s *Server) startSHMSyncLoop() {
for {
select {
case <-ticker.C:
- if err := usage.SyncToSHM(shmPath); err != nil {
- // log.Errorf("Failed to sync metrics to SHM: %v", err)
- }
+ _ = usage.SyncToSHM(shmPath)
case <-s.shmStop:
return
}
diff --git a/pkg/llmproxy/runtime/executor/github_copilot_executor.go b/pkg/llmproxy/runtime/executor/github_copilot_executor.go
index 07c321efac..f990383ba1 100644
--- a/pkg/llmproxy/runtime/executor/github_copilot_executor.go
+++ b/pkg/llmproxy/runtime/executor/github_copilot_executor.go
@@ -866,3 +866,373 @@ func normalizeGitHubCopilotResponsesTools(body []byte) []byte {
body, _ = sjson.SetBytes(body, "tool_choice", "auto")
return body
}
+
+func collectTextFromNode(node gjson.Result) string {
+ if !node.Exists() {
+ return ""
+ }
+ if node.Type == gjson.String {
+ return node.String()
+ }
+ if node.IsArray() {
+ var parts []string
+ for _, item := range node.Array() {
+ if item.Type == gjson.String {
+ if text := item.String(); text != "" {
+ parts = append(parts, text)
+ }
+ continue
+ }
+ if text := item.Get("text").String(); text != "" {
+ parts = append(parts, text)
+ continue
+ }
+ if nested := collectTextFromNode(item.Get("content")); nested != "" {
+ parts = append(parts, nested)
+ }
+ }
+ return strings.Join(parts, "\n")
+ }
+ if node.Type == gjson.JSON {
+ if text := node.Get("text").String(); text != "" {
+ return text
+ }
+ if nested := collectTextFromNode(node.Get("content")); nested != "" {
+ return nested
+ }
+ return node.Raw
+ }
+ return node.String()
+}
+
+type githubCopilotResponsesStreamToolState struct {
+ Index int
+ ID string
+ Name string
+}
+
+type githubCopilotResponsesStreamState struct {
+ MessageStarted bool
+ MessageStopSent bool
+ TextBlockStarted bool
+ TextBlockIndex int
+ NextContentIndex int
+ HasToolUse bool
+ ReasoningActive bool
+ ReasoningIndex int
+ OutputIndexToTool map[int]*githubCopilotResponsesStreamToolState
+ ItemIDToTool map[string]*githubCopilotResponsesStreamToolState
+}
+
+func translateGitHubCopilotResponsesNonStreamToClaude(data []byte) string {
+ root := gjson.ParseBytes(data)
+ out := `{"id":"","type":"message","role":"assistant","model":"","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":0,"output_tokens":0}}`
+ out, _ = sjson.Set(out, "id", root.Get("id").String())
+ out, _ = sjson.Set(out, "model", root.Get("model").String())
+
+ hasToolUse := false
+ if output := root.Get("output"); output.Exists() && output.IsArray() {
+ for _, item := range output.Array() {
+ switch item.Get("type").String() {
+ case "reasoning":
+ var thinkingText string
+ if summary := item.Get("summary"); summary.Exists() && summary.IsArray() {
+ var parts []string
+ for _, part := range summary.Array() {
+ if txt := part.Get("text").String(); txt != "" {
+ parts = append(parts, txt)
+ }
+ }
+ thinkingText = strings.Join(parts, "")
+ }
+ if thinkingText == "" {
+ if content := item.Get("content"); content.Exists() && content.IsArray() {
+ var parts []string
+ for _, part := range content.Array() {
+ if txt := part.Get("text").String(); txt != "" {
+ parts = append(parts, txt)
+ }
+ }
+ thinkingText = strings.Join(parts, "")
+ }
+ }
+ if thinkingText != "" {
+ block := `{"type":"thinking","thinking":""}`
+ block, _ = sjson.Set(block, "thinking", thinkingText)
+ out, _ = sjson.SetRaw(out, "content.-1", block)
+ }
+ case "message":
+ if content := item.Get("content"); content.Exists() && content.IsArray() {
+ for _, part := range content.Array() {
+ if part.Get("type").String() != "output_text" {
+ continue
+ }
+ text := part.Get("text").String()
+ if text == "" {
+ continue
+ }
+ block := `{"type":"text","text":""}`
+ block, _ = sjson.Set(block, "text", text)
+ out, _ = sjson.SetRaw(out, "content.-1", block)
+ }
+ }
+ case "function_call":
+ hasToolUse = true
+ toolUse := `{"type":"tool_use","id":"","name":"","input":{}}`
+ toolID := item.Get("call_id").String()
+ if toolID == "" {
+ toolID = item.Get("id").String()
+ }
+ toolUse, _ = sjson.Set(toolUse, "id", toolID)
+ toolUse, _ = sjson.Set(toolUse, "name", item.Get("name").String())
+ if args := item.Get("arguments").String(); args != "" && gjson.Valid(args) {
+ argObj := gjson.Parse(args)
+ if argObj.IsObject() {
+ toolUse, _ = sjson.SetRaw(toolUse, "input", argObj.Raw)
+ }
+ }
+ out, _ = sjson.SetRaw(out, "content.-1", toolUse)
+ }
+ }
+ }
+
+ inputTokens := root.Get("usage.input_tokens").Int()
+ outputTokens := root.Get("usage.output_tokens").Int()
+ cachedTokens := root.Get("usage.input_tokens_details.cached_tokens").Int()
+ if cachedTokens > 0 && inputTokens >= cachedTokens {
+ inputTokens -= cachedTokens
+ }
+ out, _ = sjson.Set(out, "usage.input_tokens", inputTokens)
+ out, _ = sjson.Set(out, "usage.output_tokens", outputTokens)
+ if cachedTokens > 0 {
+ out, _ = sjson.Set(out, "usage.cache_read_input_tokens", cachedTokens)
+ }
+ if hasToolUse {
+ out, _ = sjson.Set(out, "stop_reason", "tool_use")
+ } else if sr := root.Get("stop_reason").String(); sr == "max_tokens" || sr == "stop" {
+ out, _ = sjson.Set(out, "stop_reason", sr)
+ } else {
+ out, _ = sjson.Set(out, "stop_reason", "end_turn")
+ }
+ return out
+}
+
+func translateGitHubCopilotResponsesStreamToClaude(line []byte, param *any) []string {
+ if *param == nil {
+ *param = &githubCopilotResponsesStreamState{
+ TextBlockIndex: -1,
+ OutputIndexToTool: make(map[int]*githubCopilotResponsesStreamToolState),
+ ItemIDToTool: make(map[string]*githubCopilotResponsesStreamToolState),
+ }
+ }
+ state := (*param).(*githubCopilotResponsesStreamState)
+
+ if !bytes.HasPrefix(line, dataTag) {
+ return nil
+ }
+ payload := bytes.TrimSpace(line[5:])
+ if bytes.Equal(payload, []byte("[DONE]")) {
+ return nil
+ }
+ if !gjson.ValidBytes(payload) {
+ return nil
+ }
+
+ event := gjson.GetBytes(payload, "type").String()
+ results := make([]string, 0, 4)
+ ensureMessageStart := func() {
+ if state.MessageStarted {
+ return
+ }
+ messageStart := `{"type":"message_start","message":{"id":"","type":"message","role":"assistant","model":"","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":0,"output_tokens":0}}}`
+ messageStart, _ = sjson.Set(messageStart, "message.id", gjson.GetBytes(payload, "response.id").String())
+ messageStart, _ = sjson.Set(messageStart, "message.model", gjson.GetBytes(payload, "response.model").String())
+ results = append(results, "event: message_start\ndata: "+messageStart+"\n\n")
+ state.MessageStarted = true
+ }
+ startTextBlockIfNeeded := func() {
+ if state.TextBlockStarted {
+ return
+ }
+ if state.TextBlockIndex < 0 {
+ state.TextBlockIndex = state.NextContentIndex
+ state.NextContentIndex++
+ }
+ contentBlockStart := `{"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}`
+ contentBlockStart, _ = sjson.Set(contentBlockStart, "index", state.TextBlockIndex)
+ results = append(results, "event: content_block_start\ndata: "+contentBlockStart+"\n\n")
+ state.TextBlockStarted = true
+ }
+ stopTextBlockIfNeeded := func() {
+ if !state.TextBlockStarted {
+ return
+ }
+ contentBlockStop := `{"type":"content_block_stop","index":0}`
+ contentBlockStop, _ = sjson.Set(contentBlockStop, "index", state.TextBlockIndex)
+ results = append(results, "event: content_block_stop\ndata: "+contentBlockStop+"\n\n")
+ state.TextBlockStarted = false
+ state.TextBlockIndex = -1
+ }
+ resolveTool := func(itemID string, outputIndex int) *githubCopilotResponsesStreamToolState {
+ if itemID != "" {
+ if tool, ok := state.ItemIDToTool[itemID]; ok {
+ return tool
+ }
+ }
+ if tool, ok := state.OutputIndexToTool[outputIndex]; ok {
+ if itemID != "" {
+ state.ItemIDToTool[itemID] = tool
+ }
+ return tool
+ }
+ return nil
+ }
+
+ switch event {
+ case "response.created":
+ ensureMessageStart()
+ case "response.output_text.delta":
+ ensureMessageStart()
+ startTextBlockIfNeeded()
+ delta := gjson.GetBytes(payload, "delta").String()
+ if delta != "" {
+ contentDelta := `{"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":""}}`
+ contentDelta, _ = sjson.Set(contentDelta, "index", state.TextBlockIndex)
+ contentDelta, _ = sjson.Set(contentDelta, "delta.text", delta)
+ results = append(results, "event: content_block_delta\ndata: "+contentDelta+"\n\n")
+ }
+ case "response.reasoning_summary_part.added":
+ ensureMessageStart()
+ state.ReasoningActive = true
+ state.ReasoningIndex = state.NextContentIndex
+ state.NextContentIndex++
+ thinkingStart := `{"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":""}}`
+ thinkingStart, _ = sjson.Set(thinkingStart, "index", state.ReasoningIndex)
+ results = append(results, "event: content_block_start\ndata: "+thinkingStart+"\n\n")
+ case "response.reasoning_summary_text.delta":
+ if state.ReasoningActive {
+ delta := gjson.GetBytes(payload, "delta").String()
+ if delta != "" {
+ thinkingDelta := `{"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":""}}`
+ thinkingDelta, _ = sjson.Set(thinkingDelta, "index", state.ReasoningIndex)
+ thinkingDelta, _ = sjson.Set(thinkingDelta, "delta.thinking", delta)
+ results = append(results, "event: content_block_delta\ndata: "+thinkingDelta+"\n\n")
+ }
+ }
+ case "response.reasoning_summary_part.done":
+ if state.ReasoningActive {
+ thinkingStop := `{"type":"content_block_stop","index":0}`
+ thinkingStop, _ = sjson.Set(thinkingStop, "index", state.ReasoningIndex)
+ results = append(results, "event: content_block_stop\ndata: "+thinkingStop+"\n\n")
+ state.ReasoningActive = false
+ }
+ case "response.output_item.added":
+ if gjson.GetBytes(payload, "item.type").String() != "function_call" {
+ break
+ }
+ ensureMessageStart()
+ stopTextBlockIfNeeded()
+ state.HasToolUse = true
+ tool := &githubCopilotResponsesStreamToolState{
+ Index: state.NextContentIndex,
+ ID: gjson.GetBytes(payload, "item.call_id").String(),
+ Name: gjson.GetBytes(payload, "item.name").String(),
+ }
+ if tool.ID == "" {
+ tool.ID = gjson.GetBytes(payload, "item.id").String()
+ }
+ state.NextContentIndex++
+ outputIndex := int(gjson.GetBytes(payload, "output_index").Int())
+ state.OutputIndexToTool[outputIndex] = tool
+ if itemID := gjson.GetBytes(payload, "item.id").String(); itemID != "" {
+ state.ItemIDToTool[itemID] = tool
+ }
+ contentBlockStart := `{"type":"content_block_start","index":0,"content_block":{"type":"tool_use","id":"","name":"","input":{}}}`
+ contentBlockStart, _ = sjson.Set(contentBlockStart, "index", tool.Index)
+ contentBlockStart, _ = sjson.Set(contentBlockStart, "content_block.id", tool.ID)
+ contentBlockStart, _ = sjson.Set(contentBlockStart, "content_block.name", tool.Name)
+ results = append(results, "event: content_block_start\ndata: "+contentBlockStart+"\n\n")
+ case "response.output_item.delta":
+ item := gjson.GetBytes(payload, "item")
+ if item.Get("type").String() != "function_call" {
+ break
+ }
+ tool := resolveTool(item.Get("id").String(), int(gjson.GetBytes(payload, "output_index").Int()))
+ if tool == nil {
+ break
+ }
+ partial := gjson.GetBytes(payload, "delta").String()
+ if partial == "" {
+ partial = item.Get("arguments").String()
+ }
+ if partial == "" {
+ break
+ }
+ inputDelta := `{"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""}}`
+ inputDelta, _ = sjson.Set(inputDelta, "index", tool.Index)
+ inputDelta, _ = sjson.Set(inputDelta, "delta.partial_json", partial)
+ results = append(results, "event: content_block_delta\ndata: "+inputDelta+"\n\n")
+ case "response.function_call_arguments.delta":
+ // Copilot sends tool call arguments via this event type (not response.output_item.delta).
+ // Data format: {"delta":"...", "item_id":"...", "output_index":N, ...}
+ itemID := gjson.GetBytes(payload, "item_id").String()
+ outputIndex := int(gjson.GetBytes(payload, "output_index").Int())
+ tool := resolveTool(itemID, outputIndex)
+ if tool == nil {
+ break
+ }
+ partial := gjson.GetBytes(payload, "delta").String()
+ if partial == "" {
+ break
+ }
+ inputDelta := `{"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""}}`
+ inputDelta, _ = sjson.Set(inputDelta, "index", tool.Index)
+ inputDelta, _ = sjson.Set(inputDelta, "delta.partial_json", partial)
+ results = append(results, "event: content_block_delta\ndata: "+inputDelta+"\n\n")
+ case "response.output_item.done":
+ if gjson.GetBytes(payload, "item.type").String() != "function_call" {
+ break
+ }
+ tool := resolveTool(gjson.GetBytes(payload, "item.id").String(), int(gjson.GetBytes(payload, "output_index").Int()))
+ if tool == nil {
+ break
+ }
+ contentBlockStop := `{"type":"content_block_stop","index":0}`
+ contentBlockStop, _ = sjson.Set(contentBlockStop, "index", tool.Index)
+ results = append(results, "event: content_block_stop\ndata: "+contentBlockStop+"\n\n")
+ case "response.completed":
+ ensureMessageStart()
+ stopTextBlockIfNeeded()
+ if !state.MessageStopSent {
+ stopReason := "end_turn"
+ if state.HasToolUse {
+ stopReason = "tool_use"
+ } else if sr := gjson.GetBytes(payload, "response.stop_reason").String(); sr == "max_tokens" || sr == "stop" {
+ stopReason = sr
+ }
+ inputTokens := gjson.GetBytes(payload, "response.usage.input_tokens").Int()
+ outputTokens := gjson.GetBytes(payload, "response.usage.output_tokens").Int()
+ cachedTokens := gjson.GetBytes(payload, "response.usage.input_tokens_details.cached_tokens").Int()
+ if cachedTokens > 0 && inputTokens >= cachedTokens {
+ inputTokens -= cachedTokens
+ }
+ messageDelta := `{"type":"message_delta","delta":{"stop_reason":"","stop_sequence":null},"usage":{"input_tokens":0,"output_tokens":0}}`
+ messageDelta, _ = sjson.Set(messageDelta, "delta.stop_reason", stopReason)
+ messageDelta, _ = sjson.Set(messageDelta, "usage.input_tokens", inputTokens)
+ messageDelta, _ = sjson.Set(messageDelta, "usage.output_tokens", outputTokens)
+ if cachedTokens > 0 {
+ messageDelta, _ = sjson.Set(messageDelta, "usage.cache_read_input_tokens", cachedTokens)
+ }
+ results = append(results, "event: message_delta\ndata: "+messageDelta+"\n\n")
+ results = append(results, "event: message_stop\ndata: {\"type\":\"message_stop\"}\n\n")
+ state.MessageStopSent = true
+ }
+ }
+
+ return results
+}
+
+// isHTTPSuccess checks if the status code indicates success (2xx).
+func isHTTPSuccess(statusCode int) bool {
+ return statusCode >= 200 && statusCode < 300
+}
diff --git a/pkg/llmproxy/runtime/executor/kiro_executor.go b/pkg/llmproxy/runtime/executor/kiro_executor.go
index 552d521354..3e274618df 100644
--- a/pkg/llmproxy/runtime/executor/kiro_executor.go
+++ b/pkg/llmproxy/runtime/executor/kiro_executor.go
@@ -1525,3 +1525,3092 @@ func determineAgenticMode(model string) (isAgentic, isChatOnly bool) {
// 1. Check auth_method field: "builder-id" or "idc"
// 2. Check auth_type field: "aws_sso_oidc" (from kiro-cli tokens)
// 3. Check for client_id + client_secret presence (AWS SSO OIDC signature)
+func (e *KiroExecutor) mapModelToKiro(model string) string {
+ modelMap := map[string]string{
+ // Amazon Q format (amazonq- prefix) - same API as Kiro
+ "amazonq-auto": "auto",
+ "amazonq-claude-opus-4-6": "claude-opus-4.6",
+ "amazonq-claude-sonnet-4-6": "claude-sonnet-4.6",
+ "amazonq-claude-opus-4-5": "claude-opus-4.5",
+ "amazonq-claude-sonnet-4-5": "claude-sonnet-4.5",
+ "amazonq-claude-sonnet-4-5-20250929": "claude-sonnet-4.5",
+ "amazonq-claude-sonnet-4": "claude-sonnet-4",
+ "amazonq-claude-sonnet-4-20250514": "claude-sonnet-4",
+ "amazonq-claude-haiku-4-5": "claude-haiku-4.5",
+ // Kiro format (kiro- prefix) - valid model names that should be preserved
+ "kiro-claude-opus-4-6": "claude-opus-4.6",
+ "kiro-claude-sonnet-4-6": "claude-sonnet-4.6",
+ "kiro-claude-opus-4-5": "claude-opus-4.5",
+ "kiro-claude-sonnet-4-5": "claude-sonnet-4.5",
+ "kiro-claude-sonnet-4-5-20250929": "claude-sonnet-4.5",
+ "kiro-claude-sonnet-4": "claude-sonnet-4",
+ "kiro-claude-sonnet-4-20250514": "claude-sonnet-4",
+ "kiro-claude-haiku-4-5": "claude-haiku-4.5",
+ "kiro-auto": "auto",
+ // Native format (no prefix) - used by Kiro IDE directly
+ "claude-opus-4-6": "claude-opus-4.6",
+ "claude-opus-4.6": "claude-opus-4.6",
+ "claude-sonnet-4-6": "claude-sonnet-4.6",
+ "claude-sonnet-4.6": "claude-sonnet-4.6",
+ "claude-opus-4-5": "claude-opus-4.5",
+ "claude-opus-4.5": "claude-opus-4.5",
+ "claude-haiku-4-5": "claude-haiku-4.5",
+ "claude-haiku-4.5": "claude-haiku-4.5",
+ "claude-sonnet-4-5": "claude-sonnet-4.5",
+ "claude-sonnet-4-5-20250929": "claude-sonnet-4.5",
+ "claude-sonnet-4.5": "claude-sonnet-4.5",
+ "claude-sonnet-4": "claude-sonnet-4",
+ "claude-sonnet-4-20250514": "claude-sonnet-4",
+ "auto": "auto",
+ // Agentic variants (same backend model IDs, but with special system prompt)
+ "claude-opus-4.6-agentic": "claude-opus-4.6",
+ "claude-sonnet-4.6-agentic": "claude-sonnet-4.6",
+ "claude-opus-4.5-agentic": "claude-opus-4.5",
+ "claude-sonnet-4.5-agentic": "claude-sonnet-4.5",
+ "claude-sonnet-4-agentic": "claude-sonnet-4",
+ "claude-haiku-4.5-agentic": "claude-haiku-4.5",
+ "kiro-claude-opus-4-6-agentic": "claude-opus-4.6",
+ "kiro-claude-sonnet-4-6-agentic": "claude-sonnet-4.6",
+ "kiro-claude-opus-4-5-agentic": "claude-opus-4.5",
+ "kiro-claude-sonnet-4-5-agentic": "claude-sonnet-4.5",
+ "kiro-claude-sonnet-4-agentic": "claude-sonnet-4",
+ "kiro-claude-haiku-4-5-agentic": "claude-haiku-4.5",
+ }
+ if kiroID, ok := modelMap[model]; ok {
+ return kiroID
+ }
+
+ // Smart fallback: try to infer model type from name patterns
+ modelLower := strings.ToLower(model)
+
+ // Check for Haiku variants
+ if strings.Contains(modelLower, "haiku") {
+ log.Debugf("kiro: unknown Haiku model '%s', mapping to claude-haiku-4.5", model)
+ return "claude-haiku-4.5"
+ }
+
+ // Check for Sonnet variants
+ if strings.Contains(modelLower, "sonnet") {
+ // Check for specific version patterns
+ if strings.Contains(modelLower, "3-7") || strings.Contains(modelLower, "3.7") {
+ log.Debugf("kiro: unknown Sonnet 3.7 model '%s', mapping to claude-3-7-sonnet-20250219", model)
+ return "claude-3-7-sonnet-20250219"
+ }
+ if strings.Contains(modelLower, "4-6") || strings.Contains(modelLower, "4.6") {
+ log.Debugf("kiro: unknown Sonnet 4.6 model '%s', mapping to claude-sonnet-4.6", model)
+ return "claude-sonnet-4.6"
+ }
+ if strings.Contains(modelLower, "4-5") || strings.Contains(modelLower, "4.5") {
+ log.Debugf("kiro: unknown Sonnet 4.5 model '%s', mapping to claude-sonnet-4.5", model)
+ return "claude-sonnet-4.5"
+ }
+ // Default to Sonnet 4
+ log.Debugf("kiro: unknown Sonnet model '%s', mapping to claude-sonnet-4", model)
+ return "claude-sonnet-4"
+ }
+
+ // Check for Opus variants
+ if strings.Contains(modelLower, "opus") {
+ if strings.Contains(modelLower, "4-6") || strings.Contains(modelLower, "4.6") {
+ log.Debugf("kiro: unknown Opus 4.6 model '%s', mapping to claude-opus-4.6", model)
+ return "claude-opus-4.6"
+ }
+ log.Debugf("kiro: unknown Opus model '%s', mapping to claude-opus-4.5", model)
+ return "claude-opus-4.5"
+ }
+
+ // Final fallback to Sonnet 4.5 (most commonly used model)
+ log.Warnf("kiro: unknown model '%s', falling back to claude-sonnet-4.5", model)
+ return "claude-sonnet-4.5"
+}
+
+// EventStreamError represents an Event Stream processing error
+type EventStreamError struct {
+ Type string // "fatal", "malformed"
+ Message string
+ Cause error
+}
+
+func (e *EventStreamError) Error() string {
+ if e.Cause != nil {
+ return fmt.Sprintf("event stream %s: %s: %v", e.Type, e.Message, e.Cause)
+ }
+ return fmt.Sprintf("event stream %s: %s", e.Type, e.Message)
+}
+
+// eventStreamMessage represents a parsed AWS Event Stream message
+type eventStreamMessage struct {
+ EventType string // Event type from headers (e.g., "assistantResponseEvent")
+ Payload []byte // JSON payload of the message
+}
+
+// NOTE: Request building functions moved to pkg/llmproxy/translator/kiro/claude/kiro_claude_request.go
+// The executor now uses kiroclaude.BuildKiroPayload() instead
+
+// parseEventStream parses AWS Event Stream binary format.
+// Extracts text content, tool uses, and stop_reason from the response.
+// Supports embedded [Called ...] tool calls and input buffering for toolUseEvent.
+// Returns: content, toolUses, usageInfo, stopReason, error
+func (e *KiroExecutor) parseEventStream(body io.Reader) (string, []kiroclaude.KiroToolUse, usage.Detail, string, error) {
+ var content strings.Builder
+ var toolUses []kiroclaude.KiroToolUse
+ var usageInfo usage.Detail
+ var stopReason string // Extracted from upstream response
+ reader := bufio.NewReader(body)
+
+ // Tool use state tracking for input buffering and deduplication
+ processedIDs := make(map[string]bool)
+ var currentToolUse *kiroclaude.ToolUseState
+
+ // Upstream usage tracking - Kiro API returns credit usage and context percentage
+ var upstreamContextPercentage float64 // Context usage percentage from upstream (e.g., 78.56)
+
+ for {
+ msg, eventErr := e.readEventStreamMessage(reader)
+ if eventErr != nil {
+ log.Errorf("kiro: parseEventStream error: %v", eventErr)
+ return content.String(), toolUses, usageInfo, stopReason, eventErr
+ }
+ if msg == nil {
+ // Normal end of stream (EOF)
+ break
+ }
+
+ eventType := msg.EventType
+ payload := msg.Payload
+ if len(payload) == 0 {
+ continue
+ }
+
+ var event map[string]interface{}
+ if err := json.Unmarshal(payload, &event); err != nil {
+ log.Debugf("kiro: skipping malformed event: %v", err)
+ continue
+ }
+
+ // Check for error/exception events in the payload (Kiro API may return errors with HTTP 200)
+ // These can appear as top-level fields or nested within the event
+ if errType, hasErrType := event["_type"].(string); hasErrType {
+ // AWS-style error: {"_type": "com.amazon.aws.codewhisperer#ValidationException", "message": "..."}
+ errMsg := ""
+ if msg, ok := event["message"].(string); ok {
+ errMsg = msg
+ }
+ log.Errorf("kiro: received AWS error in event stream: type=%s, message=%s", errType, errMsg)
+ return "", nil, usageInfo, stopReason, fmt.Errorf("kiro API error: %s - %s", errType, errMsg)
+ }
+ if errType, hasErrType := event["type"].(string); hasErrType && (errType == "error" || errType == "exception") {
+ // Generic error event
+ errMsg := ""
+ if msg, ok := event["message"].(string); ok {
+ errMsg = msg
+ } else if errObj, ok := event["error"].(map[string]interface{}); ok {
+ if msg, ok := errObj["message"].(string); ok {
+ errMsg = msg
+ }
+ }
+ log.Errorf("kiro: received error event in stream: type=%s, message=%s", errType, errMsg)
+ return "", nil, usageInfo, stopReason, fmt.Errorf("kiro API error: %s", errMsg)
+ }
+
+ // Extract stop_reason from various event formats
+ // Kiro/Amazon Q API may include stop_reason in different locations
+ if sr := kirocommon.GetString(event, "stop_reason"); sr != "" {
+ stopReason = sr
+ log.Debugf("kiro: parseEventStream found stop_reason (top-level): %s", stopReason)
+ }
+ if sr := kirocommon.GetString(event, "stopReason"); sr != "" {
+ stopReason = sr
+ log.Debugf("kiro: parseEventStream found stopReason (top-level): %s", stopReason)
+ }
+
+ // Handle different event types
+ switch eventType {
+ case "followupPromptEvent":
+ // Filter out followupPrompt events - these are UI suggestions, not content
+ log.Debugf("kiro: parseEventStream ignoring followupPrompt event")
+ continue
+
+ case "assistantResponseEvent":
+ if assistantResp, ok := event["assistantResponseEvent"].(map[string]interface{}); ok {
+ if contentText, ok := assistantResp["content"].(string); ok {
+ content.WriteString(contentText)
+ }
+ // Extract stop_reason from assistantResponseEvent
+ if sr := kirocommon.GetString(assistantResp, "stop_reason"); sr != "" {
+ stopReason = sr
+ log.Debugf("kiro: parseEventStream found stop_reason in assistantResponseEvent: %s", stopReason)
+ }
+ if sr := kirocommon.GetString(assistantResp, "stopReason"); sr != "" {
+ stopReason = sr
+ log.Debugf("kiro: parseEventStream found stopReason in assistantResponseEvent: %s", stopReason)
+ }
+ // Extract tool uses from response
+ if toolUsesRaw, ok := assistantResp["toolUses"].([]interface{}); ok {
+ for _, tuRaw := range toolUsesRaw {
+ if tu, ok := tuRaw.(map[string]interface{}); ok {
+ toolUseID := kirocommon.GetStringValue(tu, "toolUseId")
+ // Check for duplicate
+ if processedIDs[toolUseID] {
+ log.Debugf("kiro: skipping duplicate tool use from assistantResponse: %s", toolUseID)
+ continue
+ }
+ processedIDs[toolUseID] = true
+
+ toolUse := kiroclaude.KiroToolUse{
+ ToolUseID: toolUseID,
+ Name: kirocommon.GetStringValue(tu, "name"),
+ }
+ if input, ok := tu["input"].(map[string]interface{}); ok {
+ toolUse.Input = input
+ }
+ toolUses = append(toolUses, toolUse)
+ }
+ }
+ }
+ }
+ // Also try direct format
+ if contentText, ok := event["content"].(string); ok {
+ content.WriteString(contentText)
+ }
+ // Direct tool uses
+ if toolUsesRaw, ok := event["toolUses"].([]interface{}); ok {
+ for _, tuRaw := range toolUsesRaw {
+ if tu, ok := tuRaw.(map[string]interface{}); ok {
+ toolUseID := kirocommon.GetStringValue(tu, "toolUseId")
+ // Check for duplicate
+ if processedIDs[toolUseID] {
+ log.Debugf("kiro: skipping duplicate direct tool use: %s", toolUseID)
+ continue
+ }
+ processedIDs[toolUseID] = true
+
+ toolUse := kiroclaude.KiroToolUse{
+ ToolUseID: toolUseID,
+ Name: kirocommon.GetStringValue(tu, "name"),
+ }
+ if input, ok := tu["input"].(map[string]interface{}); ok {
+ toolUse.Input = input
+ }
+ toolUses = append(toolUses, toolUse)
+ }
+ }
+ }
+
+ case "toolUseEvent":
+ // Handle dedicated tool use events with input buffering
+ completedToolUses, newState := kiroclaude.ProcessToolUseEvent(event, currentToolUse, processedIDs)
+ currentToolUse = newState
+ toolUses = append(toolUses, completedToolUses...)
+
+ case "supplementaryWebLinksEvent":
+ if inputTokens, ok := event["inputTokens"].(float64); ok {
+ usageInfo.InputTokens = int64(inputTokens)
+ }
+ if outputTokens, ok := event["outputTokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ }
+
+ case "messageStopEvent", "message_stop":
+ // Handle message stop events which may contain stop_reason
+ if sr := kirocommon.GetString(event, "stop_reason"); sr != "" {
+ stopReason = sr
+ log.Debugf("kiro: parseEventStream found stop_reason in messageStopEvent: %s", stopReason)
+ }
+ if sr := kirocommon.GetString(event, "stopReason"); sr != "" {
+ stopReason = sr
+ log.Debugf("kiro: parseEventStream found stopReason in messageStopEvent: %s", stopReason)
+ }
+
+ case "messageMetadataEvent", "metadataEvent":
+ // Handle message metadata events which contain token counts
+ // Official format: { tokenUsage: { outputTokens, totalTokens, uncachedInputTokens, cacheReadInputTokens, cacheWriteInputTokens, contextUsagePercentage } }
+ var metadata map[string]interface{}
+ if m, ok := event["messageMetadataEvent"].(map[string]interface{}); ok {
+ metadata = m
+ } else if m, ok := event["metadataEvent"].(map[string]interface{}); ok {
+ metadata = m
+ } else {
+ metadata = event // event itself might be the metadata
+ }
+
+ // Check for nested tokenUsage object (official format)
+ if tokenUsage, ok := metadata["tokenUsage"].(map[string]interface{}); ok {
+ // outputTokens - precise output token count
+ if outputTokens, ok := tokenUsage["outputTokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ log.Infof("kiro: parseEventStream found precise outputTokens in tokenUsage: %d", usageInfo.OutputTokens)
+ }
+ // totalTokens - precise total token count
+ if totalTokens, ok := tokenUsage["totalTokens"].(float64); ok {
+ usageInfo.TotalTokens = int64(totalTokens)
+ log.Infof("kiro: parseEventStream found precise totalTokens in tokenUsage: %d", usageInfo.TotalTokens)
+ }
+ // uncachedInputTokens - input tokens not from cache
+ if uncachedInputTokens, ok := tokenUsage["uncachedInputTokens"].(float64); ok {
+ usageInfo.InputTokens = int64(uncachedInputTokens)
+ log.Infof("kiro: parseEventStream found uncachedInputTokens in tokenUsage: %d", usageInfo.InputTokens)
+ }
+ // cacheReadInputTokens - tokens read from cache
+ if cacheReadTokens, ok := tokenUsage["cacheReadInputTokens"].(float64); ok {
+ // Add to input tokens if we have uncached tokens, otherwise use as input
+ if usageInfo.InputTokens > 0 {
+ usageInfo.InputTokens += int64(cacheReadTokens)
+ } else {
+ usageInfo.InputTokens = int64(cacheReadTokens)
+ }
+ log.Debugf("kiro: parseEventStream found cacheReadInputTokens in tokenUsage: %d", int64(cacheReadTokens))
+ }
+ // contextUsagePercentage - can be used as fallback for input token estimation
+ if ctxPct, ok := tokenUsage["contextUsagePercentage"].(float64); ok {
+ upstreamContextPercentage = ctxPct
+ log.Debugf("kiro: parseEventStream found contextUsagePercentage in tokenUsage: %.2f%%", ctxPct)
+ }
+ }
+
+ // Fallback: check for direct fields in metadata (legacy format)
+ if usageInfo.InputTokens == 0 {
+ if inputTokens, ok := metadata["inputTokens"].(float64); ok {
+ usageInfo.InputTokens = int64(inputTokens)
+ log.Debugf("kiro: parseEventStream found inputTokens in messageMetadataEvent: %d", usageInfo.InputTokens)
+ }
+ }
+ if usageInfo.OutputTokens == 0 {
+ if outputTokens, ok := metadata["outputTokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ log.Debugf("kiro: parseEventStream found outputTokens in messageMetadataEvent: %d", usageInfo.OutputTokens)
+ }
+ }
+ if usageInfo.TotalTokens == 0 {
+ if totalTokens, ok := metadata["totalTokens"].(float64); ok {
+ usageInfo.TotalTokens = int64(totalTokens)
+ log.Debugf("kiro: parseEventStream found totalTokens in messageMetadataEvent: %d", usageInfo.TotalTokens)
+ }
+ }
+
+ case "usageEvent", "usage":
+ // Handle dedicated usage events
+ if inputTokens, ok := event["inputTokens"].(float64); ok {
+ usageInfo.InputTokens = int64(inputTokens)
+ log.Debugf("kiro: parseEventStream found inputTokens in usageEvent: %d", usageInfo.InputTokens)
+ }
+ if outputTokens, ok := event["outputTokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ log.Debugf("kiro: parseEventStream found outputTokens in usageEvent: %d", usageInfo.OutputTokens)
+ }
+ if totalTokens, ok := event["totalTokens"].(float64); ok {
+ usageInfo.TotalTokens = int64(totalTokens)
+ log.Debugf("kiro: parseEventStream found totalTokens in usageEvent: %d", usageInfo.TotalTokens)
+ }
+ // Also check nested usage object
+ if usageObj, ok := event["usage"].(map[string]interface{}); ok {
+ if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
+ usageInfo.InputTokens = int64(inputTokens)
+ } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
+ usageInfo.InputTokens = int64(inputTokens)
+ }
+ if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ }
+ if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
+ usageInfo.TotalTokens = int64(totalTokens)
+ }
+ log.Debugf("kiro: parseEventStream found usage object: input=%d, output=%d, total=%d",
+ usageInfo.InputTokens, usageInfo.OutputTokens, usageInfo.TotalTokens)
+ }
+
+ case "metricsEvent":
+ // Handle metrics events which may contain usage data
+ if metrics, ok := event["metricsEvent"].(map[string]interface{}); ok {
+ if inputTokens, ok := metrics["inputTokens"].(float64); ok {
+ usageInfo.InputTokens = int64(inputTokens)
+ }
+ if outputTokens, ok := metrics["outputTokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ }
+ log.Debugf("kiro: parseEventStream found metricsEvent: input=%d, output=%d",
+ usageInfo.InputTokens, usageInfo.OutputTokens)
+ }
+
+ case "meteringEvent":
+ // Handle metering events from Kiro API (usage billing information)
+ // Official format: { unit: string, unitPlural: string, usage: number }
+ if metering, ok := event["meteringEvent"].(map[string]interface{}); ok {
+ unit := ""
+ if u, ok := metering["unit"].(string); ok {
+ unit = u
+ }
+ usageVal := 0.0
+ if u, ok := metering["usage"].(float64); ok {
+ usageVal = u
+ }
+ log.Infof("kiro: parseEventStream received meteringEvent: usage=%.2f %s", usageVal, unit)
+ // Store metering info for potential billing/statistics purposes
+ // Note: This is separate from token counts - it's AWS billing units
+ } else {
+ // Try direct fields
+ unit := ""
+ if u, ok := event["unit"].(string); ok {
+ unit = u
+ }
+ usageVal := 0.0
+ if u, ok := event["usage"].(float64); ok {
+ usageVal = u
+ }
+ if unit != "" || usageVal > 0 {
+ log.Infof("kiro: parseEventStream received meteringEvent (direct): usage=%.2f %s", usageVal, unit)
+ }
+ }
+
+ case "contextUsageEvent":
+ // Handle context usage events from Kiro API
+ // Format: {"contextUsageEvent": {"contextUsagePercentage": 0.53}}
+ if ctxUsage, ok := event["contextUsageEvent"].(map[string]interface{}); ok {
+ if ctxPct, ok := ctxUsage["contextUsagePercentage"].(float64); ok {
+ upstreamContextPercentage = ctxPct
+ log.Debugf("kiro: parseEventStream received contextUsageEvent: %.2f%%", ctxPct*100)
+ }
+ } else {
+ // Try direct field (fallback)
+ if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
+ upstreamContextPercentage = ctxPct
+ log.Debugf("kiro: parseEventStream received contextUsagePercentage (direct): %.2f%%", ctxPct*100)
+ }
+ }
+
+ case "error", "exception", "internalServerException", "invalidStateEvent":
+ // Handle error events from Kiro API stream
+ errMsg := ""
+ errType := eventType
+
+ // Try to extract error message from various formats
+ if msg, ok := event["message"].(string); ok {
+ errMsg = msg
+ } else if errObj, ok := event[eventType].(map[string]interface{}); ok {
+ if msg, ok := errObj["message"].(string); ok {
+ errMsg = msg
+ }
+ if t, ok := errObj["type"].(string); ok {
+ errType = t
+ }
+ } else if errObj, ok := event["error"].(map[string]interface{}); ok {
+ if msg, ok := errObj["message"].(string); ok {
+ errMsg = msg
+ }
+ if t, ok := errObj["type"].(string); ok {
+ errType = t
+ }
+ }
+
+ // Check for specific error reasons
+ if reason, ok := event["reason"].(string); ok {
+ errMsg = fmt.Sprintf("%s (reason: %s)", errMsg, reason)
+ }
+
+ log.Errorf("kiro: parseEventStream received error event: type=%s, message=%s", errType, errMsg)
+
+ // For invalidStateEvent, we may want to continue processing other events
+ if eventType == "invalidStateEvent" {
+ log.Warnf("kiro: invalidStateEvent received, continuing stream processing")
+ continue
+ }
+
+ // For other errors, return the error
+ if errMsg != "" {
+ return "", nil, usageInfo, stopReason, fmt.Errorf("kiro API error (%s): %s", errType, errMsg)
+ }
+
+ default:
+ // Check for contextUsagePercentage in any event
+ if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
+ upstreamContextPercentage = ctxPct
+ log.Debugf("kiro: parseEventStream received context usage: %.2f%%", upstreamContextPercentage)
+ }
+ // Log unknown event types for debugging (to discover new event formats)
+ log.Debugf("kiro: parseEventStream unknown event type: %s, payload: %s", eventType, string(payload))
+ }
+
+ // Check for direct token fields in any event (fallback)
+ if usageInfo.InputTokens == 0 {
+ if inputTokens, ok := event["inputTokens"].(float64); ok {
+ usageInfo.InputTokens = int64(inputTokens)
+ log.Debugf("kiro: parseEventStream found direct inputTokens: %d", usageInfo.InputTokens)
+ }
+ }
+ if usageInfo.OutputTokens == 0 {
+ if outputTokens, ok := event["outputTokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ log.Debugf("kiro: parseEventStream found direct outputTokens: %d", usageInfo.OutputTokens)
+ }
+ }
+
+ // Check for usage object in any event (OpenAI format)
+ if usageInfo.InputTokens == 0 || usageInfo.OutputTokens == 0 {
+ if usageObj, ok := event["usage"].(map[string]interface{}); ok {
+ if usageInfo.InputTokens == 0 {
+ if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
+ usageInfo.InputTokens = int64(inputTokens)
+ } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
+ usageInfo.InputTokens = int64(inputTokens)
+ }
+ }
+ if usageInfo.OutputTokens == 0 {
+ if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ }
+ }
+ if usageInfo.TotalTokens == 0 {
+ if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
+ usageInfo.TotalTokens = int64(totalTokens)
+ }
+ }
+ log.Debugf("kiro: parseEventStream found usage object (fallback): input=%d, output=%d, total=%d",
+ usageInfo.InputTokens, usageInfo.OutputTokens, usageInfo.TotalTokens)
+ }
+ }
+
+ // Also check nested supplementaryWebLinksEvent
+ if usageEvent, ok := event["supplementaryWebLinksEvent"].(map[string]interface{}); ok {
+ if inputTokens, ok := usageEvent["inputTokens"].(float64); ok {
+ usageInfo.InputTokens = int64(inputTokens)
+ }
+ if outputTokens, ok := usageEvent["outputTokens"].(float64); ok {
+ usageInfo.OutputTokens = int64(outputTokens)
+ }
+ }
+ }
+
+ // Parse embedded tool calls from content (e.g., [Called tool_name with args: {...}])
+ contentStr := content.String()
+ cleanedContent, embeddedToolUses := kiroclaude.ParseEmbeddedToolCalls(contentStr, processedIDs)
+ toolUses = append(toolUses, embeddedToolUses...)
+
+ // Deduplicate all tool uses
+ toolUses = kiroclaude.DeduplicateToolUses(toolUses)
+
+ // Apply fallback logic for stop_reason if not provided by upstream
+ // Priority: upstream stopReason > tool_use detection > end_turn default
+ if stopReason == "" {
+ if len(toolUses) > 0 {
+ stopReason = "tool_use"
+ log.Debugf("kiro: parseEventStream using fallback stop_reason: tool_use (detected %d tool uses)", len(toolUses))
+ } else {
+ stopReason = "end_turn"
+ log.Debugf("kiro: parseEventStream using fallback stop_reason: end_turn")
+ }
+ }
+
+ // Log warning if response was truncated due to max_tokens
+ if stopReason == "max_tokens" {
+ log.Warnf("kiro: response truncated due to max_tokens limit")
+ }
+
+ // Use contextUsagePercentage to calculate more accurate input tokens
+ // Kiro model has 200k max context, contextUsagePercentage represents the percentage used
+ // Formula: input_tokens = contextUsagePercentage * 200000 / 100
+ if upstreamContextPercentage > 0 {
+ calculatedInputTokens := int64(upstreamContextPercentage * 200000 / 100)
+ if calculatedInputTokens > 0 {
+ localEstimate := usageInfo.InputTokens
+ usageInfo.InputTokens = calculatedInputTokens
+ usageInfo.TotalTokens = usageInfo.InputTokens + usageInfo.OutputTokens
+ log.Infof("kiro: parseEventStream using contextUsagePercentage (%.2f%%) to calculate input tokens: %d (local estimate was: %d)",
+ upstreamContextPercentage, calculatedInputTokens, localEstimate)
+ }
+ }
+
+ return cleanedContent, toolUses, usageInfo, stopReason, nil
+}
+
+// readEventStreamMessage reads and validates a single AWS Event Stream message.
+// Returns the parsed message or a structured error for different failure modes.
+// This function implements boundary protection and detailed error classification.
+//
+// AWS Event Stream binary format:
+// - Prelude (12 bytes): total_length (4) + headers_length (4) + prelude_crc (4)
+// - Headers (variable): header entries
+// - Payload (variable): JSON data
+// - Message CRC (4 bytes): CRC32C of entire message (not validated, just skipped)
+func (e *KiroExecutor) readEventStreamMessage(reader *bufio.Reader) (*eventStreamMessage, *EventStreamError) {
+ // Read prelude (first 12 bytes: total_len + headers_len + prelude_crc)
+ prelude := make([]byte, 12)
+ _, err := io.ReadFull(reader, prelude)
+ if err == io.EOF {
+ return nil, nil // Normal end of stream
+ }
+ if err != nil {
+ return nil, &EventStreamError{
+ Type: ErrStreamFatal,
+ Message: "failed to read prelude",
+ Cause: err,
+ }
+ }
+
+ totalLength := binary.BigEndian.Uint32(prelude[0:4])
+ headersLength := binary.BigEndian.Uint32(prelude[4:8])
+ // Note: prelude[8:12] is prelude_crc - we read it but don't validate (no CRC check per requirements)
+
+ // Boundary check: minimum frame size
+ if totalLength < minEventStreamFrameSize {
+ return nil, &EventStreamError{
+ Type: ErrStreamMalformed,
+ Message: fmt.Sprintf("invalid message length: %d (minimum is %d)", totalLength, minEventStreamFrameSize),
+ }
+ }
+
+ // Boundary check: maximum message size
+ if totalLength > maxEventStreamMsgSize {
+ return nil, &EventStreamError{
+ Type: ErrStreamMalformed,
+ Message: fmt.Sprintf("message too large: %d bytes (maximum is %d)", totalLength, maxEventStreamMsgSize),
+ }
+ }
+
+ // Boundary check: headers length within message bounds
+ // Message structure: prelude(12) + headers(headersLength) + payload + message_crc(4)
+ // So: headersLength must be <= totalLength - 16 (12 for prelude + 4 for message_crc)
+ if headersLength > totalLength-16 {
+ return nil, &EventStreamError{
+ Type: ErrStreamMalformed,
+ Message: fmt.Sprintf("headers length %d exceeds message bounds (total: %d)", headersLength, totalLength),
+ }
+ }
+
+ // Read the rest of the message (total - 12 bytes already read)
+ remaining := make([]byte, totalLength-12)
+ _, err = io.ReadFull(reader, remaining)
+ if err != nil {
+ return nil, &EventStreamError{
+ Type: ErrStreamFatal,
+ Message: "failed to read message body",
+ Cause: err,
+ }
+ }
+
+ // Extract event type from headers
+ // Headers start at beginning of 'remaining', length is headersLength
+ var eventType string
+ if headersLength > 0 && headersLength <= uint32(len(remaining)) {
+ eventType = e.extractEventTypeFromBytes(remaining[:headersLength])
+ }
+
+ // Calculate payload boundaries
+ // Payload starts after headers, ends before message_crc (last 4 bytes)
+ payloadStart := headersLength
+ payloadEnd := uint32(len(remaining)) - 4 // Skip message_crc at end
+
+ // Validate payload boundaries
+ if payloadStart >= payloadEnd {
+ // No payload, return empty message
+ return &eventStreamMessage{
+ EventType: eventType,
+ Payload: nil,
+ }, nil
+ }
+
+ payload := remaining[payloadStart:payloadEnd]
+
+ return &eventStreamMessage{
+ EventType: eventType,
+ Payload: payload,
+ }, nil
+}
+
+func skipEventStreamHeaderValue(headers []byte, offset int, valueType byte) (int, bool) {
+ switch valueType {
+ case 0, 1: // bool true / bool false
+ return offset, true
+ case 2: // byte
+ if offset+1 > len(headers) {
+ return offset, false
+ }
+ return offset + 1, true
+ case 3: // short
+ if offset+2 > len(headers) {
+ return offset, false
+ }
+ return offset + 2, true
+ case 4: // int
+ if offset+4 > len(headers) {
+ return offset, false
+ }
+ return offset + 4, true
+ case 5: // long
+ if offset+8 > len(headers) {
+ return offset, false
+ }
+ return offset + 8, true
+ case 6: // byte array (2-byte length + data)
+ if offset+2 > len(headers) {
+ return offset, false
+ }
+ valueLen := int(binary.BigEndian.Uint16(headers[offset : offset+2]))
+ offset += 2
+ if offset+valueLen > len(headers) {
+ return offset, false
+ }
+ return offset + valueLen, true
+ case 8: // timestamp
+ if offset+8 > len(headers) {
+ return offset, false
+ }
+ return offset + 8, true
+ case 9: // uuid
+ if offset+16 > len(headers) {
+ return offset, false
+ }
+ return offset + 16, true
+ default:
+ return offset, false
+ }
+}
+
+// extractEventTypeFromBytes extracts the event type from raw header bytes (without prelude CRC prefix)
+func (e *KiroExecutor) extractEventTypeFromBytes(headers []byte) string {
+ offset := 0
+ for offset < len(headers) {
+ nameLen := int(headers[offset])
+ offset++
+ if offset+nameLen > len(headers) {
+ break
+ }
+ name := string(headers[offset : offset+nameLen])
+ offset += nameLen
+
+ if offset >= len(headers) {
+ break
+ }
+ valueType := headers[offset]
+ offset++
+
+ if valueType == 7 { // String type
+ if offset+2 > len(headers) {
+ break
+ }
+ valueLen := int(binary.BigEndian.Uint16(headers[offset : offset+2]))
+ offset += 2
+ if offset+valueLen > len(headers) {
+ break
+ }
+ value := string(headers[offset : offset+valueLen])
+ offset += valueLen
+
+ if name == ":event-type" {
+ return value
+ }
+ continue
+ }
+
+ nextOffset, ok := skipEventStreamHeaderValue(headers, offset, valueType)
+ if !ok {
+ break
+ }
+ offset = nextOffset
+ }
+ return ""
+}
+
+// NOTE: Response building functions moved to pkg/llmproxy/translator/kiro/claude/kiro_claude_response.go
+// The executor now uses kiroclaude.BuildClaudeResponse() and kiroclaude.ExtractThinkingFromContent() instead
+
+// streamToChannel converts AWS Event Stream to channel-based streaming.
+// Supports tool calling - emits tool_use content blocks when tools are used.
+// Includes embedded [Called ...] tool call parsing and input buffering for toolUseEvent.
+// Implements duplicate content filtering using lastContentEvent detection (based on AIClient-2-API).
+// Extracts stop_reason from upstream events when available.
+// thinkingEnabled controls whether tags are parsed - only parse when request enabled thinking.
+func (e *KiroExecutor) streamToChannel(ctx context.Context, body io.Reader, out chan<- cliproxyexecutor.StreamChunk, targetFormat sdktranslator.Format, model string, originalReq, claudeBody []byte, reporter *usageReporter, thinkingEnabled bool) {
+ reader := bufio.NewReaderSize(body, 20*1024*1024) // 20MB buffer to match other providers
+ var totalUsage usage.Detail
+ var hasToolUses bool // Track if any tool uses were emitted
+ var hasTruncatedTools bool // Track if any tool uses were truncated
+ var upstreamStopReason string // Track stop_reason from upstream events
+
+ // Tool use state tracking for input buffering and deduplication
+ processedIDs := make(map[string]bool)
+ var currentToolUse *kiroclaude.ToolUseState
+
+ // NOTE: Duplicate content filtering removed - it was causing legitimate repeated
+ // content (like consecutive newlines) to be incorrectly filtered out.
+ // The previous implementation compared lastContentEvent == contentDelta which
+ // is too aggressive for streaming scenarios.
+
+ // Streaming token calculation - accumulate content for real-time token counting
+ // Based on AIClient-2-API implementation
+ var accumulatedContent strings.Builder
+ accumulatedContent.Grow(4096) // Pre-allocate 4KB capacity to reduce reallocations
+
+ // Real-time usage estimation state
+ // These track when to send periodic usage updates during streaming
+ var lastUsageUpdateLen int // Last accumulated content length when usage was sent
+ var lastUsageUpdateTime = time.Now() // Last time usage update was sent
+ var lastReportedOutputTokens int64 // Last reported output token count
+
+ // Upstream usage tracking - Kiro API returns credit usage and context percentage
+ var upstreamCreditUsage float64 // Credit usage from upstream (e.g., 1.458)
+ var upstreamContextPercentage float64 // Context usage percentage from upstream (e.g., 78.56)
+ var hasUpstreamUsage bool // Whether we received usage from upstream
+
+ // Translator param for maintaining tool call state across streaming events
+ // IMPORTANT: This must persist across all TranslateStream calls
+ var translatorParam any
+
+ // Thinking mode state tracking - tag-based parsing for tags in content
+ inThinkBlock := false // Whether we're currently inside a block
+ isThinkingBlockOpen := false // Track if thinking content block SSE event is open
+ thinkingBlockIndex := -1 // Index of the thinking content block
+ var accumulatedThinkingContent strings.Builder // Accumulate thinking content for token counting
+
+ // Buffer for handling partial tag matches at chunk boundaries
+ var pendingContent strings.Builder // Buffer content that might be part of a tag
+
+ // Pre-calculate input tokens from request if possible
+ // Kiro uses Claude format, so try Claude format first, then OpenAI format, then fallback
+ if enc, err := getTokenizer(model); err == nil {
+ var inputTokens int64
+ var countMethod string
+
+ // Try Claude format first (Kiro uses Claude API format)
+ if inp, err := countClaudeChatTokens(enc, claudeBody); err == nil && inp > 0 {
+ inputTokens = inp
+ countMethod = "claude"
+ } else if inp, err := countOpenAIChatTokens(enc, originalReq); err == nil && inp > 0 {
+ // Fallback to OpenAI format (for OpenAI-compatible requests)
+ inputTokens = inp
+ countMethod = "openai"
+ } else {
+ // Final fallback: estimate from raw request size (roughly 4 chars per token)
+ inputTokens = int64(len(claudeBody) / 4)
+ if inputTokens == 0 && len(claudeBody) > 0 {
+ inputTokens = 1
+ }
+ countMethod = "estimate"
+ }
+
+ totalUsage.InputTokens = inputTokens
+ log.Debugf("kiro: streamToChannel pre-calculated input tokens: %d (method: %s, claude body: %d bytes, original req: %d bytes)",
+ totalUsage.InputTokens, countMethod, len(claudeBody), len(originalReq))
+ }
+
+ contentBlockIndex := -1
+ messageStartSent := false
+ isTextBlockOpen := false
+ var outputLen int
+
+ // Ensure usage is published even on early return
+ defer func() {
+ reporter.publish(ctx, totalUsage)
+ }()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ default:
+ }
+
+ msg, eventErr := e.readEventStreamMessage(reader)
+ if eventErr != nil {
+ // Log the error
+ log.Errorf("kiro: streamToChannel error: %v", eventErr)
+
+ // Send error to channel for client notification
+ out <- cliproxyexecutor.StreamChunk{Err: eventErr}
+ return
+ }
+ if msg == nil {
+ // Normal end of stream (EOF)
+ // Flush any incomplete tool use before ending stream
+ if currentToolUse != nil && !processedIDs[currentToolUse.ToolUseID] {
+ log.Warnf("kiro: flushing incomplete tool use at EOF: %s (ID: %s)", currentToolUse.Name, currentToolUse.ToolUseID)
+ fullInput := currentToolUse.InputBuffer.String()
+ repairedJSON := kiroclaude.RepairJSON(fullInput)
+ var finalInput map[string]interface{}
+ if err := json.Unmarshal([]byte(repairedJSON), &finalInput); err != nil {
+ log.Warnf("kiro: failed to parse incomplete tool input at EOF: %v", err)
+ finalInput = make(map[string]interface{})
+ }
+
+ processedIDs[currentToolUse.ToolUseID] = true
+ contentBlockIndex++
+
+ // Send tool_use content block
+ blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "tool_use", currentToolUse.ToolUseID, currentToolUse.Name)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ // Send tool input as delta
+ inputBytes, _ := json.Marshal(finalInput)
+ inputDelta := kiroclaude.BuildClaudeInputJsonDeltaEvent(string(inputBytes), contentBlockIndex)
+ sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, inputDelta, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ // Close block
+ blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
+ sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ hasToolUses = true
+ currentToolUse = nil
+ }
+
+ // DISABLED: Tag-based pending character flushing
+ // This code block was used for tag-based thinking detection which has been
+ // replaced by reasoningContentEvent handling. No pending tag chars to flush.
+ // Original code preserved in git history.
+ break
+ }
+
+ eventType := msg.EventType
+ payload := msg.Payload
+ if len(payload) == 0 {
+ continue
+ }
+ appendAPIResponseChunk(ctx, e.cfg, payload)
+
+ var event map[string]interface{}
+ if err := json.Unmarshal(payload, &event); err != nil {
+ log.Warnf("kiro: failed to unmarshal event payload: %v, raw: %s", err, string(payload))
+ continue
+ }
+
+ // Check for error/exception events in the payload (Kiro API may return errors with HTTP 200)
+ // These can appear as top-level fields or nested within the event
+ if errType, hasErrType := event["_type"].(string); hasErrType {
+ // AWS-style error: {"_type": "com.amazon.aws.codewhisperer#ValidationException", "message": "..."}
+ errMsg := ""
+ if msg, ok := event["message"].(string); ok {
+ errMsg = msg
+ }
+ log.Errorf("kiro: received AWS error in stream: type=%s, message=%s", errType, errMsg)
+ out <- cliproxyexecutor.StreamChunk{Err: fmt.Errorf("kiro API error: %s - %s", errType, errMsg)}
+ return
+ }
+ if errType, hasErrType := event["type"].(string); hasErrType && (errType == "error" || errType == "exception") {
+ // Generic error event
+ errMsg := ""
+ if msg, ok := event["message"].(string); ok {
+ errMsg = msg
+ } else if errObj, ok := event["error"].(map[string]interface{}); ok {
+ if msg, ok := errObj["message"].(string); ok {
+ errMsg = msg
+ }
+ }
+ log.Errorf("kiro: received error event in stream: type=%s, message=%s", errType, errMsg)
+ out <- cliproxyexecutor.StreamChunk{Err: fmt.Errorf("kiro API error: %s", errMsg)}
+ return
+ }
+
+ // Extract stop_reason from various event formats (streaming)
+ // Kiro/Amazon Q API may include stop_reason in different locations
+ if sr := kirocommon.GetString(event, "stop_reason"); sr != "" {
+ upstreamStopReason = sr
+ log.Debugf("kiro: streamToChannel found stop_reason (top-level): %s", upstreamStopReason)
+ }
+ if sr := kirocommon.GetString(event, "stopReason"); sr != "" {
+ upstreamStopReason = sr
+ log.Debugf("kiro: streamToChannel found stopReason (top-level): %s", upstreamStopReason)
+ }
+
+ // Send message_start on first event
+ if !messageStartSent {
+ msgStart := kiroclaude.BuildClaudeMessageStartEvent(model, totalUsage.InputTokens)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, msgStart, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ messageStartSent = true
+ }
+
+ switch eventType {
+ case "followupPromptEvent":
+ // Filter out followupPrompt events - these are UI suggestions, not content
+ log.Debugf("kiro: streamToChannel ignoring followupPrompt event")
+ continue
+
+ case "messageStopEvent", "message_stop":
+ // Handle message stop events which may contain stop_reason
+ if sr := kirocommon.GetString(event, "stop_reason"); sr != "" {
+ upstreamStopReason = sr
+ log.Debugf("kiro: streamToChannel found stop_reason in messageStopEvent: %s", upstreamStopReason)
+ }
+ if sr := kirocommon.GetString(event, "stopReason"); sr != "" {
+ upstreamStopReason = sr
+ log.Debugf("kiro: streamToChannel found stopReason in messageStopEvent: %s", upstreamStopReason)
+ }
+
+ case "meteringEvent":
+ // Handle metering events from Kiro API (usage billing information)
+ // Official format: { unit: string, unitPlural: string, usage: number }
+ if metering, ok := event["meteringEvent"].(map[string]interface{}); ok {
+ unit := ""
+ if u, ok := metering["unit"].(string); ok {
+ unit = u
+ }
+ usageVal := 0.0
+ if u, ok := metering["usage"].(float64); ok {
+ usageVal = u
+ }
+ upstreamCreditUsage = usageVal
+ hasUpstreamUsage = true
+ log.Infof("kiro: streamToChannel received meteringEvent: usage=%.4f %s", usageVal, unit)
+ } else {
+ // Try direct fields (event is meteringEvent itself)
+ if unit, ok := event["unit"].(string); ok {
+ if usage, ok := event["usage"].(float64); ok {
+ upstreamCreditUsage = usage
+ hasUpstreamUsage = true
+ log.Infof("kiro: streamToChannel received meteringEvent (direct): usage=%.4f %s", usage, unit)
+ }
+ }
+ }
+
+ case "contextUsageEvent":
+ // Handle context usage events from Kiro API
+ // Format: {"contextUsageEvent": {"contextUsagePercentage": 0.53}}
+ if ctxUsage, ok := event["contextUsageEvent"].(map[string]interface{}); ok {
+ if ctxPct, ok := ctxUsage["contextUsagePercentage"].(float64); ok {
+ upstreamContextPercentage = ctxPct
+ log.Debugf("kiro: streamToChannel received contextUsageEvent: %.2f%%", ctxPct*100)
+ }
+ } else {
+ // Try direct field (fallback)
+ if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
+ upstreamContextPercentage = ctxPct
+ log.Debugf("kiro: streamToChannel received contextUsagePercentage (direct): %.2f%%", ctxPct*100)
+ }
+ }
+
+ case "error", "exception", "internalServerException":
+ // Handle error events from Kiro API stream
+ errMsg := ""
+ errType := eventType
+
+ // Try to extract error message from various formats
+ if msg, ok := event["message"].(string); ok {
+ errMsg = msg
+ } else if errObj, ok := event[eventType].(map[string]interface{}); ok {
+ if msg, ok := errObj["message"].(string); ok {
+ errMsg = msg
+ }
+ if t, ok := errObj["type"].(string); ok {
+ errType = t
+ }
+ } else if errObj, ok := event["error"].(map[string]interface{}); ok {
+ if msg, ok := errObj["message"].(string); ok {
+ errMsg = msg
+ }
+ }
+
+ log.Errorf("kiro: streamToChannel received error event: type=%s, message=%s", errType, errMsg)
+
+ // Send error to the stream and exit
+ if errMsg != "" {
+ out <- cliproxyexecutor.StreamChunk{
+ Err: fmt.Errorf("kiro API error (%s): %s", errType, errMsg),
+ }
+ return
+ }
+
+ case "invalidStateEvent":
+ // Handle invalid state events - log and continue (non-fatal)
+ errMsg := ""
+ if msg, ok := event["message"].(string); ok {
+ errMsg = msg
+ } else if stateEvent, ok := event["invalidStateEvent"].(map[string]interface{}); ok {
+ if msg, ok := stateEvent["message"].(string); ok {
+ errMsg = msg
+ }
+ }
+ log.Warnf("kiro: streamToChannel received invalidStateEvent: %s, continuing", errMsg)
+ continue
+
+ default:
+ // Check for upstream usage events from Kiro API
+ // Format: {"unit":"credit","unitPlural":"credits","usage":1.458}
+ if unit, ok := event["unit"].(string); ok && unit == "credit" {
+ if usage, ok := event["usage"].(float64); ok {
+ upstreamCreditUsage = usage
+ hasUpstreamUsage = true
+ log.Debugf("kiro: received upstream credit usage: %.4f", upstreamCreditUsage)
+ }
+ }
+ // Format: {"contextUsagePercentage":78.56}
+ if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
+ upstreamContextPercentage = ctxPct
+ log.Debugf("kiro: received upstream context usage: %.2f%%", upstreamContextPercentage)
+ }
+
+ // Check for token counts in unknown events
+ if inputTokens, ok := event["inputTokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ hasUpstreamUsage = true
+ log.Debugf("kiro: streamToChannel found inputTokens in event %s: %d", eventType, totalUsage.InputTokens)
+ }
+ if outputTokens, ok := event["outputTokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ log.Debugf("kiro: streamToChannel found outputTokens in event %s: %d", eventType, totalUsage.OutputTokens)
+ }
+ if totalTokens, ok := event["totalTokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ log.Debugf("kiro: streamToChannel found totalTokens in event %s: %d", eventType, totalUsage.TotalTokens)
+ }
+
+ // Check for usage object in unknown events (OpenAI/Claude format)
+ if usageObj, ok := event["usage"].(map[string]interface{}); ok {
+ if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ hasUpstreamUsage = true
+ } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ hasUpstreamUsage = true
+ }
+ if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ }
+ if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ }
+ log.Debugf("kiro: streamToChannel found usage object in event %s: input=%d, output=%d, total=%d",
+ eventType, totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
+ }
+
+ // Log unknown event types for debugging (to discover new event formats)
+ if eventType != "" {
+ log.Debugf("kiro: streamToChannel unknown event type: %s, payload: %s", eventType, string(payload))
+ }
+
+ case "assistantResponseEvent":
+ var contentDelta string
+ var toolUses []map[string]interface{}
+
+ if assistantResp, ok := event["assistantResponseEvent"].(map[string]interface{}); ok {
+ if c, ok := assistantResp["content"].(string); ok {
+ contentDelta = c
+ }
+ // Extract stop_reason from assistantResponseEvent
+ if sr := kirocommon.GetString(assistantResp, "stop_reason"); sr != "" {
+ upstreamStopReason = sr
+ log.Debugf("kiro: streamToChannel found stop_reason in assistantResponseEvent: %s", upstreamStopReason)
+ }
+ if sr := kirocommon.GetString(assistantResp, "stopReason"); sr != "" {
+ upstreamStopReason = sr
+ log.Debugf("kiro: streamToChannel found stopReason in assistantResponseEvent: %s", upstreamStopReason)
+ }
+ // Extract tool uses from response
+ if tus, ok := assistantResp["toolUses"].([]interface{}); ok {
+ for _, tuRaw := range tus {
+ if tu, ok := tuRaw.(map[string]interface{}); ok {
+ toolUses = append(toolUses, tu)
+ }
+ }
+ }
+ }
+ if contentDelta == "" {
+ if c, ok := event["content"].(string); ok {
+ contentDelta = c
+ }
+ }
+ // Direct tool uses
+ if tus, ok := event["toolUses"].([]interface{}); ok {
+ for _, tuRaw := range tus {
+ if tu, ok := tuRaw.(map[string]interface{}); ok {
+ toolUses = append(toolUses, tu)
+ }
+ }
+ }
+
+ // Handle text content with thinking mode support
+ if contentDelta != "" {
+ // NOTE: Duplicate content filtering was removed because it incorrectly
+ // filtered out legitimate repeated content (like consecutive newlines "\n\n").
+ // Streaming naturally can have identical chunks that are valid content.
+
+ outputLen += len(contentDelta)
+ // Accumulate content for streaming token calculation
+ accumulatedContent.WriteString(contentDelta)
+
+ // Real-time usage estimation: Check if we should send a usage update
+ // This helps clients track context usage during long thinking sessions
+ shouldSendUsageUpdate := false
+ if accumulatedContent.Len()-lastUsageUpdateLen >= usageUpdateCharThreshold {
+ shouldSendUsageUpdate = true
+ } else if time.Since(lastUsageUpdateTime) >= usageUpdateTimeInterval && accumulatedContent.Len() > lastUsageUpdateLen {
+ shouldSendUsageUpdate = true
+ }
+
+ if shouldSendUsageUpdate {
+ // Calculate current output tokens using tiktoken
+ var currentOutputTokens int64
+ if enc, encErr := getTokenizer(model); encErr == nil {
+ if tokenCount, countErr := enc.Count(accumulatedContent.String()); countErr == nil {
+ currentOutputTokens = int64(tokenCount)
+ }
+ }
+ // Fallback to character estimation if tiktoken fails
+ if currentOutputTokens == 0 {
+ currentOutputTokens = int64(accumulatedContent.Len() / 4)
+ if currentOutputTokens == 0 {
+ currentOutputTokens = 1
+ }
+ }
+
+ // Only send update if token count has changed significantly (at least 10 tokens)
+ if currentOutputTokens > lastReportedOutputTokens+10 {
+ // Send ping event with usage information
+ // This is a non-blocking update that clients can optionally process
+ pingEvent := kiroclaude.BuildClaudePingEventWithUsage(totalUsage.InputTokens, currentOutputTokens)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, pingEvent, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ lastReportedOutputTokens = currentOutputTokens
+ log.Debugf("kiro: sent real-time usage update - input: %d, output: %d (accumulated: %d chars)",
+ totalUsage.InputTokens, currentOutputTokens, accumulatedContent.Len())
+ }
+
+ lastUsageUpdateLen = accumulatedContent.Len()
+ lastUsageUpdateTime = time.Now()
+ }
+
+ // TAG-BASED THINKING PARSING: Parse tags from content
+ // Combine pending content with new content for processing
+ pendingContent.WriteString(contentDelta)
+ processContent := pendingContent.String()
+ pendingContent.Reset()
+
+ // Process content looking for thinking tags
+ for len(processContent) > 0 {
+ if inThinkBlock {
+ // We're inside a thinking block, look for
+ endIdx := strings.Index(processContent, kirocommon.ThinkingEndTag)
+ if endIdx >= 0 {
+ // Found end tag - emit thinking content before the tag
+ thinkingText := processContent[:endIdx]
+ if thinkingText != "" {
+ // Ensure thinking block is open
+ if !isThinkingBlockOpen {
+ contentBlockIndex++
+ thinkingBlockIndex = contentBlockIndex
+ isThinkingBlockOpen = true
+ blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(thinkingBlockIndex, "thinking", "", "")
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+ // Send thinking delta
+ thinkingEvent := kiroclaude.BuildClaudeThinkingDeltaEvent(thinkingText, thinkingBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, thinkingEvent, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ accumulatedThinkingContent.WriteString(thinkingText)
+ }
+ // Close thinking block
+ if isThinkingBlockOpen {
+ blockStop := kiroclaude.BuildClaudeThinkingBlockStopEvent(thinkingBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ isThinkingBlockOpen = false
+ }
+ inThinkBlock = false
+ processContent = processContent[endIdx+len(kirocommon.ThinkingEndTag):]
+ log.Debugf("kiro: closed thinking block, remaining content: %d chars", len(processContent))
+ } else {
+ // No end tag found - check for partial match at end
+ partialMatch := false
+ for i := 1; i < len(kirocommon.ThinkingEndTag) && i <= len(processContent); i++ {
+ if strings.HasSuffix(processContent, kirocommon.ThinkingEndTag[:i]) {
+ // Possible partial tag at end, buffer it
+ pendingContent.WriteString(processContent[len(processContent)-i:])
+ processContent = processContent[:len(processContent)-i]
+ partialMatch = true
+ break
+ }
+ }
+ if !partialMatch || len(processContent) > 0 {
+ // Emit all as thinking content
+ if processContent != "" {
+ if !isThinkingBlockOpen {
+ contentBlockIndex++
+ thinkingBlockIndex = contentBlockIndex
+ isThinkingBlockOpen = true
+ blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(thinkingBlockIndex, "thinking", "", "")
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+ thinkingEvent := kiroclaude.BuildClaudeThinkingDeltaEvent(processContent, thinkingBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, thinkingEvent, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ accumulatedThinkingContent.WriteString(processContent)
+ }
+ }
+ processContent = ""
+ }
+ } else {
+ // Not in thinking block, look for
+ startIdx := strings.Index(processContent, kirocommon.ThinkingStartTag)
+ if startIdx >= 0 {
+ // Found start tag - emit text content before the tag
+ textBefore := processContent[:startIdx]
+ if textBefore != "" {
+ // Close thinking block if open
+ if isThinkingBlockOpen {
+ blockStop := kiroclaude.BuildClaudeThinkingBlockStopEvent(thinkingBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ isThinkingBlockOpen = false
+ }
+ // Ensure text block is open
+ if !isTextBlockOpen {
+ contentBlockIndex++
+ isTextBlockOpen = true
+ blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "text", "", "")
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+ // Send text delta
+ claudeEvent := kiroclaude.BuildClaudeStreamEvent(textBefore, contentBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, claudeEvent, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+ // Close text block before entering thinking
+ if isTextBlockOpen {
+ blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ isTextBlockOpen = false
+ }
+ inThinkBlock = true
+ processContent = processContent[startIdx+len(kirocommon.ThinkingStartTag):]
+ log.Debugf("kiro: entered thinking block")
+ } else {
+ // No start tag found - check for partial match at end
+ partialMatch := false
+ for i := 1; i < len(kirocommon.ThinkingStartTag) && i <= len(processContent); i++ {
+ if strings.HasSuffix(processContent, kirocommon.ThinkingStartTag[:i]) {
+ // Possible partial tag at end, buffer it
+ pendingContent.WriteString(processContent[len(processContent)-i:])
+ processContent = processContent[:len(processContent)-i]
+ partialMatch = true
+ break
+ }
+ }
+ if !partialMatch || len(processContent) > 0 {
+ // Emit all as text content
+ if processContent != "" {
+ if !isTextBlockOpen {
+ contentBlockIndex++
+ isTextBlockOpen = true
+ blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "text", "", "")
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+ claudeEvent := kiroclaude.BuildClaudeStreamEvent(processContent, contentBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, claudeEvent, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+ }
+ processContent = ""
+ }
+ }
+ }
+ }
+
+ // Handle tool uses in response (with deduplication)
+ for _, tu := range toolUses {
+ toolUseID := kirocommon.GetString(tu, "toolUseId")
+ toolName := kirocommon.GetString(tu, "name")
+
+ // Check for duplicate
+ if processedIDs[toolUseID] {
+ log.Debugf("kiro: skipping duplicate tool use in stream: %s", toolUseID)
+ continue
+ }
+ processedIDs[toolUseID] = true
+
+ hasToolUses = true
+ // Close text block if open before starting tool_use block
+ if isTextBlockOpen && contentBlockIndex >= 0 {
+ blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ isTextBlockOpen = false
+ }
+
+ // Emit tool_use content block
+ contentBlockIndex++
+
+ blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "tool_use", toolUseID, toolName)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ // Send input_json_delta with the tool input
+ if input, ok := tu["input"].(map[string]interface{}); ok {
+ inputJSON, err := json.Marshal(input)
+ if err != nil {
+ log.Debugf("kiro: failed to marshal tool input: %v", err)
+ // Don't continue - still need to close the block
+ } else {
+ inputDelta := kiroclaude.BuildClaudeInputJsonDeltaEvent(string(inputJSON), contentBlockIndex)
+ sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, inputDelta, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+ }
+
+ // Close tool_use block (always close even if input marshal failed)
+ blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
+ sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+
+ case "reasoningContentEvent":
+ // Handle official reasoningContentEvent from Kiro API
+ // This replaces tag-based thinking detection with the proper event type
+ // Official format: { text: string, signature?: string, redactedContent?: base64 }
+ var thinkingText string
+ var signature string
+
+ if re, ok := event["reasoningContentEvent"].(map[string]interface{}); ok {
+ if text, ok := re["text"].(string); ok {
+ thinkingText = text
+ }
+ if sig, ok := re["signature"].(string); ok {
+ signature = sig
+ if len(sig) > 20 {
+ log.Debugf("kiro: reasoningContentEvent has signature: %s...", sig[:20])
+ } else {
+ log.Debugf("kiro: reasoningContentEvent has signature: %s", sig)
+ }
+ }
+ } else {
+ // Try direct fields
+ if text, ok := event["text"].(string); ok {
+ thinkingText = text
+ }
+ if sig, ok := event["signature"].(string); ok {
+ signature = sig
+ }
+ }
+
+ if thinkingText != "" {
+ // Close text block if open before starting thinking block
+ if isTextBlockOpen && contentBlockIndex >= 0 {
+ blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ isTextBlockOpen = false
+ }
+
+ // Start thinking block if not already open
+ if !isThinkingBlockOpen {
+ contentBlockIndex++
+ thinkingBlockIndex = contentBlockIndex
+ isThinkingBlockOpen = true
+ blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(thinkingBlockIndex, "thinking", "", "")
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+
+ // Send thinking content
+ thinkingEvent := kiroclaude.BuildClaudeThinkingDeltaEvent(thinkingText, thinkingBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, thinkingEvent, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ // Accumulate for token counting
+ accumulatedThinkingContent.WriteString(thinkingText)
+ log.Debugf("kiro: received reasoningContentEvent, text length: %d, has signature: %v", len(thinkingText), signature != "")
+ }
+
+ // Note: We don't close the thinking block here - it will be closed when we see
+ // the next assistantResponseEvent or at the end of the stream
+ _ = signature // Signature can be used for verification if needed
+
+ case "toolUseEvent":
+ // Handle dedicated tool use events with input buffering
+ completedToolUses, newState := kiroclaude.ProcessToolUseEvent(event, currentToolUse, processedIDs)
+ currentToolUse = newState
+
+ // Emit completed tool uses
+ for _, tu := range completedToolUses {
+ // Check if this tool was truncated - emit with SOFT_LIMIT_REACHED marker
+ if tu.IsTruncated {
+ hasTruncatedTools = true
+ log.Infof("kiro: streamToChannel emitting truncated tool with SOFT_LIMIT_REACHED: %s (ID: %s)", tu.Name, tu.ToolUseID)
+
+ // Close text block if open
+ if isTextBlockOpen && contentBlockIndex >= 0 {
+ blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ isTextBlockOpen = false
+ }
+
+ contentBlockIndex++
+
+ // Emit tool_use with SOFT_LIMIT_REACHED marker input
+ blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "tool_use", tu.ToolUseID, tu.Name)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ // Build SOFT_LIMIT_REACHED marker input
+ markerInput := map[string]interface{}{
+ "_status": "SOFT_LIMIT_REACHED",
+ "_message": "Tool output was truncated. Split content into smaller chunks (max 300 lines). Due to potential model hallucination, you MUST re-fetch the current working directory and generate the correct file_path.",
+ }
+
+ markerJSON, _ := json.Marshal(markerInput)
+ inputDelta := kiroclaude.BuildClaudeInputJsonDeltaEvent(string(markerJSON), contentBlockIndex)
+ sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, inputDelta, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ // Close tool_use block
+ blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
+ sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ hasToolUses = true // Keep this so stop_reason = tool_use
+ continue
+ }
+
+ hasToolUses = true
+
+ // Close text block if open
+ if isTextBlockOpen && contentBlockIndex >= 0 {
+ blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ isTextBlockOpen = false
+ }
+
+ contentBlockIndex++
+
+ blockStart := kiroclaude.BuildClaudeContentBlockStartEvent(contentBlockIndex, "tool_use", tu.ToolUseID, tu.Name)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStart, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ if tu.Input != nil {
+ inputJSON, err := json.Marshal(tu.Input)
+ if err != nil {
+ log.Debugf("kiro: failed to marshal tool input in toolUseEvent: %v", err)
+ } else {
+ inputDelta := kiroclaude.BuildClaudeInputJsonDeltaEvent(string(inputJSON), contentBlockIndex)
+ sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, inputDelta, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+ }
+
+ blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
+ sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+
+ case "supplementaryWebLinksEvent":
+ if inputTokens, ok := event["inputTokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ }
+ if outputTokens, ok := event["outputTokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ }
+
+ case "messageMetadataEvent", "metadataEvent":
+ // Handle message metadata events which contain token counts
+ // Official format: { tokenUsage: { outputTokens, totalTokens, uncachedInputTokens, cacheReadInputTokens, cacheWriteInputTokens, contextUsagePercentage } }
+ var metadata map[string]interface{}
+ if m, ok := event["messageMetadataEvent"].(map[string]interface{}); ok {
+ metadata = m
+ } else if m, ok := event["metadataEvent"].(map[string]interface{}); ok {
+ metadata = m
+ } else {
+ metadata = event // event itself might be the metadata
+ }
+
+ // Check for nested tokenUsage object (official format)
+ if tokenUsage, ok := metadata["tokenUsage"].(map[string]interface{}); ok {
+ // outputTokens - precise output token count
+ if outputTokens, ok := tokenUsage["outputTokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ log.Infof("kiro: streamToChannel found precise outputTokens in tokenUsage: %d", totalUsage.OutputTokens)
+ }
+ // totalTokens - precise total token count
+ if totalTokens, ok := tokenUsage["totalTokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ log.Infof("kiro: streamToChannel found precise totalTokens in tokenUsage: %d", totalUsage.TotalTokens)
+ }
+ // uncachedInputTokens - input tokens not from cache
+ if uncachedInputTokens, ok := tokenUsage["uncachedInputTokens"].(float64); ok {
+ totalUsage.InputTokens = int64(uncachedInputTokens)
+ hasUpstreamUsage = true
+ log.Infof("kiro: streamToChannel found uncachedInputTokens in tokenUsage: %d", totalUsage.InputTokens)
+ }
+ // cacheReadInputTokens - tokens read from cache
+ if cacheReadTokens, ok := tokenUsage["cacheReadInputTokens"].(float64); ok {
+ // Add to input tokens if we have uncached tokens, otherwise use as input
+ if totalUsage.InputTokens > 0 {
+ totalUsage.InputTokens += int64(cacheReadTokens)
+ } else {
+ totalUsage.InputTokens = int64(cacheReadTokens)
+ }
+ hasUpstreamUsage = true
+ log.Debugf("kiro: streamToChannel found cacheReadInputTokens in tokenUsage: %d", int64(cacheReadTokens))
+ }
+ // contextUsagePercentage - can be used as fallback for input token estimation
+ if ctxPct, ok := tokenUsage["contextUsagePercentage"].(float64); ok {
+ upstreamContextPercentage = ctxPct
+ log.Debugf("kiro: streamToChannel found contextUsagePercentage in tokenUsage: %.2f%%", ctxPct)
+ }
+ }
+
+ // Fallback: check for direct fields in metadata (legacy format)
+ if totalUsage.InputTokens == 0 {
+ if inputTokens, ok := metadata["inputTokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ hasUpstreamUsage = true
+ log.Debugf("kiro: streamToChannel found inputTokens in messageMetadataEvent: %d", totalUsage.InputTokens)
+ }
+ }
+ if totalUsage.OutputTokens == 0 {
+ if outputTokens, ok := metadata["outputTokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ log.Debugf("kiro: streamToChannel found outputTokens in messageMetadataEvent: %d", totalUsage.OutputTokens)
+ }
+ }
+ if totalUsage.TotalTokens == 0 {
+ if totalTokens, ok := metadata["totalTokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ log.Debugf("kiro: streamToChannel found totalTokens in messageMetadataEvent: %d", totalUsage.TotalTokens)
+ }
+ }
+
+ case "usageEvent", "usage":
+ // Handle dedicated usage events
+ if inputTokens, ok := event["inputTokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ log.Debugf("kiro: streamToChannel found inputTokens in usageEvent: %d", totalUsage.InputTokens)
+ }
+ if outputTokens, ok := event["outputTokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ log.Debugf("kiro: streamToChannel found outputTokens in usageEvent: %d", totalUsage.OutputTokens)
+ }
+ if totalTokens, ok := event["totalTokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ log.Debugf("kiro: streamToChannel found totalTokens in usageEvent: %d", totalUsage.TotalTokens)
+ }
+ // Also check nested usage object
+ if usageObj, ok := event["usage"].(map[string]interface{}); ok {
+ if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ }
+ if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ }
+ if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ }
+ log.Debugf("kiro: streamToChannel found usage object: input=%d, output=%d, total=%d",
+ totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
+ }
+
+ case "metricsEvent":
+ // Handle metrics events which may contain usage data
+ if metrics, ok := event["metricsEvent"].(map[string]interface{}); ok {
+ if inputTokens, ok := metrics["inputTokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ }
+ if outputTokens, ok := metrics["outputTokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ }
+ log.Debugf("kiro: streamToChannel found metricsEvent: input=%d, output=%d",
+ totalUsage.InputTokens, totalUsage.OutputTokens)
+ }
+ }
+
+ // Check nested usage event
+ if usageEvent, ok := event["supplementaryWebLinksEvent"].(map[string]interface{}); ok {
+ if inputTokens, ok := usageEvent["inputTokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ }
+ if outputTokens, ok := usageEvent["outputTokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ }
+ }
+
+ // Check for direct token fields in any event (fallback)
+ if totalUsage.InputTokens == 0 {
+ if inputTokens, ok := event["inputTokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ log.Debugf("kiro: streamToChannel found direct inputTokens: %d", totalUsage.InputTokens)
+ }
+ }
+ if totalUsage.OutputTokens == 0 {
+ if outputTokens, ok := event["outputTokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ log.Debugf("kiro: streamToChannel found direct outputTokens: %d", totalUsage.OutputTokens)
+ }
+ }
+
+ // Check for usage object in any event (OpenAI format)
+ if totalUsage.InputTokens == 0 || totalUsage.OutputTokens == 0 {
+ if usageObj, ok := event["usage"].(map[string]interface{}); ok {
+ if totalUsage.InputTokens == 0 {
+ if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ }
+ }
+ if totalUsage.OutputTokens == 0 {
+ if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ }
+ }
+ if totalUsage.TotalTokens == 0 {
+ if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ }
+ }
+ log.Debugf("kiro: streamToChannel found usage object (fallback): input=%d, output=%d, total=%d",
+ totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
+ }
+ }
+ }
+
+ // Close content block if open
+ if isTextBlockOpen && contentBlockIndex >= 0 {
+ blockStop := kiroclaude.BuildClaudeContentBlockStopEvent(contentBlockIndex)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, blockStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ }
+
+ // Streaming token calculation - calculate output tokens from accumulated content
+ // Only use local estimation if server didn't provide usage (server-side usage takes priority)
+ if totalUsage.OutputTokens == 0 && accumulatedContent.Len() > 0 {
+ // Try to use tiktoken for accurate counting
+ if enc, err := getTokenizer(model); err == nil {
+ if tokenCount, countErr := enc.Count(accumulatedContent.String()); countErr == nil {
+ totalUsage.OutputTokens = int64(tokenCount)
+ log.Debugf("kiro: streamToChannel calculated output tokens using tiktoken: %d", totalUsage.OutputTokens)
+ } else {
+ // Fallback on count error: estimate from character count
+ totalUsage.OutputTokens = int64(accumulatedContent.Len() / 4)
+ if totalUsage.OutputTokens == 0 {
+ totalUsage.OutputTokens = 1
+ }
+ log.Debugf("kiro: streamToChannel tiktoken count failed, estimated from chars: %d", totalUsage.OutputTokens)
+ }
+ } else {
+ // Fallback: estimate from character count (roughly 4 chars per token)
+ totalUsage.OutputTokens = int64(accumulatedContent.Len() / 4)
+ if totalUsage.OutputTokens == 0 {
+ totalUsage.OutputTokens = 1
+ }
+ log.Debugf("kiro: streamToChannel estimated output tokens from chars: %d (content len: %d)", totalUsage.OutputTokens, accumulatedContent.Len())
+ }
+ } else if totalUsage.OutputTokens == 0 && outputLen > 0 {
+ // Legacy fallback using outputLen
+ totalUsage.OutputTokens = int64(outputLen / 4)
+ if totalUsage.OutputTokens == 0 {
+ totalUsage.OutputTokens = 1
+ }
+ }
+
+ // Use contextUsagePercentage to calculate more accurate input tokens
+ // Kiro model has 200k max context, contextUsagePercentage represents the percentage used
+ // Formula: input_tokens = contextUsagePercentage * 200000 / 100
+ // Note: The effective input context is ~170k (200k - 30k reserved for output)
+ if upstreamContextPercentage > 0 {
+ // Calculate input tokens from context percentage
+ // Using 200k as the base since that's what Kiro reports against
+ calculatedInputTokens := int64(upstreamContextPercentage * 200000 / 100)
+
+ // Only use calculated value if it's significantly different from local estimate
+ // This provides more accurate token counts based on upstream data
+ if calculatedInputTokens > 0 {
+ localEstimate := totalUsage.InputTokens
+ totalUsage.InputTokens = calculatedInputTokens
+ log.Debugf("kiro: using contextUsagePercentage (%.2f%%) to calculate input tokens: %d (local estimate was: %d)",
+ upstreamContextPercentage, calculatedInputTokens, localEstimate)
+ }
+ }
+
+ totalUsage.TotalTokens = totalUsage.InputTokens + totalUsage.OutputTokens
+
+ // Log upstream usage information if received
+ if hasUpstreamUsage {
+ log.Debugf("kiro: upstream usage - credits: %.4f, context: %.2f%%, final tokens - input: %d, output: %d, total: %d",
+ upstreamCreditUsage, upstreamContextPercentage,
+ totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
+ }
+
+ // Determine stop reason: prefer upstream, then detect tool_use, default to end_turn
+ // SOFT_LIMIT_REACHED: Keep stop_reason = "tool_use" so Claude continues the loop
+ stopReason := upstreamStopReason
+ if hasTruncatedTools {
+ // Log that we're using SOFT_LIMIT_REACHED approach
+ log.Infof("kiro: streamToChannel using SOFT_LIMIT_REACHED - keeping stop_reason=tool_use for truncated tools")
+ }
+ if stopReason == "" {
+ if hasToolUses {
+ stopReason = "tool_use"
+ log.Debugf("kiro: streamToChannel using fallback stop_reason: tool_use")
+ } else {
+ stopReason = "end_turn"
+ log.Debugf("kiro: streamToChannel using fallback stop_reason: end_turn")
+ }
+ }
+
+ // Log warning if response was truncated due to max_tokens
+ if stopReason == "max_tokens" {
+ log.Warnf("kiro: response truncated due to max_tokens limit (streamToChannel)")
+ }
+
+ // Send message_delta event
+ msgDelta := kiroclaude.BuildClaudeMessageDeltaEvent(stopReason, totalUsage)
+ sseData := sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, msgDelta, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+
+ // Send message_stop event separately
+ msgStop := kiroclaude.BuildClaudeMessageStopOnlyEvent()
+ sseData = sdktranslator.TranslateStream(ctx, sdktranslator.FromString("kiro"), targetFormat, model, originalReq, claudeBody, msgStop, &translatorParam)
+ for _, chunk := range sseData {
+ if chunk != "" {
+ out <- cliproxyexecutor.StreamChunk{Payload: []byte(chunk + "\n\n")}
+ }
+ }
+ // reporter.publish is called via defer
+}
+
+// NOTE: Claude SSE event builders moved to pkg/llmproxy/translator/kiro/claude/kiro_claude_stream.go
+// The executor now uses kiroclaude.BuildClaude*Event() functions instead
+
+// CountTokens counts tokens locally using tiktoken since Kiro API doesn't expose a token counting endpoint.
+// This provides approximate token counts for client requests.
+func (e *KiroExecutor) CountTokens(ctx context.Context, auth *cliproxyauth.Auth, req cliproxyexecutor.Request, opts cliproxyexecutor.Options) (cliproxyexecutor.Response, error) {
+ // Use tiktoken for local token counting
+ enc, err := getTokenizer(req.Model)
+ if err != nil {
+ log.Warnf("kiro: CountTokens failed to get tokenizer: %v, falling back to estimate", err)
+ // Fallback: estimate from payload size (roughly 4 chars per token)
+ estimatedTokens := len(req.Payload) / 4
+ if estimatedTokens == 0 && len(req.Payload) > 0 {
+ estimatedTokens = 1
+ }
+ return cliproxyexecutor.Response{
+ Payload: []byte(fmt.Sprintf(`{"count":%d}`, estimatedTokens)),
+ }, nil
+ }
+
+ // Try to count tokens from the request payload
+ var totalTokens int64
+
+ // Try OpenAI chat format first
+ if tokens, countErr := countOpenAIChatTokens(enc, req.Payload); countErr == nil && tokens > 0 {
+ totalTokens = tokens
+ log.Debugf("kiro: CountTokens counted %d tokens using OpenAI chat format", totalTokens)
+ } else {
+ // Fallback: count raw payload tokens
+ if tokenCount, countErr := enc.Count(string(req.Payload)); countErr == nil {
+ totalTokens = int64(tokenCount)
+ log.Debugf("kiro: CountTokens counted %d tokens from raw payload", totalTokens)
+ } else {
+ // Final fallback: estimate from payload size
+ totalTokens = int64(len(req.Payload) / 4)
+ if totalTokens == 0 && len(req.Payload) > 0 {
+ totalTokens = 1
+ }
+ log.Debugf("kiro: CountTokens estimated %d tokens from payload size", totalTokens)
+ }
+ }
+
+ return cliproxyexecutor.Response{
+ Payload: []byte(fmt.Sprintf(`{"count":%d}`, totalTokens)),
+ }, nil
+}
+
+// Refresh refreshes the Kiro OAuth token.
+// Supports both AWS Builder ID (SSO OIDC) and Google OAuth (social login).
+// Uses mutex to prevent race conditions when multiple concurrent requests try to refresh.
+func (e *KiroExecutor) Refresh(ctx context.Context, auth *cliproxyauth.Auth) (*cliproxyauth.Auth, error) {
+ // Serialize token refresh operations to prevent race conditions
+ e.refreshMu.Lock()
+ defer e.refreshMu.Unlock()
+
+ var authID string
+ if auth != nil {
+ authID = auth.ID
+ } else {
+ authID = ""
+ }
+ log.Debugf("kiro executor: refresh called for auth %s", authID)
+ if auth == nil {
+ return nil, fmt.Errorf("kiro executor: auth is nil")
+ }
+
+ // Double-check: After acquiring lock, verify token still needs refresh
+ // Another goroutine may have already refreshed while we were waiting
+ // NOTE: This check has a design limitation - it reads from the auth object passed in,
+ // not from persistent storage. If another goroutine returns a new Auth object (via Clone),
+ // this check won't see those updates. The mutex still prevents truly concurrent refreshes,
+ // but queued goroutines may still attempt redundant refreshes. This is acceptable as
+ // the refresh operation is idempotent and the extra API calls are infrequent.
+ if auth.Metadata != nil {
+ if lastRefresh, ok := auth.Metadata["last_refresh"].(string); ok {
+ if refreshTime, err := time.Parse(time.RFC3339, lastRefresh); err == nil {
+ // If token was refreshed within the last 30 seconds, skip refresh
+ if time.Since(refreshTime) < 30*time.Second {
+ log.Debugf("kiro executor: token was recently refreshed by another goroutine, skipping")
+ return auth, nil
+ }
+ }
+ }
+ // Also check if expires_at is now in the future with sufficient buffer
+ if expiresAt, ok := auth.Metadata["expires_at"].(string); ok {
+ if expTime, err := time.Parse(time.RFC3339, expiresAt); err == nil {
+ // If token expires more than 20 minutes from now, it's still valid
+ if time.Until(expTime) > 20*time.Minute {
+ log.Debugf("kiro executor: token is still valid (expires in %v), skipping refresh", time.Until(expTime))
+ // CRITICAL FIX: Set NextRefreshAfter to prevent frequent refresh checks
+ // Without this, shouldRefresh() will return true again in 30 seconds
+ updated := auth.Clone()
+ // Set next refresh to 20 minutes before expiry, or at least 30 seconds from now
+ nextRefresh := expTime.Add(-20 * time.Minute)
+ minNextRefresh := time.Now().Add(30 * time.Second)
+ if nextRefresh.Before(minNextRefresh) {
+ nextRefresh = minNextRefresh
+ }
+ updated.NextRefreshAfter = nextRefresh
+ log.Debugf("kiro executor: setting NextRefreshAfter to %v (in %v)", nextRefresh.Format(time.RFC3339), time.Until(nextRefresh))
+ return updated, nil
+ }
+ }
+ }
+ }
+
+ var refreshToken string
+ var clientID, clientSecret string
+ var authMethod string
+ var region, startURL string
+
+ if auth.Metadata != nil {
+ if rt, ok := auth.Metadata["refresh_token"].(string); ok {
+ refreshToken = rt
+ }
+ if cid, ok := auth.Metadata["client_id"].(string); ok {
+ clientID = cid
+ }
+ if cs, ok := auth.Metadata["client_secret"].(string); ok {
+ clientSecret = cs
+ }
+ if am, ok := auth.Metadata["auth_method"].(string); ok {
+ authMethod = am
+ }
+ if r, ok := auth.Metadata["region"].(string); ok {
+ region = r
+ }
+ if su, ok := auth.Metadata["start_url"].(string); ok {
+ startURL = su
+ }
+ }
+
+ if refreshToken == "" {
+ return nil, fmt.Errorf("kiro executor: refresh token not found")
+ }
+
+ var tokenData *kiroauth.KiroTokenData
+ var err error
+
+ ssoClient := kiroauth.NewSSOOIDCClient(e.cfg)
+
+ // Use SSO OIDC refresh for AWS Builder ID or IDC, otherwise use Kiro's OAuth refresh endpoint
+ switch {
+ case clientID != "" && clientSecret != "" && authMethod == "idc" && region != "":
+ // IDC refresh with region-specific endpoint
+ log.Debugf("kiro executor: using SSO OIDC refresh for IDC (region=%s)", region)
+ tokenData, err = ssoClient.RefreshTokenWithRegion(ctx, clientID, clientSecret, refreshToken, region, startURL)
+ case clientID != "" && clientSecret != "" && authMethod == "builder-id":
+ // Builder ID refresh with default endpoint
+ log.Debugf("kiro executor: using SSO OIDC refresh for AWS Builder ID")
+ tokenData, err = ssoClient.RefreshToken(ctx, clientID, clientSecret, refreshToken)
+ default:
+ // Fallback to Kiro's OAuth refresh endpoint (for social auth: Google/GitHub)
+ log.Debugf("kiro executor: using Kiro OAuth refresh endpoint")
+ oauth := kiroauth.NewKiroOAuth(e.cfg)
+ tokenData, err = oauth.RefreshToken(ctx, refreshToken)
+ }
+
+ if err != nil {
+ return nil, fmt.Errorf("kiro executor: token refresh failed: %w", err)
+ }
+
+ updated := auth.Clone()
+ now := time.Now()
+ updated.UpdatedAt = now
+ updated.LastRefreshedAt = now
+
+ if updated.Metadata == nil {
+ updated.Metadata = make(map[string]any)
+ }
+ updated.Metadata["access_token"] = tokenData.AccessToken
+ updated.Metadata["refresh_token"] = tokenData.RefreshToken
+ updated.Metadata["expires_at"] = tokenData.ExpiresAt
+ updated.Metadata["last_refresh"] = now.Format(time.RFC3339)
+ if tokenData.ProfileArn != "" {
+ updated.Metadata["profile_arn"] = tokenData.ProfileArn
+ }
+ if tokenData.AuthMethod != "" {
+ updated.Metadata["auth_method"] = tokenData.AuthMethod
+ }
+ if tokenData.Provider != "" {
+ updated.Metadata["provider"] = tokenData.Provider
+ }
+ // Preserve client credentials for future refreshes (AWS Builder ID)
+ if tokenData.ClientID != "" {
+ updated.Metadata["client_id"] = tokenData.ClientID
+ }
+ if tokenData.ClientSecret != "" {
+ updated.Metadata["client_secret"] = tokenData.ClientSecret
+ }
+ // Preserve region and start_url for IDC token refresh
+ if tokenData.Region != "" {
+ updated.Metadata["region"] = tokenData.Region
+ }
+ if tokenData.StartURL != "" {
+ updated.Metadata["start_url"] = tokenData.StartURL
+ }
+
+ if updated.Attributes == nil {
+ updated.Attributes = make(map[string]string)
+ }
+ updated.Attributes["access_token"] = tokenData.AccessToken
+ if tokenData.ProfileArn != "" {
+ updated.Attributes["profile_arn"] = tokenData.ProfileArn
+ }
+
+ // NextRefreshAfter is aligned with RefreshLead (20min)
+ if expiresAt, parseErr := time.Parse(time.RFC3339, tokenData.ExpiresAt); parseErr == nil {
+ updated.NextRefreshAfter = expiresAt.Add(-20 * time.Minute)
+ }
+
+ log.Infof("kiro executor: token refreshed successfully, expires at %s", tokenData.ExpiresAt)
+ return updated, nil
+}
+
+// persistRefreshedAuth persists a refreshed auth record to disk.
+// This ensures token refreshes from inline retry are saved to the auth file.
+func (e *KiroExecutor) persistRefreshedAuth(auth *cliproxyauth.Auth) error {
+ if auth == nil || auth.Metadata == nil {
+ return fmt.Errorf("kiro executor: cannot persist nil auth or metadata")
+ }
+
+ // Determine the file path from auth attributes or filename
+ var authPath string
+ if auth.Attributes != nil {
+ if p := strings.TrimSpace(auth.Attributes["path"]); p != "" {
+ authPath = p
+ }
+ }
+ if authPath == "" {
+ fileName := strings.TrimSpace(auth.FileName)
+ if fileName == "" {
+ return fmt.Errorf("kiro executor: auth has no file path or filename")
+ }
+ if filepath.IsAbs(fileName) {
+ authPath = fileName
+ } else if e.cfg != nil && e.cfg.AuthDir != "" {
+ authPath = filepath.Join(e.cfg.AuthDir, fileName)
+ } else {
+ return fmt.Errorf("kiro executor: cannot determine auth file path")
+ }
+ }
+
+ // Marshal metadata to JSON
+ raw, err := json.Marshal(auth.Metadata)
+ if err != nil {
+ return fmt.Errorf("kiro executor: marshal metadata failed: %w", err)
+ }
+
+ // Write to temp file first, then rename (atomic write)
+ tmp := authPath + ".tmp"
+ if err := os.WriteFile(tmp, raw, 0o600); err != nil {
+ return fmt.Errorf("kiro executor: write temp auth file failed: %w", err)
+ }
+ if err := os.Rename(tmp, authPath); err != nil {
+ return fmt.Errorf("kiro executor: rename auth file failed: %w", err)
+ }
+
+ log.Debugf("kiro executor: persisted refreshed auth to %s", authPath)
+ return nil
+}
+
+// reloadAuthFromFile 从文件重新加载 auth 数据(方案 B: Fallback 机制)
+// 当内存中的 token 已过期时,尝试从文件读取最新的 token
+// 这解决了后台刷新器已更新文件但内存中 Auth 对象尚未同步的时间差问题
+func (e *KiroExecutor) reloadAuthFromFile(auth *cliproxyauth.Auth) (*cliproxyauth.Auth, error) {
+ if auth == nil {
+ return nil, fmt.Errorf("kiro executor: cannot reload nil auth")
+ }
+
+ // 确定文件路径
+ var authPath string
+ if auth.Attributes != nil {
+ if p := strings.TrimSpace(auth.Attributes["path"]); p != "" {
+ authPath = p
+ }
+ }
+ if authPath == "" {
+ fileName := strings.TrimSpace(auth.FileName)
+ if fileName == "" {
+ return nil, fmt.Errorf("kiro executor: auth has no file path or filename for reload")
+ }
+ if filepath.IsAbs(fileName) {
+ authPath = fileName
+ } else if e.cfg != nil && e.cfg.AuthDir != "" {
+ authPath = filepath.Join(e.cfg.AuthDir, fileName)
+ } else {
+ return nil, fmt.Errorf("kiro executor: cannot determine auth file path for reload")
+ }
+ }
+
+ // 读取文件
+ raw, err := os.ReadFile(authPath)
+ if err != nil {
+ return nil, fmt.Errorf("kiro executor: failed to read auth file %s: %w", authPath, err)
+ }
+
+ // 解析 JSON
+ var metadata map[string]any
+ if err := json.Unmarshal(raw, &metadata); err != nil {
+ return nil, fmt.Errorf("kiro executor: failed to parse auth file %s: %w", authPath, err)
+ }
+
+ // 检查文件中的 token 是否比内存中的更新
+ fileExpiresAt, _ := metadata["expires_at"].(string)
+ fileAccessToken, _ := metadata["access_token"].(string)
+ memExpiresAt, _ := auth.Metadata["expires_at"].(string)
+ memAccessToken, _ := auth.Metadata["access_token"].(string)
+
+ // 文件中必须有有效的 access_token
+ if fileAccessToken == "" {
+ return nil, fmt.Errorf("kiro executor: auth file has no access_token field")
+ }
+
+ // 如果有 expires_at,检查是否过期
+ if fileExpiresAt != "" {
+ fileExpTime, parseErr := time.Parse(time.RFC3339, fileExpiresAt)
+ if parseErr == nil {
+ // 如果文件中的 token 也已过期,不使用它
+ if time.Now().After(fileExpTime) {
+ log.Debugf("kiro executor: file token also expired at %s, not using", fileExpiresAt)
+ return nil, fmt.Errorf("kiro executor: file token also expired")
+ }
+ }
+ }
+
+ // 判断文件中的 token 是否比内存中的更新
+ // 条件1: access_token 不同(说明已刷新)
+ // 条件2: expires_at 更新(说明已刷新)
+ isNewer := false
+
+ // 优先检查 access_token 是否变化
+ if fileAccessToken != memAccessToken {
+ isNewer = true
+ log.Debugf("kiro executor: file access_token differs from memory, using file token")
+ }
+
+ // 如果 access_token 相同,检查 expires_at
+ if !isNewer && fileExpiresAt != "" && memExpiresAt != "" {
+ fileExpTime, fileParseErr := time.Parse(time.RFC3339, fileExpiresAt)
+ memExpTime, memParseErr := time.Parse(time.RFC3339, memExpiresAt)
+ if fileParseErr == nil && memParseErr == nil && fileExpTime.After(memExpTime) {
+ isNewer = true
+ log.Debugf("kiro executor: file expires_at (%s) is newer than memory (%s)", fileExpiresAt, memExpiresAt)
+ }
+ }
+
+ // 如果文件中没有 expires_at 但 access_token 相同,无法判断是否更新
+ if !isNewer && fileExpiresAt == "" && fileAccessToken == memAccessToken {
+ return nil, fmt.Errorf("kiro executor: cannot determine if file token is newer (no expires_at, same access_token)")
+ }
+
+ if !isNewer {
+ log.Debugf("kiro executor: file token not newer than memory token")
+ return nil, fmt.Errorf("kiro executor: file token not newer")
+ }
+
+ // 创建更新后的 auth 对象
+ updated := auth.Clone()
+ updated.Metadata = metadata
+ updated.UpdatedAt = time.Now()
+
+ // 同步更新 Attributes
+ if updated.Attributes == nil {
+ updated.Attributes = make(map[string]string)
+ }
+ if accessToken, ok := metadata["access_token"].(string); ok {
+ updated.Attributes["access_token"] = accessToken
+ }
+ if profileArn, ok := metadata["profile_arn"].(string); ok {
+ updated.Attributes["profile_arn"] = profileArn
+ }
+
+ log.Infof("kiro executor: reloaded auth from file %s, new expires_at: %s", authPath, fileExpiresAt)
+ return updated, nil
+}
+
+// isTokenExpired checks if a JWT access token has expired.
+// Returns true if the token is expired or cannot be parsed.
+func (e *KiroExecutor) isTokenExpired(accessToken string) bool {
+ if accessToken == "" {
+ return true
+ }
+
+ // JWT tokens have 3 parts separated by dots
+ parts := strings.Split(accessToken, ".")
+ if len(parts) != 3 {
+ // Not a JWT token, assume not expired
+ return false
+ }
+
+ // Decode the payload (second part)
+ // JWT uses base64url encoding without padding (RawURLEncoding)
+ payload := parts[1]
+ decoded, err := base64.RawURLEncoding.DecodeString(payload)
+ if err != nil {
+ // Try with padding added as fallback
+ switch len(payload) % 4 {
+ case 2:
+ payload += "=="
+ case 3:
+ payload += "="
+ }
+ decoded, err = base64.URLEncoding.DecodeString(payload)
+ if err != nil {
+ log.Debugf("kiro: failed to decode JWT payload: %v", err)
+ return false
+ }
+ }
+
+ var claims struct {
+ Exp int64 `json:"exp"`
+ }
+ if err := json.Unmarshal(decoded, &claims); err != nil {
+ log.Debugf("kiro: failed to parse JWT claims: %v", err)
+ return false
+ }
+
+ if claims.Exp == 0 {
+ // No expiration claim, assume not expired
+ return false
+ }
+
+ expTime := time.Unix(claims.Exp, 0)
+ now := time.Now()
+
+ // Consider token expired if it expires within 1 minute (buffer for clock skew)
+ isExpired := now.After(expTime) || expTime.Sub(now) < time.Minute
+ if isExpired {
+ log.Debugf("kiro: token expired at %s (now: %s)", expTime.Format(time.RFC3339), now.Format(time.RFC3339))
+ }
+
+ return isExpired
+}
+
+// ══════════════════════════════════════════════════════════════════════════════
+// Web Search Handler (MCP API)
+// ══════════════════════════════════════════════════════════════════════════════
+
+// fetchToolDescription caching:
+// Uses a mutex + fetched flag to ensure only one goroutine fetches at a time,
+// with automatic retry on failure:
+// - On failure, fetched stays false so subsequent calls will retry
+// - On success, fetched is set to true — subsequent calls skip immediately (mutex-free fast path)
+// The cached description is stored in the translator package via kiroclaude.SetWebSearchDescription(),
+// enabling the translator's convertClaudeToolsToKiro to read it when building Kiro requests.
+var (
+ toolDescMu sync.Mutex
+ toolDescFetched atomic.Bool
+)
+
+// fetchToolDescription calls MCP tools/list to get the web_search tool description
+// and caches it. Safe to call concurrently — only one goroutine fetches at a time.
+// If the fetch fails, subsequent calls will retry. On success, no further fetches occur.
+// The httpClient parameter allows reusing a shared pooled HTTP client.
+func fetchToolDescription(ctx context.Context, mcpEndpoint, authToken string, httpClient *http.Client, auth *cliproxyauth.Auth, authAttrs map[string]string) {
+ // Fast path: already fetched successfully, no lock needed
+ if toolDescFetched.Load() {
+ return
+ }
+
+ toolDescMu.Lock()
+ defer toolDescMu.Unlock()
+
+ // Double-check after acquiring lock
+ if toolDescFetched.Load() {
+ return
+ }
+
+ handler := newWebSearchHandler(ctx, mcpEndpoint, authToken, httpClient, auth, authAttrs)
+ reqBody := []byte(`{"id":"tools_list","jsonrpc":"2.0","method":"tools/list"}`)
+ log.Debugf("kiro/websearch MCP tools/list request: %d bytes", len(reqBody))
+
+ req, err := http.NewRequestWithContext(ctx, "POST", mcpEndpoint, bytes.NewReader(reqBody))
+ if err != nil {
+ log.Warnf("kiro/websearch: failed to create tools/list request: %v", err)
+ return
+ }
+
+ // Reuse same headers as callMcpAPI
+ handler.setMcpHeaders(req)
+
+ resp, err := handler.httpClient.Do(req)
+ if err != nil {
+ log.Warnf("kiro/websearch: tools/list request failed: %v", err)
+ return
+ }
+ defer resp.Body.Close()
+
+ body, err := io.ReadAll(resp.Body)
+ if err != nil || resp.StatusCode != http.StatusOK {
+ log.Warnf("kiro/websearch: tools/list returned status %d", resp.StatusCode)
+ return
+ }
+ log.Debugf("kiro/websearch MCP tools/list response: [%d] %d bytes", resp.StatusCode, len(body))
+
+ // Parse: {"result":{"tools":[{"name":"web_search","description":"..."}]}}
+ var result struct {
+ Result *struct {
+ Tools []struct {
+ Name string `json:"name"`
+ Description string `json:"description"`
+ } `json:"tools"`
+ } `json:"result"`
+ }
+ if err := json.Unmarshal(body, &result); err != nil || result.Result == nil {
+ log.Warnf("kiro/websearch: failed to parse tools/list response")
+ return
+ }
+
+ for _, tool := range result.Result.Tools {
+ if tool.Name == "web_search" && tool.Description != "" {
+ kiroclaude.SetWebSearchDescription(tool.Description)
+ toolDescFetched.Store(true) // success — no more fetches
+ log.Infof("kiro/websearch: cached web_search description from tools/list (%d bytes)", len(tool.Description))
+ return
+ }
+ }
+
+ // web_search tool not found in response
+ log.Warnf("kiro/websearch: web_search tool not found in tools/list response")
+}
+
+// webSearchHandler handles web search requests via Kiro MCP API
+type webSearchHandler struct {
+ ctx context.Context
+ mcpEndpoint string
+ httpClient *http.Client
+ authToken string
+ auth *cliproxyauth.Auth // for applyDynamicFingerprint
+ authAttrs map[string]string // optional, for custom headers from auth.Attributes
+}
+
+// newWebSearchHandler creates a new webSearchHandler.
+// If httpClient is nil, a default client with 30s timeout is used.
+// Pass a shared pooled client (e.g. from getKiroPooledHTTPClient) for connection reuse.
+func newWebSearchHandler(ctx context.Context, mcpEndpoint, authToken string, httpClient *http.Client, auth *cliproxyauth.Auth, authAttrs map[string]string) *webSearchHandler {
+ if httpClient == nil {
+ httpClient = &http.Client{
+ Timeout: 30 * time.Second,
+ }
+ }
+ return &webSearchHandler{
+ ctx: ctx,
+ mcpEndpoint: mcpEndpoint,
+ httpClient: httpClient,
+ authToken: authToken,
+ auth: auth,
+ authAttrs: authAttrs,
+ }
+}
+
+// setMcpHeaders sets standard MCP API headers on the request,
+// aligned with the GAR request pattern.
+func (h *webSearchHandler) setMcpHeaders(req *http.Request) {
+ // 1. Content-Type & Accept (aligned with GAR)
+ req.Header.Set("Content-Type", "application/json")
+ req.Header.Set("Accept", "*/*")
+
+ // 2. Kiro-specific headers (aligned with GAR)
+ req.Header.Set("x-amzn-kiro-agent-mode", "vibe")
+ req.Header.Set("x-amzn-codewhisperer-optout", "true")
+
+ // 3. User-Agent: Reuse applyDynamicFingerprint for consistency
+ applyDynamicFingerprint(req, h.auth)
+
+ // 4. AWS SDK identifiers
+ req.Header.Set("Amz-Sdk-Request", "attempt=1; max=3")
+ req.Header.Set("Amz-Sdk-Invocation-Id", uuid.New().String())
+
+ // 5. Authentication
+ req.Header.Set("Authorization", "Bearer "+h.authToken)
+
+ // 6. Custom headers from auth attributes
+ util.ApplyCustomHeadersFromAttrs(req, h.authAttrs)
+}
+
+// mcpMaxRetries is the maximum number of retries for MCP API calls.
+const mcpMaxRetries = 2
+
+// callMcpAPI calls the Kiro MCP API with the given request.
+// Includes retry logic with exponential backoff for retryable errors.
+func (h *webSearchHandler) callMcpAPI(request *kiroclaude.McpRequest) (*kiroclaude.McpResponse, error) {
+ requestBody, err := json.Marshal(request)
+ if err != nil {
+ return nil, fmt.Errorf("failed to marshal MCP request: %w", err)
+ }
+ log.Debugf("kiro/websearch MCP request → %s (%d bytes)", h.mcpEndpoint, len(requestBody))
+
+ var lastErr error
+ for attempt := 0; attempt <= mcpMaxRetries; attempt++ {
+ if attempt > 0 {
+ backoff := time.Duration(1< 10*time.Second {
+ backoff = 10 * time.Second
+ }
+ log.Warnf("kiro/websearch: MCP retry %d/%d after %v (last error: %v)", attempt, mcpMaxRetries, backoff, lastErr)
+ select {
+ case <-h.ctx.Done():
+ return nil, h.ctx.Err()
+ case <-time.After(backoff):
+ }
+ }
+
+ req, err := http.NewRequestWithContext(h.ctx, "POST", h.mcpEndpoint, bytes.NewReader(requestBody))
+ if err != nil {
+ return nil, fmt.Errorf("failed to create HTTP request: %w", err)
+ }
+
+ h.setMcpHeaders(req)
+
+ resp, err := h.httpClient.Do(req)
+ if err != nil {
+ lastErr = fmt.Errorf("MCP API request failed: %w", err)
+ continue // network error → retry
+ }
+
+ body, err := io.ReadAll(resp.Body)
+ resp.Body.Close()
+ if err != nil {
+ lastErr = fmt.Errorf("failed to read MCP response: %w", err)
+ continue // read error → retry
+ }
+ log.Debugf("kiro/websearch MCP response ← [%d] (%d bytes)", resp.StatusCode, len(body))
+
+ // Retryable HTTP status codes (aligned with GAR: 502, 503, 504)
+ if resp.StatusCode >= 502 && resp.StatusCode <= 504 {
+ lastErr = fmt.Errorf("MCP API returned retryable status %d: %s", resp.StatusCode, string(body))
+ continue
+ }
+
+ if resp.StatusCode != http.StatusOK {
+ return nil, fmt.Errorf("MCP API returned status %d: %s", resp.StatusCode, string(body))
+ }
+
+ var mcpResponse kiroclaude.McpResponse
+ if err := json.Unmarshal(body, &mcpResponse); err != nil {
+ return nil, fmt.Errorf("failed to parse MCP response: %w", err)
+ }
+
+ if mcpResponse.Error != nil {
+ code := -1
+ if mcpResponse.Error.Code != nil {
+ code = *mcpResponse.Error.Code
+ }
+ msg := "Unknown error"
+ if mcpResponse.Error.Message != nil {
+ msg = *mcpResponse.Error.Message
+ }
+ return nil, fmt.Errorf("MCP error %d: %s", code, msg)
+ }
+
+ return &mcpResponse, nil
+ }
+
+ return nil, lastErr
+}
+
+// webSearchAuthAttrs extracts auth attributes for MCP calls.
+// Used by handleWebSearch and handleWebSearchStream to pass custom headers.
+func webSearchAuthAttrs(auth *cliproxyauth.Auth) map[string]string {
+ if auth != nil {
+ return auth.Attributes
+ }
+ return nil
+}
+
+const maxWebSearchIterations = 5
+
+// handleWebSearchStream handles web_search requests:
+// Step 1: tools/list (sync) → fetch/cache tool description
+// Step 2+: MCP search → InjectToolResultsClaude → callKiroAndBuffer loop
+// Note: We skip the "model decides to search" step because Claude Code already
+// decided to use web_search. The Kiro tool description restricts non-coding
+// topics, so asking the model again would cause it to refuse valid searches.
+func (e *KiroExecutor) handleWebSearchStream(
+ ctx context.Context,
+ auth *cliproxyauth.Auth,
+ req cliproxyexecutor.Request,
+ opts cliproxyexecutor.Options,
+ accessToken, profileArn string,
+) (<-chan cliproxyexecutor.StreamChunk, error) {
+ // Extract search query from Claude Code's web_search tool_use
+ query := kiroclaude.ExtractSearchQuery(req.Payload)
+ if query == "" {
+ log.Warnf("kiro/websearch: failed to extract search query, falling back to normal flow")
+ return e.callKiroDirectStream(ctx, auth, req, opts, accessToken, profileArn)
+ }
+
+ // Build MCP endpoint using shared region resolution (supports api_region + ProfileARN fallback)
+ region := resolveKiroAPIRegion(auth)
+ mcpEndpoint := kiroclaude.BuildMcpEndpoint(region)
+
+ // ── Step 1: tools/list (SYNC) — cache tool description ──
+ {
+ authAttrs := webSearchAuthAttrs(auth)
+ fetchToolDescription(ctx, mcpEndpoint, accessToken, newKiroHTTPClientWithPooling(ctx, e.cfg, auth, 30*time.Second), auth, authAttrs)
+ }
+
+ // Create output channel
+ out := make(chan cliproxyexecutor.StreamChunk)
+
+ // Usage reporting: track web search requests like normal streaming requests
+ reporter := newUsageReporter(ctx, e.Identifier(), req.Model, auth)
+
+ go func() {
+ var wsErr error
+ defer reporter.trackFailure(ctx, &wsErr)
+ defer close(out)
+
+ // Estimate input tokens using tokenizer (matching streamToChannel pattern)
+ var totalUsage usage.Detail
+ if enc, tokErr := getTokenizer(req.Model); tokErr == nil {
+ if inp, e := countClaudeChatTokens(enc, req.Payload); e == nil && inp > 0 {
+ totalUsage.InputTokens = inp
+ } else {
+ totalUsage.InputTokens = int64(len(req.Payload) / 4)
+ }
+ } else {
+ totalUsage.InputTokens = int64(len(req.Payload) / 4)
+ }
+ if totalUsage.InputTokens == 0 && len(req.Payload) > 0 {
+ totalUsage.InputTokens = 1
+ }
+ var accumulatedOutputLen int
+ defer func() {
+ if wsErr != nil {
+ return // let trackFailure handle failure reporting
+ }
+ totalUsage.OutputTokens = int64(accumulatedOutputLen / 4)
+ if accumulatedOutputLen > 0 && totalUsage.OutputTokens == 0 {
+ totalUsage.OutputTokens = 1
+ }
+ reporter.publish(ctx, totalUsage)
+ }()
+
+ // Send message_start event to client (aligned with streamToChannel pattern)
+ // Use payloadRequestedModel to return user's original model alias
+ msgStart := kiroclaude.BuildClaudeMessageStartEvent(
+ payloadRequestedModel(opts, req.Model),
+ totalUsage.InputTokens,
+ )
+ select {
+ case <-ctx.Done():
+ return
+ case out <- cliproxyexecutor.StreamChunk{Payload: append(msgStart, '\n', '\n')}:
+ }
+
+ // ── Step 2+: MCP search → InjectToolResultsClaude → callKiroAndBuffer loop ──
+ contentBlockIndex := 0
+ currentQuery := query
+
+ // Replace web_search tool description with a minimal one that allows re-search.
+ // The original tools/list description from Kiro restricts non-coding topics,
+ // but we've already decided to search. We keep the tool so the model can
+ // request additional searches when results are insufficient.
+ simplifiedPayload, simplifyErr := kiroclaude.ReplaceWebSearchToolDescription(bytes.Clone(req.Payload))
+ if simplifyErr != nil {
+ log.Warnf("kiro/websearch: failed to simplify web_search tool: %v, using original payload", simplifyErr)
+ simplifiedPayload = bytes.Clone(req.Payload)
+ }
+
+ currentClaudePayload := simplifiedPayload
+ totalSearches := 0
+
+ // Generate toolUseId for the first iteration (Claude Code already decided to search)
+ currentToolUseId := fmt.Sprintf("srvtoolu_%s", kiroclaude.GenerateToolUseID())
+
+ for iteration := 0; iteration < maxWebSearchIterations; iteration++ {
+ log.Infof("kiro/websearch: search iteration %d/%d",
+ iteration+1, maxWebSearchIterations)
+
+ // MCP search
+ _, mcpRequest := kiroclaude.CreateMcpRequest(currentQuery)
+
+ authAttrs := webSearchAuthAttrs(auth)
+ handler := newWebSearchHandler(ctx, mcpEndpoint, accessToken, newKiroHTTPClientWithPooling(ctx, e.cfg, auth, 30*time.Second), auth, authAttrs)
+ mcpResponse, mcpErr := handler.callMcpAPI(mcpRequest)
+
+ var searchResults *kiroclaude.WebSearchResults
+ if mcpErr != nil {
+ log.Warnf("kiro/websearch: MCP API call failed: %v, continuing with empty results", mcpErr)
+ } else {
+ searchResults = kiroclaude.ParseSearchResults(mcpResponse)
+ }
+
+ resultCount := 0
+ if searchResults != nil {
+ resultCount = len(searchResults.Results)
+ }
+ totalSearches++
+ log.Infof("kiro/websearch: iteration %d — got %d search results", iteration+1, resultCount)
+
+ // Send search indicator events to client
+ searchEvents := kiroclaude.GenerateSearchIndicatorEvents(currentQuery, currentToolUseId, searchResults, contentBlockIndex)
+ for _, event := range searchEvents {
+ select {
+ case <-ctx.Done():
+ return
+ case out <- cliproxyexecutor.StreamChunk{Payload: event}:
+ }
+ }
+ contentBlockIndex += 2
+
+ // Inject tool_use + tool_result into Claude payload, then call GAR
+ var err error
+ currentClaudePayload, err = kiroclaude.InjectToolResultsClaude(currentClaudePayload, currentToolUseId, currentQuery, searchResults)
+ if err != nil {
+ log.Warnf("kiro/websearch: failed to inject tool results: %v", err)
+ wsErr = fmt.Errorf("failed to inject tool results: %w", err)
+ e.sendFallbackText(ctx, out, contentBlockIndex, currentQuery, searchResults)
+ return
+ }
+
+ // Call GAR with modified Claude payload (full translation pipeline)
+ modifiedReq := req
+ modifiedReq.Payload = currentClaudePayload
+ kiroChunks, kiroErr := e.callKiroAndBuffer(ctx, auth, modifiedReq, opts, accessToken, profileArn)
+ if kiroErr != nil {
+ log.Warnf("kiro/websearch: Kiro API failed at iteration %d: %v", iteration+1, kiroErr)
+ wsErr = fmt.Errorf("Kiro API failed at iteration %d: %w", iteration+1, kiroErr)
+ e.sendFallbackText(ctx, out, contentBlockIndex, currentQuery, searchResults)
+ return
+ }
+
+ // Analyze response
+ analysis := kiroclaude.AnalyzeBufferedStream(kiroChunks)
+ log.Infof("kiro/websearch: iteration %d — stop_reason: %s, has_tool_use: %v",
+ iteration+1, analysis.StopReason, analysis.HasWebSearchToolUse)
+
+ if analysis.HasWebSearchToolUse && analysis.WebSearchQuery != "" && iteration+1 < maxWebSearchIterations {
+ // Model wants another search
+ filteredChunks := kiroclaude.FilterChunksForClient(kiroChunks, analysis.WebSearchToolUseIndex, contentBlockIndex)
+ for _, chunk := range filteredChunks {
+ select {
+ case <-ctx.Done():
+ return
+ case out <- cliproxyexecutor.StreamChunk{Payload: chunk}:
+ }
+ }
+
+ currentQuery = analysis.WebSearchQuery
+ currentToolUseId = analysis.WebSearchToolUseId
+ continue
+ }
+
+ // Model returned final response — stream to client
+ for _, chunk := range kiroChunks {
+ if contentBlockIndex > 0 && len(chunk) > 0 {
+ adjusted, shouldForward := kiroclaude.AdjustSSEChunk(chunk, contentBlockIndex)
+ if !shouldForward {
+ continue
+ }
+ accumulatedOutputLen += len(adjusted)
+ select {
+ case <-ctx.Done():
+ return
+ case out <- cliproxyexecutor.StreamChunk{Payload: adjusted}:
+ }
+ } else {
+ accumulatedOutputLen += len(chunk)
+ select {
+ case <-ctx.Done():
+ return
+ case out <- cliproxyexecutor.StreamChunk{Payload: chunk}:
+ }
+ }
+ }
+ log.Infof("kiro/websearch: completed after %d search iteration(s), total searches: %d", iteration+1, totalSearches)
+ return
+ }
+
+ log.Warnf("kiro/websearch: reached max iterations (%d), stopping search loop", maxWebSearchIterations)
+ }()
+
+ return out, nil
+}
+
+// handleWebSearch handles web_search requests for non-streaming Execute path.
+// Performs MCP search synchronously, injects results into the request payload,
+// then calls the normal non-streaming Kiro API path which returns a proper
+// Claude JSON response (not SSE chunks).
+func (e *KiroExecutor) handleWebSearch(
+ ctx context.Context,
+ auth *cliproxyauth.Auth,
+ req cliproxyexecutor.Request,
+ opts cliproxyexecutor.Options,
+ accessToken, profileArn string,
+) (cliproxyexecutor.Response, error) {
+ // Extract search query from Claude Code's web_search tool_use
+ query := kiroclaude.ExtractSearchQuery(req.Payload)
+ if query == "" {
+ log.Warnf("kiro/websearch: non-stream: failed to extract search query, falling back to normal Execute")
+ // Fall through to normal non-streaming path
+ return e.executeNonStreamFallback(ctx, auth, req, opts, accessToken, profileArn)
+ }
+
+ // Build MCP endpoint using shared region resolution (supports api_region + ProfileARN fallback)
+ region := resolveKiroAPIRegion(auth)
+ mcpEndpoint := kiroclaude.BuildMcpEndpoint(region)
+
+ // Step 1: Fetch/cache tool description (sync)
+ {
+ authAttrs := webSearchAuthAttrs(auth)
+ fetchToolDescription(ctx, mcpEndpoint, accessToken, newKiroHTTPClientWithPooling(ctx, e.cfg, auth, 30*time.Second), auth, authAttrs)
+ }
+
+ // Step 2: Perform MCP search
+ _, mcpRequest := kiroclaude.CreateMcpRequest(query)
+
+ authAttrs := webSearchAuthAttrs(auth)
+ handler := newWebSearchHandler(ctx, mcpEndpoint, accessToken, newKiroHTTPClientWithPooling(ctx, e.cfg, auth, 30*time.Second), auth, authAttrs)
+ mcpResponse, mcpErr := handler.callMcpAPI(mcpRequest)
+
+ var searchResults *kiroclaude.WebSearchResults
+ if mcpErr != nil {
+ log.Warnf("kiro/websearch: non-stream: MCP API call failed: %v, continuing with empty results", mcpErr)
+ } else {
+ searchResults = kiroclaude.ParseSearchResults(mcpResponse)
+ }
+
+ resultCount := 0
+ if searchResults != nil {
+ resultCount = len(searchResults.Results)
+ }
+ log.Infof("kiro/websearch: non-stream: got %d search results", resultCount)
+
+ // Step 3: Replace restrictive web_search tool description (align with streaming path)
+ simplifiedPayload, simplifyErr := kiroclaude.ReplaceWebSearchToolDescription(bytes.Clone(req.Payload))
+ if simplifyErr != nil {
+ log.Warnf("kiro/websearch: non-stream: failed to simplify web_search tool: %v, using original payload", simplifyErr)
+ simplifiedPayload = bytes.Clone(req.Payload)
+ }
+
+ // Step 4: Inject search tool_use + tool_result into Claude payload
+ currentToolUseId := fmt.Sprintf("srvtoolu_%s", kiroclaude.GenerateToolUseID())
+ modifiedPayload, err := kiroclaude.InjectToolResultsClaude(simplifiedPayload, currentToolUseId, query, searchResults)
+ if err != nil {
+ log.Warnf("kiro/websearch: non-stream: failed to inject tool results: %v, falling back", err)
+ return e.executeNonStreamFallback(ctx, auth, req, opts, accessToken, profileArn)
+ }
+
+ // Step 5: Call Kiro API via the normal non-streaming path (executeWithRetry)
+ // This path uses parseEventStream → BuildClaudeResponse → TranslateNonStream
+ // to produce a proper Claude JSON response
+ modifiedReq := req
+ modifiedReq.Payload = modifiedPayload
+
+ resp, err := e.executeNonStreamFallback(ctx, auth, modifiedReq, opts, accessToken, profileArn)
+ if err != nil {
+ return resp, err
+ }
+
+ // Step 6: Inject server_tool_use + web_search_tool_result into response
+ // so Claude Code can display "Did X searches in Ys"
+ indicators := []kiroclaude.SearchIndicator{
+ {
+ ToolUseID: currentToolUseId,
+ Query: query,
+ Results: searchResults,
+ },
+ }
+ injectedPayload, injErr := kiroclaude.InjectSearchIndicatorsInResponse(resp.Payload, indicators)
+ if injErr != nil {
+ log.Warnf("kiro/websearch: non-stream: failed to inject search indicators: %v", injErr)
+ } else {
+ resp.Payload = injectedPayload
+ }
+
+ return resp, nil
+}
+
+// callKiroAndBuffer calls the Kiro API and buffers all response chunks.
+// Returns the buffered chunks for analysis before forwarding to client.
+// Usage reporting is NOT done here — the caller (handleWebSearchStream) manages its own reporter.
+func (e *KiroExecutor) callKiroAndBuffer(
+ ctx context.Context,
+ auth *cliproxyauth.Auth,
+ req cliproxyexecutor.Request,
+ opts cliproxyexecutor.Options,
+ accessToken, profileArn string,
+) ([][]byte, error) {
+ from := opts.SourceFormat
+ to := sdktranslator.FromString("kiro")
+ body := sdktranslator.TranslateRequest(from, to, req.Model, bytes.Clone(req.Payload), true)
+ log.Debugf("kiro/websearch GAR request: %d bytes", len(body))
+
+ kiroModelID := e.mapModelToKiro(req.Model)
+ isAgentic, isChatOnly := determineAgenticMode(req.Model)
+ effectiveProfileArn := getEffectiveProfileArnWithWarning(auth, profileArn)
+
+ tokenKey := getTokenKey(auth)
+
+ kiroStream, err := e.executeStreamWithRetry(
+ ctx, auth, req, opts, accessToken, effectiveProfileArn,
+ nil, body, from, nil, "", kiroModelID, isAgentic, isChatOnly, tokenKey,
+ )
+ if err != nil {
+ return nil, err
+ }
+
+ // Buffer all chunks
+ var chunks [][]byte
+ for chunk := range kiroStream {
+ if chunk.Err != nil {
+ return chunks, chunk.Err
+ }
+ if len(chunk.Payload) > 0 {
+ chunks = append(chunks, bytes.Clone(chunk.Payload))
+ }
+ }
+
+ log.Debugf("kiro/websearch GAR response: %d chunks buffered", len(chunks))
+
+ return chunks, nil
+}
+
+// callKiroDirectStream creates a direct streaming channel to Kiro API without search.
+func (e *KiroExecutor) callKiroDirectStream(
+ ctx context.Context,
+ auth *cliproxyauth.Auth,
+ req cliproxyexecutor.Request,
+ opts cliproxyexecutor.Options,
+ accessToken, profileArn string,
+) (<-chan cliproxyexecutor.StreamChunk, error) {
+ from := opts.SourceFormat
+ to := sdktranslator.FromString("kiro")
+ body := sdktranslator.TranslateRequest(from, to, req.Model, bytes.Clone(req.Payload), true)
+
+ kiroModelID := e.mapModelToKiro(req.Model)
+ isAgentic, isChatOnly := determineAgenticMode(req.Model)
+ effectiveProfileArn := getEffectiveProfileArnWithWarning(auth, profileArn)
+
+ tokenKey := getTokenKey(auth)
+
+ reporter := newUsageReporter(ctx, e.Identifier(), req.Model, auth)
+ var streamErr error
+ defer reporter.trackFailure(ctx, &streamErr)
+
+ stream, streamErr := e.executeStreamWithRetry(
+ ctx, auth, req, opts, accessToken, effectiveProfileArn,
+ nil, body, from, reporter, "", kiroModelID, isAgentic, isChatOnly, tokenKey,
+ )
+ return stream, streamErr
+}
+
+// sendFallbackText sends a simple text response when the Kiro API fails during the search loop.
+// Delegates SSE event construction to kiroclaude.BuildFallbackTextEvents() for alignment
+// with how streamToChannel() uses BuildClaude*Event() functions.
+func (e *KiroExecutor) sendFallbackText(
+ ctx context.Context,
+ out chan<- cliproxyexecutor.StreamChunk,
+ contentBlockIndex int,
+ query string,
+ searchResults *kiroclaude.WebSearchResults,
+) {
+ events := kiroclaude.BuildFallbackTextEvents(contentBlockIndex, query, searchResults)
+ for _, event := range events {
+ select {
+ case <-ctx.Done():
+ return
+ case out <- cliproxyexecutor.StreamChunk{Payload: append(event, '\n', '\n')}:
+ }
+ }
+}
+
+// executeNonStreamFallback runs the standard non-streaming Execute path for a request.
+// Used by handleWebSearch after injecting search results, or as a fallback.
+func (e *KiroExecutor) executeNonStreamFallback(
+ ctx context.Context,
+ auth *cliproxyauth.Auth,
+ req cliproxyexecutor.Request,
+ opts cliproxyexecutor.Options,
+ accessToken, profileArn string,
+) (cliproxyexecutor.Response, error) {
+ from := opts.SourceFormat
+ to := sdktranslator.FromString("kiro")
+ body := sdktranslator.TranslateRequest(from, to, req.Model, bytes.Clone(req.Payload), true)
+
+ kiroModelID := e.mapModelToKiro(req.Model)
+ isAgentic, isChatOnly := determineAgenticMode(req.Model)
+ effectiveProfileArn := getEffectiveProfileArnWithWarning(auth, profileArn)
+ tokenKey := getTokenKey(auth)
+
+ reporter := newUsageReporter(ctx, e.Identifier(), req.Model, auth)
+ var err error
+ defer reporter.trackFailure(ctx, &err)
+
+ resp, err := e.executeWithRetry(ctx, auth, req, opts, accessToken, effectiveProfileArn, nil, body, from, to, reporter, "", kiroModelID, isAgentic, isChatOnly, tokenKey)
+ return resp, err
+}
From 86f7755ba2371ea8555faa86ab62944bdfa0e4c6 Mon Sep 17 00:00:00 2001
From: Koosha Paridehpour
Date: Sun, 22 Feb 2026 04:35:03 -0700
Subject: [PATCH 003/412] chore: checkpoint current worktree before 7-lane bug
wave
---
.github/workflows/pr-test-build.yml | 5 +-
Taskfile.yml | 10 +-
cmd/boardsync/main.go | 4 +-
cmd/codegen/main.go | 5 +-
cmd/server/main.go | 2 -
docs/planning/README.md | 3 +
docs/planning/coverage-gaps.md | 9 +-
docs/planning/index.md | 7 +
pkg/llmproxy/api/modules/amp/proxy.go | 25 ++-
pkg/llmproxy/api/server_test.go | 1 -
pkg/llmproxy/auth/kiro/jitter_test.go | 9 +-
pkg/llmproxy/executor/claude_executor_test.go | 2 +-
.../executor/codex_websockets_executor.go | 7 +-
.../executor/github_copilot_executor.go | 38 ----
pkg/llmproxy/executor/kiro_executor.go | 131 +++++++-------
pkg/llmproxy/registry/model_definitions.go | 2 +
pkg/llmproxy/registry/model_registry.go | 9 +
.../executor/codex_websockets_executor.go | 7 +-
.../executor/github_copilot_executor.go | 38 ----
.../runtime/executor/kiro_executor.go | 167 +++++++++++-------
.../thinking/provider/openai/apply.go | 83 ++++++---
.../claude_openai-responses_request.go | 9 +
.../claude_openai-responses_request_test.go | 69 ++++++++
.../chat-completions/codex_openai_response.go | 32 ++--
.../kiro/claude/kiro_claude_stream_parser.go | 2 +-
.../translator/kiro/claude/kiro_websearch.go | 4 +-
.../kiro/openai/kiro_openai_request.go | 4 -
.../openai_openai-responses_request.go | 7 +-
.../openai_openai-responses_request_test.go | 26 +++
pkg/llmproxy/tui/dashboard.go | 18 +-
pkg/llmproxy/tui/usage_tab.go | 6 +-
pkg/llmproxy/usage/metrics.go | 11 +-
sdk/access/manager_test.go | 6 +-
sdk/api/handlers/handlers.go | 25 ++-
sdk/api/handlers/handlers_metadata_test.go | 6 +-
.../openai/openai_responses_compact_test.go | 65 +++++++
.../openai/openai_responses_handlers.go | 64 +++++--
37 files changed, 592 insertions(+), 326 deletions(-)
diff --git a/.github/workflows/pr-test-build.yml b/.github/workflows/pr-test-build.yml
index c0f6630a3f..12c38f1cae 100644
--- a/.github/workflows/pr-test-build.yml
+++ b/.github/workflows/pr-test-build.yml
@@ -70,11 +70,14 @@ jobs:
run: |
mkdir -p target
go test -json ./... > target/test-baseline.json
+ go test ./... > target/test-baseline.txt
- name: Upload baseline artifact
uses: actions/upload-artifact@v4
with:
name: go-test-baseline
- path: target/test-baseline.json
+ path: |
+ target/test-baseline.json
+ target/test-baseline.txt
if-no-files-found: error
fmt-check:
diff --git a/Taskfile.yml b/Taskfile.yml
index b1c4c612f2..67172b0e4d 100644
--- a/Taskfile.yml
+++ b/Taskfile.yml
@@ -42,6 +42,13 @@ tasks:
command -v go >/dev/null 2>&1 || { echo "[FAIL] go is required"; exit 1; }
command -v task >/dev/null 2>&1 || { echo "[FAIL] task is required"; exit 1; }
command -v git >/dev/null 2>&1 || { echo "[FAIL] git is required"; exit 1; }
+ if [ -f Makefile ]; then
+ command -v make >/dev/null 2>&1 || { echo "[FAIL] make is required for Makefile-based checks"; exit 1; }
+ make -n >/dev/null 2>&1 || { echo "[FAIL] make -n failed; check Makefile syntax/targets"; exit 1; }
+ else
+ echo "[INFO] Makefile not present; skipping make checks"
+ fi
+ task -l >/dev/null 2>&1 || { echo "[FAIL] task -l failed"; exit 1; }
go version >/dev/null
echo "[OK] preflight checks passed"
@@ -70,10 +77,11 @@ tasks:
- go test -tags integration ./... {{.CLI_ARGS}}
test:baseline:
- desc: "Run full test suite and persist JSON baseline artifacts"
+ desc: "Run full test suite and persist JSON + text baseline artifacts"
cmds:
- mkdir -p {{.TEST_REPORT_DIR}}
- go test -json ./... > "{{.TEST_REPORT_DIR}}/test-baseline.json"
+ - go test ./... > "{{.TEST_REPORT_DIR}}/test-baseline.txt"
# -- Testing & Quality --
test:
diff --git a/cmd/boardsync/main.go b/cmd/boardsync/main.go
index 75eda8e226..bfe69e7a17 100644
--- a/cmd/boardsync/main.go
+++ b/cmd/boardsync/main.go
@@ -6,6 +6,8 @@ import (
"encoding/json"
"errors"
"fmt"
+ "golang.org/x/text/cases"
+ "golang.org/x/text/language"
"os"
"os/exec"
"path/filepath"
@@ -526,7 +528,7 @@ func writeBoardMarkdown(path string, board []boardItem, bj boardJSON) error {
}
buf.WriteString("\n## Distribution\n")
for _, sec := range []string{"priority", "wave", "effort", "theme"} {
- buf.WriteString(fmt.Sprintf("### %s\n", strings.Title(sec)))
+ buf.WriteString(fmt.Sprintf("### %s\n", cases.Title(language.Und).String(sec)))
type kv struct {
K string
V int
diff --git a/cmd/codegen/main.go b/cmd/codegen/main.go
index 7e65aecd98..57d1ce26ca 100644
--- a/cmd/codegen/main.go
+++ b/cmd/codegen/main.go
@@ -5,10 +5,11 @@ import (
"encoding/json"
"fmt"
"go/format"
+ "golang.org/x/text/cases"
+ "golang.org/x/text/language"
"log"
"os"
"path/filepath"
- "strings"
"text/template"
)
@@ -172,7 +173,7 @@ func main() {
return p.GoName
}
}
- return strings.Title(name)
+ return cases.Title(language.Und).String(name)
},
}
diff --git a/cmd/server/main.go b/cmd/server/main.go
index 8cca52f17b..4f813e06ed 100644
--- a/cmd/server/main.go
+++ b/cmd/server/main.go
@@ -562,8 +562,6 @@ func main() {
cmd.DoKiroImport(cfg, options)
} else if rooLogin {
cmd.DoRooLogin(cfg, options)
- } else if kiloLogin {
- cmd.DoKiloLogin(cfg, options)
} else if minimaxLogin {
cmd.DoMinimaxLogin(cfg, options)
} else if deepseekLogin {
diff --git a/docs/planning/README.md b/docs/planning/README.md
index 443c97ad89..0351df68b9 100644
--- a/docs/planning/README.md
+++ b/docs/planning/README.md
@@ -17,6 +17,7 @@
- `task quality:staticcheck` — Optional staticcheck run (`ENABLE_STATICCHECK=1`).
- `task quality:release-lint` — Validate release-facing config examples and docs snippets.
- `task test:unit` / `task test:integration` — Tag-filtered package tests.
+- `task test:baseline` — Run `go test` with JSON and plain-text baseline output (`target/test-baseline.json` and `target/test-baseline.txt`).
- `task test` — Full test suite.
- `task verify:all` — Unified local audit entrypoint (`fmt:check`, `test:smoke`, `lint:changed`, `release-lint`, `vet`, `staticcheck`, `test`).
- `task hooks:install` — Install local pre-commit checks.
@@ -34,4 +35,6 @@
## CI alignment notes
- `preflight` is shared by all test/quality tasks and fails fast on missing `go`, `task`, or `git`.
+- `preflight` also validates `task -l`, and if a `Makefile` exists validates `make -n` for build-task sanity.
- `task` now includes `cache:unlock` in test gates to avoid stale lock contention.
+- CI baseline artifacts are now emitted as both JSON and text for auditability.
diff --git a/docs/planning/coverage-gaps.md b/docs/planning/coverage-gaps.md
index bbed675775..b088a23ce9 100644
--- a/docs/planning/coverage-gaps.md
+++ b/docs/planning/coverage-gaps.md
@@ -29,8 +29,13 @@ Date: 2026-02-22
- Added command-label translation tests for `/message` aliases (`ask`, `exec`, `max`, `continue`, `resume`).
- Added `/message` idempotency replay test that asserts duplicate key reuse and no duplicate in-memory message append.
- Added idempotency negative test for different `Idempotency-Key` values and in-flight message-copy isolation for `/messages`.
- - Added task-level quality gates (`quality:ci`, `lint:changed` with PR ranges, `test:smoke`) and workflow/required-check wiring for CI pre-merge gates.
- - Added `quality:release-lint` and required-check `quality-staged-check` in CI; added docs/code snippet parse coverage for release lint.
+ - Added task-level quality gates (`quality:ci`, `lint:changed` with PR ranges, `test:smoke`) and workflow/required-check wiring for CI pre-merge gates.
+ - Added `quality:release-lint` and required-check `quality-staged-check` in CI; added docs/code snippet parse coverage for release lint.
+ - Added thinking validation coverage for level rebound and budget boundary clamping in `pkg/llmproxy/thinking/validate_test.go`:
+ - unsupported/rebound level handling and deterministic clamping to supported levels,
+ - min/max/zero/negative budget normalization for non-strict suffix-paths,
+ - explicit strict out-of-range rejection (`ErrBudgetOutOfRange`) when same-provider budget requests are too high.
+ - auto-mode behavior for dynamic-capable vs non-dynamic models (`ModeAuto` midpoint fallback and preservation paths).
- Remaining: complete route-namespace matrix for command-label translation across orchestrator-facing surfaces beyond `/message`, and status/event replay windows.
- Integration:
- Remaining: end-to-end provider cheapest-path smoke for live process orchestration against every provider auth mode. Unit-level smoke now covers:
diff --git a/docs/planning/index.md b/docs/planning/index.md
index 568e206551..b6f0a87d54 100644
--- a/docs/planning/index.md
+++ b/docs/planning/index.md
@@ -18,6 +18,13 @@ This section tracks source-linked execution boards and import artifacts.
- [Sprint Planning README](./README.md)
- [Coder + Adjacent Research Inventory (300 repos)](./coder-org-plus-relative-300-inventory-2026-02-22.md)
- [AgentAPI/cliproxy Integration Research](./agentapi-cliproxy-integration-research-2026-02-22.md)
+- [Coverage Gaps Register](./coverage-gaps.md)
+
+## Evidence Section
+
+- [Sprint Baseline Commands](./README.md)
+- [CI Baseline Artifact](../.github/workflows/pr-test-build.yml#L69)
+- [Quality Baseline Task](../Taskfile.yml#L72)
## GitHub Project Import
diff --git a/pkg/llmproxy/api/modules/amp/proxy.go b/pkg/llmproxy/api/modules/amp/proxy.go
index b20724684a..03cad07320 100644
--- a/pkg/llmproxy/api/modules/amp/proxy.go
+++ b/pkg/llmproxy/api/modules/amp/proxy.go
@@ -63,25 +63,22 @@ func createReverseProxy(upstreamURL string, secretSource SecretSource) (*httputi
}
proxy := httputil.NewSingleHostReverseProxy(parsed)
- originalDirector := proxy.Director
-
// Modify outgoing requests to inject API key and fix routing
- proxy.Director = func(req *http.Request) {
- originalDirector(req)
- req.Host = parsed.Host
+ proxy.Rewrite = func(r *httputil.ProxyRequest) {
+ r.Out.Host = parsed.Host
// Remove client's Authorization header - it was only used for CLI Proxy API authentication
// We will set our own Authorization using the configured upstream-api-key
- req.Header.Del("Authorization")
- req.Header.Del("X-Api-Key")
- req.Header.Del("X-Goog-Api-Key")
+ r.Out.Header.Del("Authorization")
+ r.Out.Header.Del("X-Api-Key")
+ r.Out.Header.Del("X-Goog-Api-Key")
// Remove query-based credentials if they match the authenticated client API key.
// This prevents leaking client auth material to the Amp upstream while avoiding
// breaking unrelated upstream query parameters.
- clientKey := getClientAPIKeyFromContext(req.Context())
- removeQueryValuesMatching(req, "key", clientKey)
- removeQueryValuesMatching(req, "auth_token", clientKey)
+ clientKey := getClientAPIKeyFromContext(r.Out.Context())
+ removeQueryValuesMatching(r.Out, "key", clientKey)
+ removeQueryValuesMatching(r.Out, "auth_token", clientKey)
// Preserve correlation headers for debugging
@@ -90,9 +87,9 @@ func createReverseProxy(upstreamURL string, secretSource SecretSource) (*httputi
// including 1M context window (context-1m-2025-08-07)
// Inject API key from secret source (only uses upstream-api-key from config)
- if key, err := secretSource.Get(req.Context()); err == nil && key != "" {
- req.Header.Set("X-Api-Key", key)
- req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", key))
+ if key, err := secretSource.Get(r.Out.Context()); err == nil && key != "" {
+ r.Out.Header.Set("X-Api-Key", key)
+ r.Out.Header.Set("Authorization", fmt.Sprintf("Bearer %s", key))
} else if err != nil {
log.Warnf("amp secret source error (continuing without auth): %v", err)
}
diff --git a/pkg/llmproxy/api/server_test.go b/pkg/llmproxy/api/server_test.go
index 04b923bb58..bf9f40bd1d 100644
--- a/pkg/llmproxy/api/server_test.go
+++ b/pkg/llmproxy/api/server_test.go
@@ -3,7 +3,6 @@ package api
import (
"context"
"encoding/json"
- "fmt"
"net/http"
"net/http/httptest"
"sort"
diff --git a/pkg/llmproxy/auth/kiro/jitter_test.go b/pkg/llmproxy/auth/kiro/jitter_test.go
index c66a16f21b..7765a7b27a 100644
--- a/pkg/llmproxy/auth/kiro/jitter_test.go
+++ b/pkg/llmproxy/auth/kiro/jitter_test.go
@@ -29,8 +29,9 @@ func TestJitterDelay(t *testing.T) {
}
}
- if JitterDelay(base, -1) == 0 {
- // Wait, JitterDelay returns 0 if result < 0, but here jitterPercent -1 means default
+ d := JitterDelay(base, -1)
+ if d < 0 {
+ t.Errorf("jitterPercent -1 should use default, got %v", d)
}
}
@@ -51,9 +52,7 @@ func TestHumanLikeDelay(t *testing.T) {
// Rapid consecutive
d2 := HumanLikeDelay()
if d2 < ShortDelayMin || d2 > ShortDelayMax {
- // This might fail if the test runs slowly, but usually it's fast enough.
- // Actually, HumanLikeDelay sets lastRequestTime = now.
- // So the second call will have a very small timeSinceLastRequest.
+ t.Errorf("rapid consecutive delay %v out of range [%v, %v]", d2, ShortDelayMin, ShortDelayMax)
}
}
diff --git a/pkg/llmproxy/executor/claude_executor_test.go b/pkg/llmproxy/executor/claude_executor_test.go
index dd29ed8ad7..c5e5bdaca5 100644
--- a/pkg/llmproxy/executor/claude_executor_test.go
+++ b/pkg/llmproxy/executor/claude_executor_test.go
@@ -8,7 +8,7 @@ import (
"net/http/httptest"
"testing"
- "github.com/router-for-me/CLIProxyAPI/v6/internal/config"
+ "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/config"
cliproxyauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
cliproxyexecutor "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/executor"
sdktranslator "github.com/router-for-me/CLIProxyAPI/v6/sdk/translator"
diff --git a/pkg/llmproxy/executor/codex_websockets_executor.go b/pkg/llmproxy/executor/codex_websockets_executor.go
index 07dd65ca23..a028bb39b9 100644
--- a/pkg/llmproxy/executor/codex_websockets_executor.go
+++ b/pkg/llmproxy/executor/codex_websockets_executor.go
@@ -186,7 +186,7 @@ func (e *CodexWebsocketsExecutor) Execute(ctx context.Context, auth *cliproxyaut
ctx = context.Background()
}
if opts.Alt == "responses/compact" {
- return e.CodexExecutor.executeCompact(ctx, auth, req, opts)
+ return e.executeCompact(ctx, auth, req, opts)
}
baseModel := thinking.ParseSuffix(req.Model).ModelName
@@ -851,7 +851,8 @@ func applyCodexPromptCacheHeaders(from sdktranslator.Format, req cliproxyexecuto
}
var cache codexCache
- if from == "claude" {
+ switch from {
+ case "claude":
userIDResult := gjson.GetBytes(req.Payload, "metadata.user_id")
if userIDResult.Exists() {
key := fmt.Sprintf("%s-%s", req.Model, userIDResult.String())
@@ -865,7 +866,7 @@ func applyCodexPromptCacheHeaders(from sdktranslator.Format, req cliproxyexecuto
setCodexCache(key, cache)
}
}
- } else if from == "openai-response" {
+ case "openai-response":
if promptCacheKey := gjson.GetBytes(req.Payload, "prompt_cache_key"); promptCacheKey.Exists() {
cache.ID = promptCacheKey.String()
}
diff --git a/pkg/llmproxy/executor/github_copilot_executor.go b/pkg/llmproxy/executor/github_copilot_executor.go
index 50a12b243d..fcdf907a66 100644
--- a/pkg/llmproxy/executor/github_copilot_executor.go
+++ b/pkg/llmproxy/executor/github_copilot_executor.go
@@ -867,44 +867,6 @@ func normalizeGitHubCopilotResponsesTools(body []byte) []byte {
return body
}
-func collectTextFromNode(node gjson.Result) string {
- if !node.Exists() {
- return ""
- }
- if node.Type == gjson.String {
- return node.String()
- }
- if node.IsArray() {
- var parts []string
- for _, item := range node.Array() {
- if item.Type == gjson.String {
- if text := item.String(); text != "" {
- parts = append(parts, text)
- }
- continue
- }
- if text := item.Get("text").String(); text != "" {
- parts = append(parts, text)
- continue
- }
- if nested := collectTextFromNode(item.Get("content")); nested != "" {
- parts = append(parts, nested)
- }
- }
- return strings.Join(parts, "\n")
- }
- if node.Type == gjson.JSON {
- if text := node.Get("text").String(); text != "" {
- return text
- }
- if nested := collectTextFromNode(node.Get("content")); nested != "" {
- return nested
- }
- return node.Raw
- }
- return node.String()
-}
-
type githubCopilotResponsesStreamToolState struct {
Index int
ID string
diff --git a/pkg/llmproxy/executor/kiro_executor.go b/pkg/llmproxy/executor/kiro_executor.go
index 40a1315634..991b7ce6a8 100644
--- a/pkg/llmproxy/executor/kiro_executor.go
+++ b/pkg/llmproxy/executor/kiro_executor.go
@@ -709,8 +709,10 @@ func (e *KiroExecutor) Execute(ctx context.Context, auth *cliproxyauth.Auth, req
// - CodeWhisperer endpoint (AI_EDITOR origin) uses Kiro IDE quota
// Also supports multi-endpoint fallback similar to Antigravity implementation.
// tokenKey is used for rate limiting and cooldown tracking.
-func (e *KiroExecutor) executeWithRetry(ctx context.Context, auth *cliproxyauth.Auth, req cliproxyexecutor.Request, opts cliproxyexecutor.Options, accessToken, profileArn string, kiroPayload, body []byte, from, to sdktranslator.Format, reporter *usageReporter, currentOrigin, kiroModelID string, isAgentic, isChatOnly bool, tokenKey string) (cliproxyexecutor.Response, error) {
+func (e *KiroExecutor) executeWithRetry(ctx context.Context, auth *cliproxyauth.Auth, req cliproxyexecutor.Request, opts cliproxyexecutor.Options, accessToken, profileArn string, body []byte, from, to sdktranslator.Format, reporter *usageReporter, kiroModelID string, isAgentic, isChatOnly bool, tokenKey string) (cliproxyexecutor.Response, error) {
var resp cliproxyexecutor.Response
+ var kiroPayload []byte
+ var currentOrigin string
maxRetries := 2 // Allow retries for token refresh + endpoint fallback
rateLimiter := kiroauth.GetGlobalRateLimiter()
cooldownMgr := kiroauth.GetGlobalCooldownManager()
@@ -1145,7 +1147,9 @@ func (e *KiroExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth.Aut
// - CodeWhisperer endpoint (AI_EDITOR origin) uses Kiro IDE quota
// Also supports multi-endpoint fallback similar to Antigravity implementation.
// tokenKey is used for rate limiting and cooldown tracking.
-func (e *KiroExecutor) executeStreamWithRetry(ctx context.Context, auth *cliproxyauth.Auth, req cliproxyexecutor.Request, opts cliproxyexecutor.Options, accessToken, profileArn string, kiroPayload, body []byte, from sdktranslator.Format, reporter *usageReporter, currentOrigin, kiroModelID string, isAgentic, isChatOnly bool, tokenKey string) (<-chan cliproxyexecutor.StreamChunk, error) {
+func (e *KiroExecutor) executeStreamWithRetry(ctx context.Context, auth *cliproxyauth.Auth, req cliproxyexecutor.Request, opts cliproxyexecutor.Options, accessToken, profileArn string, body []byte, from sdktranslator.Format, reporter *usageReporter, kiroModelID string, isAgentic, isChatOnly bool, tokenKey string) (<-chan cliproxyexecutor.StreamChunk, error) {
+ var kiroPayload []byte
+ var currentOrigin string
maxRetries := 2 // Allow retries for token refresh + endpoint fallback
rateLimiter := kiroauth.GetGlobalRateLimiter()
cooldownMgr := kiroauth.GetGlobalCooldownManager()
@@ -2683,66 +2687,6 @@ func (e *KiroExecutor) streamToChannel(ctx context.Context, body io.Reader, out
log.Warnf("kiro: streamToChannel received invalidStateEvent: %s, continuing", errMsg)
continue
- default:
- // Check for upstream usage events from Kiro API
- // Format: {"unit":"credit","unitPlural":"credits","usage":1.458}
- if unit, ok := event["unit"].(string); ok && unit == "credit" {
- if usage, ok := event["usage"].(float64); ok {
- upstreamCreditUsage = usage
- hasUpstreamUsage = true
- log.Debugf("kiro: received upstream credit usage: %.4f", upstreamCreditUsage)
- }
- }
- // Format: {"contextUsagePercentage":78.56}
- if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
- upstreamContextPercentage = ctxPct
- log.Debugf("kiro: received upstream context usage: %.2f%%", upstreamContextPercentage)
- }
-
- // Check for token counts in unknown events
- if inputTokens, ok := event["inputTokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- hasUpstreamUsage = true
- log.Debugf("kiro: streamToChannel found inputTokens in event %s: %d", eventType, totalUsage.InputTokens)
- }
- if outputTokens, ok := event["outputTokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- log.Debugf("kiro: streamToChannel found outputTokens in event %s: %d", eventType, totalUsage.OutputTokens)
- }
- if totalTokens, ok := event["totalTokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- log.Debugf("kiro: streamToChannel found totalTokens in event %s: %d", eventType, totalUsage.TotalTokens)
- }
-
- // Check for usage object in unknown events (OpenAI/Claude format)
- if usageObj, ok := event["usage"].(map[string]interface{}); ok {
- if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- hasUpstreamUsage = true
- } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- hasUpstreamUsage = true
- }
- if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- }
- if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- }
- log.Debugf("kiro: streamToChannel found usage object in event %s: input=%d, output=%d, total=%d",
- eventType, totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
- }
-
- // Log unknown event types for debugging (to discover new event formats)
- if eventType != "" {
- log.Debugf("kiro: streamToChannel unknown event type: %s, payload: %s", eventType, string(payload))
- }
-
case "assistantResponseEvent":
var contentDelta string
var toolUses []map[string]interface{}
@@ -3421,7 +3365,68 @@ func (e *KiroExecutor) streamToChannel(ctx context.Context, body io.Reader, out
}
log.Debugf("kiro: streamToChannel found metricsEvent: input=%d, output=%d",
totalUsage.InputTokens, totalUsage.OutputTokens)
+
}
+ default:
+ // Check for upstream usage events from Kiro API
+ // Format: {"unit":"credit","unitPlural":"credits","usage":1.458}
+ if unit, ok := event["unit"].(string); ok && unit == "credit" {
+ if usage, ok := event["usage"].(float64); ok {
+ upstreamCreditUsage = usage
+ hasUpstreamUsage = true
+ log.Debugf("kiro: received upstream credit usage: %.4f", upstreamCreditUsage)
+ }
+ }
+ // Format: {"contextUsagePercentage":78.56}
+ if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
+ upstreamContextPercentage = ctxPct
+ log.Debugf("kiro: received upstream context usage: %.2f%%", upstreamContextPercentage)
+ }
+
+ // Check for token counts in unknown events
+ if inputTokens, ok := event["inputTokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ hasUpstreamUsage = true
+ log.Debugf("kiro: streamToChannel found inputTokens in event %s: %d", eventType, totalUsage.InputTokens)
+ }
+ if outputTokens, ok := event["outputTokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ log.Debugf("kiro: streamToChannel found outputTokens in event %s: %d", eventType, totalUsage.OutputTokens)
+ }
+ if totalTokens, ok := event["totalTokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ log.Debugf("kiro: streamToChannel found totalTokens in event %s: %d", eventType, totalUsage.TotalTokens)
+ }
+
+ // Check for usage object in unknown events (OpenAI/Claude format)
+ if usageObj, ok := event["usage"].(map[string]interface{}); ok {
+ if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ hasUpstreamUsage = true
+ } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ hasUpstreamUsage = true
+ }
+ if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ }
+ if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ }
+ log.Debugf("kiro: streamToChannel found usage object in event %s: input=%d, output=%d, total=%d",
+ eventType, totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
+ }
+
+ // Log unknown event types for debugging (to discover new event formats)
+ if eventType != "" {
+ log.Debugf("kiro: streamToChannel unknown event type: %s, payload: %s", eventType, string(payload))
+ }
+
}
// Check nested usage event
@@ -4409,7 +4414,7 @@ func (e *KiroExecutor) handleWebSearchStream(
kiroChunks, kiroErr := e.callKiroAndBuffer(ctx, auth, modifiedReq, opts, accessToken, profileArn)
if kiroErr != nil {
log.Warnf("kiro/websearch: Kiro API failed at iteration %d: %v", iteration+1, kiroErr)
- wsErr = fmt.Errorf("Kiro API failed at iteration %d: %w", iteration+1, kiroErr)
+ wsErr = fmt.Errorf("kiro API failed at iteration %d: %w", iteration+1, kiroErr)
e.sendFallbackText(ctx, out, contentBlockIndex, currentQuery, searchResults)
return
}
diff --git a/pkg/llmproxy/registry/model_definitions.go b/pkg/llmproxy/registry/model_definitions.go
index ccb97a73fa..e7126eedb8 100644
--- a/pkg/llmproxy/registry/model_definitions.go
+++ b/pkg/llmproxy/registry/model_definitions.go
@@ -32,6 +32,8 @@ import (
func GetStaticModelDefinitionsByChannel(channel string) []*ModelInfo {
key := strings.ToLower(strings.TrimSpace(channel))
switch key {
+ case "openai":
+ return GetOpenAIModels()
case "claude":
return GetClaudeModels()
case "gemini":
diff --git a/pkg/llmproxy/registry/model_registry.go b/pkg/llmproxy/registry/model_registry.go
index b21e66e3bb..1a60f6cd40 100644
--- a/pkg/llmproxy/registry/model_registry.go
+++ b/pkg/llmproxy/registry/model_registry.go
@@ -751,6 +751,15 @@ func (r *ModelRegistry) GetAvailableModels(handlerType string) []map[string]any
}
}
+ if len(models) == 0 && strings.EqualFold(handlerType, "openai") {
+ for _, model := range GetStaticModelDefinitionsByChannel("openai") {
+ modelMap := r.convertModelToMap(model, handlerType)
+ if modelMap != nil {
+ models = append(models, modelMap)
+ }
+ }
+ }
+
return models
}
diff --git a/pkg/llmproxy/runtime/executor/codex_websockets_executor.go b/pkg/llmproxy/runtime/executor/codex_websockets_executor.go
index 07dd65ca23..a028bb39b9 100644
--- a/pkg/llmproxy/runtime/executor/codex_websockets_executor.go
+++ b/pkg/llmproxy/runtime/executor/codex_websockets_executor.go
@@ -186,7 +186,7 @@ func (e *CodexWebsocketsExecutor) Execute(ctx context.Context, auth *cliproxyaut
ctx = context.Background()
}
if opts.Alt == "responses/compact" {
- return e.CodexExecutor.executeCompact(ctx, auth, req, opts)
+ return e.executeCompact(ctx, auth, req, opts)
}
baseModel := thinking.ParseSuffix(req.Model).ModelName
@@ -851,7 +851,8 @@ func applyCodexPromptCacheHeaders(from sdktranslator.Format, req cliproxyexecuto
}
var cache codexCache
- if from == "claude" {
+ switch from {
+ case "claude":
userIDResult := gjson.GetBytes(req.Payload, "metadata.user_id")
if userIDResult.Exists() {
key := fmt.Sprintf("%s-%s", req.Model, userIDResult.String())
@@ -865,7 +866,7 @@ func applyCodexPromptCacheHeaders(from sdktranslator.Format, req cliproxyexecuto
setCodexCache(key, cache)
}
}
- } else if from == "openai-response" {
+ case "openai-response":
if promptCacheKey := gjson.GetBytes(req.Payload, "prompt_cache_key"); promptCacheKey.Exists() {
cache.ID = promptCacheKey.String()
}
diff --git a/pkg/llmproxy/runtime/executor/github_copilot_executor.go b/pkg/llmproxy/runtime/executor/github_copilot_executor.go
index f990383ba1..1a73b4931c 100644
--- a/pkg/llmproxy/runtime/executor/github_copilot_executor.go
+++ b/pkg/llmproxy/runtime/executor/github_copilot_executor.go
@@ -867,44 +867,6 @@ func normalizeGitHubCopilotResponsesTools(body []byte) []byte {
return body
}
-func collectTextFromNode(node gjson.Result) string {
- if !node.Exists() {
- return ""
- }
- if node.Type == gjson.String {
- return node.String()
- }
- if node.IsArray() {
- var parts []string
- for _, item := range node.Array() {
- if item.Type == gjson.String {
- if text := item.String(); text != "" {
- parts = append(parts, text)
- }
- continue
- }
- if text := item.Get("text").String(); text != "" {
- parts = append(parts, text)
- continue
- }
- if nested := collectTextFromNode(item.Get("content")); nested != "" {
- parts = append(parts, nested)
- }
- }
- return strings.Join(parts, "\n")
- }
- if node.Type == gjson.JSON {
- if text := node.Get("text").String(); text != "" {
- return text
- }
- if nested := collectTextFromNode(node.Get("content")); nested != "" {
- return nested
- }
- return node.Raw
- }
- return node.String()
-}
-
type githubCopilotResponsesStreamToolState struct {
Index int
ID string
diff --git a/pkg/llmproxy/runtime/executor/kiro_executor.go b/pkg/llmproxy/runtime/executor/kiro_executor.go
index 3e274618df..a6be515d68 100644
--- a/pkg/llmproxy/runtime/executor/kiro_executor.go
+++ b/pkg/llmproxy/runtime/executor/kiro_executor.go
@@ -709,8 +709,10 @@ func (e *KiroExecutor) Execute(ctx context.Context, auth *cliproxyauth.Auth, req
// - CodeWhisperer endpoint (AI_EDITOR origin) uses Kiro IDE quota
// Also supports multi-endpoint fallback similar to Antigravity implementation.
// tokenKey is used for rate limiting and cooldown tracking.
-func (e *KiroExecutor) executeWithRetry(ctx context.Context, auth *cliproxyauth.Auth, req cliproxyexecutor.Request, opts cliproxyexecutor.Options, accessToken, profileArn string, kiroPayload, body []byte, from, to sdktranslator.Format, reporter *usageReporter, currentOrigin, kiroModelID string, isAgentic, isChatOnly bool, tokenKey string) (cliproxyexecutor.Response, error) {
+func (e *KiroExecutor) executeWithRetry(ctx context.Context, auth *cliproxyauth.Auth, req cliproxyexecutor.Request, opts cliproxyexecutor.Options, accessToken, profileArn string, body []byte, from, to sdktranslator.Format, reporter *usageReporter, kiroModelID string, isAgentic, isChatOnly bool, tokenKey string) (cliproxyexecutor.Response, error) {
var resp cliproxyexecutor.Response
+ var kiroPayload []byte
+ var currentOrigin string
maxRetries := 2 // Allow retries for token refresh + endpoint fallback
rateLimiter := kiroauth.GetGlobalRateLimiter()
cooldownMgr := kiroauth.GetGlobalCooldownManager()
@@ -1145,7 +1147,9 @@ func (e *KiroExecutor) ExecuteStream(ctx context.Context, auth *cliproxyauth.Aut
// - CodeWhisperer endpoint (AI_EDITOR origin) uses Kiro IDE quota
// Also supports multi-endpoint fallback similar to Antigravity implementation.
// tokenKey is used for rate limiting and cooldown tracking.
-func (e *KiroExecutor) executeStreamWithRetry(ctx context.Context, auth *cliproxyauth.Auth, req cliproxyexecutor.Request, opts cliproxyexecutor.Options, accessToken, profileArn string, kiroPayload, body []byte, from sdktranslator.Format, reporter *usageReporter, currentOrigin, kiroModelID string, isAgentic, isChatOnly bool, tokenKey string) (<-chan cliproxyexecutor.StreamChunk, error) {
+func (e *KiroExecutor) executeStreamWithRetry(ctx context.Context, auth *cliproxyauth.Auth, req cliproxyexecutor.Request, opts cliproxyexecutor.Options, accessToken, profileArn string, body []byte, from sdktranslator.Format, reporter *usageReporter, kiroModelID string, isAgentic, isChatOnly bool, tokenKey string) (<-chan cliproxyexecutor.StreamChunk, error) {
+ var kiroPayload []byte
+ var currentOrigin string
maxRetries := 2 // Allow retries for token refresh + endpoint fallback
rateLimiter := kiroauth.GetGlobalRateLimiter()
cooldownMgr := kiroauth.GetGlobalCooldownManager()
@@ -1518,13 +1522,41 @@ func determineAgenticMode(model string) (isAgentic, isChatOnly bool) {
return isAgentic, isChatOnly
}
-// getEffectiveProfileArn determines if profileArn should be included based on auth method.
-// profileArn is only needed for social auth (Google OAuth), not for AWS SSO OIDC (Builder ID/IDC).
+// getEffectiveProfileArnWithWarning determines if profileArn should be included based on auth method,
+// and logs a warning if profileArn is missing for non-builder-id auth.
+// This consolidates the auth_method check that was previously done separately.
+//
+// AWS SSO OIDC (Builder ID/IDC) users don't need profileArn - sending it causes 403 errors.
+// Only Kiro Desktop (social auth like Google/GitHub) users need profileArn.
//
// Detection logic (matching kiro-openai-gateway):
// 1. Check auth_method field: "builder-id" or "idc"
// 2. Check auth_type field: "aws_sso_oidc" (from kiro-cli tokens)
// 3. Check for client_id + client_secret presence (AWS SSO OIDC signature)
+func getEffectiveProfileArnWithWarning(auth *cliproxyauth.Auth, profileArn string) string {
+ if auth != nil && auth.Metadata != nil {
+ // Check 1: auth_method field (from CLIProxyAPI tokens)
+ if authMethod, ok := auth.Metadata["auth_method"].(string); ok && (authMethod == "builder-id" || authMethod == "idc") {
+ return ""
+ }
+ // Check 2: auth_type field (from kiro-cli tokens)
+ if authType, ok := auth.Metadata["auth_type"].(string); ok && authType == "aws_sso_oidc" {
+ return ""
+ }
+ // Check 3: client_id + client_secret presence (AWS SSO OIDC signature, like kiro-openai-gateway)
+ _, hasClientID := auth.Metadata["client_id"].(string)
+ _, hasClientSecret := auth.Metadata["client_secret"].(string)
+ if hasClientID && hasClientSecret {
+ return ""
+ }
+ }
+ // For social auth (Kiro Desktop), profileArn is required.
+ if profileArn == "" {
+ log.Warnf("kiro: profile ARN not found in auth, API calls may fail")
+ }
+ return profileArn
+}
+
func (e *KiroExecutor) mapModelToKiro(model string) string {
modelMap := map[string]string{
// Amazon Q format (amazonq- prefix) - same API as Kiro
@@ -2643,66 +2675,6 @@ func (e *KiroExecutor) streamToChannel(ctx context.Context, body io.Reader, out
log.Warnf("kiro: streamToChannel received invalidStateEvent: %s, continuing", errMsg)
continue
- default:
- // Check for upstream usage events from Kiro API
- // Format: {"unit":"credit","unitPlural":"credits","usage":1.458}
- if unit, ok := event["unit"].(string); ok && unit == "credit" {
- if usage, ok := event["usage"].(float64); ok {
- upstreamCreditUsage = usage
- hasUpstreamUsage = true
- log.Debugf("kiro: received upstream credit usage: %.4f", upstreamCreditUsage)
- }
- }
- // Format: {"contextUsagePercentage":78.56}
- if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
- upstreamContextPercentage = ctxPct
- log.Debugf("kiro: received upstream context usage: %.2f%%", upstreamContextPercentage)
- }
-
- // Check for token counts in unknown events
- if inputTokens, ok := event["inputTokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- hasUpstreamUsage = true
- log.Debugf("kiro: streamToChannel found inputTokens in event %s: %d", eventType, totalUsage.InputTokens)
- }
- if outputTokens, ok := event["outputTokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- log.Debugf("kiro: streamToChannel found outputTokens in event %s: %d", eventType, totalUsage.OutputTokens)
- }
- if totalTokens, ok := event["totalTokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- log.Debugf("kiro: streamToChannel found totalTokens in event %s: %d", eventType, totalUsage.TotalTokens)
- }
-
- // Check for usage object in unknown events (OpenAI/Claude format)
- if usageObj, ok := event["usage"].(map[string]interface{}); ok {
- if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- hasUpstreamUsage = true
- } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
- totalUsage.InputTokens = int64(inputTokens)
- hasUpstreamUsage = true
- }
- if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
- totalUsage.OutputTokens = int64(outputTokens)
- hasUpstreamUsage = true
- }
- if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
- totalUsage.TotalTokens = int64(totalTokens)
- }
- log.Debugf("kiro: streamToChannel found usage object in event %s: input=%d, output=%d, total=%d",
- eventType, totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
- }
-
- // Log unknown event types for debugging (to discover new event formats)
- if eventType != "" {
- log.Debugf("kiro: streamToChannel unknown event type: %s, payload: %s", eventType, string(payload))
- }
-
case "assistantResponseEvent":
var contentDelta string
var toolUses []map[string]interface{}
@@ -3355,7 +3327,68 @@ func (e *KiroExecutor) streamToChannel(ctx context.Context, body io.Reader, out
}
log.Debugf("kiro: streamToChannel found metricsEvent: input=%d, output=%d",
totalUsage.InputTokens, totalUsage.OutputTokens)
+
}
+ default:
+ // Check for upstream usage events from Kiro API
+ // Format: {"unit":"credit","unitPlural":"credits","usage":1.458}
+ if unit, ok := event["unit"].(string); ok && unit == "credit" {
+ if usage, ok := event["usage"].(float64); ok {
+ upstreamCreditUsage = usage
+ hasUpstreamUsage = true
+ log.Debugf("kiro: received upstream credit usage: %.4f", upstreamCreditUsage)
+ }
+ }
+ // Format: {"contextUsagePercentage":78.56}
+ if ctxPct, ok := event["contextUsagePercentage"].(float64); ok {
+ upstreamContextPercentage = ctxPct
+ log.Debugf("kiro: received upstream context usage: %.2f%%", upstreamContextPercentage)
+ }
+
+ // Check for token counts in unknown events
+ if inputTokens, ok := event["inputTokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ hasUpstreamUsage = true
+ log.Debugf("kiro: streamToChannel found inputTokens in event %s: %d", eventType, totalUsage.InputTokens)
+ }
+ if outputTokens, ok := event["outputTokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ log.Debugf("kiro: streamToChannel found outputTokens in event %s: %d", eventType, totalUsage.OutputTokens)
+ }
+ if totalTokens, ok := event["totalTokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ log.Debugf("kiro: streamToChannel found totalTokens in event %s: %d", eventType, totalUsage.TotalTokens)
+ }
+
+ // Check for usage object in unknown events (OpenAI/Claude format)
+ if usageObj, ok := event["usage"].(map[string]interface{}); ok {
+ if inputTokens, ok := usageObj["input_tokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ hasUpstreamUsage = true
+ } else if inputTokens, ok := usageObj["prompt_tokens"].(float64); ok {
+ totalUsage.InputTokens = int64(inputTokens)
+ hasUpstreamUsage = true
+ }
+ if outputTokens, ok := usageObj["output_tokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ } else if outputTokens, ok := usageObj["completion_tokens"].(float64); ok {
+ totalUsage.OutputTokens = int64(outputTokens)
+ hasUpstreamUsage = true
+ }
+ if totalTokens, ok := usageObj["total_tokens"].(float64); ok {
+ totalUsage.TotalTokens = int64(totalTokens)
+ }
+ log.Debugf("kiro: streamToChannel found usage object in event %s: input=%d, output=%d, total=%d",
+ eventType, totalUsage.InputTokens, totalUsage.OutputTokens, totalUsage.TotalTokens)
+ }
+
+ // Log unknown event types for debugging (to discover new event formats)
+ if eventType != "" {
+ log.Debugf("kiro: streamToChannel unknown event type: %s, payload: %s", eventType, string(payload))
+ }
+
}
// Check nested usage event
@@ -4010,7 +4043,7 @@ func fetchToolDescription(ctx context.Context, mcpEndpoint, authToken string, ht
log.Warnf("kiro/websearch: tools/list request failed: %v", err)
return
}
- defer resp.Body.Close()
+ defer func() { _ = resp.Body.Close() }()
body, err := io.ReadAll(resp.Body)
if err != nil || resp.StatusCode != http.StatusOK {
@@ -4141,7 +4174,7 @@ func (h *webSearchHandler) callMcpAPI(request *kiroclaude.McpRequest) (*kiroclau
}
body, err := io.ReadAll(resp.Body)
- resp.Body.Close()
+ _ = resp.Body.Close()
if err != nil {
lastErr = fmt.Errorf("failed to read MCP response: %w", err)
continue // read error → retry
@@ -4343,7 +4376,7 @@ func (e *KiroExecutor) handleWebSearchStream(
kiroChunks, kiroErr := e.callKiroAndBuffer(ctx, auth, modifiedReq, opts, accessToken, profileArn)
if kiroErr != nil {
log.Warnf("kiro/websearch: Kiro API failed at iteration %d: %v", iteration+1, kiroErr)
- wsErr = fmt.Errorf("Kiro API failed at iteration %d: %w", iteration+1, kiroErr)
+ wsErr = fmt.Errorf("kiro API failed at iteration %d: %w", iteration+1, kiroErr)
e.sendFallbackText(ctx, out, contentBlockIndex, currentQuery, searchResults)
return
}
diff --git a/pkg/llmproxy/thinking/provider/openai/apply.go b/pkg/llmproxy/thinking/provider/openai/apply.go
index 6165e86d64..fe3a326988 100644
--- a/pkg/llmproxy/thinking/provider/openai/apply.go
+++ b/pkg/llmproxy/thinking/provider/openai/apply.go
@@ -16,18 +16,20 @@ import (
)
// validReasoningEffortLevels contains the standard values accepted by the
-// OpenAI reasoning_effort field. Provider-specific extensions (xhigh, minimal,
-// auto) are NOT in this set and must be clamped before use.
+// OpenAI reasoning_effort field. Provider-specific extensions (minimal, xhigh,
+// auto) are normalized to standard equivalents when the model does not support
+// them.
var validReasoningEffortLevels = map[string]struct{}{
"none": {},
"low": {},
"medium": {},
"high": {},
+ "xhigh": {},
}
// clampReasoningEffort maps any thinking level string to a value that is safe
// to send as OpenAI reasoning_effort. Non-standard CPA-internal values are
-// mapped to the nearest standard equivalent.
+// mapped to the nearest supported equivalent for the target model.
//
// Mapping rules:
// - none / low / medium / high → returned as-is (already valid)
@@ -35,26 +37,67 @@ var validReasoningEffortLevels = map[string]struct{}{
// - minimal → "low" (nearest higher standard level)
// - auto → "medium" (reasonable default)
// - anything else → "medium" (safe default)
-func clampReasoningEffort(level string) string {
- if _, ok := validReasoningEffortLevels[level]; ok {
+func clampReasoningEffort(level string, support *registry.ThinkingSupport) string {
+ raw := strings.ToLower(strings.TrimSpace(level))
+ if raw == "" {
+ return raw
+ }
+ if hasLevel(support.Levels, raw) {
+ return raw
+ }
+
+ if _, ok := validReasoningEffortLevels[raw]; !ok {
+ log.WithFields(log.Fields{
+ "original": level,
+ "clamped": string(thinking.LevelMedium),
+ }).Debug("openai: reasoning_effort clamped to default level")
+ return string(thinking.LevelMedium)
+ }
+
+ // Normalize non-standard inputs when not explicitly supported by model.
+ if support == nil || len(support.Levels) == 0 {
+ switch raw {
+ case string(thinking.LevelXHigh):
+ return string(thinking.LevelHigh)
+ case string(thinking.LevelMinimal):
+ return string(thinking.LevelLow)
+ case string(thinking.LevelAuto):
+ return string(thinking.LevelMedium)
+ }
+ return raw
+ }
+
+ if hasLevel(support.Levels, string(thinking.LevelXHigh)) && raw == string(thinking.LevelXHigh) {
+ return raw
+ }
+
+ // If the provider supports minimal levels, preserve them.
+ if raw == string(thinking.LevelMinimal) && hasLevel(support.Levels, string(thinking.LevelMinimal)) {
return level
}
- var clamped string
- switch level {
+
+ // Model does not support provider-specific levels; map to nearest supported standard
+ // level for compatibility.
+ switch raw {
case string(thinking.LevelXHigh):
- clamped = string(thinking.LevelHigh)
+ if hasLevel(support.Levels, string(thinking.LevelHigh)) {
+ return string(thinking.LevelHigh)
+ }
case string(thinking.LevelMinimal):
- clamped = string(thinking.LevelLow)
+ if hasLevel(support.Levels, string(thinking.LevelLow)) {
+ return string(thinking.LevelLow)
+ }
case string(thinking.LevelAuto):
- clamped = string(thinking.LevelMedium)
+ return string(thinking.LevelMedium)
default:
- clamped = string(thinking.LevelMedium)
+ break
+ }
+
+ // Fall back to the provided level only when model support is not constrained.
+ if _, ok := validReasoningEffortLevels[raw]; ok {
+ return raw
}
- log.WithFields(log.Fields{
- "original": level,
- "clamped": clamped,
- }).Debug("openai: reasoning_effort clamped to nearest valid standard value")
- return clamped
+ return string(thinking.LevelMedium)
}
// Applier implements thinking.ProviderApplier for OpenAI models.
@@ -101,7 +144,7 @@ func (a *Applier) Apply(body []byte, config thinking.ThinkingConfig, modelInfo *
}
if config.Mode == thinking.ModeLevel {
- result, _ := sjson.SetBytes(body, "reasoning_effort", clampReasoningEffort(string(config.Level)))
+ result, _ := sjson.SetBytes(body, "reasoning_effort", clampReasoningEffort(string(config.Level), modelInfo.Thinking))
return result, nil
}
@@ -122,7 +165,7 @@ func (a *Applier) Apply(body []byte, config thinking.ThinkingConfig, modelInfo *
return body, nil
}
- result, _ := sjson.SetBytes(body, "reasoning_effort", clampReasoningEffort(effort))
+ result, _ := sjson.SetBytes(body, "reasoning_effort", clampReasoningEffort(effort, support))
return result, nil
}
@@ -157,13 +200,13 @@ func applyCompatibleOpenAI(body []byte, config thinking.ThinkingConfig) ([]byte,
return body, nil
}
- result, _ := sjson.SetBytes(body, "reasoning_effort", clampReasoningEffort(effort))
+ result, _ := sjson.SetBytes(body, "reasoning_effort", effort)
return result, nil
}
func hasLevel(levels []string, target string) bool {
for _, level := range levels {
- if strings.EqualFold(strings.TrimSpace(level), target) {
+ if strings.EqualFold(strings.TrimSpace(level), strings.TrimSpace(target)) {
return true
}
}
diff --git a/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_request.go b/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_request.go
index 15927811e3..957d229e3a 100644
--- a/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_request.go
+++ b/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_request.go
@@ -138,6 +138,15 @@ func ConvertOpenAIResponsesRequestToClaude(modelName string, inputRawJSON []byte
}
}
+ // input can be a raw string for compatibility with OpenAI Responses API.
+ if instructionsText == "" {
+ if input := root.Get("input"); input.Exists() && input.Type == gjson.String {
+ msg := `{"role":"user","content":""}`
+ msg, _ = sjson.Set(msg, "content", input.String())
+ out, _ = sjson.SetRaw(out, "messages.-1", msg)
+ }
+ }
+
// input array processing
if input := root.Get("input"); input.Exists() && input.IsArray() {
input.ForEach(func(_, item gjson.Result) bool {
diff --git a/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_request_test.go b/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_request_test.go
index 3f4ee5052a..caa138452e 100644
--- a/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_request_test.go
+++ b/pkg/llmproxy/translator/claude/openai/responses/claude_openai-responses_request_test.go
@@ -37,3 +37,72 @@ func TestConvertOpenAIResponsesRequestToClaude(t *testing.T) {
t.Errorf("expected at least 1 message, got %d", len(messages))
}
}
+
+func TestConvertOpenAIResponsesRequestToClaudeToolChoice(t *testing.T) {
+ input := []byte(`{
+ "model": "claude-3-5-sonnet",
+ "input": [{"type":"message","role":"user","content":[{"type":"input_text","text":"hello"}]}],
+ "tool_choice": "required",
+ "tools": [{
+ "type": "function",
+ "name": "weather",
+ "description": "Get weather",
+ "parameters": {"type":"object","properties":{"city":{"type":"string"}}}
+ }]
+ }`)
+
+ got := ConvertOpenAIResponsesRequestToClaude("claude-3-5-sonnet", input, false)
+ res := gjson.ParseBytes(got)
+
+ if res.Get("tool_choice.type").String() != "any" {
+ t.Fatalf("tool_choice.type = %s, want any", res.Get("tool_choice.type").String())
+ }
+
+ if res.Get("max_tokens").Int() != 32000 {
+ t.Fatalf("expected default max_tokens to remain, got %d", res.Get("max_tokens").Int())
+ }
+}
+
+func TestConvertOpenAIResponsesRequestToClaudeFunctionCallOutput(t *testing.T) {
+ input := []byte(`{
+ "model": "claude-3-5-sonnet",
+ "input": [
+ {"type":"message","role":"user","content":[{"type":"input_text","text":"hello"}]},
+ {"type":"function_call","call_id":"call-1","name":"weather","arguments":"{\"city\":\"sf\"}"},
+ {"type":"function_call_output","call_id":"call-1","output":"\"cloudy\""}
+ ]
+ }`)
+
+ got := ConvertOpenAIResponsesRequestToClaude("claude-3-5-sonnet", input, false)
+ res := gjson.ParseBytes(got)
+
+ messages := res.Get("messages").Array()
+ if len(messages) < 3 {
+ t.Fatalf("expected at least 3 messages, got %d", len(messages))
+ }
+
+ last := messages[len(messages)-1]
+ if last.Get("role").String() != "user" {
+ t.Fatalf("last message role = %s, want user", last.Get("role").String())
+ }
+ if last.Get("content.0.type").String() != "tool_result" {
+ t.Fatalf("last content type = %s, want tool_result", last.Get("content.0.type").String())
+ }
+}
+
+func TestConvertOpenAIResponsesRequestToClaudeStringInputBody(t *testing.T) {
+ input := []byte(`{"model":"claude-3-5-sonnet","input":"hello"}`)
+ got := ConvertOpenAIResponsesRequestToClaude("claude-3-5-sonnet", input, false)
+ res := gjson.ParseBytes(got)
+
+ messages := res.Get("messages").Array()
+ if len(messages) != 1 {
+ t.Fatalf("messages len = %d, want 1", len(messages))
+ }
+ if messages[0].Get("role").String() != "user" {
+ t.Fatalf("message role = %s, want user", messages[0].Get("role").String())
+ }
+ if messages[0].Get("content").String() != "hello" {
+ t.Fatalf("message content = %q, want hello", messages[0].Get("content").String())
+ }
+}
diff --git a/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_response.go b/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_response.go
index f0e264c8ce..c3ad7fa2a7 100644
--- a/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_response.go
+++ b/pkg/llmproxy/translator/codex/openai/chat-completions/codex_openai_response.go
@@ -102,27 +102,28 @@ func ConvertCodexResponseToOpenAI(_ context.Context, modelName string, originalR
}
}
- if dataType == "response.reasoning_summary_text.delta" {
+ switch dataType {
+ case "response.reasoning_summary_text.delta":
if deltaResult := rootResult.Get("delta"); deltaResult.Exists() {
template, _ = sjson.Set(template, "choices.0.delta.role", "assistant")
template, _ = sjson.Set(template, "choices.0.delta.reasoning_content", deltaResult.String())
}
- } else if dataType == "response.reasoning_summary_text.done" {
+ case "response.reasoning_summary_text.done":
template, _ = sjson.Set(template, "choices.0.delta.role", "assistant")
template, _ = sjson.Set(template, "choices.0.delta.reasoning_content", "\n\n")
- } else if dataType == "response.output_text.delta" {
+ case "response.output_text.delta":
if deltaResult := rootResult.Get("delta"); deltaResult.Exists() {
template, _ = sjson.Set(template, "choices.0.delta.role", "assistant")
template, _ = sjson.Set(template, "choices.0.delta.content", deltaResult.String())
}
- } else if dataType == "response.completed" {
+ case "response.completed":
finishReason := "stop"
if (*param).(*ConvertCliToOpenAIParams).FunctionCallIndex != -1 {
finishReason = "tool_calls"
}
template, _ = sjson.Set(template, "choices.0.finish_reason", finishReason)
template, _ = sjson.Set(template, "choices.0.native_finish_reason", finishReason)
- } else if dataType == "response.output_item.added" {
+ case "response.output_item.added":
itemResult := rootResult.Get("item")
if !itemResult.Exists() || itemResult.Get("type").String() != "function_call" {
return []string{}
@@ -150,7 +151,7 @@ func ConvertCodexResponseToOpenAI(_ context.Context, modelName string, originalR
template, _ = sjson.SetRaw(template, "choices.0.delta.tool_calls", `[]`)
template, _ = sjson.SetRaw(template, "choices.0.delta.tool_calls.-1", functionCallItemTemplate)
- } else if dataType == "response.function_call_arguments.delta" {
+ case "response.function_call_arguments.delta":
(*param).(*ConvertCliToOpenAIParams).HasReceivedArgumentsDelta = true
deltaValue := rootResult.Get("delta").String()
@@ -161,7 +162,7 @@ func ConvertCodexResponseToOpenAI(_ context.Context, modelName string, originalR
template, _ = sjson.SetRaw(template, "choices.0.delta.tool_calls", `[]`)
template, _ = sjson.SetRaw(template, "choices.0.delta.tool_calls.-1", functionCallItemTemplate)
- } else if dataType == "response.function_call_arguments.done" {
+ case "response.function_call_arguments.done":
if (*param).(*ConvertCliToOpenAIParams).HasReceivedArgumentsDelta {
// Arguments were already streamed via delta events; nothing to emit.
return []string{}
@@ -176,7 +177,7 @@ func ConvertCodexResponseToOpenAI(_ context.Context, modelName string, originalR
template, _ = sjson.SetRaw(template, "choices.0.delta.tool_calls", `[]`)
template, _ = sjson.SetRaw(template, "choices.0.delta.tool_calls.-1", functionCallItemTemplate)
- } else if dataType == "response.output_item.done" {
+ case "response.output_item.done":
itemResult := rootResult.Get("item")
if !itemResult.Exists() || itemResult.Get("type").String() != "function_call" {
return []string{}
@@ -209,7 +210,7 @@ func ConvertCodexResponseToOpenAI(_ context.Context, modelName string, originalR
template, _ = sjson.Set(template, "choices.0.delta.role", "assistant")
template, _ = sjson.SetRaw(template, "choices.0.delta.tool_calls.-1", functionCallItemTemplate)
- } else {
+ default:
return []string{}
}
@@ -278,13 +279,13 @@ func ConvertCodexResponseToOpenAINonStream(_ context.Context, _ string, original
}
}
- // Process the output array for content and function calls
+ // Process the output array for content and function calls.
outputResult := responseResult.Get("output")
+ var toolCalls []string
if outputResult.IsArray() {
outputArray := outputResult.Array()
var contentText string
var reasoningText string
- var toolCalls []string
for _, outputItem := range outputArray {
outputType := outputItem.Get("type").String()
@@ -360,11 +361,12 @@ func ConvertCodexResponseToOpenAINonStream(_ context.Context, _ string, original
// Extract and set the finish reason based on status
if statusResult := responseResult.Get("status"); statusResult.Exists() {
- status := statusResult.String()
- if status == "completed" {
- template, _ = sjson.Set(template, "choices.0.finish_reason", "stop")
- template, _ = sjson.Set(template, "choices.0.native_finish_reason", "stop")
+ finishReason := "stop"
+ if statusResult.String() == "completed" && len(toolCalls) > 0 {
+ finishReason = "tool_calls"
}
+ template, _ = sjson.Set(template, "choices.0.finish_reason", finishReason)
+ template, _ = sjson.Set(template, "choices.0.native_finish_reason", finishReason)
}
return template
diff --git a/pkg/llmproxy/translator/kiro/claude/kiro_claude_stream_parser.go b/pkg/llmproxy/translator/kiro/claude/kiro_claude_stream_parser.go
index 4e12757d46..741e667f56 100644
--- a/pkg/llmproxy/translator/kiro/claude/kiro_claude_stream_parser.go
+++ b/pkg/llmproxy/translator/kiro/claude/kiro_claude_stream_parser.go
@@ -139,7 +139,7 @@ func AnalyzeBufferedStream(chunks [][]byte) BufferedStreamResult {
// Track tool use state across chunks
var currentToolName string
- var currentToolIndex int = -1
+ var currentToolIndex = -1
var toolInputBuilder strings.Builder
for _, chunk := range chunks {
diff --git a/pkg/llmproxy/translator/kiro/claude/kiro_websearch.go b/pkg/llmproxy/translator/kiro/claude/kiro_websearch.go
index 7aa6a89c09..442a0945b8 100644
--- a/pkg/llmproxy/translator/kiro/claude/kiro_websearch.go
+++ b/pkg/llmproxy/translator/kiro/claude/kiro_websearch.go
@@ -168,9 +168,7 @@ func ExtractSearchQuery(body []byte) string {
// Remove prefix "Perform a web search for the query: "
const prefix = "Perform a web search for the query: "
- if strings.HasPrefix(text, prefix) {
- text = text[len(prefix):]
- }
+ text = strings.TrimPrefix(text, prefix)
return strings.TrimSpace(text)
}
diff --git a/pkg/llmproxy/translator/kiro/openai/kiro_openai_request.go b/pkg/llmproxy/translator/kiro/openai/kiro_openai_request.go
index b884a7dcef..e2bdcb71e5 100644
--- a/pkg/llmproxy/translator/kiro/openai/kiro_openai_request.go
+++ b/pkg/llmproxy/translator/kiro/openai/kiro_openai_request.go
@@ -816,10 +816,6 @@ func checkThinkingModeFromOpenAIWithHeaders(openaiBody []byte, headers http.Head
// hasThinkingTagInBody checks if the request body already contains thinking configuration tags.
// This is used to prevent duplicate injection when client (e.g., AMP/Cursor) already includes thinking config.
-func hasThinkingTagInBody(body []byte) bool {
- bodyStr := string(body)
- return strings.Contains(bodyStr, "") || strings.Contains(bodyStr, "")
-}
// extractToolChoiceHint extracts tool_choice from OpenAI request and returns a system prompt hint.
// OpenAI tool_choice values:
diff --git a/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request.go b/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request.go
index 9a64798bd7..c7c2ccab4c 100644
--- a/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request.go
+++ b/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request.go
@@ -207,7 +207,12 @@ func ConvertOpenAIResponsesRequestToOpenAIChatCompletions(modelName string, inpu
// Convert tool_choice if present
if toolChoice := root.Get("tool_choice"); toolChoice.Exists() {
- out, _ = sjson.Set(out, "tool_choice", toolChoice.String())
+ switch toolChoice.Type {
+ case gjson.JSON:
+ out, _ = sjson.SetRaw(out, "tool_choice", toolChoice.Raw)
+ default:
+ out, _ = sjson.Set(out, "tool_choice", toolChoice.Value())
+ }
}
return []byte(out)
diff --git a/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request_test.go b/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request_test.go
index 7e8b30dc3c..d0bc5ae4ae 100644
--- a/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request_test.go
+++ b/pkg/llmproxy/translator/openai/openai/responses/openai_openai-responses_request_test.go
@@ -127,3 +127,29 @@ func TestConvertOpenAIResponsesRequestToOpenAIChatCompletions(t *testing.T) {
t.Errorf("expected content hello, got %s", res4.Get("messages.0.content").String())
}
}
+
+func TestConvertOpenAIResponsesRequestToOpenAIChatCompletionsToolChoice(t *testing.T) {
+ input := []byte(`{
+ "model": "gpt-4o",
+ "input": [{"type":"message","role":"user","content":[{"type":"input_text","text":"hello"}]}],
+ "tool_choice": {"type":"function","function":{"name":"weather"}}
+ }`)
+
+ got := ConvertOpenAIResponsesRequestToOpenAIChatCompletions("gpt-4o", input, false)
+ res := gjson.ParseBytes(got)
+
+ toolChoice := res.Get("tool_choice")
+ if !toolChoice.Exists() {
+ t.Fatalf("expected tool_choice")
+ }
+ if toolChoice.Get("type").String() != "function" {
+ t.Fatalf("tool_choice.type = %s, want function", toolChoice.Get("type").String())
+ }
+ if toolChoice.Get("function.name").String() != "weather" {
+ t.Fatalf("tool_choice.function.name = %s, want weather", toolChoice.Get("function.name").String())
+ }
+
+ if res.Get("tool_choice").Type != gjson.JSON {
+ t.Fatalf("tool_choice should be object, got %s", res.Get("tool_choice").Type.String())
+ }
+}
diff --git a/pkg/llmproxy/tui/dashboard.go b/pkg/llmproxy/tui/dashboard.go
index b4839bcf45..880261bccb 100644
--- a/pkg/llmproxy/tui/dashboard.go
+++ b/pkg/llmproxy/tui/dashboard.go
@@ -131,7 +131,7 @@ func (m dashboardModel) renderDashboard(cfg, usage map[string]any, authFiles []m
// ━━━ Connection Status ━━━
connStyle := lipgloss.NewStyle().Bold(true).Foreground(colorSuccess)
sb.WriteString(connStyle.Render(T("connected")))
- sb.WriteString(fmt.Sprintf(" %s", m.client.baseURL))
+ fmt.Fprintf(&sb, " %s", m.client.baseURL)
sb.WriteString("\n\n")
// ━━━ Stats Cards ━━━
@@ -148,7 +148,7 @@ func (m dashboardModel) renderDashboard(cfg, usage map[string]any, authFiles []m
BorderForeground(lipgloss.Color("240")).
Padding(0, 1).
Width(cardWidth).
- Height(2)
+ Height(3)
// Card 1: API Keys
keyCount := len(apiKeys)
@@ -169,7 +169,7 @@ func (m dashboardModel) renderDashboard(cfg, usage map[string]any, authFiles []m
card2 := cardStyle.Render(fmt.Sprintf(
"%s\n%s",
lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("76")).Render(fmt.Sprintf("📄 %d", authCount)),
- lipgloss.NewStyle().Foreground(colorMuted).Render(fmt.Sprintf("%s (%d %s)", T("auth_files_label"), activeAuth, T("active_suffix"))),
+ lipgloss.NewStyle().Foreground(colorMuted).Render(fmt.Sprintf("%s (%d %s)", T("auth_files_label"), activeAuth, T("active_suffix")),
))
// Card 3: Total Requests
@@ -238,9 +238,9 @@ func (m dashboardModel) renderDashboard(cfg, usage map[string]any, authFiles []m
// Render config items as a compact row
for _, item := range configItems {
- sb.WriteString(fmt.Sprintf(" %s %s\n",
+ fmt.Fprintf(&sb, " %s %s\n",
labelStyle.Render(item.label+":"),
- valueStyle.Render(item.value)))
+ valueStyle.Render(item.value))
}
// Routing strategy
@@ -250,9 +250,9 @@ func (m dashboardModel) renderDashboard(cfg, usage map[string]any, authFiles []m
strategy = s
}
}
- sb.WriteString(fmt.Sprintf(" %s %s\n",
+ fmt.Fprintf(&sb, " %s %s\n",
labelStyle.Render(T("routing_strategy")+":"),
- valueStyle.Render(strategy)))
+ valueStyle.Render(strategy))
}
sb.WriteString("\n")
@@ -292,10 +292,6 @@ func (m dashboardModel) renderDashboard(cfg, usage map[string]any, authFiles []m
return sb.String()
}
-func formatKV(key, value string) string {
- return fmt.Sprintf(" %s %s\n", labelStyle.Render(key+":"), valueStyle.Render(value))
-}
-
func boolEmoji(b bool) string {
if b {
return T("bool_yes")
diff --git a/pkg/llmproxy/tui/usage_tab.go b/pkg/llmproxy/tui/usage_tab.go
index 9e6da7f840..a10760a334 100644
--- a/pkg/llmproxy/tui/usage_tab.go
+++ b/pkg/llmproxy/tui/usage_tab.go
@@ -138,7 +138,7 @@ func (m usageTabModel) renderContent() string {
Height(3)
// Total Requests
- card1 := cardStyle.Copy().BorderForeground(lipgloss.Color("111")).Render(fmt.Sprintf(
+ card1 := cardStyle.BorderForeground(lipgloss.Color("111")).Render(fmt.Sprintf(
"%s\n%s\n%s",
lipgloss.NewStyle().Foreground(colorMuted).Render(T("usage_total_reqs")),
lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("111")).Render(fmt.Sprintf("%d", totalReqs)),
@@ -146,7 +146,7 @@ func (m usageTabModel) renderContent() string {
))
// Total Tokens
- card2 := cardStyle.Copy().BorderForeground(lipgloss.Color("214")).Render(fmt.Sprintf(
+ card2 := cardStyle.BorderForeground(lipgloss.Color("214")).Render(fmt.Sprintf(
"%s\n%s\n%s",
lipgloss.NewStyle().Foreground(colorMuted).Render(T("usage_total_tokens")),
lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("214")).Render(formatLargeNumber(totalTokens)),
@@ -160,7 +160,7 @@ func (m usageTabModel) renderContent() string {
rpm = float64(totalReqs) / float64(len(rByH)) / 60.0
}
}
- card3 := cardStyle.Copy().BorderForeground(lipgloss.Color("76")).Render(fmt.Sprintf(
+ card3 := cardStyle.BorderForeground(lipgloss.Color("76")).Render(fmt.Sprintf(
"%s\n%s\n%s",
lipgloss.NewStyle().Foreground(colorMuted).Render(T("usage_rpm")),
lipgloss.NewStyle().Bold(true).Foreground(lipgloss.Color("76")).Render(fmt.Sprintf("%.2f", rpm)),
diff --git a/pkg/llmproxy/usage/metrics.go b/pkg/llmproxy/usage/metrics.go
index baa2e86d73..8ab9e19b33 100644
--- a/pkg/llmproxy/usage/metrics.go
+++ b/pkg/llmproxy/usage/metrics.go
@@ -5,6 +5,15 @@ import (
"strings"
)
+func normalizeProvider(apiKey string) string {
+ key := strings.ToLower(strings.TrimSpace(apiKey))
+ if key == "" {
+ return key
+ }
+ parts := strings.Split(key, "-")
+ return strings.TrimSpace(parts[0])
+}
+
// ProviderMetrics holds per-provider metrics for routing decisions.
type ProviderMetrics struct {
RequestCount int64 `json:"request_count"`
@@ -35,7 +44,7 @@ func GetProviderMetrics() map[string]ProviderMetrics {
snap := GetRequestStatistics().Snapshot()
result := make(map[string]ProviderMetrics)
for apiKey, apiSnap := range snap.APIs {
- provider := strings.ToLower(strings.TrimSpace(apiKey))
+ provider := normalizeProvider(apiKey)
if _, ok := knownProviders[provider]; !ok {
continue
}
diff --git a/sdk/access/manager_test.go b/sdk/access/manager_test.go
index 8c44097859..27a7586ac7 100644
--- a/sdk/access/manager_test.go
+++ b/sdk/access/manager_test.go
@@ -41,7 +41,7 @@ func TestManager_Authenticate(t *testing.T) {
m.SetProviders([]Provider{p1, p2})
// Test success
- res, err = m.Authenticate(context.Background(), nil)
+ _, err = m.Authenticate(context.Background(), nil)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
@@ -53,7 +53,7 @@ func TestManager_Authenticate(t *testing.T) {
p2.auth = func(ctx context.Context, r *http.Request) (*Result, *AuthError) {
return nil, NewInvalidCredentialError()
}
- res, err = m.Authenticate(context.Background(), nil)
+ _, err = m.Authenticate(context.Background(), nil)
if err == nil || err.Code != AuthErrorCodeInvalidCredential {
t.Errorf("expected invalid credential error, got %v", err)
}
@@ -62,7 +62,7 @@ func TestManager_Authenticate(t *testing.T) {
p2.auth = func(ctx context.Context, r *http.Request) (*Result, *AuthError) {
return nil, NewNoCredentialsError()
}
- res, err = m.Authenticate(context.Background(), nil)
+ _, err = m.Authenticate(context.Background(), nil)
if err == nil || err.Code != AuthErrorCodeNoCredentials {
t.Errorf("expected no credentials error, got %v", err)
}
diff --git a/sdk/api/handlers/handlers.go b/sdk/api/handlers/handlers.go
index 886c781532..39545e041a 100644
--- a/sdk/api/handlers/handlers.go
+++ b/sdk/api/handlers/handlers.go
@@ -190,7 +190,7 @@ func requestExecutionMetadata(ctx context.Context) map[string]any {
// It is forwarded as execution metadata; when absent we generate a UUID.
key := ""
if ctx != nil {
- if ginCtx, ok := ctx.Value("gin").(*gin.Context); ok && ginCtx != nil && ginCtx.Request != nil {
+ if ginCtx := contextGin(ctx); ginCtx != nil && ginCtx.Request != nil {
key = strings.TrimSpace(ginCtx.GetHeader("Idempotency-Key"))
}
}
@@ -211,6 +211,27 @@ func requestExecutionMetadata(ctx context.Context) map[string]any {
return meta
}
+type ginContextLookupKey string
+
+const ginContextLookupKeyToken ginContextLookupKey = "gin"
+
+func contextGin(ctx context.Context) *gin.Context {
+ if ctx == nil {
+ return nil
+ }
+ if ginCtxRaw := ctx.Value(ginContextLookupKeyToken); ginCtxRaw != nil {
+ if ginCtx, ok := ginCtxRaw.(*gin.Context); ok {
+ return ginCtx
+ }
+ }
+ if ginCtxRaw := ctx.Value("gin"); ginCtxRaw != nil {
+ if ginCtx, ok := ginCtxRaw.(*gin.Context); ok {
+ return ginCtx
+ }
+ }
+ return nil
+}
+
func pinnedAuthIDFromContext(ctx context.Context) string {
if ctx == nil {
return ""
@@ -857,7 +878,7 @@ func (h *BaseAPIHandler) WriteErrorResponse(c *gin.Context, msg *interfaces.Erro
func (h *BaseAPIHandler) LoggingAPIResponseError(ctx context.Context, err *interfaces.ErrorMessage) {
if h.Cfg.RequestLog {
- if ginContext, ok := ctx.Value("gin").(*gin.Context); ok {
+ if ginContext := contextGin(ctx); ginContext != nil {
if apiResponseErrors, isExist := ginContext.Get("API_RESPONSE_ERROR"); isExist {
if slicesAPIResponseError, isOk := apiResponseErrors.([]*interfaces.ErrorMessage); isOk {
slicesAPIResponseError = append(slicesAPIResponseError, err)
diff --git a/sdk/api/handlers/handlers_metadata_test.go b/sdk/api/handlers/handlers_metadata_test.go
index c1696dd377..ca2b624b30 100644
--- a/sdk/api/handlers/handlers_metadata_test.go
+++ b/sdk/api/handlers/handlers_metadata_test.go
@@ -10,10 +10,6 @@ import (
coreexecutor "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/executor"
)
-type testContextKey string
-
-const ginContextKeyTest testContextKey = "gin"
-
func requestContextWithHeader(t *testing.T, idempotencyKey string) context.Context {
t.Helper()
req := httptest.NewRequest(http.MethodGet, "/v1/responses", nil)
@@ -23,7 +19,7 @@ func requestContextWithHeader(t *testing.T, idempotencyKey string) context.Conte
ginCtx, _ := gin.CreateTestContext(httptest.NewRecorder())
ginCtx.Request = req
- return context.WithValue(context.Background(), ginContextKeyTest, ginCtx)
+ return context.WithValue(context.Background(), ginContextLookupKeyToken, ginCtx)
}
func TestRequestExecutionMetadata_GeneratesIdempotencyKey(t *testing.T) {
diff --git a/sdk/api/handlers/openai/openai_responses_compact_test.go b/sdk/api/handlers/openai/openai_responses_compact_test.go
index c133ff1fdf..3fb56bb226 100644
--- a/sdk/api/handlers/openai/openai_responses_compact_test.go
+++ b/sdk/api/handlers/openai/openai_responses_compact_test.go
@@ -14,6 +14,7 @@ import (
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
coreexecutor "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/executor"
sdkconfig "github.com/router-for-me/CLIProxyAPI/v6/sdk/config"
+ "github.com/tidwall/gjson"
)
type compactCaptureExecutor struct {
@@ -121,3 +122,67 @@ func TestOpenAIResponsesCompactExecute(t *testing.T) {
t.Fatalf("body = %s", resp.Body.String())
}
}
+
+func TestOpenAIResponsesRejectsTextPlainContentType(t *testing.T) {
+ testHandlersForResponses(t, http.MethodPost, "/v1/responses", "text/plain", "hello")
+}
+
+func TestOpenAIResponsesRejectsMultipartContentType(t *testing.T) {
+ testHandlersForResponses(t, http.MethodPost, "/v1/responses", "multipart/form-data", `{"model":"test-model","input":"hello"}`)
+}
+
+func TestOpenAIResponsesRejectsMalformedJSON(t *testing.T) {
+ testHandlersForResponses(t, http.MethodPost, "/v1/responses", "application/json", "{bad")
+}
+
+func TestOpenAIResponsesRejectsEmptyBody(t *testing.T) {
+ testHandlersForResponses(t, http.MethodPost, "/v1/responses", "application/json", "")
+}
+
+func TestOpenAIResponsesCompactRejectsTextPlainContentType(t *testing.T) {
+ testHandlersForResponses(t, http.MethodPost, "/v1/responses/compact", "text/plain", `{"model":"test-model","input":"hello"}`)
+}
+
+func TestOpenAIResponsesCompactRejectsMalformedJSON(t *testing.T) {
+ testHandlersForResponses(t, http.MethodPost, "/v1/responses/compact", "application/json", "{bad")
+}
+
+func testHandlersForResponses(t *testing.T, method, path, contentType, body string) {
+ t.Helper()
+
+ executor := &compactCaptureExecutor{}
+ manager := coreauth.NewManager(nil, nil, nil)
+ manager.RegisterExecutor(executor)
+
+ auth := &coreauth.Auth{ID: "auth-3", Provider: executor.Identifier(), Status: coreauth.StatusActive}
+ if _, err := manager.Register(context.Background(), auth); err != nil {
+ t.Fatalf("Register auth: %v", err)
+ }
+ registry.GetGlobalRegistry().RegisterClient(auth.ID, auth.Provider, []*registry.ModelInfo{{ID: "test-model"}})
+ t.Cleanup(func() {
+ registry.GetGlobalRegistry().UnregisterClient(auth.ID)
+ })
+
+ base := handlers.NewBaseAPIHandlers(&sdkconfig.SDKConfig{}, manager)
+ h := NewOpenAIResponsesAPIHandler(base)
+ router := gin.New()
+ if strings.HasSuffix(path, "/compact") {
+ router.POST(path, h.Compact)
+ } else {
+ router.POST(path, h.Responses)
+ }
+
+ req := httptest.NewRequest(method, path, strings.NewReader(body))
+ req.Header.Set("Content-Type", contentType)
+ resp := httptest.NewRecorder()
+ router.ServeHTTP(resp, req)
+
+ if resp.Code != http.StatusBadRequest {
+ t.Fatalf("status = %d, want %d", resp.Code, http.StatusBadRequest)
+ }
+
+ errType := gjson.GetBytes(resp.Body.Bytes(), "error.type").String()
+ if errType != "invalid_request_error" {
+ t.Fatalf("error.type = %q, want %q", errType, "invalid_request_error")
+ }
+}
diff --git a/sdk/api/handlers/openai/openai_responses_handlers.go b/sdk/api/handlers/openai/openai_responses_handlers.go
index 21521e25ce..c296f80c57 100644
--- a/sdk/api/handlers/openai/openai_responses_handlers.go
+++ b/sdk/api/handlers/openai/openai_responses_handlers.go
@@ -10,7 +10,10 @@ import (
"bytes"
"context"
"fmt"
+ "io"
+ "mime"
"net/http"
+ "strings"
"github.com/gin-gonic/gin"
constant "github.com/router-for-me/CLIProxyAPI/v6/pkg/llmproxy/constant"
@@ -71,15 +74,9 @@ func (h *OpenAIResponsesAPIHandler) OpenAIResponsesModels(c *gin.Context) {
// Parameters:
// - c: The Gin context containing the HTTP request and response
func (h *OpenAIResponsesAPIHandler) Responses(c *gin.Context) {
- rawJSON, err := c.GetRawData()
- // If data retrieval fails, return a 400 Bad Request error.
+ rawJSON, err := readAndValidateOpenAIResponsesJSONRequest(c)
if err != nil {
- c.JSON(http.StatusBadRequest, handlers.ErrorResponse{
- Error: handlers.ErrorDetail{
- Message: fmt.Sprintf("Invalid request: %v", err),
- Type: "invalid_request_error",
- },
- })
+ c.JSON(http.StatusBadRequest, handlers.ErrorResponse{Error: *err})
return
}
@@ -108,14 +105,9 @@ func (h *OpenAIResponsesAPIHandler) Responses(c *gin.Context) {
}
func (h *OpenAIResponsesAPIHandler) Compact(c *gin.Context) {
- rawJSON, err := c.GetRawData()
+ rawJSON, err := readAndValidateOpenAIResponsesJSONRequest(c)
if err != nil {
- c.JSON(http.StatusBadRequest, handlers.ErrorResponse{
- Error: handlers.ErrorDetail{
- Message: fmt.Sprintf("Invalid request: %v", err),
- Type: "invalid_request_error",
- },
- })
+ c.JSON(http.StatusBadRequest, handlers.ErrorResponse{Error: *err})
return
}
@@ -285,6 +277,48 @@ func (h *OpenAIResponsesAPIHandler) handleStreamingResponse(c *gin.Context, rawJ
}
}
+func readAndValidateOpenAIResponsesJSONRequest(c *gin.Context) ([]byte, *handlers.ErrorDetail) {
+ rawJSON, err := c.GetRawData()
+ if err != nil {
+ return nil, &handlers.ErrorDetail{
+ Message: fmt.Sprintf("Invalid request: %v", err),
+ Type: "invalid_request_error",
+ }
+ }
+
+ if len(strings.TrimSpace(string(rawJSON))) == 0 {
+ return nil, &handlers.ErrorDetail{
+ Message: "Invalid request: expected JSON body",
+ Type: "invalid_request_error",
+ }
+ }
+
+ if !gjson.ValidBytes(rawJSON) {
+ return nil, &handlers.ErrorDetail{
+ Message: "Invalid request: malformed JSON body",
+ Type: "invalid_request_error",
+ }
+ }
+
+ contentType := strings.TrimSpace(c.GetHeader("Content-Type"))
+ if contentType != "" {
+ mediaType, _, parseErr := mime.ParseMediaType(contentType)
+ if parseErr != nil {
+ mediaType = strings.Split(contentType, ";")[0]
+ }
+ mediaType = strings.ToLower(strings.TrimSpace(mediaType))
+ if mediaType != "" && mediaType != "application/json" && !strings.HasSuffix(mediaType, "+json") {
+ return nil, &handlers.ErrorDetail{
+ Message: "Invalid request: Content-Type must be application/json",
+ Type: "invalid_request_error",
+ }
+ }
+ }
+
+ c.Request.Body = io.NopCloser(bytes.NewReader(rawJSON))
+ return rawJSON, nil
+}
+
func (h *OpenAIResponsesAPIHandler) handleStreamingResponseViaChat(c *gin.Context, originalResponsesJSON, chatJSON []byte) {
flusher, ok := c.Writer.(http.Flusher)
if !ok {
From bb84a8f98d61ca2eeec12c852a88c1a5993b1f1b Mon Sep 17 00:00:00 2001
From: Koosha Paridehpour
Date: Sun, 22 Feb 2026 04:36:53 -0700
Subject: [PATCH 004/412] chore: preserve current cliproxy work state
---
.../.fragmented-candidates-filtered.txt | 202 +
docs/fragemented/.fragmented-candidates.txt | 202 +
docs/fragemented/.migration.log | 202 +
docs/fragemented/FEATURE_CHANGES_PLUSPLUS.md | 55 +
docs/fragemented/README.md | 7 +
docs/fragemented/api/index.md | 10 +
docs/fragemented/api/management.md | 73 +
docs/fragemented/api/merged.md | 234 +
docs/fragemented/api/openai-compatible.md | 90 +
docs/fragemented/api/operations.md | 52 +
docs/fragemented/docsets/agent/index.md | 8 +
docs/fragemented/docsets/agent/merged.md | 58 +
.../docsets/agent/operating-model.md | 51 +
.../docsets/developer/external/index.md | 8 +
.../external/integration-quickstart.md | 50 +
.../docsets/developer/external/merged.md | 57 +
.../developer/internal/architecture.md | 44 +
.../docsets/developer/internal/index.md | 8 +
.../docsets/developer/internal/merged.md | 51 +
docs/fragemented/docsets/index.md | 30 +
docs/fragemented/docsets/user/index.md | 8 +
docs/fragemented/docsets/user/merged.md | 64 +
docs/fragemented/docsets/user/quickstart.md | 57 +
docs/fragemented/features/architecture/DEV.md | 836 ++
.../fragemented/features/architecture/SPEC.md | 382 +
.../fragemented/features/architecture/USER.md | 436 +
.../features/architecture/index.md | 10 +
.../features/architecture/merged.md | 1673 +++
docs/fragemented/features/auth/DEV.md | 16 +
docs/fragemented/features/auth/SPEC.md | 590 +
docs/fragemented/features/auth/USER.md | 492 +
docs/fragemented/features/auth/index.md | 10 +
docs/fragemented/features/auth/merged.md | 1117 ++
docs/fragemented/features/index.md | 29 +
docs/fragemented/features/operations/SPEC.md | 817 +
docs/fragemented/features/operations/USER.md | 747 +
docs/fragemented/features/operations/index.md | 9 +
.../fragemented/features/operations/merged.md | 1577 ++
docs/fragemented/features/providers/SPEC.md | 910 ++
docs/fragemented/features/providers/USER.md | 69 +
docs/fragemented/features/providers/index.md | 9 +
docs/fragemented/features/providers/merged.md | 992 ++
docs/fragemented/features/security/SPEC.md | 732 +
docs/fragemented/features/security/USER.md | 577 +
docs/fragemented/features/security/index.md | 9 +
docs/fragemented/features/security/merged.md | 1322 ++
docs/fragemented/getting-started.md | 129 +
docs/fragemented/index.md | 161 +
docs/fragemented/install.md | 83 +
.../node_modules/@algolia/abtesting/README.md | 76 +
.../@algolia/autocomplete-core/README.md | 17 +
.../README.md | 15 +
.../autocomplete-preset-algolia/README.md | 15 +
.../@algolia/client-abtesting/README.md | 76 +
.../@algolia/client-analytics/README.md | 76 +
.../@algolia/client-insights/README.md | 76 +
.../@algolia/client-personalization/README.md | 76 +
.../client-query-suggestions/README.md | 76 +
.../@algolia/client-search/README.md | 76 +
.../node_modules/@algolia/ingestion/README.md | 76 +
.../@algolia/monitoring/README.md | 76 +
.../node_modules/@algolia/recommend/README.md | 76 +
.../@babel/helper-string-parser/README.md | 19 +
.../helper-validator-identifier/README.md | 19 +
.../node_modules/@babel/parser/CHANGELOG.md | 1073 ++
.../node_modules/@babel/parser/README.md | 19 +
.../node_modules/@babel/parser/index.md | 8 +
.../node_modules/@babel/parser/merged.md | 1080 ++
.../node_modules/@babel/types/README.md | 19 +
.../node_modules/@docsearch/css/README.md | 27 +
.../node_modules/@docsearch/js/README.md | 46 +
.../node_modules/@docsearch/react/README.md | 43 +
.../@esbuild/darwin-arm64/README.md | 3 +
.../@iconify-json/simple-icons/README.md | 20 +
.../node_modules/@iconify/types/README.md | 459 +
.../@jridgewell/sourcemap-codec/README.md | 264 +
.../@rollup/rollup-darwin-arm64/README.md | 3 +
.../node_modules/@shikijs/core/README.md | 5 +
.../@shikijs/engine-javascript/README.md | 9 +
.../@shikijs/engine-oniguruma/README.md | 9 +
.../node_modules/@shikijs/langs/README.md | 7 +
.../node_modules/@shikijs/themes/README.md | 7 +
.../@shikijs/transformers/README.md | 9 +
.../node_modules/@shikijs/types/README.md | 7 +
.../@shikijs/vscode-textmate/LICENSE.md | 21 +
.../@shikijs/vscode-textmate/README.md | 9 +
.../@shikijs/vscode-textmate/index.md | 8 +
.../@shikijs/vscode-textmate/merged.md | 28 +
.../node_modules/@types/estree/README.md | 15 +
.../node_modules/@types/hast/README.md | 15 +
.../node_modules/@types/linkify-it/README.md | 15 +
.../node_modules/@types/markdown-it/README.md | 15 +
.../node_modules/@types/mdast/README.md | 15 +
.../node_modules/@types/mdurl/README.md | 15 +
.../node_modules/@types/unist/README.md | 15 +
.../@types/web-bluetooth/README.md | 15 +
.../@ungap/structured-clone/README.md | 95 +
.../node_modules/@vitejs/plugin-vue/README.md | 278 +
.../node_modules/@vue/compiler-core/README.md | 1 +
.../node_modules/@vue/compiler-dom/README.md | 1 +
.../node_modules/@vue/compiler-sfc/README.md | 79 +
.../node_modules/@vue/compiler-ssr/README.md | 1 +
.../node_modules/@vue/devtools-api/README.md | 7 +
.../node_modules/@vue/devtools-kit/README.md | 3 +
.../@vue/devtools-shared/README.md | 3 +
.../node_modules/@vue/reactivity/README.md | 19 +
.../node_modules/@vue/runtime-core/README.md | 28 +
.../node_modules/@vue/runtime-dom/README.md | 13 +
.../@vue/server-renderer/README.md | 178 +
.../node_modules/@vue/shared/README.md | 3 +
.../@vueuse/integrations/README.md | 46 +
.../node_modules/algoliasearch/README.md | 82 +
docs/fragemented/node_modules/birpc/README.md | 163 +
docs/fragemented/node_modules/ccount/index.md | 8 +
.../fragemented/node_modules/ccount/merged.md | 156 +
.../fragemented/node_modules/ccount/readme.md | 149 +
.../character-entities-html4/index.md | 8 +
.../character-entities-html4/merged.md | 160 +
.../character-entities-html4/readme.md | 153 +
.../character-entities-legacy/index.md | 8 +
.../character-entities-legacy/merged.md | 164 +
.../character-entities-legacy/readme.md | 157 +
.../comma-separated-tokens/index.md | 8 +
.../comma-separated-tokens/merged.md | 174 +
.../comma-separated-tokens/readme.md | 167 +
.../node_modules/copy-anything/README.md | 136 +
.../node_modules/csstype/README.md | 291 +
docs/fragemented/node_modules/dequal/index.md | 8 +
.../fragemented/node_modules/dequal/merged.md | 119 +
.../fragemented/node_modules/dequal/readme.md | 112 +
docs/fragemented/node_modules/devlop/index.md | 8 +
.../fragemented/node_modules/devlop/merged.md | 367 +
.../fragemented/node_modules/devlop/readme.md | 360 +
.../node_modules/emoji-regex-xs/README.md | 69 +
.../node_modules/entities/index.md | 8 +
.../node_modules/entities/merged.md | 150 +
.../node_modules/entities/readme.md | 143 +
.../node_modules/esbuild/LICENSE.md | 21 +
.../node_modules/esbuild/README.md | 3 +
.../fragemented/node_modules/esbuild/index.md | 8 +
.../node_modules/esbuild/merged.md | 28 +
.../node_modules/estree-walker/CHANGELOG.md | 92 +
.../node_modules/estree-walker/README.md | 48 +
.../node_modules/estree-walker/index.md | 8 +
.../node_modules/estree-walker/merged.md | 99 +
.../node_modules/focus-trap/CHANGELOG.md | 521 +
.../node_modules/focus-trap/README.md | 633 +
.../node_modules/focus-trap/SECURITY.md | 37 +
.../node_modules/focus-trap/index.md | 9 +
.../node_modules/focus-trap/merged.md | 571 +
.../node_modules/fsevents/README.md | 89 +
.../node_modules/hast-util-to-html/index.md | 8 +
.../node_modules/hast-util-to-html/merged.md | 493 +
.../node_modules/hast-util-to-html/readme.md | 486 +
.../hast-util-whitespace/index.md | 8 +
.../hast-util-whitespace/merged.md | 238 +
.../hast-util-whitespace/readme.md | 231 +
.../node_modules/hookable/LICENSE.md | 21 +
.../node_modules/hookable/README.md | 271 +
.../node_modules/hookable/index.md | 8 +
.../node_modules/hookable/merged.md | 28 +
.../node_modules/html-void-elements/index.md | 8 +
.../node_modules/html-void-elements/merged.md | 171 +
.../node_modules/html-void-elements/readme.md | 164 +
.../node_modules/is-what/README.md | 305 +
.../node_modules/magic-string/README.md | 325 +
.../node_modules/mark.js/CONTRIBUTING.md | 99 +
.../node_modules/mark.js/ISSUE_TEMPLATE.md | 11 +
.../node_modules/mark.js/README.md | 54 +
.../fragemented/node_modules/mark.js/index.md | 9 +
.../node_modules/mark.js/merged.md | 123 +
.../node_modules/mdast-util-to-hast/index.md | 8 +
.../node_modules/mdast-util-to-hast/merged.md | 1732 +++
.../node_modules/mdast-util-to-hast/readme.md | 1725 +++
.../micromark-util-character/index.md | 8 +
.../micromark-util-character/merged.md | 453 +
.../micromark-util-character/readme.md | 446 +
.../micromark-util-encode/index.md | 8 +
.../micromark-util-encode/merged.md | 183 +
.../micromark-util-encode/readme.md | 176 +
.../micromark-util-sanitize-uri/index.md | 8 +
.../micromark-util-sanitize-uri/merged.md | 221 +
.../micromark-util-sanitize-uri/readme.md | 214 +
.../micromark-util-symbol/index.md | 8 +
.../micromark-util-symbol/merged.md | 175 +
.../micromark-util-symbol/readme.md | 168 +
.../micromark-util-types/index.md | 8 +
.../micromark-util-types/merged.md | 158 +
.../micromark-util-types/readme.md | 151 +
.../node_modules/minisearch/CHANGELOG.md | 465 +
.../node_modules/minisearch/README.md | 347 +
.../node_modules/minisearch/index.md | 8 +
.../node_modules/minisearch/merged.md | 472 +
docs/fragemented/node_modules/mitt/README.md | 205 +
.../fragemented/node_modules/nanoid/README.md | 39 +
.../node_modules/oniguruma-to-es/README.md | 1075 ++
.../node_modules/perfect-debounce/README.md | 92 +
.../node_modules/picocolors/README.md | 21 +
.../node_modules/postcss/README.md | 29 +
.../fragemented/node_modules/preact/README.md | 185 +
.../property-information/index.md | 8 +
.../property-information/merged.md | 1069 ++
.../property-information/readme.md | 1062 ++
.../node_modules/regex-recursion/README.md | 151 +
.../node_modules/regex-utilities/README.md | 78 +
docs/fragemented/node_modules/regex/README.md | 972 ++
docs/fragemented/node_modules/rfdc/index.md | 8 +
docs/fragemented/node_modules/rfdc/merged.md | 188 +
docs/fragemented/node_modules/rfdc/readme.md | 181 +
.../node_modules/rollup/LICENSE.md | 679 +
.../fragemented/node_modules/rollup/README.md | 134 +
docs/fragemented/node_modules/rollup/index.md | 8 +
.../fragemented/node_modules/rollup/merged.md | 686 +
.../node_modules/search-insights/LICENSE.md | 21 +
.../node_modules/search-insights/README.md | 88 +
.../node_modules/search-insights/index.md | 8 +
.../node_modules/search-insights/merged.md | 27 +
docs/fragemented/node_modules/shiki/README.md | 15 +
.../node_modules/source-map-js/README.md | 765 +
.../space-separated-tokens/index.md | 8 +
.../space-separated-tokens/merged.md | 163 +
.../space-separated-tokens/readme.md | 156 +
.../node_modules/speakingurl/CHANGELOG.md | 55 +
.../node_modules/speakingurl/README.md | 422 +
.../node_modules/speakingurl/index.md | 8 +
.../node_modules/speakingurl/merged.md | 62 +
.../node_modules/stringify-entities/index.md | 8 +
.../node_modules/stringify-entities/merged.md | 240 +
.../node_modules/stringify-entities/readme.md | 233 +
.../node_modules/superjson/README.md | 355 +
.../node_modules/tabbable/CHANGELOG.md | 262 +
.../node_modules/tabbable/README.md | 291 +
.../node_modules/tabbable/SECURITY.md | 37 +
.../node_modules/tabbable/index.md | 9 +
.../node_modules/tabbable/merged.md | 312 +
.../node_modules/trim-lines/index.md | 8 +
.../node_modules/trim-lines/merged.md | 132 +
.../node_modules/trim-lines/readme.md | 125 +
.../node_modules/unist-util-is/index.md | 8 +
.../node_modules/unist-util-is/merged.md | 358 +
.../node_modules/unist-util-is/readme.md | 351 +
.../node_modules/unist-util-position/index.md | 8 +
.../unist-util-position/merged.md | 250 +
.../unist-util-position/readme.md | 243 +
.../unist-util-stringify-position/index.md | 8 +
.../unist-util-stringify-position/merged.md | 213 +
.../unist-util-stringify-position/readme.md | 206 +
.../unist-util-visit-parents/index.md | 8 +
.../unist-util-visit-parents/merged.md | 395 +
.../unist-util-visit-parents/readme.md | 388 +
.../node_modules/unist-util-visit/index.md | 8 +
.../node_modules/unist-util-visit/merged.md | 320 +
.../node_modules/unist-util-visit/readme.md | 313 +
.../node_modules/vfile-message/index.md | 8 +
.../node_modules/vfile-message/merged.md | 259 +
.../node_modules/vfile-message/readme.md | 252 +
docs/fragemented/node_modules/vfile/index.md | 8 +
docs/fragemented/node_modules/vfile/merged.md | 792 +
docs/fragemented/node_modules/vfile/readme.md | 785 +
docs/fragemented/node_modules/vite/LICENSE.md | 3423 +++++
docs/fragemented/node_modules/vite/README.md | 20 +
docs/fragemented/node_modules/vite/index.md | 8 +
docs/fragemented/node_modules/vite/merged.md | 3430 +++++
.../node_modules/vitepress/README.md | 28 +
.../vitepress/template/api-examples.md | 49 +
.../node_modules/vitepress/template/index.md | 9 +
.../vitepress/template/markdown-examples.md | 85 +
.../node_modules/vitepress/template/merged.md | 147 +
docs/fragemented/node_modules/vue/README.md | 58 +
docs/fragemented/node_modules/zwitch/index.md | 8 +
.../fragemented/node_modules/zwitch/merged.md | 233 +
.../fragemented/node_modules/zwitch/readme.md | 226 +
.../auth-refresh-failure-symptom-fix.md | 37 +
.../operations/checks-owner-responder-map.md | 28 +
.../critical-endpoints-curl-pack.md | 64 +
.../distributed-fs-compute-status.md | 185 +
docs/fragemented/operations/index.md | 14 +
docs/fragemented/operations/merged.md | 495 +
.../provider-outage-triage-quick-guide.md | 41 +
.../operations/release-governance.md | 55 +
.../required-branch-check-ownership.md | 42 +
.../CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md | 9030 +++++++++++
...PI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md | 2304 +++
docs/fragemented/planning/README.md | 40 +
...liproxy-integration-research-2026-02-22.md | 290 +
docs/fragemented/planning/board-workflow.md | 118 +
...-plus-relative-300-inventory-2026-02-22.md | 377 +
docs/fragemented/planning/coverage-gaps.md | 62 +
docs/fragemented/planning/index.md | 14 +
docs/fragemented/planning/merged.md | 12489 ++++++++++++++++
docs/fragemented/provider-catalog.md | 81 +
docs/fragemented/provider-operations.md | 70 +
docs/fragemented/provider-usage.md | 125 +
docs/fragemented/routing-reference.md | 78 +
docs/fragemented/sdk-access.md | 154 +
docs/fragemented/sdk-access_CN.md | 154 +
docs/fragemented/sdk-advanced.md | 138 +
docs/fragemented/sdk-advanced_CN.md | 131 +
docs/fragemented/sdk-usage.md | 171 +
docs/fragemented/sdk-usage_CN.md | 164 +
docs/fragemented/sdk-watcher.md | 32 +
docs/fragemented/sdk-watcher_CN.md | 32 +
docs/fragemented/troubleshooting.md | 103 +
.../error-message-2026-02-22T042605-2.log | 20 +
.../error-message-2026-02-22T042740-2.log | 20 +
.../error-message-2026-02-22T042912-2.log | 20 +
.../error-message-2026-02-22T043315-2.log | 20 +
.../error-message-2026-02-22T043554-2.log | 20 +
...1-responses-2026-02-22T042605-0e0efaae.log | 23 +
...1-responses-2026-02-22T042740-cb088560.log | 23 +
...1-responses-2026-02-22T042912-b241f226.log | 23 +
...1-responses-2026-02-22T043315-ecc791af.log | 23 +
...1-responses-2026-02-22T043554-40218071.log | 23 +
pkg/llmproxy/executor/kiro_executor.go | 4 +-
.../runtime/executor/kiro_executor.go | 4 +-
pkg/llmproxy/thinking/validate_test.go | 275 +
.../chat-completions/codex_openai_request.go | 25 +-
.../codex_openai_request_test.go | 67 +
.../codex_openai-responses_request.go | 28 +
.../codex_openai-responses_request_test.go | 25 +
.../gemini_openai-responses_request_test.go | 55 +
.../openai_openai-responses_request.go | 4 +-
.../openai_openai-responses_request_test.go | 14 +-
.../openai_openai-responses_response.go | 17 +-
pkg/llmproxy/tui/dashboard.go | 2 +-
325 files changed, 87379 insertions(+), 15 deletions(-)
create mode 100644 docs/fragemented/.fragmented-candidates-filtered.txt
create mode 100644 docs/fragemented/.fragmented-candidates.txt
create mode 100644 docs/fragemented/.migration.log
create mode 100644 docs/fragemented/FEATURE_CHANGES_PLUSPLUS.md
create mode 100644 docs/fragemented/README.md
create mode 100644 docs/fragemented/api/index.md
create mode 100644 docs/fragemented/api/management.md
create mode 100644 docs/fragemented/api/merged.md
create mode 100644 docs/fragemented/api/openai-compatible.md
create mode 100644 docs/fragemented/api/operations.md
create mode 100644 docs/fragemented/docsets/agent/index.md
create mode 100644 docs/fragemented/docsets/agent/merged.md
create mode 100644 docs/fragemented/docsets/agent/operating-model.md
create mode 100644 docs/fragemented/docsets/developer/external/index.md
create mode 100644 docs/fragemented/docsets/developer/external/integration-quickstart.md
create mode 100644 docs/fragemented/docsets/developer/external/merged.md
create mode 100644 docs/fragemented/docsets/developer/internal/architecture.md
create mode 100644 docs/fragemented/docsets/developer/internal/index.md
create mode 100644 docs/fragemented/docsets/developer/internal/merged.md
create mode 100644 docs/fragemented/docsets/index.md
create mode 100644 docs/fragemented/docsets/user/index.md
create mode 100644 docs/fragemented/docsets/user/merged.md
create mode 100644 docs/fragemented/docsets/user/quickstart.md
create mode 100644 docs/fragemented/features/architecture/DEV.md
create mode 100644 docs/fragemented/features/architecture/SPEC.md
create mode 100644 docs/fragemented/features/architecture/USER.md
create mode 100644 docs/fragemented/features/architecture/index.md
create mode 100644 docs/fragemented/features/architecture/merged.md
create mode 100644 docs/fragemented/features/auth/DEV.md
create mode 100644 docs/fragemented/features/auth/SPEC.md
create mode 100644 docs/fragemented/features/auth/USER.md
create mode 100644 docs/fragemented/features/auth/index.md
create mode 100644 docs/fragemented/features/auth/merged.md
create mode 100644 docs/fragemented/features/index.md
create mode 100644 docs/fragemented/features/operations/SPEC.md
create mode 100644 docs/fragemented/features/operations/USER.md
create mode 100644 docs/fragemented/features/operations/index.md
create mode 100644 docs/fragemented/features/operations/merged.md
create mode 100644 docs/fragemented/features/providers/SPEC.md
create mode 100644 docs/fragemented/features/providers/USER.md
create mode 100644 docs/fragemented/features/providers/index.md
create mode 100644 docs/fragemented/features/providers/merged.md
create mode 100644 docs/fragemented/features/security/SPEC.md
create mode 100644 docs/fragemented/features/security/USER.md
create mode 100644 docs/fragemented/features/security/index.md
create mode 100644 docs/fragemented/features/security/merged.md
create mode 100644 docs/fragemented/getting-started.md
create mode 100644 docs/fragemented/index.md
create mode 100644 docs/fragemented/install.md
create mode 100644 docs/fragemented/node_modules/@algolia/abtesting/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/autocomplete-core/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/autocomplete-plugin-algolia-insights/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/autocomplete-preset-algolia/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/client-abtesting/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/client-analytics/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/client-insights/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/client-personalization/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/client-query-suggestions/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/client-search/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/ingestion/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/monitoring/README.md
create mode 100644 docs/fragemented/node_modules/@algolia/recommend/README.md
create mode 100644 docs/fragemented/node_modules/@babel/helper-string-parser/README.md
create mode 100644 docs/fragemented/node_modules/@babel/helper-validator-identifier/README.md
create mode 100644 docs/fragemented/node_modules/@babel/parser/CHANGELOG.md
create mode 100644 docs/fragemented/node_modules/@babel/parser/README.md
create mode 100644 docs/fragemented/node_modules/@babel/parser/index.md
create mode 100644 docs/fragemented/node_modules/@babel/parser/merged.md
create mode 100644 docs/fragemented/node_modules/@babel/types/README.md
create mode 100644 docs/fragemented/node_modules/@docsearch/css/README.md
create mode 100644 docs/fragemented/node_modules/@docsearch/js/README.md
create mode 100644 docs/fragemented/node_modules/@docsearch/react/README.md
create mode 100644 docs/fragemented/node_modules/@esbuild/darwin-arm64/README.md
create mode 100644 docs/fragemented/node_modules/@iconify-json/simple-icons/README.md
create mode 100644 docs/fragemented/node_modules/@iconify/types/README.md
create mode 100644 docs/fragemented/node_modules/@jridgewell/sourcemap-codec/README.md
create mode 100644 docs/fragemented/node_modules/@rollup/rollup-darwin-arm64/README.md
create mode 100644 docs/fragemented/node_modules/@shikijs/core/README.md
create mode 100644 docs/fragemented/node_modules/@shikijs/engine-javascript/README.md
create mode 100644 docs/fragemented/node_modules/@shikijs/engine-oniguruma/README.md
create mode 100644 docs/fragemented/node_modules/@shikijs/langs/README.md
create mode 100644 docs/fragemented/node_modules/@shikijs/themes/README.md
create mode 100644 docs/fragemented/node_modules/@shikijs/transformers/README.md
create mode 100644 docs/fragemented/node_modules/@shikijs/types/README.md
create mode 100644 docs/fragemented/node_modules/@shikijs/vscode-textmate/LICENSE.md
create mode 100644 docs/fragemented/node_modules/@shikijs/vscode-textmate/README.md
create mode 100644 docs/fragemented/node_modules/@shikijs/vscode-textmate/index.md
create mode 100644 docs/fragemented/node_modules/@shikijs/vscode-textmate/merged.md
create mode 100644 docs/fragemented/node_modules/@types/estree/README.md
create mode 100644 docs/fragemented/node_modules/@types/hast/README.md
create mode 100644 docs/fragemented/node_modules/@types/linkify-it/README.md
create mode 100644 docs/fragemented/node_modules/@types/markdown-it/README.md
create mode 100644 docs/fragemented/node_modules/@types/mdast/README.md
create mode 100644 docs/fragemented/node_modules/@types/mdurl/README.md
create mode 100644 docs/fragemented/node_modules/@types/unist/README.md
create mode 100644 docs/fragemented/node_modules/@types/web-bluetooth/README.md
create mode 100644 docs/fragemented/node_modules/@ungap/structured-clone/README.md
create mode 100644 docs/fragemented/node_modules/@vitejs/plugin-vue/README.md
create mode 100644 docs/fragemented/node_modules/@vue/compiler-core/README.md
create mode 100644 docs/fragemented/node_modules/@vue/compiler-dom/README.md
create mode 100644 docs/fragemented/node_modules/@vue/compiler-sfc/README.md
create mode 100644 docs/fragemented/node_modules/@vue/compiler-ssr/README.md
create mode 100644 docs/fragemented/node_modules/@vue/devtools-api/README.md
create mode 100644 docs/fragemented/node_modules/@vue/devtools-kit/README.md
create mode 100644 docs/fragemented/node_modules/@vue/devtools-shared/README.md
create mode 100644 docs/fragemented/node_modules/@vue/reactivity/README.md
create mode 100644 docs/fragemented/node_modules/@vue/runtime-core/README.md
create mode 100644 docs/fragemented/node_modules/@vue/runtime-dom/README.md
create mode 100644 docs/fragemented/node_modules/@vue/server-renderer/README.md
create mode 100644 docs/fragemented/node_modules/@vue/shared/README.md
create mode 100644 docs/fragemented/node_modules/@vueuse/integrations/README.md
create mode 100644 docs/fragemented/node_modules/algoliasearch/README.md
create mode 100644 docs/fragemented/node_modules/birpc/README.md
create mode 100644 docs/fragemented/node_modules/ccount/index.md
create mode 100644 docs/fragemented/node_modules/ccount/merged.md
create mode 100644 docs/fragemented/node_modules/ccount/readme.md
create mode 100644 docs/fragemented/node_modules/character-entities-html4/index.md
create mode 100644 docs/fragemented/node_modules/character-entities-html4/merged.md
create mode 100644 docs/fragemented/node_modules/character-entities-html4/readme.md
create mode 100644 docs/fragemented/node_modules/character-entities-legacy/index.md
create mode 100644 docs/fragemented/node_modules/character-entities-legacy/merged.md
create mode 100644 docs/fragemented/node_modules/character-entities-legacy/readme.md
create mode 100644 docs/fragemented/node_modules/comma-separated-tokens/index.md
create mode 100644 docs/fragemented/node_modules/comma-separated-tokens/merged.md
create mode 100644 docs/fragemented/node_modules/comma-separated-tokens/readme.md
create mode 100644 docs/fragemented/node_modules/copy-anything/README.md
create mode 100644 docs/fragemented/node_modules/csstype/README.md
create mode 100644 docs/fragemented/node_modules/dequal/index.md
create mode 100644 docs/fragemented/node_modules/dequal/merged.md
create mode 100644 docs/fragemented/node_modules/dequal/readme.md
create mode 100644 docs/fragemented/node_modules/devlop/index.md
create mode 100644 docs/fragemented/node_modules/devlop/merged.md
create mode 100644 docs/fragemented/node_modules/devlop/readme.md
create mode 100644 docs/fragemented/node_modules/emoji-regex-xs/README.md
create mode 100644 docs/fragemented/node_modules/entities/index.md
create mode 100644 docs/fragemented/node_modules/entities/merged.md
create mode 100644 docs/fragemented/node_modules/entities/readme.md
create mode 100644 docs/fragemented/node_modules/esbuild/LICENSE.md
create mode 100644 docs/fragemented/node_modules/esbuild/README.md
create mode 100644 docs/fragemented/node_modules/esbuild/index.md
create mode 100644 docs/fragemented/node_modules/esbuild/merged.md
create mode 100644 docs/fragemented/node_modules/estree-walker/CHANGELOG.md
create mode 100644 docs/fragemented/node_modules/estree-walker/README.md
create mode 100644 docs/fragemented/node_modules/estree-walker/index.md
create mode 100644 docs/fragemented/node_modules/estree-walker/merged.md
create mode 100644 docs/fragemented/node_modules/focus-trap/CHANGELOG.md
create mode 100644 docs/fragemented/node_modules/focus-trap/README.md
create mode 100644 docs/fragemented/node_modules/focus-trap/SECURITY.md
create mode 100644 docs/fragemented/node_modules/focus-trap/index.md
create mode 100644 docs/fragemented/node_modules/focus-trap/merged.md
create mode 100644 docs/fragemented/node_modules/fsevents/README.md
create mode 100644 docs/fragemented/node_modules/hast-util-to-html/index.md
create mode 100644 docs/fragemented/node_modules/hast-util-to-html/merged.md
create mode 100644 docs/fragemented/node_modules/hast-util-to-html/readme.md
create mode 100644 docs/fragemented/node_modules/hast-util-whitespace/index.md
create mode 100644 docs/fragemented/node_modules/hast-util-whitespace/merged.md
create mode 100644 docs/fragemented/node_modules/hast-util-whitespace/readme.md
create mode 100644 docs/fragemented/node_modules/hookable/LICENSE.md
create mode 100644 docs/fragemented/node_modules/hookable/README.md
create mode 100644 docs/fragemented/node_modules/hookable/index.md
create mode 100644 docs/fragemented/node_modules/hookable/merged.md
create mode 100644 docs/fragemented/node_modules/html-void-elements/index.md
create mode 100644 docs/fragemented/node_modules/html-void-elements/merged.md
create mode 100644 docs/fragemented/node_modules/html-void-elements/readme.md
create mode 100644 docs/fragemented/node_modules/is-what/README.md
create mode 100644 docs/fragemented/node_modules/magic-string/README.md
create mode 100644 docs/fragemented/node_modules/mark.js/CONTRIBUTING.md
create mode 100644 docs/fragemented/node_modules/mark.js/ISSUE_TEMPLATE.md
create mode 100644 docs/fragemented/node_modules/mark.js/README.md
create mode 100644 docs/fragemented/node_modules/mark.js/index.md
create mode 100644 docs/fragemented/node_modules/mark.js/merged.md
create mode 100644 docs/fragemented/node_modules/mdast-util-to-hast/index.md
create mode 100644 docs/fragemented/node_modules/mdast-util-to-hast/merged.md
create mode 100644 docs/fragemented/node_modules/mdast-util-to-hast/readme.md
create mode 100644 docs/fragemented/node_modules/micromark-util-character/index.md
create mode 100644 docs/fragemented/node_modules/micromark-util-character/merged.md
create mode 100644 docs/fragemented/node_modules/micromark-util-character/readme.md
create mode 100644 docs/fragemented/node_modules/micromark-util-encode/index.md
create mode 100644 docs/fragemented/node_modules/micromark-util-encode/merged.md
create mode 100644 docs/fragemented/node_modules/micromark-util-encode/readme.md
create mode 100644 docs/fragemented/node_modules/micromark-util-sanitize-uri/index.md
create mode 100644 docs/fragemented/node_modules/micromark-util-sanitize-uri/merged.md
create mode 100644 docs/fragemented/node_modules/micromark-util-sanitize-uri/readme.md
create mode 100644 docs/fragemented/node_modules/micromark-util-symbol/index.md
create mode 100644 docs/fragemented/node_modules/micromark-util-symbol/merged.md
create mode 100644 docs/fragemented/node_modules/micromark-util-symbol/readme.md
create mode 100644 docs/fragemented/node_modules/micromark-util-types/index.md
create mode 100644 docs/fragemented/node_modules/micromark-util-types/merged.md
create mode 100644 docs/fragemented/node_modules/micromark-util-types/readme.md
create mode 100644 docs/fragemented/node_modules/minisearch/CHANGELOG.md
create mode 100644 docs/fragemented/node_modules/minisearch/README.md
create mode 100644 docs/fragemented/node_modules/minisearch/index.md
create mode 100644 docs/fragemented/node_modules/minisearch/merged.md
create mode 100644 docs/fragemented/node_modules/mitt/README.md
create mode 100644 docs/fragemented/node_modules/nanoid/README.md
create mode 100644 docs/fragemented/node_modules/oniguruma-to-es/README.md
create mode 100644 docs/fragemented/node_modules/perfect-debounce/README.md
create mode 100644 docs/fragemented/node_modules/picocolors/README.md
create mode 100644 docs/fragemented/node_modules/postcss/README.md
create mode 100644 docs/fragemented/node_modules/preact/README.md
create mode 100644 docs/fragemented/node_modules/property-information/index.md
create mode 100644 docs/fragemented/node_modules/property-information/merged.md
create mode 100644 docs/fragemented/node_modules/property-information/readme.md
create mode 100644 docs/fragemented/node_modules/regex-recursion/README.md
create mode 100644 docs/fragemented/node_modules/regex-utilities/README.md
create mode 100644 docs/fragemented/node_modules/regex/README.md
create mode 100644 docs/fragemented/node_modules/rfdc/index.md
create mode 100644 docs/fragemented/node_modules/rfdc/merged.md
create mode 100644 docs/fragemented/node_modules/rfdc/readme.md
create mode 100644 docs/fragemented/node_modules/rollup/LICENSE.md
create mode 100644 docs/fragemented/node_modules/rollup/README.md
create mode 100644 docs/fragemented/node_modules/rollup/index.md
create mode 100644 docs/fragemented/node_modules/rollup/merged.md
create mode 100644 docs/fragemented/node_modules/search-insights/LICENSE.md
create mode 100644 docs/fragemented/node_modules/search-insights/README.md
create mode 100644 docs/fragemented/node_modules/search-insights/index.md
create mode 100644 docs/fragemented/node_modules/search-insights/merged.md
create mode 100644 docs/fragemented/node_modules/shiki/README.md
create mode 100644 docs/fragemented/node_modules/source-map-js/README.md
create mode 100644 docs/fragemented/node_modules/space-separated-tokens/index.md
create mode 100644 docs/fragemented/node_modules/space-separated-tokens/merged.md
create mode 100644 docs/fragemented/node_modules/space-separated-tokens/readme.md
create mode 100644 docs/fragemented/node_modules/speakingurl/CHANGELOG.md
create mode 100644 docs/fragemented/node_modules/speakingurl/README.md
create mode 100644 docs/fragemented/node_modules/speakingurl/index.md
create mode 100644 docs/fragemented/node_modules/speakingurl/merged.md
create mode 100644 docs/fragemented/node_modules/stringify-entities/index.md
create mode 100644 docs/fragemented/node_modules/stringify-entities/merged.md
create mode 100644 docs/fragemented/node_modules/stringify-entities/readme.md
create mode 100644 docs/fragemented/node_modules/superjson/README.md
create mode 100644 docs/fragemented/node_modules/tabbable/CHANGELOG.md
create mode 100644 docs/fragemented/node_modules/tabbable/README.md
create mode 100644 docs/fragemented/node_modules/tabbable/SECURITY.md
create mode 100644 docs/fragemented/node_modules/tabbable/index.md
create mode 100644 docs/fragemented/node_modules/tabbable/merged.md
create mode 100644 docs/fragemented/node_modules/trim-lines/index.md
create mode 100644 docs/fragemented/node_modules/trim-lines/merged.md
create mode 100644 docs/fragemented/node_modules/trim-lines/readme.md
create mode 100644 docs/fragemented/node_modules/unist-util-is/index.md
create mode 100644 docs/fragemented/node_modules/unist-util-is/merged.md
create mode 100644 docs/fragemented/node_modules/unist-util-is/readme.md
create mode 100644 docs/fragemented/node_modules/unist-util-position/index.md
create mode 100644 docs/fragemented/node_modules/unist-util-position/merged.md
create mode 100644 docs/fragemented/node_modules/unist-util-position/readme.md
create mode 100644 docs/fragemented/node_modules/unist-util-stringify-position/index.md
create mode 100644 docs/fragemented/node_modules/unist-util-stringify-position/merged.md
create mode 100644 docs/fragemented/node_modules/unist-util-stringify-position/readme.md
create mode 100644 docs/fragemented/node_modules/unist-util-visit-parents/index.md
create mode 100644 docs/fragemented/node_modules/unist-util-visit-parents/merged.md
create mode 100644 docs/fragemented/node_modules/unist-util-visit-parents/readme.md
create mode 100644 docs/fragemented/node_modules/unist-util-visit/index.md
create mode 100644 docs/fragemented/node_modules/unist-util-visit/merged.md
create mode 100644 docs/fragemented/node_modules/unist-util-visit/readme.md
create mode 100644 docs/fragemented/node_modules/vfile-message/index.md
create mode 100644 docs/fragemented/node_modules/vfile-message/merged.md
create mode 100644 docs/fragemented/node_modules/vfile-message/readme.md
create mode 100644 docs/fragemented/node_modules/vfile/index.md
create mode 100644 docs/fragemented/node_modules/vfile/merged.md
create mode 100644 docs/fragemented/node_modules/vfile/readme.md
create mode 100644 docs/fragemented/node_modules/vite/LICENSE.md
create mode 100644 docs/fragemented/node_modules/vite/README.md
create mode 100644 docs/fragemented/node_modules/vite/index.md
create mode 100644 docs/fragemented/node_modules/vite/merged.md
create mode 100644 docs/fragemented/node_modules/vitepress/README.md
create mode 100644 docs/fragemented/node_modules/vitepress/template/api-examples.md
create mode 100644 docs/fragemented/node_modules/vitepress/template/index.md
create mode 100644 docs/fragemented/node_modules/vitepress/template/markdown-examples.md
create mode 100644 docs/fragemented/node_modules/vitepress/template/merged.md
create mode 100644 docs/fragemented/node_modules/vue/README.md
create mode 100644 docs/fragemented/node_modules/zwitch/index.md
create mode 100644 docs/fragemented/node_modules/zwitch/merged.md
create mode 100644 docs/fragemented/node_modules/zwitch/readme.md
create mode 100644 docs/fragemented/operations/auth-refresh-failure-symptom-fix.md
create mode 100644 docs/fragemented/operations/checks-owner-responder-map.md
create mode 100644 docs/fragemented/operations/critical-endpoints-curl-pack.md
create mode 100644 docs/fragemented/operations/distributed-fs-compute-status.md
create mode 100644 docs/fragemented/operations/index.md
create mode 100644 docs/fragemented/operations/merged.md
create mode 100644 docs/fragemented/operations/provider-outage-triage-quick-guide.md
create mode 100644 docs/fragemented/operations/release-governance.md
create mode 100644 docs/fragemented/operations/required-branch-check-ownership.md
create mode 100644 docs/fragemented/planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md
create mode 100644 docs/fragemented/planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md
create mode 100644 docs/fragemented/planning/README.md
create mode 100644 docs/fragemented/planning/agentapi-cliproxy-integration-research-2026-02-22.md
create mode 100644 docs/fragemented/planning/board-workflow.md
create mode 100644 docs/fragemented/planning/coder-org-plus-relative-300-inventory-2026-02-22.md
create mode 100644 docs/fragemented/planning/coverage-gaps.md
create mode 100644 docs/fragemented/planning/index.md
create mode 100644 docs/fragemented/planning/merged.md
create mode 100644 docs/fragemented/provider-catalog.md
create mode 100644 docs/fragemented/provider-operations.md
create mode 100644 docs/fragemented/provider-usage.md
create mode 100644 docs/fragemented/routing-reference.md
create mode 100644 docs/fragemented/sdk-access.md
create mode 100644 docs/fragemented/sdk-access_CN.md
create mode 100644 docs/fragemented/sdk-advanced.md
create mode 100644 docs/fragemented/sdk-advanced_CN.md
create mode 100644 docs/fragemented/sdk-usage.md
create mode 100644 docs/fragemented/sdk-usage_CN.md
create mode 100644 docs/fragemented/sdk-watcher.md
create mode 100644 docs/fragemented/sdk-watcher_CN.md
create mode 100644 docs/fragemented/troubleshooting.md
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T042605-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T042740-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T042912-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T043315-2.log
create mode 100644 pkg/llmproxy/api/logs/error-message-2026-02-22T043554-2.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T042605-0e0efaae.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T042740-cb088560.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T042912-b241f226.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T043315-ecc791af.log
create mode 100644 pkg/llmproxy/api/logs/error-v1-responses-2026-02-22T043554-40218071.log
create mode 100644 pkg/llmproxy/thinking/validate_test.go
create mode 100644 pkg/llmproxy/translator/gemini/openai/responses/gemini_openai-responses_request_test.go
diff --git a/docs/fragemented/.fragmented-candidates-filtered.txt b/docs/fragemented/.fragmented-candidates-filtered.txt
new file mode 100644
index 0000000000..d07ce16f85
--- /dev/null
+++ b/docs/fragemented/.fragmented-candidates-filtered.txt
@@ -0,0 +1,202 @@
+FEATURE_CHANGES_PLUSPLUS.md
+README.md
+api/index.md
+api/management.md
+api/openai-compatible.md
+api/operations.md
+docsets/agent/index.md
+docsets/agent/operating-model.md
+docsets/developer/external/index.md
+docsets/developer/external/integration-quickstart.md
+docsets/developer/internal/architecture.md
+docsets/developer/internal/index.md
+docsets/index.md
+docsets/user/index.md
+docsets/user/quickstart.md
+features/architecture/DEV.md
+features/architecture/SPEC.md
+features/architecture/USER.md
+features/auth/DEV.md
+features/auth/SPEC.md
+features/auth/USER.md
+features/auth/index.md
+features/index.md
+features/operations/SPEC.md
+features/operations/USER.md
+features/operations/index.md
+features/providers/SPEC.md
+features/providers/USER.md
+features/security/SPEC.md
+features/security/USER.md
+features/security/index.md
+getting-started.md
+index.md
+install.md
+node_modules/@algolia/abtesting/README.md
+node_modules/@algolia/autocomplete-core/README.md
+node_modules/@algolia/autocomplete-plugin-algolia-insights/README.md
+node_modules/@algolia/autocomplete-preset-algolia/README.md
+node_modules/@algolia/client-abtesting/README.md
+node_modules/@algolia/client-analytics/README.md
+node_modules/@algolia/client-insights/README.md
+node_modules/@algolia/client-personalization/README.md
+node_modules/@algolia/client-query-suggestions/README.md
+node_modules/@algolia/client-search/README.md
+node_modules/@algolia/ingestion/README.md
+node_modules/@algolia/monitoring/README.md
+node_modules/@algolia/recommend/README.md
+node_modules/@babel/helper-string-parser/README.md
+node_modules/@babel/helper-validator-identifier/README.md
+node_modules/@babel/parser/CHANGELOG.md
+node_modules/@babel/parser/README.md
+node_modules/@babel/types/README.md
+node_modules/@docsearch/css/README.md
+node_modules/@docsearch/js/README.md
+node_modules/@docsearch/react/README.md
+node_modules/@esbuild/darwin-arm64/README.md
+node_modules/@iconify/types/README.md
+node_modules/@iconify-json/simple-icons/README.md
+node_modules/@jridgewell/sourcemap-codec/README.md
+node_modules/@rollup/rollup-darwin-arm64/README.md
+node_modules/@shikijs/core/README.md
+node_modules/@shikijs/engine-javascript/README.md
+node_modules/@shikijs/engine-oniguruma/README.md
+node_modules/@shikijs/langs/README.md
+node_modules/@shikijs/themes/README.md
+node_modules/@shikijs/transformers/README.md
+node_modules/@shikijs/types/README.md
+node_modules/@shikijs/vscode-textmate/LICENSE.md
+node_modules/@shikijs/vscode-textmate/README.md
+node_modules/@types/estree/README.md
+node_modules/@types/hast/README.md
+node_modules/@types/linkify-it/README.md
+node_modules/@types/markdown-it/README.md
+node_modules/@types/mdast/README.md
+node_modules/@types/mdurl/README.md
+node_modules/@types/unist/README.md
+node_modules/@types/web-bluetooth/README.md
+node_modules/@ungap/structured-clone/README.md
+node_modules/@vitejs/plugin-vue/README.md
+node_modules/@vue/compiler-core/README.md
+node_modules/@vue/compiler-dom/README.md
+node_modules/@vue/compiler-sfc/README.md
+node_modules/@vue/compiler-ssr/README.md
+node_modules/@vue/devtools-api/README.md
+node_modules/@vue/devtools-kit/README.md
+node_modules/@vue/devtools-shared/README.md
+node_modules/@vue/reactivity/README.md
+node_modules/@vue/runtime-core/README.md
+node_modules/@vue/runtime-dom/README.md
+node_modules/@vue/server-renderer/README.md
+node_modules/@vue/shared/README.md
+node_modules/@vueuse/integrations/README.md
+node_modules/algoliasearch/README.md
+node_modules/birpc/README.md
+node_modules/ccount/readme.md
+node_modules/character-entities-html4/readme.md
+node_modules/character-entities-legacy/readme.md
+node_modules/comma-separated-tokens/readme.md
+node_modules/copy-anything/README.md
+node_modules/csstype/README.md
+node_modules/dequal/readme.md
+node_modules/devlop/readme.md
+node_modules/emoji-regex-xs/README.md
+node_modules/entities/readme.md
+node_modules/esbuild/LICENSE.md
+node_modules/esbuild/README.md
+node_modules/estree-walker/CHANGELOG.md
+node_modules/estree-walker/README.md
+node_modules/focus-trap/CHANGELOG.md
+node_modules/focus-trap/README.md
+node_modules/focus-trap/SECURITY.md
+node_modules/fsevents/README.md
+node_modules/hast-util-to-html/readme.md
+node_modules/hast-util-whitespace/readme.md
+node_modules/hookable/LICENSE.md
+node_modules/hookable/README.md
+node_modules/html-void-elements/readme.md
+node_modules/is-what/README.md
+node_modules/magic-string/README.md
+node_modules/mark.js/CONTRIBUTING.md
+node_modules/mark.js/ISSUE_TEMPLATE.md
+node_modules/mark.js/README.md
+node_modules/mdast-util-to-hast/readme.md
+node_modules/micromark-util-character/readme.md
+node_modules/micromark-util-encode/readme.md
+node_modules/micromark-util-sanitize-uri/readme.md
+node_modules/micromark-util-symbol/readme.md
+node_modules/micromark-util-types/readme.md
+node_modules/minisearch/CHANGELOG.md
+node_modules/minisearch/README.md
+node_modules/mitt/README.md
+node_modules/nanoid/README.md
+node_modules/oniguruma-to-es/README.md
+node_modules/perfect-debounce/README.md
+node_modules/picocolors/README.md
+node_modules/postcss/README.md
+node_modules/preact/README.md
+node_modules/property-information/readme.md
+node_modules/regex/README.md
+node_modules/regex-recursion/README.md
+node_modules/regex-utilities/README.md
+node_modules/rfdc/readme.md
+node_modules/rollup/LICENSE.md
+node_modules/rollup/README.md
+node_modules/search-insights/LICENSE.md
+node_modules/search-insights/README.md
+node_modules/shiki/README.md
+node_modules/source-map-js/README.md
+node_modules/space-separated-tokens/readme.md
+node_modules/speakingurl/CHANGELOG.md
+node_modules/speakingurl/README.md
+node_modules/stringify-entities/readme.md
+node_modules/superjson/README.md
+node_modules/tabbable/CHANGELOG.md
+node_modules/tabbable/README.md
+node_modules/tabbable/SECURITY.md
+node_modules/trim-lines/readme.md
+node_modules/unist-util-is/readme.md
+node_modules/unist-util-position/readme.md
+node_modules/unist-util-stringify-position/readme.md
+node_modules/unist-util-visit/readme.md
+node_modules/unist-util-visit-parents/readme.md
+node_modules/vfile/readme.md
+node_modules/vfile-message/readme.md
+node_modules/vite/LICENSE.md
+node_modules/vite/README.md
+node_modules/vitepress/README.md
+node_modules/vitepress/template/api-examples.md
+node_modules/vitepress/template/index.md
+node_modules/vitepress/template/markdown-examples.md
+node_modules/vue/README.md
+node_modules/zwitch/readme.md
+operations/auth-refresh-failure-symptom-fix.md
+operations/checks-owner-responder-map.md
+operations/critical-endpoints-curl-pack.md
+operations/distributed-fs-compute-status.md
+operations/index.md
+operations/provider-outage-triage-quick-guide.md
+operations/release-governance.md
+operations/required-branch-check-ownership.md
+planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md
+planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md
+planning/README.md
+planning/agentapi-cliproxy-integration-research-2026-02-22.md
+planning/agents.md
+planning/board-workflow.md
+planning/coder-org-plus-relative-300-inventory-2026-02-22.md
+planning/coverage-gaps.md
+planning/index.md
+provider-catalog.md
+provider-operations.md
+provider-usage.md
+routing-reference.md
+sdk-access.md
+sdk-access_CN.md
+sdk-advanced.md
+sdk-advanced_CN.md
+sdk-usage.md
+sdk-usage_CN.md
+sdk-watcher.md
+sdk-watcher_CN.md
+troubleshooting.md
diff --git a/docs/fragemented/.fragmented-candidates.txt b/docs/fragemented/.fragmented-candidates.txt
new file mode 100644
index 0000000000..d07ce16f85
--- /dev/null
+++ b/docs/fragemented/.fragmented-candidates.txt
@@ -0,0 +1,202 @@
+FEATURE_CHANGES_PLUSPLUS.md
+README.md
+api/index.md
+api/management.md
+api/openai-compatible.md
+api/operations.md
+docsets/agent/index.md
+docsets/agent/operating-model.md
+docsets/developer/external/index.md
+docsets/developer/external/integration-quickstart.md
+docsets/developer/internal/architecture.md
+docsets/developer/internal/index.md
+docsets/index.md
+docsets/user/index.md
+docsets/user/quickstart.md
+features/architecture/DEV.md
+features/architecture/SPEC.md
+features/architecture/USER.md
+features/auth/DEV.md
+features/auth/SPEC.md
+features/auth/USER.md
+features/auth/index.md
+features/index.md
+features/operations/SPEC.md
+features/operations/USER.md
+features/operations/index.md
+features/providers/SPEC.md
+features/providers/USER.md
+features/security/SPEC.md
+features/security/USER.md
+features/security/index.md
+getting-started.md
+index.md
+install.md
+node_modules/@algolia/abtesting/README.md
+node_modules/@algolia/autocomplete-core/README.md
+node_modules/@algolia/autocomplete-plugin-algolia-insights/README.md
+node_modules/@algolia/autocomplete-preset-algolia/README.md
+node_modules/@algolia/client-abtesting/README.md
+node_modules/@algolia/client-analytics/README.md
+node_modules/@algolia/client-insights/README.md
+node_modules/@algolia/client-personalization/README.md
+node_modules/@algolia/client-query-suggestions/README.md
+node_modules/@algolia/client-search/README.md
+node_modules/@algolia/ingestion/README.md
+node_modules/@algolia/monitoring/README.md
+node_modules/@algolia/recommend/README.md
+node_modules/@babel/helper-string-parser/README.md
+node_modules/@babel/helper-validator-identifier/README.md
+node_modules/@babel/parser/CHANGELOG.md
+node_modules/@babel/parser/README.md
+node_modules/@babel/types/README.md
+node_modules/@docsearch/css/README.md
+node_modules/@docsearch/js/README.md
+node_modules/@docsearch/react/README.md
+node_modules/@esbuild/darwin-arm64/README.md
+node_modules/@iconify/types/README.md
+node_modules/@iconify-json/simple-icons/README.md
+node_modules/@jridgewell/sourcemap-codec/README.md
+node_modules/@rollup/rollup-darwin-arm64/README.md
+node_modules/@shikijs/core/README.md
+node_modules/@shikijs/engine-javascript/README.md
+node_modules/@shikijs/engine-oniguruma/README.md
+node_modules/@shikijs/langs/README.md
+node_modules/@shikijs/themes/README.md
+node_modules/@shikijs/transformers/README.md
+node_modules/@shikijs/types/README.md
+node_modules/@shikijs/vscode-textmate/LICENSE.md
+node_modules/@shikijs/vscode-textmate/README.md
+node_modules/@types/estree/README.md
+node_modules/@types/hast/README.md
+node_modules/@types/linkify-it/README.md
+node_modules/@types/markdown-it/README.md
+node_modules/@types/mdast/README.md
+node_modules/@types/mdurl/README.md
+node_modules/@types/unist/README.md
+node_modules/@types/web-bluetooth/README.md
+node_modules/@ungap/structured-clone/README.md
+node_modules/@vitejs/plugin-vue/README.md
+node_modules/@vue/compiler-core/README.md
+node_modules/@vue/compiler-dom/README.md
+node_modules/@vue/compiler-sfc/README.md
+node_modules/@vue/compiler-ssr/README.md
+node_modules/@vue/devtools-api/README.md
+node_modules/@vue/devtools-kit/README.md
+node_modules/@vue/devtools-shared/README.md
+node_modules/@vue/reactivity/README.md
+node_modules/@vue/runtime-core/README.md
+node_modules/@vue/runtime-dom/README.md
+node_modules/@vue/server-renderer/README.md
+node_modules/@vue/shared/README.md
+node_modules/@vueuse/integrations/README.md
+node_modules/algoliasearch/README.md
+node_modules/birpc/README.md
+node_modules/ccount/readme.md
+node_modules/character-entities-html4/readme.md
+node_modules/character-entities-legacy/readme.md
+node_modules/comma-separated-tokens/readme.md
+node_modules/copy-anything/README.md
+node_modules/csstype/README.md
+node_modules/dequal/readme.md
+node_modules/devlop/readme.md
+node_modules/emoji-regex-xs/README.md
+node_modules/entities/readme.md
+node_modules/esbuild/LICENSE.md
+node_modules/esbuild/README.md
+node_modules/estree-walker/CHANGELOG.md
+node_modules/estree-walker/README.md
+node_modules/focus-trap/CHANGELOG.md
+node_modules/focus-trap/README.md
+node_modules/focus-trap/SECURITY.md
+node_modules/fsevents/README.md
+node_modules/hast-util-to-html/readme.md
+node_modules/hast-util-whitespace/readme.md
+node_modules/hookable/LICENSE.md
+node_modules/hookable/README.md
+node_modules/html-void-elements/readme.md
+node_modules/is-what/README.md
+node_modules/magic-string/README.md
+node_modules/mark.js/CONTRIBUTING.md
+node_modules/mark.js/ISSUE_TEMPLATE.md
+node_modules/mark.js/README.md
+node_modules/mdast-util-to-hast/readme.md
+node_modules/micromark-util-character/readme.md
+node_modules/micromark-util-encode/readme.md
+node_modules/micromark-util-sanitize-uri/readme.md
+node_modules/micromark-util-symbol/readme.md
+node_modules/micromark-util-types/readme.md
+node_modules/minisearch/CHANGELOG.md
+node_modules/minisearch/README.md
+node_modules/mitt/README.md
+node_modules/nanoid/README.md
+node_modules/oniguruma-to-es/README.md
+node_modules/perfect-debounce/README.md
+node_modules/picocolors/README.md
+node_modules/postcss/README.md
+node_modules/preact/README.md
+node_modules/property-information/readme.md
+node_modules/regex/README.md
+node_modules/regex-recursion/README.md
+node_modules/regex-utilities/README.md
+node_modules/rfdc/readme.md
+node_modules/rollup/LICENSE.md
+node_modules/rollup/README.md
+node_modules/search-insights/LICENSE.md
+node_modules/search-insights/README.md
+node_modules/shiki/README.md
+node_modules/source-map-js/README.md
+node_modules/space-separated-tokens/readme.md
+node_modules/speakingurl/CHANGELOG.md
+node_modules/speakingurl/README.md
+node_modules/stringify-entities/readme.md
+node_modules/superjson/README.md
+node_modules/tabbable/CHANGELOG.md
+node_modules/tabbable/README.md
+node_modules/tabbable/SECURITY.md
+node_modules/trim-lines/readme.md
+node_modules/unist-util-is/readme.md
+node_modules/unist-util-position/readme.md
+node_modules/unist-util-stringify-position/readme.md
+node_modules/unist-util-visit/readme.md
+node_modules/unist-util-visit-parents/readme.md
+node_modules/vfile/readme.md
+node_modules/vfile-message/readme.md
+node_modules/vite/LICENSE.md
+node_modules/vite/README.md
+node_modules/vitepress/README.md
+node_modules/vitepress/template/api-examples.md
+node_modules/vitepress/template/index.md
+node_modules/vitepress/template/markdown-examples.md
+node_modules/vue/README.md
+node_modules/zwitch/readme.md
+operations/auth-refresh-failure-symptom-fix.md
+operations/checks-owner-responder-map.md
+operations/critical-endpoints-curl-pack.md
+operations/distributed-fs-compute-status.md
+operations/index.md
+operations/provider-outage-triage-quick-guide.md
+operations/release-governance.md
+operations/required-branch-check-ownership.md
+planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md
+planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md
+planning/README.md
+planning/agentapi-cliproxy-integration-research-2026-02-22.md
+planning/agents.md
+planning/board-workflow.md
+planning/coder-org-plus-relative-300-inventory-2026-02-22.md
+planning/coverage-gaps.md
+planning/index.md
+provider-catalog.md
+provider-operations.md
+provider-usage.md
+routing-reference.md
+sdk-access.md
+sdk-access_CN.md
+sdk-advanced.md
+sdk-advanced_CN.md
+sdk-usage.md
+sdk-usage_CN.md
+sdk-watcher.md
+sdk-watcher_CN.md
+troubleshooting.md
diff --git a/docs/fragemented/.migration.log b/docs/fragemented/.migration.log
new file mode 100644
index 0000000000..48d62421bf
--- /dev/null
+++ b/docs/fragemented/.migration.log
@@ -0,0 +1,202 @@
+COPY FEATURE_CHANGES_PLUSPLUS.md
+COPY README.md
+COPY api/index.md
+COPY api/management.md
+COPY api/openai-compatible.md
+COPY api/operations.md
+COPY docsets/agent/index.md
+COPY docsets/agent/operating-model.md
+COPY docsets/developer/external/index.md
+COPY docsets/developer/external/integration-quickstart.md
+COPY docsets/developer/internal/architecture.md
+COPY docsets/developer/internal/index.md
+COPY docsets/index.md
+COPY docsets/user/index.md
+COPY docsets/user/quickstart.md
+COPY features/architecture/DEV.md
+COPY features/architecture/SPEC.md
+COPY features/architecture/USER.md
+COPY features/auth/DEV.md
+COPY features/auth/SPEC.md
+COPY features/auth/USER.md
+COPY features/auth/index.md
+COPY features/index.md
+COPY features/operations/SPEC.md
+COPY features/operations/USER.md
+COPY features/operations/index.md
+COPY features/providers/SPEC.md
+COPY features/providers/USER.md
+COPY features/security/SPEC.md
+COPY features/security/USER.md
+COPY features/security/index.md
+COPY getting-started.md
+COPY index.md
+COPY install.md
+COPY node_modules/@algolia/abtesting/README.md
+COPY node_modules/@algolia/autocomplete-core/README.md
+COPY node_modules/@algolia/autocomplete-plugin-algolia-insights/README.md
+COPY node_modules/@algolia/autocomplete-preset-algolia/README.md
+COPY node_modules/@algolia/client-abtesting/README.md
+COPY node_modules/@algolia/client-analytics/README.md
+COPY node_modules/@algolia/client-insights/README.md
+COPY node_modules/@algolia/client-personalization/README.md
+COPY node_modules/@algolia/client-query-suggestions/README.md
+COPY node_modules/@algolia/client-search/README.md
+COPY node_modules/@algolia/ingestion/README.md
+COPY node_modules/@algolia/monitoring/README.md
+COPY node_modules/@algolia/recommend/README.md
+COPY node_modules/@babel/helper-string-parser/README.md
+COPY node_modules/@babel/helper-validator-identifier/README.md
+COPY node_modules/@babel/parser/CHANGELOG.md
+COPY node_modules/@babel/parser/README.md
+COPY node_modules/@babel/types/README.md
+COPY node_modules/@docsearch/css/README.md
+COPY node_modules/@docsearch/js/README.md
+COPY node_modules/@docsearch/react/README.md
+COPY node_modules/@esbuild/darwin-arm64/README.md
+COPY node_modules/@iconify/types/README.md
+COPY node_modules/@iconify-json/simple-icons/README.md
+COPY node_modules/@jridgewell/sourcemap-codec/README.md
+COPY node_modules/@rollup/rollup-darwin-arm64/README.md
+COPY node_modules/@shikijs/core/README.md
+COPY node_modules/@shikijs/engine-javascript/README.md
+COPY node_modules/@shikijs/engine-oniguruma/README.md
+COPY node_modules/@shikijs/langs/README.md
+COPY node_modules/@shikijs/themes/README.md
+COPY node_modules/@shikijs/transformers/README.md
+COPY node_modules/@shikijs/types/README.md
+COPY node_modules/@shikijs/vscode-textmate/LICENSE.md
+COPY node_modules/@shikijs/vscode-textmate/README.md
+COPY node_modules/@types/estree/README.md
+COPY node_modules/@types/hast/README.md
+COPY node_modules/@types/linkify-it/README.md
+COPY node_modules/@types/markdown-it/README.md
+COPY node_modules/@types/mdast/README.md
+COPY node_modules/@types/mdurl/README.md
+COPY node_modules/@types/unist/README.md
+COPY node_modules/@types/web-bluetooth/README.md
+COPY node_modules/@ungap/structured-clone/README.md
+COPY node_modules/@vitejs/plugin-vue/README.md
+COPY node_modules/@vue/compiler-core/README.md
+COPY node_modules/@vue/compiler-dom/README.md
+COPY node_modules/@vue/compiler-sfc/README.md
+COPY node_modules/@vue/compiler-ssr/README.md
+COPY node_modules/@vue/devtools-api/README.md
+COPY node_modules/@vue/devtools-kit/README.md
+COPY node_modules/@vue/devtools-shared/README.md
+COPY node_modules/@vue/reactivity/README.md
+COPY node_modules/@vue/runtime-core/README.md
+COPY node_modules/@vue/runtime-dom/README.md
+COPY node_modules/@vue/server-renderer/README.md
+COPY node_modules/@vue/shared/README.md
+COPY node_modules/@vueuse/integrations/README.md
+COPY node_modules/algoliasearch/README.md
+COPY node_modules/birpc/README.md
+COPY node_modules/ccount/readme.md
+COPY node_modules/character-entities-html4/readme.md
+COPY node_modules/character-entities-legacy/readme.md
+COPY node_modules/comma-separated-tokens/readme.md
+COPY node_modules/copy-anything/README.md
+COPY node_modules/csstype/README.md
+COPY node_modules/dequal/readme.md
+COPY node_modules/devlop/readme.md
+COPY node_modules/emoji-regex-xs/README.md
+COPY node_modules/entities/readme.md
+COPY node_modules/esbuild/LICENSE.md
+COPY node_modules/esbuild/README.md
+COPY node_modules/estree-walker/CHANGELOG.md
+COPY node_modules/estree-walker/README.md
+COPY node_modules/focus-trap/CHANGELOG.md
+COPY node_modules/focus-trap/README.md
+COPY node_modules/focus-trap/SECURITY.md
+COPY node_modules/fsevents/README.md
+COPY node_modules/hast-util-to-html/readme.md
+COPY node_modules/hast-util-whitespace/readme.md
+COPY node_modules/hookable/LICENSE.md
+COPY node_modules/hookable/README.md
+COPY node_modules/html-void-elements/readme.md
+COPY node_modules/is-what/README.md
+COPY node_modules/magic-string/README.md
+COPY node_modules/mark.js/CONTRIBUTING.md
+COPY node_modules/mark.js/ISSUE_TEMPLATE.md
+COPY node_modules/mark.js/README.md
+COPY node_modules/mdast-util-to-hast/readme.md
+COPY node_modules/micromark-util-character/readme.md
+COPY node_modules/micromark-util-encode/readme.md
+COPY node_modules/micromark-util-sanitize-uri/readme.md
+COPY node_modules/micromark-util-symbol/readme.md
+COPY node_modules/micromark-util-types/readme.md
+COPY node_modules/minisearch/CHANGELOG.md
+COPY node_modules/minisearch/README.md
+COPY node_modules/mitt/README.md
+COPY node_modules/nanoid/README.md
+COPY node_modules/oniguruma-to-es/README.md
+COPY node_modules/perfect-debounce/README.md
+COPY node_modules/picocolors/README.md
+COPY node_modules/postcss/README.md
+COPY node_modules/preact/README.md
+COPY node_modules/property-information/readme.md
+COPY node_modules/regex/README.md
+COPY node_modules/regex-recursion/README.md
+COPY node_modules/regex-utilities/README.md
+COPY node_modules/rfdc/readme.md
+COPY node_modules/rollup/LICENSE.md
+COPY node_modules/rollup/README.md
+COPY node_modules/search-insights/LICENSE.md
+COPY node_modules/search-insights/README.md
+COPY node_modules/shiki/README.md
+COPY node_modules/source-map-js/README.md
+COPY node_modules/space-separated-tokens/readme.md
+COPY node_modules/speakingurl/CHANGELOG.md
+COPY node_modules/speakingurl/README.md
+COPY node_modules/stringify-entities/readme.md
+COPY node_modules/superjson/README.md
+COPY node_modules/tabbable/CHANGELOG.md
+COPY node_modules/tabbable/README.md
+COPY node_modules/tabbable/SECURITY.md
+COPY node_modules/trim-lines/readme.md
+COPY node_modules/unist-util-is/readme.md
+COPY node_modules/unist-util-position/readme.md
+COPY node_modules/unist-util-stringify-position/readme.md
+COPY node_modules/unist-util-visit/readme.md
+COPY node_modules/unist-util-visit-parents/readme.md
+COPY node_modules/vfile/readme.md
+COPY node_modules/vfile-message/readme.md
+COPY node_modules/vite/LICENSE.md
+COPY node_modules/vite/README.md
+COPY node_modules/vitepress/README.md
+COPY node_modules/vitepress/template/api-examples.md
+COPY node_modules/vitepress/template/index.md
+COPY node_modules/vitepress/template/markdown-examples.md
+COPY node_modules/vue/README.md
+COPY node_modules/zwitch/readme.md
+COPY operations/auth-refresh-failure-symptom-fix.md
+COPY operations/checks-owner-responder-map.md
+COPY operations/critical-endpoints-curl-pack.md
+COPY operations/distributed-fs-compute-status.md
+COPY operations/index.md
+COPY operations/provider-outage-triage-quick-guide.md
+COPY operations/release-governance.md
+COPY operations/required-branch-check-ownership.md
+COPY planning/CLIPROXYAPI_1000_ITEM_BOARD_2026-02-22.md
+COPY planning/CLIPROXYAPI_2000_ITEM_EXECUTION_BOARD_2026-02-22.md
+COPY planning/README.md
+COPY planning/agentapi-cliproxy-integration-research-2026-02-22.md
+COPY planning/agents.md
+COPY planning/board-workflow.md
+COPY planning/coder-org-plus-relative-300-inventory-2026-02-22.md
+COPY planning/coverage-gaps.md
+COPY planning/index.md
+COPY provider-catalog.md
+COPY provider-operations.md
+COPY provider-usage.md
+COPY routing-reference.md
+COPY sdk-access.md
+COPY sdk-access_CN.md
+COPY sdk-advanced.md
+COPY sdk-advanced_CN.md
+COPY sdk-usage.md
+COPY sdk-usage_CN.md
+COPY sdk-watcher.md
+COPY sdk-watcher_CN.md
+COPY troubleshooting.md
diff --git a/docs/fragemented/FEATURE_CHANGES_PLUSPLUS.md b/docs/fragemented/FEATURE_CHANGES_PLUSPLUS.md
new file mode 100644
index 0000000000..aa797a7a98
--- /dev/null
+++ b/docs/fragemented/FEATURE_CHANGES_PLUSPLUS.md
@@ -0,0 +1,55 @@
+# cliproxyapi++ Feature Change Reference (`++` vs baseline)
+
+This document explains what changed in `cliproxyapi++`, why it changed, and how it affects users, integrators, and maintainers.
+
+## 1. Architecture Changes
+
+| Change | What changed in `++` | Why it matters |
+|---|---|---|
+| Reusable proxy core | Translation and proxy runtime are structured for reusability (`pkg/llmproxy`) | Enables embedding proxy logic into other Go systems and keeps runtime boundaries cleaner |
+| Stronger module boundaries | Operational and integration concerns are separated from API surface orchestration | Easier upgrades, clearer ownership, lower accidental coupling |
+
+## 2. Authentication and Identity Changes
+
+| Change | What changed in `++` | Why it matters |
+|---|---|---|
+| Copilot-grade auth support | Extended auth handling for enterprise Copilot-style workflows | More stable integration for organizations depending on tokenized auth stacks |
+| Kiro/AWS login path support | Additional OAuth/login handling pathways and operational UX around auth | Better compatibility for multi-provider enterprise environments |
+| Token lifecycle automation | Background refresh and expiration handling | Reduces downtime from token expiry and manual auth recovery |
+
+## 3. Provider and Model Routing Changes
+
+| Change | What changed in `++` | Why it matters |
+|---|---|---|
+| Broader provider matrix | Expanded provider adapter and model mapping surfaces | More routing options without changing client-side OpenAI API integrations |
+| Unified model translation | Stronger mapping between OpenAI-style model requests and provider-native model names | Lower integration friction and fewer provider mismatch errors |
+| Cooldown and throttling controls | Runtime controls for rate-limit pressure and provider-specific cooldown windows | Better stability under burst traffic and quota pressure |
+
+## 4. Security and Governance Changes
+
+| Change | What changed in `++` | Why it matters |
+|---|---|---|
+| Defense-in-depth hardening | Added stricter operational defaults and hardened deployment assumptions | Safer default posture in production environments |
+| Protected core path governance | Workflow-level controls around critical core logic paths | Reduces accidental regressions in proxy translation internals |
+| Device and session consistency controls | Deterministic identity/session behavior for strict provider checks | Fewer auth anomalies in long-running deployments |
+
+## 5. Operations and Delivery Changes
+
+| Change | What changed in `++` | Why it matters |
+|---|---|---|
+| Stronger CI/CD posture | Expanded release, build, and guard workflows | Faster detection of regressions and safer release cadence |
+| Multi-arch/container focus | Production deployment paths optimized for container-first ops | Better portability across heterogeneous infra |
+| Runtime observability surfaces | Improved log and management endpoints | Easier production debugging and incident response |
+
+## 6. API and Compatibility Surface
+
+| Change | What changed in `++` | Why it matters |
+|---|---|---|
+| OpenAI-compatible core retained | `/v1/chat/completions` and `/v1/models` compatibility maintained | Existing OpenAI-style clients can migrate with minimal API churn |
+| Expanded management endpoints | Added operational surfaces for config/auth/runtime introspection | Better operations UX without changing core client API |
+
+## 7. Migration Impact Summary
+
+- **Technical users**: gain higher operational stability, better auth longevity, and stronger multi-provider behavior.
+- **External integrators**: keep OpenAI-compatible interfaces while gaining wider provider compatibility.
+- **Internal maintainers**: get cleaner subsystem boundaries and stronger guardrails for production evolution.
diff --git a/docs/fragemented/README.md b/docs/fragemented/README.md
new file mode 100644
index 0000000000..d0b7654d43
--- /dev/null
+++ b/docs/fragemented/README.md
@@ -0,0 +1,7 @@
+# Fragmented Markdown Consolidation
+
+Canonicalized backup location for fragmented Markdown documents.
+
+Source files retained from docs by date filter: 202
+
+Usage: source docs are authoritative; this directory keeps a deterministic subset for consolidation/merge operations.
diff --git a/docs/fragemented/api/index.md b/docs/fragemented/api/index.md
new file mode 100644
index 0000000000..7e06a701bc
--- /dev/null
+++ b/docs/fragemented/api/index.md
@@ -0,0 +1,10 @@
+# Consolidated Index
+
+## Files
+
+* `management.md`
+* `openai-compatible.md`
+* `operations.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/api/management.md b/docs/fragemented/api/management.md
new file mode 100644
index 0000000000..31d41fe4fd
--- /dev/null
+++ b/docs/fragemented/api/management.md
@@ -0,0 +1,73 @@
+# Management API
+
+Management endpoints provide runtime inspection and administrative controls.
+
+## Access Model
+
+- Surface path: `/v0/management/*`
+- Protected by management key.
+- Disabled entirely when `remote-management.secret-key` is empty.
+
+### Enable and Protect Management Access
+
+```yaml
+remote-management:
+ allow-remote: false
+ secret-key: "replace-with-strong-secret"
+```
+
+Use either header style:
+
+- `Authorization: Bearer `
+- `X-Management-Key: `
+
+## Common Endpoints
+
+- `GET /v0/management/config`
+- `GET /v0/management/config.yaml`
+- `GET /v0/management/auth-files`
+- `GET /v0/management/logs`
+- `POST /v0/management/api-call`
+
+Note: some management routes are provider/tool-specific and may vary by enabled features.
+
+## Practical Examples
+
+Read effective config:
+
+```bash
+curl -sS http://localhost:8317/v0/management/config \
+ -H "Authorization: Bearer " | jq
+```
+
+Inspect auth file summary:
+
+```bash
+curl -sS http://localhost:8317/v0/management/auth-files \
+ -H "X-Management-Key: " | jq
+```
+
+Tail logs stream/snapshot:
+
+```bash
+curl -sS "http://localhost:8317/v0/management/logs?lines=200" \
+ -H "Authorization: Bearer "
+```
+
+## Failure Modes
+
+- `404` on all management routes: management disabled (empty secret key).
+- `401`: invalid or missing management key.
+- `403`: remote request blocked when `allow-remote: false`.
+- `500`: malformed config/auth state causing handler errors.
+
+## Operational Guidance
+
+- Keep `allow-remote: false` unless absolutely required.
+- Place management API behind private network or VPN.
+- Rotate management key and avoid storing it in shell history.
+
+## Related Docs
+
+- [Operations API](./operations.md)
+- [Troubleshooting](/troubleshooting)
diff --git a/docs/fragemented/api/merged.md b/docs/fragemented/api/merged.md
new file mode 100644
index 0000000000..68cbf84117
--- /dev/null
+++ b/docs/fragemented/api/merged.md
@@ -0,0 +1,234 @@
+# Merged Fragmented Markdown
+
+## Source: api/management.md
+
+# Management API
+
+Management endpoints provide runtime inspection and administrative controls.
+
+## Access Model
+
+- Surface path: `/v0/management/*`
+- Protected by management key.
+- Disabled entirely when `remote-management.secret-key` is empty.
+
+### Enable and Protect Management Access
+
+```yaml
+remote-management:
+ allow-remote: false
+ secret-key: "replace-with-strong-secret"
+```
+
+Use either header style:
+
+- `Authorization: Bearer `
+- `X-Management-Key: `
+
+## Common Endpoints
+
+- `GET /v0/management/config`
+- `GET /v0/management/config.yaml`
+- `GET /v0/management/auth-files`
+- `GET /v0/management/logs`
+- `POST /v0/management/api-call`
+
+Note: some management routes are provider/tool-specific and may vary by enabled features.
+
+## Practical Examples
+
+Read effective config:
+
+```bash
+curl -sS http://localhost:8317/v0/management/config \
+ -H "Authorization: Bearer " | jq
+```
+
+Inspect auth file summary:
+
+```bash
+curl -sS http://localhost:8317/v0/management/auth-files \
+ -H "X-Management-Key: " | jq
+```
+
+Tail logs stream/snapshot:
+
+```bash
+curl -sS "http://localhost:8317/v0/management/logs?lines=200" \
+ -H "Authorization: Bearer "
+```
+
+## Failure Modes
+
+- `404` on all management routes: management disabled (empty secret key).
+- `401`: invalid or missing management key.
+- `403`: remote request blocked when `allow-remote: false`.
+- `500`: malformed config/auth state causing handler errors.
+
+## Operational Guidance
+
+- Keep `allow-remote: false` unless absolutely required.
+- Place management API behind private network or VPN.
+- Rotate management key and avoid storing it in shell history.
+
+## Related Docs
+
+- [Operations API](./operations.md)
+- [Troubleshooting](/troubleshooting)
+
+
+---
+
+## Source: api/openai-compatible.md
+
+# OpenAI-Compatible API
+
+These endpoints are designed for OpenAI-style client compatibility while routing through `cliproxyapi++` provider logic.
+
+## Base URL
+
+```text
+http://:8317
+```
+
+## Authentication
+
+`/v1/*` routes require a configured client API key:
+
+```http
+Authorization: Bearer
+```
+
+## Endpoints
+
+### `POST /v1/chat/completions`
+
+Use for chat-style generation.
+
+```bash
+curl -sS -X POST http://localhost:8317/v1/chat/completions \
+ -H "Authorization: Bearer dev-local-key" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "model": "claude-3-5-sonnet",
+ "messages": [{"role": "user", "content": "Give me 3 release notes bullets"}],
+ "temperature": 0.2,
+ "stream": false
+ }'
+```
+
+Example response shape:
+
+```json
+{
+ "id": "chatcmpl-...",
+ "object": "chat.completion",
+ "created": 1730000000,
+ "model": "claude-3-5-sonnet",
+ "choices": [
+ {
+ "index": 0,
+ "message": {"role": "assistant", "content": "..."},
+ "finish_reason": "stop"
+ }
+ ],
+ "usage": {"prompt_tokens": 10, "completion_tokens": 42, "total_tokens": 52}
+}
+```
+
+### `POST /v1/completions`
+
+Legacy completion-style flow for clients that still use text completion payloads.
+
+### `POST /v1/responses`
+
+Responses-style payload support for compatible clients/workloads.
+
+### `GET /v1/models`
+
+Lists models visible under current configuration and auth context.
+
+```bash
+curl -sS http://localhost:8317/v1/models \
+ -H "Authorization: Bearer dev-local-key" | jq '.data[:10]'
+```
+
+## Streaming Guidance
+
+- For SSE, set `"stream": true` on `chat/completions`.
+- Ensure reverse proxies do not buffer event streams.
+- If clients hang, verify ingress/edge idle timeouts.
+
+## Common Failure Modes
+
+- `401`: missing/invalid client API key.
+- `404`: wrong path (use `/v1/...` exactly).
+- `429`: upstream provider throttling; add backoff and provider capacity.
+- `400 model_not_found`: alias/prefix/config mismatch.
+
+## Related Docs
+
+- [Provider Usage](/provider-usage)
+- [Routing and Models Reference](/routing-reference)
+- [Troubleshooting](/troubleshooting)
+
+
+---
+
+## Source: api/operations.md
+
+# Operations API
+
+Operations endpoints are used for liveness checks, routing visibility, and incident triage.
+
+## Audience Guidance
+
+- SRE/ops: integrate these routes into health checks and dashboards.
+- Developers: use them when debugging routing/performance behavior.
+
+## Core Endpoints
+
+- `GET /health` for liveness/readiness style checks.
+- `GET /v1/metrics/providers` for rolling provider-level performance/usage stats.
+
+## Monitoring Examples
+
+Basic liveness check:
+
+```bash
+curl -sS -f http://localhost:8317/health
+```
+
+Provider metrics snapshot:
+
+```bash
+curl -sS http://localhost:8317/v1/metrics/providers | jq
+```
+
+Prometheus-friendly probe command:
+
+```bash
+curl -sS -o /dev/null -w '%{http_code}\n' http://localhost:8317/health
+```
+
+## Suggested Operational Playbook
+
+1. Check `/health` first.
+2. Inspect `/v1/metrics/providers` for latency/error concentration.
+3. Correlate with request logs and model-level failures.
+4. Shift traffic (prefix/model/provider) when a provider degrades.
+
+## Failure Modes
+
+- Health endpoint flaps: resource saturation or startup race.
+- Provider metrics stale/empty: no recent traffic or exporter initialization issues.
+- High error ratio on one provider: auth expiry, upstream outage, or rate-limit pressure.
+
+## Related Docs
+
+- [Routing and Models Reference](/routing-reference)
+- [Troubleshooting](/troubleshooting)
+- [Management API](./management.md)
+
+
+---
diff --git a/docs/fragemented/api/openai-compatible.md b/docs/fragemented/api/openai-compatible.md
new file mode 100644
index 0000000000..3d51371099
--- /dev/null
+++ b/docs/fragemented/api/openai-compatible.md
@@ -0,0 +1,90 @@
+# OpenAI-Compatible API
+
+These endpoints are designed for OpenAI-style client compatibility while routing through `cliproxyapi++` provider logic.
+
+## Base URL
+
+```text
+http://:8317
+```
+
+## Authentication
+
+`/v1/*` routes require a configured client API key:
+
+```http
+Authorization: Bearer
+```
+
+## Endpoints
+
+### `POST /v1/chat/completions`
+
+Use for chat-style generation.
+
+```bash
+curl -sS -X POST http://localhost:8317/v1/chat/completions \
+ -H "Authorization: Bearer dev-local-key" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "model": "claude-3-5-sonnet",
+ "messages": [{"role": "user", "content": "Give me 3 release notes bullets"}],
+ "temperature": 0.2,
+ "stream": false
+ }'
+```
+
+Example response shape:
+
+```json
+{
+ "id": "chatcmpl-...",
+ "object": "chat.completion",
+ "created": 1730000000,
+ "model": "claude-3-5-sonnet",
+ "choices": [
+ {
+ "index": 0,
+ "message": {"role": "assistant", "content": "..."},
+ "finish_reason": "stop"
+ }
+ ],
+ "usage": {"prompt_tokens": 10, "completion_tokens": 42, "total_tokens": 52}
+}
+```
+
+### `POST /v1/completions`
+
+Legacy completion-style flow for clients that still use text completion payloads.
+
+### `POST /v1/responses`
+
+Responses-style payload support for compatible clients/workloads.
+
+### `GET /v1/models`
+
+Lists models visible under current configuration and auth context.
+
+```bash
+curl -sS http://localhost:8317/v1/models \
+ -H "Authorization: Bearer dev-local-key" | jq '.data[:10]'
+```
+
+## Streaming Guidance
+
+- For SSE, set `"stream": true` on `chat/completions`.
+- Ensure reverse proxies do not buffer event streams.
+- If clients hang, verify ingress/edge idle timeouts.
+
+## Common Failure Modes
+
+- `401`: missing/invalid client API key.
+- `404`: wrong path (use `/v1/...` exactly).
+- `429`: upstream provider throttling; add backoff and provider capacity.
+- `400 model_not_found`: alias/prefix/config mismatch.
+
+## Related Docs
+
+- [Provider Usage](/provider-usage)
+- [Routing and Models Reference](/routing-reference)
+- [Troubleshooting](/troubleshooting)
diff --git a/docs/fragemented/api/operations.md b/docs/fragemented/api/operations.md
new file mode 100644
index 0000000000..feae27bd1b
--- /dev/null
+++ b/docs/fragemented/api/operations.md
@@ -0,0 +1,52 @@
+# Operations API
+
+Operations endpoints are used for liveness checks, routing visibility, and incident triage.
+
+## Audience Guidance
+
+- SRE/ops: integrate these routes into health checks and dashboards.
+- Developers: use them when debugging routing/performance behavior.
+
+## Core Endpoints
+
+- `GET /health` for liveness/readiness style checks.
+- `GET /v1/metrics/providers` for rolling provider-level performance/usage stats.
+
+## Monitoring Examples
+
+Basic liveness check:
+
+```bash
+curl -sS -f http://localhost:8317/health
+```
+
+Provider metrics snapshot:
+
+```bash
+curl -sS http://localhost:8317/v1/metrics/providers | jq
+```
+
+Prometheus-friendly probe command:
+
+```bash
+curl -sS -o /dev/null -w '%{http_code}\n' http://localhost:8317/health
+```
+
+## Suggested Operational Playbook
+
+1. Check `/health` first.
+2. Inspect `/v1/metrics/providers` for latency/error concentration.
+3. Correlate with request logs and model-level failures.
+4. Shift traffic (prefix/model/provider) when a provider degrades.
+
+## Failure Modes
+
+- Health endpoint flaps: resource saturation or startup race.
+- Provider metrics stale/empty: no recent traffic or exporter initialization issues.
+- High error ratio on one provider: auth expiry, upstream outage, or rate-limit pressure.
+
+## Related Docs
+
+- [Routing and Models Reference](/routing-reference)
+- [Troubleshooting](/troubleshooting)
+- [Management API](./management.md)
diff --git a/docs/fragemented/docsets/agent/index.md b/docs/fragemented/docsets/agent/index.md
new file mode 100644
index 0000000000..46e33b6728
--- /dev/null
+++ b/docs/fragemented/docsets/agent/index.md
@@ -0,0 +1,8 @@
+# Consolidated Index
+
+## Files
+
+* `operating-model.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/docsets/agent/merged.md b/docs/fragemented/docsets/agent/merged.md
new file mode 100644
index 0000000000..278fa714c2
--- /dev/null
+++ b/docs/fragemented/docsets/agent/merged.md
@@ -0,0 +1,58 @@
+# Merged Fragmented Markdown
+
+## Source: docsets/agent/operating-model.md
+
+# Agent Operating Model
+
+This model describes how to run agent traffic safely through `cliproxyapi++`.
+
+## Control Loop
+
+1. Accept agent request on `/v1/*` with API key auth.
+2. Resolve model prefix/alias and eligible providers.
+3. Select credential by routing strategy and runtime health.
+4. Execute upstream call with retries and provider translation.
+5. Return normalized response and emit metrics/log events.
+
+## Deployment Pattern
+
+- One shared proxy per environment (`dev`, `staging`, `prod`).
+- API keys segmented by agent type or team.
+- Prefix-based model policy to prevent accidental cross-traffic.
+
+Example config fragment:
+
+```yaml
+api-keys:
+ - "agent-planner-key"
+ - "agent-coder-key"
+
+routing:
+ strategy: "round-robin"
+
+force-model-prefix: true
+```
+
+## Operational Guardrails
+
+- Alert on 401/429/5xx trends per provider.
+- Keep at least one fallback provider for critical agent classes.
+- Test with synthetic prompts on each deploy.
+- Keep management access on localhost/private network only.
+
+## Failure Drills
+
+- Simulate provider throttling and verify fallback.
+- Rotate one credential and confirm zero-downtime behavior.
+- Force model prefix mismatch and validate explicit error handling.
+
+## Useful Commands
+
+```bash
+curl -sS http://localhost:8317/health
+curl -sS http://localhost:8317/v1/metrics/providers | jq
+curl -sS http://localhost:8317/v1/models -H "Authorization: Bearer " | jq '.data[].id' | head
+```
+
+
+---
diff --git a/docs/fragemented/docsets/agent/operating-model.md b/docs/fragemented/docsets/agent/operating-model.md
new file mode 100644
index 0000000000..5c2d7d3078
--- /dev/null
+++ b/docs/fragemented/docsets/agent/operating-model.md
@@ -0,0 +1,51 @@
+# Agent Operating Model
+
+This model describes how to run agent traffic safely through `cliproxyapi++`.
+
+## Control Loop
+
+1. Accept agent request on `/v1/*` with API key auth.
+2. Resolve model prefix/alias and eligible providers.
+3. Select credential by routing strategy and runtime health.
+4. Execute upstream call with retries and provider translation.
+5. Return normalized response and emit metrics/log events.
+
+## Deployment Pattern
+
+- One shared proxy per environment (`dev`, `staging`, `prod`).
+- API keys segmented by agent type or team.
+- Prefix-based model policy to prevent accidental cross-traffic.
+
+Example config fragment:
+
+```yaml
+api-keys:
+ - "agent-planner-key"
+ - "agent-coder-key"
+
+routing:
+ strategy: "round-robin"
+
+force-model-prefix: true
+```
+
+## Operational Guardrails
+
+- Alert on 401/429/5xx trends per provider.
+- Keep at least one fallback provider for critical agent classes.
+- Test with synthetic prompts on each deploy.
+- Keep management access on localhost/private network only.
+
+## Failure Drills
+
+- Simulate provider throttling and verify fallback.
+- Rotate one credential and confirm zero-downtime behavior.
+- Force model prefix mismatch and validate explicit error handling.
+
+## Useful Commands
+
+```bash
+curl -sS http://localhost:8317/health
+curl -sS http://localhost:8317/v1/metrics/providers | jq
+curl -sS http://localhost:8317/v1/models -H "Authorization: Bearer " | jq '.data[].id' | head
+```
diff --git a/docs/fragemented/docsets/developer/external/index.md b/docs/fragemented/docsets/developer/external/index.md
new file mode 100644
index 0000000000..c8f85346e6
--- /dev/null
+++ b/docs/fragemented/docsets/developer/external/index.md
@@ -0,0 +1,8 @@
+# Consolidated Index
+
+## Files
+
+* `integration-quickstart.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/docsets/developer/external/integration-quickstart.md b/docs/fragemented/docsets/developer/external/integration-quickstart.md
new file mode 100644
index 0000000000..01846e4de8
--- /dev/null
+++ b/docs/fragemented/docsets/developer/external/integration-quickstart.md
@@ -0,0 +1,50 @@
+# Integration Quickstart
+
+This quickstart gets an external service talking to `cliproxyapi++` with minimal changes.
+
+## 1. Configure Client Base URL and Key
+
+Set your OpenAI SDK/client to:
+
+- Base URL: `http://:8317/v1`
+- API key: one entry from `config.yaml -> api-keys`
+
+## 2. Run a Compatibility Check
+
+```bash
+curl -sS http://localhost:8317/v1/models \
+ -H "Authorization: Bearer " | jq '.data[:5]'
+```
+
+If this fails, fix auth/config before testing completions.
+
+## 3. Send a Chat Request
+
+```bash
+curl -sS -X POST http://localhost:8317/v1/chat/completions \
+ -H "Authorization: Bearer " \
+ -H "Content-Type: application/json" \
+ -d '{
+ "model": "claude-3-5-sonnet",
+ "messages": [{"role":"user","content":"Generate a short status update."}]
+ }'
+```
+
+## 4. Add Resilience in Client Code
+
+- Retry idempotent calls with jittered backoff.
+- Handle `429` with provider-aware cooldown windows.
+- Log response `id` and status for incident correlation.
+
+## 5. Add Runtime Observability
+
+```bash
+curl -sS http://localhost:8317/health
+curl -sS http://localhost:8317/v1/metrics/providers | jq
+```
+
+## Common Integration Pitfalls
+
+- Missing `Authorization` header on `/v1/*` calls.
+- Assuming all upstreams support identical model names.
+- Hard-coding one provider model without fallback.
diff --git a/docs/fragemented/docsets/developer/external/merged.md b/docs/fragemented/docsets/developer/external/merged.md
new file mode 100644
index 0000000000..4b8d66c661
--- /dev/null
+++ b/docs/fragemented/docsets/developer/external/merged.md
@@ -0,0 +1,57 @@
+# Merged Fragmented Markdown
+
+## Source: docsets/developer/external/integration-quickstart.md
+
+# Integration Quickstart
+
+This quickstart gets an external service talking to `cliproxyapi++` with minimal changes.
+
+## 1. Configure Client Base URL and Key
+
+Set your OpenAI SDK/client to:
+
+- Base URL: `http://:8317/v1`
+- API key: one entry from `config.yaml -> api-keys`
+
+## 2. Run a Compatibility Check
+
+```bash
+curl -sS http://localhost:8317/v1/models \
+ -H "Authorization: Bearer " | jq '.data[:5]'
+```
+
+If this fails, fix auth/config before testing completions.
+
+## 3. Send a Chat Request
+
+```bash
+curl -sS -X POST http://localhost:8317/v1/chat/completions \
+ -H "Authorization: Bearer " \
+ -H "Content-Type: application/json" \
+ -d '{
+ "model": "claude-3-5-sonnet",
+ "messages": [{"role":"user","content":"Generate a short status update."}]
+ }'
+```
+
+## 4. Add Resilience in Client Code
+
+- Retry idempotent calls with jittered backoff.
+- Handle `429` with provider-aware cooldown windows.
+- Log response `id` and status for incident correlation.
+
+## 5. Add Runtime Observability
+
+```bash
+curl -sS http://localhost:8317/health
+curl -sS http://localhost:8317/v1/metrics/providers | jq
+```
+
+## Common Integration Pitfalls
+
+- Missing `Authorization` header on `/v1/*` calls.
+- Assuming all upstreams support identical model names.
+- Hard-coding one provider model without fallback.
+
+
+---
diff --git a/docs/fragemented/docsets/developer/internal/architecture.md b/docs/fragemented/docsets/developer/internal/architecture.md
new file mode 100644
index 0000000000..3f3f271066
--- /dev/null
+++ b/docs/fragemented/docsets/developer/internal/architecture.md
@@ -0,0 +1,44 @@
+# Internal Architecture
+
+A maintainers-first summary of core boundaries and runtime data flow.
+
+## Core Boundaries
+
+1. `cmd/`: process bootstrap and CLI entry.
+2. `pkg/llmproxy/api`: HTTP routing and middleware surfaces.
+3. `pkg/llmproxy/runtime` and executors: provider translation + request execution.
+4. `pkg/llmproxy/auth`: credential loading, OAuth flows, refresh behavior.
+5. Management/ops handlers: runtime control, introspection, and diagnostics.
+
+## Request Lifecycle (High Level)
+
+1. Request enters `/v1/*` route.
+2. Access middleware validates API key.
+3. Model/endpoint compatibility is resolved.
+4. Executor constructs provider-specific request.
+5. Response is normalized and returned.
+6. Metrics/logging capture operational signals.
+
+## Stability Contracts
+
+- `/v1/chat/completions` and `/v1/models` are external compatibility anchors.
+- Management APIs should remain explicit about auth and remote-access rules.
+- Routing changes must preserve predictable prefix/alias behavior.
+
+## Typical Change Risk Areas
+
+- Model mapping and alias conflicts.
+- OAuth token refresh edge cases.
+- Streaming response compatibility.
+- Backward compatibility for management endpoints.
+
+## Internal Validation Suggestions
+
+```bash
+# quick smoke requests
+curl -sS http://localhost:8317/health
+curl -sS http://localhost:8317/v1/models -H "Authorization: Bearer "
+
+# docs validation from docs/
+npm run docs:build
+```
diff --git a/docs/fragemented/docsets/developer/internal/index.md b/docs/fragemented/docsets/developer/internal/index.md
new file mode 100644
index 0000000000..bbc50af12c
--- /dev/null
+++ b/docs/fragemented/docsets/developer/internal/index.md
@@ -0,0 +1,8 @@
+# Consolidated Index
+
+## Files
+
+* `architecture.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/docsets/developer/internal/merged.md b/docs/fragemented/docsets/developer/internal/merged.md
new file mode 100644
index 0000000000..f59d1e6a22
--- /dev/null
+++ b/docs/fragemented/docsets/developer/internal/merged.md
@@ -0,0 +1,51 @@
+# Merged Fragmented Markdown
+
+## Source: docsets/developer/internal/architecture.md
+
+# Internal Architecture
+
+A maintainers-first summary of core boundaries and runtime data flow.
+
+## Core Boundaries
+
+1. `cmd/`: process bootstrap and CLI entry.
+2. `pkg/llmproxy/api`: HTTP routing and middleware surfaces.
+3. `pkg/llmproxy/runtime` and executors: provider translation + request execution.
+4. `pkg/llmproxy/auth`: credential loading, OAuth flows, refresh behavior.
+5. Management/ops handlers: runtime control, introspection, and diagnostics.
+
+## Request Lifecycle (High Level)
+
+1. Request enters `/v1/*` route.
+2. Access middleware validates API key.
+3. Model/endpoint compatibility is resolved.
+4. Executor constructs provider-specific request.
+5. Response is normalized and returned.
+6. Metrics/logging capture operational signals.
+
+## Stability Contracts
+
+- `/v1/chat/completions` and `/v1/models` are external compatibility anchors.
+- Management APIs should remain explicit about auth and remote-access rules.
+- Routing changes must preserve predictable prefix/alias behavior.
+
+## Typical Change Risk Areas
+
+- Model mapping and alias conflicts.
+- OAuth token refresh edge cases.
+- Streaming response compatibility.
+- Backward compatibility for management endpoints.
+
+## Internal Validation Suggestions
+
+```bash
+# quick smoke requests
+curl -sS http://localhost:8317/health
+curl -sS http://localhost:8317/v1/models -H "Authorization: Bearer "
+
+# docs validation from docs/
+npm run docs:build
+```
+
+
+---
diff --git a/docs/fragemented/docsets/index.md b/docs/fragemented/docsets/index.md
new file mode 100644
index 0000000000..01a6b43c66
--- /dev/null
+++ b/docs/fragemented/docsets/index.md
@@ -0,0 +1,30 @@
+# Docsets
+
+Audience-specific tracks for operating and integrating `cliproxyapi++`.
+
+## How To Use This Section
+
+- Start with the track matching your role.
+- Follow linked runbooks before reading deeper feature internals.
+- Use API pages for concrete request/response contracts.
+
+## Developer
+
+- [Internal Developer Docset](./developer/internal/)
+- [External Developer Docset](./developer/external/)
+
+## User
+
+- [Technical User Docset](./user/)
+
+## Agent
+
+- [Agent Operator Docset](./agent/)
+
+## Shared References
+
+- [Getting Started](/getting-started)
+- [API Index](/api/)
+- [Troubleshooting](/troubleshooting)
+- [Planning Boards](/planning/)
+- [Board Workflow](/planning/board-workflow)
diff --git a/docs/fragemented/docsets/user/index.md b/docs/fragemented/docsets/user/index.md
new file mode 100644
index 0000000000..41d9e15bef
--- /dev/null
+++ b/docs/fragemented/docsets/user/index.md
@@ -0,0 +1,8 @@
+# Consolidated Index
+
+## Files
+
+* `quickstart.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/docsets/user/merged.md b/docs/fragemented/docsets/user/merged.md
new file mode 100644
index 0000000000..195c3dabc4
--- /dev/null
+++ b/docs/fragemented/docsets/user/merged.md
@@ -0,0 +1,64 @@
+# Merged Fragmented Markdown
+
+## Source: docsets/user/quickstart.md
+
+# Technical User Quickstart
+
+A practical runbook to move from fresh install to reliable day-1 operation.
+
+## 1. Start the Service
+
+```bash
+docker compose up -d
+curl -sS http://localhost:8317/health
+```
+
+## 2. Validate Auth and Model Inventory
+
+```bash
+curl -sS http://localhost:8317/v1/models \
+ -H "Authorization: Bearer " | jq '.data[:10]'
+```
+
+## 3. Send a Known-Good Request
+
+```bash
+curl -sS -X POST http://localhost:8317/v1/chat/completions \
+ -H "Authorization: Bearer " \
+ -H "Content-Type: application/json" \
+ -d '{
+ "model": "claude-3-5-sonnet",
+ "messages": [{"role":"user","content":"Reply with: operational"}],
+ "temperature": 0,
+ "stream": false
+ }'
+```
+
+## 4. Check Runtime Signals
+
+```bash
+curl -sS http://localhost:8317/v1/metrics/providers | jq
+```
+
+## 5. Management Access (Optional, if enabled)
+
+```bash
+curl -sS http://localhost:8317/v0/management/config \
+ -H "Authorization: Bearer " | jq
+```
+
+## Common Day-1 Failures
+
+- `401`: wrong client key.
+- Empty model list: provider credential not active or prefix mismatch.
+- `429` burst: provider throttled; lower concurrency or add capacity.
+- Management `404`: `remote-management.secret-key` not set.
+
+## Next Docs
+
+- [Troubleshooting](/troubleshooting)
+- [Routing and Models Reference](/routing-reference)
+- [API Index](/api/)
+
+
+---
diff --git a/docs/fragemented/docsets/user/quickstart.md b/docs/fragemented/docsets/user/quickstart.md
new file mode 100644
index 0000000000..6d6fceae30
--- /dev/null
+++ b/docs/fragemented/docsets/user/quickstart.md
@@ -0,0 +1,57 @@
+# Technical User Quickstart
+
+A practical runbook to move from fresh install to reliable day-1 operation.
+
+## 1. Start the Service
+
+```bash
+docker compose up -d
+curl -sS http://localhost:8317/health
+```
+
+## 2. Validate Auth and Model Inventory
+
+```bash
+curl -sS http://localhost:8317/v1/models \
+ -H "Authorization: Bearer " | jq '.data[:10]'
+```
+
+## 3. Send a Known-Good Request
+
+```bash
+curl -sS -X POST http://localhost:8317/v1/chat/completions \
+ -H "Authorization: Bearer " \
+ -H "Content-Type: application/json" \
+ -d '{
+ "model": "claude-3-5-sonnet",
+ "messages": [{"role":"user","content":"Reply with: operational"}],
+ "temperature": 0,
+ "stream": false
+ }'
+```
+
+## 4. Check Runtime Signals
+
+```bash
+curl -sS http://localhost:8317/v1/metrics/providers | jq
+```
+
+## 5. Management Access (Optional, if enabled)
+
+```bash
+curl -sS http://localhost:8317/v0/management/config \
+ -H "Authorization: Bearer " | jq
+```
+
+## Common Day-1 Failures
+
+- `401`: wrong client key.
+- Empty model list: provider credential not active or prefix mismatch.
+- `429` burst: provider throttled; lower concurrency or add capacity.
+- Management `404`: `remote-management.secret-key` not set.
+
+## Next Docs
+
+- [Troubleshooting](/troubleshooting)
+- [Routing and Models Reference](/routing-reference)
+- [API Index](/api/)
diff --git a/docs/fragemented/features/architecture/DEV.md b/docs/fragemented/features/architecture/DEV.md
new file mode 100644
index 0000000000..da6ce7e466
--- /dev/null
+++ b/docs/fragemented/features/architecture/DEV.md
@@ -0,0 +1,836 @@
+# Developer Guide: Extending Library-First Architecture
+
+## Contributing to pkg/llmproxy
+
+This guide is for developers who want to extend the core library functionality: adding new providers, customizing translators, implementing new authentication flows, or optimizing performance.
+
+## Project Structure
+
+```
+pkg/llmproxy/
+├── translator/ # Protocol translation layer
+│ ├── base.go # Common interfaces and utilities
+│ ├── claude.go # Anthropic Claude
+│ ├── gemini.go # Google Gemini
+│ ├── openai.go # OpenAI GPT
+│ ├── kiro.go # AWS CodeWhisperer
+│ ├── copilot.go # GitHub Copilot
+│ └── aggregators.go # Multi-provider aggregators
+├── provider/ # Provider execution layer
+│ ├── base.go # Provider interface and executor
+│ ├── http.go # HTTP client with retry logic
+│ ├── rate_limit.go # Token bucket implementation
+│ └── health.go # Health check logic
+├── auth/ # Authentication lifecycle
+│ ├── manager.go # Core auth manager
+│ ├── oauth.go # OAuth flows
+│ ├── device_flow.go # Device authorization flow
+│ └── refresh.go # Token refresh worker
+├── config/ # Configuration management
+│ ├── loader.go # Config file parsing
+│ ├── schema.go # Validation schema
+│ └── synthesis.go # Config merge logic
+├── watcher/ # Dynamic reload orchestration
+│ ├── file.go # File system watcher
+│ ├── debounce.go # Debouncing logic
+│ └── notify.go # Change notifications
+└── metrics/ # Observability
+ ├── collector.go # Metrics collection
+ └── exporter.go # Metrics export
+```
+
+## Adding a New Provider
+
+### Step 1: Define Provider Configuration
+
+Add provider config to `config/schema.go`:
+
+```go
+type ProviderConfig struct {
+ Type string `yaml:"type" validate:"required,oneof=claude gemini openai kiro copilot myprovider"`
+ Enabled bool `yaml:"enabled"`
+ Models []ModelConfig `yaml:"models"`
+ AuthType string `yaml:"auth_type" validate:"required,oneof=api_key oauth device_flow"`
+ Priority int `yaml:"priority"`
+ Cooldown time.Duration `yaml:"cooldown"`
+ Endpoint string `yaml:"endpoint"`
+ // Provider-specific fields
+ CustomField string `yaml:"custom_field"`
+}
+```
+
+### Step 2: Implement Translator Interface
+
+Create `pkg/llmproxy/translator/myprovider.go`:
+
+```go
+package translator
+
+import (
+ "context"
+ "encoding/json"
+
+ openai "github.com/sashabaranov/go-openai"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy"
+)
+
+type MyProviderTranslator struct {
+ config *config.ProviderConfig
+}
+
+func NewMyProviderTranslator(cfg *config.ProviderConfig) *MyProviderTranslator {
+ return &MyProviderTranslator{config: cfg}
+}
+
+func (t *MyProviderTranslator) TranslateRequest(
+ ctx context.Context,
+ req *openai.ChatCompletionRequest,
+) (*llmproxy.ProviderRequest, error) {
+ // Map OpenAI models to provider models
+ modelMapping := map[string]string{
+ "gpt-4": "myprovider-v1-large",
+ "gpt-3.5-turbo": "myprovider-v1-medium",
+ }
+ providerModel := modelMapping[req.Model]
+ if providerModel == "" {
+ providerModel = req.Model
+ }
+
+ // Convert messages
+ messages := make([]map[string]interface{}, len(req.Messages))
+ for i, msg := range req.Messages {
+ messages[i] = map[string]interface{}{
+ "role": msg.Role,
+ "content": msg.Content,
+ }
+ }
+
+ // Build request
+ providerReq := &llmproxy.ProviderRequest{
+ Method: "POST",
+ Endpoint: t.config.Endpoint + "/v1/chat/completions",
+ Headers: map[string]string{
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+ },
+ Body: map[string]interface{}{
+ "model": providerModel,
+ "messages": messages,
+ "stream": req.Stream,
+ },
+ }
+
+ // Add optional parameters
+ if req.Temperature != 0 {
+ providerReq.Body["temperature"] = req.Temperature
+ }
+ if req.MaxTokens != 0 {
+ providerReq.Body["max_tokens"] = req.MaxTokens
+ }
+
+ return providerReq, nil
+}
+
+func (t *MyProviderTranslator) TranslateResponse(
+ ctx context.Context,
+ resp *llmproxy.ProviderResponse,
+) (*openai.ChatCompletionResponse, error) {
+ // Parse provider response
+ var providerBody struct {
+ ID string `json:"id"`
+ Model string `json:"model"`
+ Choices []struct {
+ Message struct {
+ Role string `json:"role"`
+ Content string `json:"content"`
+ } `json:"message"`
+ FinishReason string `json:"finish_reason"`
+ } `json:"choices"`
+ Usage struct {
+ PromptTokens int `json:"prompt_tokens"`
+ CompletionTokens int `json:"completion_tokens"`
+ TotalTokens int `json:"total_tokens"`
+ } `json:"usage"`
+ }
+
+ if err := json.Unmarshal(resp.Body, &providerBody); err != nil {
+ return nil, fmt.Errorf("failed to parse provider response: %w", err)
+ }
+
+ // Convert to OpenAI format
+ choices := make([]openai.ChatCompletionChoice, len(providerBody.Choices))
+ for i, choice := range providerBody.Choices {
+ choices[i] = openai.ChatCompletionChoice{
+ Message: openai.ChatCompletionMessage{
+ Role: openai.ChatMessageRole(choice.Message.Role),
+ Content: choice.Message.Content,
+ },
+ FinishReason: openai.FinishReason(choice.FinishReason),
+ }
+ }
+
+ return &openai.ChatCompletionResponse{
+ ID: providerBody.ID,
+ Model: resp.RequestModel,
+ Choices: choices,
+ Usage: openai.Usage{
+ PromptTokens: providerBody.Usage.PromptTokens,
+ CompletionTokens: providerBody.Usage.CompletionTokens,
+ TotalTokens: providerBody.Usage.TotalTokens,
+ },
+ }, nil
+}
+
+func (t *MyProviderTranslator) TranslateStream(
+ ctx context.Context,
+ stream io.Reader,
+) (<-chan *openai.ChatCompletionStreamResponse, error) {
+ // Implement streaming translation
+ ch := make(chan *openai.ChatCompletionStreamResponse)
+
+ go func() {
+ defer close(ch)
+
+ scanner := bufio.NewScanner(stream)
+ for scanner.Scan() {
+ line := scanner.Text()
+ if !strings.HasPrefix(line, "data: ") {
+ continue
+ }
+
+ data := strings.TrimPrefix(line, "data: ")
+ if data == "[DONE]" {
+ return
+ }
+
+ var chunk struct {
+ ID string `json:"id"`
+ Choices []struct {
+ Delta struct {
+ Content string `json:"content"`
+ } `json:"delta"`
+ FinishReason *string `json:"finish_reason"`
+ } `json:"choices"`
+ }
+
+ if err := json.Unmarshal([]byte(data), &chunk); err != nil {
+ continue
+ }
+
+ ch <- &openai.ChatCompletionStreamResponse{
+ ID: chunk.ID,
+ Choices: []openai.ChatCompletionStreamChoice{
+ {
+ Delta: openai.ChatCompletionStreamDelta{
+ Content: chunk.Choices[0].Delta.Content,
+ },
+ FinishReason: chunk.Choices[0].FinishReason,
+ },
+ },
+ }
+ }
+ }()
+
+ return ch, nil
+}
+
+func (t *MyProviderTranslator) SupportsStreaming() bool {
+ return true
+}
+
+func (t *MyProviderTranslator) SupportsFunctions() bool {
+ return false
+}
+
+func (t *MyProviderTranslator) MaxTokens() int {
+ return 4096
+}
+```
+
+### Step 3: Implement Provider Executor
+
+Create `pkg/llmproxy/provider/myprovider.go`:
+
+```go
+package provider
+
+import (
+ "context"
+ "fmt"
+ "net/http"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/coreauth"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/translator"
+)
+
+type MyProviderExecutor struct {
+ config *config.ProviderConfig
+ client *http.Client
+ rateLimit *RateLimiter
+ translator *translator.MyProviderTranslator
+}
+
+func NewMyProviderExecutor(
+ cfg *config.ProviderConfig,
+ rtProvider coreauth.RoundTripperProvider,
+) *MyProviderExecutor {
+ return &MyProviderExecutor{
+ config: cfg,
+ client: NewHTTPClient(rtProvider),
+ rateLimit: NewRateLimiter(cfg.RateLimit),
+ translator: translator.NewMyProviderTranslator(cfg),
+ }
+}
+
+func (e *MyProviderExecutor) Execute(
+ ctx context.Context,
+ auth coreauth.Auth,
+ req *llmproxy.ProviderRequest,
+) (*llmproxy.ProviderResponse, error) {
+ // Rate limit check
+ if err := e.rateLimit.Wait(ctx); err != nil {
+ return nil, fmt.Errorf("rate limit exceeded: %w", err)
+ }
+
+ // Add auth headers
+ if auth != nil {
+ req.Headers["Authorization"] = fmt.Sprintf("Bearer %s", auth.Token)
+ }
+
+ // Execute request
+ resp, err := e.client.Do(ctx, req)
+ if err != nil {
+ return nil, fmt.Errorf("request failed: %w", err)
+ }
+
+ // Check for errors
+ if resp.StatusCode >= 400 {
+ return nil, fmt.Errorf("provider error: %s", string(resp.Body))
+ }
+
+ return resp, nil
+}
+
+func (e *MyProviderExecutor) ExecuteStream(
+ ctx context.Context,
+ auth coreauth.Auth,
+ req *llmproxy.ProviderRequest,
+) (<-chan *llmproxy.ProviderChunk, error) {
+ // Rate limit check
+ if err := e.rateLimit.Wait(ctx); err != nil {
+ return nil, fmt.Errorf("rate limit exceeded: %w", err)
+ }
+
+ // Add auth headers
+ if auth != nil {
+ req.Headers["Authorization"] = fmt.Sprintf("Bearer %s", auth.Token)
+ }
+
+ // Execute streaming request
+ stream, err := e.client.DoStream(ctx, req)
+ if err != nil {
+ return nil, fmt.Errorf("request failed: %w", err)
+ }
+
+ return stream, nil
+}
+
+func (e *MyProviderExecutor) HealthCheck(
+ ctx context.Context,
+ auth coreauth.Auth,
+) error {
+ req := &llmproxy.ProviderRequest{
+ Method: "GET",
+ Endpoint: e.config.Endpoint + "/v1/health",
+ }
+
+ resp, err := e.client.Do(ctx, req)
+ if err != nil {
+ return err
+ }
+
+ if resp.StatusCode != 200 {
+ return fmt.Errorf("health check failed: %s", string(resp.Body))
+ }
+
+ return nil
+}
+
+func (e *MyProviderExecutor) Name() string {
+ return "myprovider"
+}
+
+func (e *MyProviderExecutor) SupportsModel(model string) bool {
+ for _, m := range e.config.Models {
+ if m.Name == model {
+ return m.Enabled
+ }
+ }
+ return false
+}
+```
+
+### Step 4: Register Provider
+
+Update `pkg/llmproxy/provider/registry.go`:
+
+```go
+package provider
+
+import (
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/coreauth"
+)
+
+type ProviderFactory func(
+ cfg *config.ProviderConfig,
+ rtProvider coreauth.RoundTripperProvider,
+) ProviderExecutor
+
+var providers = map[string]ProviderFactory{
+ "claude": NewClaudeExecutor,
+ "gemini": NewGeminiExecutor,
+ "openai": NewOpenAIExecutor,
+ "kiro": NewKiroExecutor,
+ "copilot": NewCopilotExecutor,
+ "myprovider": NewMyProviderExecutor, // Add your provider
+}
+
+func GetExecutor(
+ providerType string,
+ cfg *config.ProviderConfig,
+ rtProvider coreauth.RoundTripperProvider,
+) (ProviderExecutor, error) {
+ factory, ok := providers[providerType]
+ if !ok {
+ return nil, fmt.Errorf("unknown provider type: %s", providerType)
+ }
+
+ return factory(cfg, rtProvider), nil
+}
+```
+
+### Step 5: Add Tests
+
+Create `pkg/llmproxy/translator/myprovider_test.go`:
+
+```go
+package translator
+
+import (
+ "context"
+ "testing"
+
+ openai "github.com/sashabaranov/go-openai"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+)
+
+func TestMyProviderTranslator(t *testing.T) {
+ cfg := &config.ProviderConfig{
+ Type: "myprovider",
+ Endpoint: "https://api.myprovider.com",
+ }
+
+ translator := NewMyProviderTranslator(cfg)
+
+ t.Run("TranslateRequest", func(t *testing.T) {
+ req := &openai.ChatCompletionRequest{
+ Model: "gpt-4",
+ Messages: []openai.ChatCompletionMessage{
+ {Role: "user", Content: "Hello"},
+ },
+ }
+
+ providerReq, err := translator.TranslateRequest(context.Background(), req)
+ if err != nil {
+ t.Fatalf("TranslateRequest failed: %v", err)
+ }
+
+ if providerReq.Endpoint != "https://api.myprovider.com/v1/chat/completions" {
+ t.Errorf("unexpected endpoint: %s", providerReq.Endpoint)
+ }
+ })
+
+ t.Run("TranslateResponse", func(t *testing.T) {
+ providerResp := &llmproxy.ProviderResponse{
+ Body: []byte(`{
+ "id": "test-id",
+ "model": "myprovider-v1-large",
+ "choices": [{
+ "message": {"role": "assistant", "content": "Hi!"},
+ "finish_reason": "stop"
+ }],
+ "usage": {"prompt_tokens": 10, "completion_tokens": 5, "total_tokens": 15}
+ }`),
+ }
+
+ openaiResp, err := translator.TranslateResponse(context.Background(), providerResp)
+ if err != nil {
+ t.Fatalf("TranslateResponse failed: %v", err)
+ }
+
+ if openaiResp.ID != "test-id" {
+ t.Errorf("unexpected id: %s", openaiResp.ID)
+ }
+ })
+}
+```
+
+## Custom Authentication Flows
+
+### Implementing OAuth
+
+If your provider uses OAuth, implement the `AuthFlow` interface:
+
+```go
+package auth
+
+import (
+ "context"
+ "time"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+)
+
+type MyProviderOAuthFlow struct {
+ clientID string
+ clientSecret string
+ redirectURL string
+ tokenURL string
+ authURL string
+}
+
+func (f *MyProviderOAuthFlow) Start(ctx context.Context) (*AuthResult, error) {
+ // Generate authorization URL
+ state := generateState()
+ authURL := fmt.Sprintf("%s?client_id=%s&redirect_uri=%s&state=%s",
+ f.authURL, f.clientID, f.redirectURL, state)
+
+ return &AuthResult{
+ Method: "oauth",
+ AuthURL: authURL,
+ State: state,
+ ExpiresAt: time.Now().Add(10 * time.Minute),
+ }, nil
+}
+
+func (f *MyProviderOAuthFlow) Exchange(ctx context.Context, code string) (*AuthToken, error) {
+ // Exchange authorization code for token
+ req := map[string]string{
+ "client_id": f.clientID,
+ "client_secret": f.clientSecret,
+ "code": code,
+ "redirect_uri": f.redirectURL,
+ "grant_type": "authorization_code",
+ }
+
+ resp, err := http.PostForm(f.tokenURL, req)
+ if err != nil {
+ return nil, err
+ }
+
+ var token struct {
+ AccessToken string `json:"access_token"`
+ RefreshToken string `json:"refresh_token"`
+ ExpiresIn int `json:"expires_in"`
+ }
+
+ if err := json.NewDecoder(resp.Body).Decode(&token); err != nil {
+ return nil, err
+ }
+
+ return &AuthToken{
+ AccessToken: token.AccessToken,
+ RefreshToken: token.RefreshToken,
+ ExpiresAt: time.Now().Add(time.Duration(token.ExpiresIn) * time.Second),
+ }, nil
+}
+
+func (f *MyProviderOAuthFlow) Refresh(ctx context.Context, refreshToken string) (*AuthToken, error) {
+ // Refresh token
+ req := map[string]string{
+ "client_id": f.clientID,
+ "client_secret": f.clientSecret,
+ "refresh_token": refreshToken,
+ "grant_type": "refresh_token",
+ }
+
+ resp, err := http.PostForm(f.tokenURL, req)
+ if err != nil {
+ return nil, err
+ }
+
+ var token struct {
+ AccessToken string `json:"access_token"`
+ RefreshToken string `json:"refresh_token"`
+ ExpiresIn int `json:"expires_in"`
+ }
+
+ if err := json.NewDecoder(resp.Body).Decode(&token); err != nil {
+ return nil, err
+ }
+
+ return &AuthToken{
+ AccessToken: token.AccessToken,
+ RefreshToken: token.RefreshToken,
+ ExpiresAt: time.Now().Add(time.Duration(token.ExpiresIn) * time.Second),
+ }, nil
+}
+```
+
+### Implementing Device Flow
+
+```go
+package auth
+
+import (
+ "context"
+ "fmt"
+ "time"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+)
+
+type MyProviderDeviceFlow struct {
+ deviceCodeURL string
+ tokenURL string
+ clientID string
+}
+
+func (f *MyProviderDeviceFlow) Start(ctx context.Context) (*AuthResult, error) {
+ // Request device code
+ resp, err := http.PostForm(f.deviceCodeURL, map[string]string{
+ "client_id": f.clientID,
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ var dc struct {
+ DeviceCode string `json:"device_code"`
+ UserCode string `json:"user_code"`
+ VerificationURI string `json:"verification_uri"`
+ VerificationURIComplete string `json:"verification_uri_complete"`
+ ExpiresIn int `json:"expires_in"`
+ Interval int `json:"interval"`
+ }
+
+ if err := json.NewDecoder(resp.Body).Decode(&dc); err != nil {
+ return nil, err
+ }
+
+ return &AuthResult{
+ Method: "device_flow",
+ UserCode: dc.UserCode,
+ VerificationURL: dc.VerificationURI,
+ VerificationURLComplete: dc.VerificationURIComplete,
+ DeviceCode: dc.DeviceCode,
+ Interval: dc.Interval,
+ ExpiresAt: time.Now().Add(time.Duration(dc.ExpiresIn) * time.Second),
+ }, nil
+}
+
+func (f *MyProviderDeviceFlow) Poll(ctx context.Context, deviceCode string) (*AuthToken, error) {
+ // Poll for token
+ ticker := time.NewTicker(5 * time.Second)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return nil, ctx.Err()
+ case <-ticker.C:
+ resp, err := http.PostForm(f.tokenURL, map[string]string{
+ "client_id": f.clientID,
+ "grant_type": "urn:ietf:params:oauth:grant-type:device_code",
+ "device_code": deviceCode,
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ var token struct {
+ AccessToken string `json:"access_token"`
+ ExpiresIn int `json:"expires_in"`
+ Error string `json:"error"`
+ }
+
+ if err := json.NewDecoder(resp.Body).Decode(&token); err != nil {
+ return nil, err
+ }
+
+ if token.Error == "" {
+ return &AuthToken{
+ AccessToken: token.AccessToken,
+ ExpiresAt: time.Now().Add(time.Duration(token.ExpiresIn) * time.Second),
+ }, nil
+ }
+
+ if token.Error != "authorization_pending" {
+ return nil, fmt.Errorf("device flow error: %s", token.Error)
+ }
+ }
+ }
+}
+```
+
+## Performance Optimization
+
+### Connection Pooling
+
+```go
+package provider
+
+import (
+ "net/http"
+ "time"
+)
+
+func NewHTTPClient(rtProvider coreauth.RoundTripperProvider) *http.Client {
+ transport := &http.Transport{
+ MaxIdleConns: 100,
+ MaxIdleConnsPerHost: 10,
+ IdleConnTimeout: 90 * time.Second,
+ TLSHandshakeTimeout: 10 * time.Second,
+ }
+
+ return &http.Client{
+ Transport: transport,
+ Timeout: 60 * time.Second,
+ }
+}
+```
+
+### Rate Limiting Optimization
+
+```go
+package provider
+
+import (
+ "golang.org/x/time/rate"
+)
+
+type RateLimiter struct {
+ limiter *rate.Limiter
+}
+
+func NewRateLimiter(reqPerSec float64) *RateLimiter {
+ return &RateLimiter{
+ limiter: rate.NewLimiter(rate.Limit(reqPerSec), 10), // Burst of 10
+ }
+}
+
+func (r *RateLimiter) Wait(ctx context.Context) error {
+ return r.limiter.Wait(ctx)
+}
+```
+
+### Caching Strategy
+
+```go
+package provider
+
+import (
+ "sync"
+ "time"
+)
+
+type Cache struct {
+ mu sync.RWMutex
+ data map[string]cacheEntry
+ ttl time.Duration
+}
+
+type cacheEntry struct {
+ value interface{}
+ expiresAt time.Time
+}
+
+func NewCache(ttl time.Duration) *Cache {
+ c := &Cache{
+ data: make(map[string]cacheEntry),
+ ttl: ttl,
+ }
+
+ // Start cleanup goroutine
+ go c.cleanup()
+
+ return c
+}
+
+func (c *Cache) Get(key string) (interface{}, bool) {
+ c.mu.RLock()
+ defer c.mu.RUnlock()
+
+ entry, ok := c.data[key]
+ if !ok || time.Now().After(entry.expiresAt) {
+ return nil, false
+ }
+
+ return entry.value, true
+}
+
+func (c *Cache) Set(key string, value interface{}) {
+ c.mu.Lock()
+ defer c.mu.Unlock()
+
+ c.data[key] = cacheEntry{
+ value: value,
+ expiresAt: time.Now().Add(c.ttl),
+ }
+}
+
+func (c *Cache) cleanup() {
+ ticker := time.NewTicker(time.Minute)
+ defer ticker.Stop()
+
+ for range ticker.C {
+ c.mu.Lock()
+ for key, entry := range c.data {
+ if time.Now().After(entry.expiresAt) {
+ delete(c.data, key)
+ }
+ }
+ c.mu.Unlock()
+ }
+}
+```
+
+## Testing Guidelines
+
+### Unit Tests
+
+- Test all translator methods
+- Mock HTTP responses
+- Cover error paths
+
+### Integration Tests
+
+- Test against real provider APIs (use test keys)
+- Test authentication flows
+- Test streaming responses
+
+### Contract Tests
+
+- Verify OpenAI API compatibility
+- Test model mapping
+- Validate error handling
+
+## Submitting Changes
+
+1. **Add tests** for new functionality
+2. **Run linter**: `make lint`
+3. **Run tests**: `make test`
+4. **Update documentation** if API changes
+5. **Submit PR** with description of changes
+
+## API Stability
+
+All exported APIs in `pkg/llmproxy` follow semantic versioning:
+- **Major version bump** (v7, v8): Breaking changes
+- **Minor version bump**: New features (backwards compatible)
+- **Patch version**: Bug fixes
+
+Deprecated APIs remain for 2 major versions before removal.
diff --git a/docs/fragemented/features/architecture/SPEC.md b/docs/fragemented/features/architecture/SPEC.md
new file mode 100644
index 0000000000..fb99c56ab3
--- /dev/null
+++ b/docs/fragemented/features/architecture/SPEC.md
@@ -0,0 +1,382 @@
+# Technical Specification: Library-First Architecture (pkg/llmproxy)
+
+## Overview
+
+**cliproxyapi++** implements a "Library-First" architectural pattern by extracting all core proxy logic from the traditional `internal/` package into a public, reusable `pkg/llmproxy` module. This transformation enables external Go applications to import and embed the entire translation, authentication, and communication engine without depending on the CLI binary.
+
+## Architecture Migration
+
+### Before: Mainline Structure
+```
+CLIProxyAPI/
+├── internal/
+│ ├── translator/ # Core translation logic (NOT IMPORTABLE)
+│ ├── provider/ # Provider executors (NOT IMPORTABLE)
+│ └── auth/ # Auth management (NOT IMPORTABLE)
+└── cmd/server/
+```
+
+### After: cliproxyapi++ Structure
+```
+cliproxyapi++/
+├── pkg/llmproxy/ # PUBLIC LIBRARY (IMPORTABLE)
+│ ├── translator/ # Translation engine
+│ ├── provider/ # Provider implementations
+│ ├── config/ # Configuration synthesis
+│ ├── watcher/ # Dynamic reload orchestration
+│ └── auth/ # Auth lifecycle management
+├── cmd/server/ # CLI entry point (uses pkg/llmproxy)
+└── sdk/cliproxy/ # High-level embedding SDK
+```
+
+## Core Components
+
+### 1. Translation Engine (`pkg/llmproxy/translator`)
+
+**Purpose**: Handles bidirectional protocol conversion between OpenAI-compatible requests and proprietary LLM APIs.
+
+**Key Interfaces**:
+```go
+type Translator interface {
+ // Convert OpenAI format to provider format
+ TranslateRequest(ctx context.Context, req *openai.ChatRequest) (*ProviderRequest, error)
+
+ // Convert provider response back to OpenAI format
+ TranslateResponse(ctx context.Context, resp *ProviderResponse) (*openai.ChatResponse, error)
+
+ // Stream translation for SSE
+ TranslateStream(ctx context.Context, stream io.Reader) (<-chan *openai.ChatChunk, error)
+
+ // Provider-specific capabilities
+ SupportsStreaming() bool
+ SupportsFunctions() bool
+ MaxTokens() int
+}
+```
+
+**Implemented Translators**:
+- `claude.go` - Anthropic Claude API
+- `gemini.go` - Google Gemini API
+- `openai.go` - OpenAI GPT API
+- `kiro.go` - AWS CodeWhisperer (custom protocol)
+- `copilot.go` - GitHub Copilot (custom protocol)
+- `aggregators.go` - OpenRouter, Together, Fireworks
+
+**Translation Strategy**:
+1. **Request Normalization**: Parse OpenAI-format request, extract:
+ - Messages (system, user, assistant)
+ - Tools/functions
+ - Generation parameters (temp, top_p, max_tokens)
+ - Streaming flag
+
+2. **Provider Mapping**: Map OpenAI models to provider endpoints:
+ ```
+ claude-3-5-sonnet -> claude-3-5-sonnet-20241022 (Anthropic)
+ gpt-4 -> gpt-4-turbo-preview (OpenAI)
+ gemini-1.5-pro -> gemini-1.5-pro-preview-0514 (Gemini)
+ ```
+
+3. **Response Normalization**: Convert provider responses to OpenAI format:
+ - Standardize usage statistics (prompt_tokens, completion_tokens)
+ - Normalize finish reasons (stop, length, content_filter)
+ - Map provider-specific error codes to OpenAI error types
+
+### 2. Provider Execution (`pkg/llmproxy/provider`)
+
+**Purpose**: Orchestrates HTTP communication with LLM providers, handling authentication, retry logic, and error recovery.
+
+**Key Interfaces**:
+```go
+type ProviderExecutor interface {
+ // Execute a single request (non-streaming)
+ Execute(ctx context.Context, auth coreauth.Auth, req *ProviderRequest) (*ProviderResponse, error)
+
+ // Execute streaming request
+ ExecuteStream(ctx context.Context, auth coreauth.Auth, req *ProviderRequest) (<-chan *ProviderChunk, error)
+
+ // Health check provider
+ HealthCheck(ctx context.Context, auth coreauth.Auth) error
+
+ // Provider metadata
+ Name() string
+ SupportsModel(model string) bool
+}
+```
+
+**Executor Lifecycle**:
+```
+Request -> RateLimitCheck -> AuthValidate -> ProviderExecute ->
+ -> Success -> Response
+ -> RetryableError -> Backoff -> Retry
+ -> NonRetryableError -> Error
+```
+
+**Rate Limiting**:
+- Per-provider token bucket
+- Per-credential quota tracking
+- Intelligent cooldown on 429 responses
+
+### 3. Configuration Management (`pkg/llmproxy/config`)
+
+**Purpose**: Loads, validates, and synthesizes configuration from multiple sources.
+
+**Configuration Hierarchy**:
+```
+1. Base config (config.yaml)
+2. Environment overrides (CLI_PROXY_*)
+3. Runtime synthesis (watcher merges changes)
+4. Per-request overrides (query params)
+```
+
+**Key Structures**:
+```go
+type Config struct {
+ Server ServerConfig
+ Providers map[string]ProviderConfig
+ Auth AuthConfig
+ Management ManagementConfig
+ Logging LoggingConfig
+}
+
+type ProviderConfig struct {
+ Type string // "claude", "gemini", "openai", etc.
+ Enabled bool
+ Models []ModelConfig
+ AuthType string // "api_key", "oauth", "device_flow"
+ Priority int // Routing priority
+ Cooldown time.Duration
+}
+```
+
+**Hot-Reload Mechanism**:
+- File watcher on `config.yaml` and `auths/` directory
+- Debounced reload (500ms delay)
+- Atomic config swapping (no request interruption)
+- Validation before activation (reject invalid configs)
+
+### 4. Watcher & Synthesis (`pkg/llmproxy/watcher`)
+
+**Purpose**: Orchestrates dynamic configuration updates and background lifecycle management.
+
+**Watcher Architecture**:
+```go
+type Watcher struct {
+ configPath string
+ authDir string
+ reloadChan chan struct{}
+ currentConfig atomic.Value // *Config
+ currentAuths atomic.Value // []coreauth.Auth
+}
+
+// Run starts the watcher goroutine
+func (w *Watcher) Run(ctx context.Context) error {
+ // 1. Initial load
+ w.loadAll()
+
+ // 2. Watch files
+ go w.watchConfig(ctx)
+ go w.watchAuths(ctx)
+
+ // 3. Handle reloads
+ for {
+ select {
+ case <-w.reloadChan:
+ w.loadAll()
+ case <-ctx.Done():
+ return ctx.Err()
+ }
+ }
+}
+```
+
+**Synthesis Pipeline**:
+```
+Config File Changed -> Parse YAML -> Validate Schema ->
+ Merge with Existing -> Check Conflicts -> Atomic Swap
+```
+
+**Background Workers**:
+1. **Token Refresh Worker**: Checks every 5 minutes, refreshes tokens expiring within 10 minutes
+2. **Health Check Worker**: Pings providers every 30 seconds, marks unhealthy providers
+3. **Metrics Collector**: Aggregates request latency, error rates, token usage
+
+## Data Flow
+
+### Request Processing Flow
+```
+HTTP Request (OpenAI format)
+ ↓
+Middleware (CORS, auth, logging)
+ ↓
+Handler (Parse request, select provider)
+ ↓
+Provider Executor (Rate limit check)
+ ↓
+Translator (Convert to provider format)
+ ↓
+HTTP Client (Execute provider API)
+ ↓
+Translator (Convert response)
+ ↓
+Handler (Send response)
+ ↓
+Middleware (Log metrics)
+ ↓
+HTTP Response (OpenAI format)
+```
+
+### Configuration Reload Flow
+```
+File System Event (config.yaml changed)
+ ↓
+Watcher (Detect change)
+ ↓
+Debounce (500ms)
+ ↓
+Config Loader (Parse and validate)
+ ↓
+Synthesizer (Merge with existing)
+ ↓
+Atomic Swap (Update runtime config)
+ ↓
+Notification (Trigger background workers)
+```
+
+### Token Refresh Flow
+```
+Background Worker (Every 5 min)
+ ↓
+Scan All Auths
+ ↓
+Check Expiry (token.ExpiresAt < now + 10min)
+ ↓
+Execute Refresh Flow
+ ↓
+Update Storage (auths/{provider}.json)
+ ↓
+Notify Watcher
+ ↓
+Atomic Swap (Update runtime auths)
+```
+
+## Reusability Patterns
+
+### Embedding as Library
+```go
+import "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy"
+
+// Create translator
+translator := llmproxy.NewClaudeTranslator()
+
+// Translate request
+providerReq, err := translator.TranslateRequest(ctx, openaiReq)
+
+// Create executor
+executor := llmproxy.NewClaudeExecutor()
+
+// Execute
+resp, err := executor.Execute(ctx, auth, providerReq)
+
+// Translate response
+openaiResp, err := translator.TranslateResponse(ctx, resp)
+```
+
+### Custom Provider Integration
+```go
+// Implement Translator interface
+type MyCustomTranslator struct{}
+
+func (t *MyCustomTranslator) TranslateRequest(ctx context.Context, req *openai.ChatRequest) (*llmproxy.ProviderRequest, error) {
+ // Custom translation logic
+ return &llmproxy.ProviderRequest{}, nil
+}
+
+// Register with executor
+executor := llmproxy.NewExecutor(
+ llmproxy.WithTranslator(&MyCustomTranslator{}),
+)
+```
+
+### Extending Configuration
+```go
+// Custom config synthesizer
+type MySynthesizer struct{}
+
+func (s *MySynthesizer) Synthesize(base *llmproxy.Config, overrides map[string]interface{}) (*llmproxy.Config, error) {
+ // Custom merge logic
+ return base, nil
+}
+
+// Use in watcher
+watcher := llmproxy.NewWatcher(
+ llmproxy.WithSynthesizer(&MySynthesizer{}),
+)
+```
+
+## Performance Characteristics
+
+### Memory Footprint
+- Base package: ~15MB (includes all translators)
+- Per-request allocation: <1MB
+- Config reload overhead: <10ms
+
+### Concurrency Model
+- Request handling: Goroutine-per-request (bounded by worker pool)
+- Config reloading: Single goroutine (serialized)
+- Token refresh: Single goroutine (serialized per provider)
+- Health checks: Per-provider goroutines
+
+### Throughput
+- Single instance: ~1000 requests/second (varies by provider)
+- Hot reload impact: <5ms latency blip during swap
+- Background workers: <1% CPU utilization
+
+## Security Considerations
+
+### Public API Stability
+- All exported APIs follow semantic versioning
+- Breaking changes require major version bump (v7, v8, etc.)
+- Deprecated APIs remain for 2 major versions
+
+### Input Validation
+- All translator inputs validated before provider execution
+- Config validation on load (reject malformed configs)
+- Auth credential validation before storage
+
+### Error Propagation
+- Internal errors sanitized before API response
+- Provider errors mapped to OpenAI error types
+- Detailed logging for debugging (configurable verbosity)
+
+## Migration Guide
+
+### From Mainline internal/
+```go
+// Before (mainline)
+import "github.com/router-for-me/CLIProxyAPI/v6/internal/translator"
+
+// After (cliproxyapi++)
+import "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/translator"
+```
+
+### Function Compatibility
+Most internal functions have public equivalents:
+- `internal/translator.NewClaude()` → `llmproxy/translator.NewClaude()`
+- `internal/provider.NewExecutor()` → `llmproxy/provider.NewExecutor()`
+- `internal/config.Load()` → `llmproxy/config.LoadConfig()`
+
+## Testing Strategy
+
+### Unit Tests
+- Each translator: Mock provider responses
+- Each executor: Mock HTTP transport
+- Config validation: Test schema violations
+
+### Integration Tests
+- End-to-end proxy: Real provider APIs (test keys)
+- Hot reload: File system changes
+- Token refresh: Expiring credentials
+
+### Contract Tests
+- OpenAI API compatibility: Verify response format
+- Provider contract: Verify translator mapping
diff --git a/docs/fragemented/features/architecture/USER.md b/docs/fragemented/features/architecture/USER.md
new file mode 100644
index 0000000000..e49e9e0adf
--- /dev/null
+++ b/docs/fragemented/features/architecture/USER.md
@@ -0,0 +1,436 @@
+# User Guide: Library-First Architecture
+
+## What is "Library-First"?
+
+The **Library-First** architecture means that all the core proxy logic (translation, authentication, provider communication) is packaged as a reusable Go library (`pkg/llmproxy`). This allows you to embed the proxy directly into your own applications instead of running it as a separate service.
+
+## Why Use the Library?
+
+### Benefits Over Standalone CLI
+
+| Aspect | Standalone CLI | Embedded Library |
+|--------|---------------|------------------|
+| **Deployment** | Separate process, network calls | In-process, zero network overhead |
+| **Configuration** | External config file | Programmatic config |
+| **Customization** | Limited to config options | Full code access |
+| **Performance** | Network latency + serialization | Direct function calls |
+| **Monitoring** | External metrics/logs | Internal hooks/observability |
+
+### When to Use Each
+
+**Use Standalone CLI when**:
+- You want a simple, drop-in proxy
+- You're integrating with existing OpenAI clients
+- You don't need custom logic
+- You prefer configuration over code
+
+**Use Embedded Library when**:
+- You're building a Go application
+- You need custom request/response processing
+- You want to integrate with your auth system
+- You need fine-grained control over routing
+
+## Quick Start: Embedding in Your App
+
+### Step 1: Install the SDK
+
+```bash
+go get github.com/KooshaPari/cliproxyapi-plusplus/sdk/cliproxy
+```
+
+### Step 2: Basic Embedding
+
+Create `main.go`:
+
+```go
+package main
+
+import (
+ "context"
+ "log"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+ "github.com/KooshaPari/cliproxyapi-plusplus/sdk/cliproxy"
+)
+
+func main() {
+ // Load config
+ cfg, err := config.LoadConfig("config.yaml")
+ if err != nil {
+ log.Fatalf("Failed to load config: %v", err)
+ }
+
+ // Build service
+ svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ Build()
+ if err != nil {
+ log.Fatalf("Failed to build service: %v", err)
+ }
+
+ // Run service
+ ctx := context.Background()
+ if err := svc.Run(ctx); err != nil {
+ log.Fatalf("Service error: %v", err)
+ }
+}
+```
+
+### Step 3: Create Config File
+
+Create `config.yaml`:
+
+```yaml
+server:
+ port: 8317
+
+providers:
+ claude:
+ type: "claude"
+ enabled: true
+ models:
+ - name: "claude-3-5-sonnet"
+ enabled: true
+
+auth:
+ dir: "./auths"
+ providers:
+ - "claude"
+```
+
+### Step 4: Run Your App
+
+```bash
+# Add your Claude API key
+echo '{"type":"api_key","token":"sk-ant-xxx"}' > auths/claude.json
+
+# Run your app
+go run main.go
+```
+
+Your embedded proxy is now running on port 8317 with OpenAI-compatible endpoints!
+
+## Advanced: Custom Translators
+
+If you need to support a custom LLM provider, you can implement your own translator:
+
+```go
+package main
+
+import (
+ "context"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/translator"
+ openai "github.com/sashabaranov/go-openai"
+)
+
+// MyCustomTranslator implements the Translator interface
+type MyCustomTranslator struct{}
+
+func (t *MyCustomTranslator) TranslateRequest(
+ ctx context.Context,
+ req *openai.ChatCompletionRequest,
+) (*translator.ProviderRequest, error) {
+ // Convert OpenAI request to your provider's format
+ return &translator.ProviderRequest{
+ Endpoint: "https://api.myprovider.com/v1/chat",
+ Headers: map[string]string{
+ "Content-Type": "application/json",
+ },
+ Body: map[string]interface{}{
+ "messages": req.Messages,
+ "model": req.Model,
+ },
+ }, nil
+}
+
+func (t *MyCustomTranslator) TranslateResponse(
+ ctx context.Context,
+ resp *translator.ProviderResponse,
+) (*openai.ChatCompletionResponse, error) {
+ // Convert provider response back to OpenAI format
+ return &openai.ChatCompletionResponse{
+ ID: resp.ID,
+ Choices: []openai.ChatCompletionChoice{
+ {
+ Message: openai.ChatCompletionMessage{
+ Role: "assistant",
+ Content: resp.Content,
+ },
+ },
+ },
+ }, nil
+}
+
+// Register your translator
+func main() {
+ myTranslator := &MyCustomTranslator{}
+
+ svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithCustomTranslator("myprovider", myTranslator).
+ Build()
+ // ...
+}
+```
+
+## Advanced: Custom Auth Management
+
+Integrate with your existing auth system:
+
+```go
+package main
+
+import (
+ "context"
+ "sync"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/sdk/cliproxy"
+)
+
+// MyAuthProvider implements TokenClientProvider
+type MyAuthProvider struct {
+ mu sync.RWMutex
+ tokens map[string]string
+}
+
+func (p *MyAuthProvider) Load(
+ ctx context.Context,
+ cfg *config.Config,
+) (*cliproxy.TokenClientResult, error) {
+ p.mu.RLock()
+ defer p.mu.RUnlock()
+
+ var clients []cliproxy.AuthClient
+ for provider, token := range p.tokens {
+ clients = append(clients, cliproxy.AuthClient{
+ Provider: provider,
+ Type: "api_key",
+ Token: token,
+ })
+ }
+
+ return &cliproxy.TokenClientResult{
+ Clients: clients,
+ Count: len(clients),
+ }, nil
+}
+
+func (p *MyAuthProvider) AddToken(provider, token string) {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+ p.tokens[provider] = token
+}
+
+func main() {
+ authProvider := &MyAuthProvider{
+ tokens: make(map[string]string),
+ }
+
+ // Add tokens programmatically
+ authProvider.AddToken("claude", "sk-ant-xxx")
+ authProvider.AddToken("openai", "sk-xxx")
+
+ svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithTokenClientProvider(authProvider).
+ Build()
+ // ...
+}
+```
+
+## Advanced: Request Interception
+
+Add custom logic before/after requests:
+
+```go
+svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithServerOptions(
+ cliproxy.WithMiddleware(func(c *gin.Context) {
+ // Log request before processing
+ log.Printf("Request: %s %s", c.Request.Method, c.Request.URL.Path)
+ c.Next()
+
+ // Log response after processing
+ log.Printf("Response status: %d", c.Writer.Status())
+ }),
+ cliproxy.WithRouterConfigurator(func(e *gin.Engine, h *handlers.BaseAPIHandler, cfg *config.Config) {
+ // Add custom routes
+ e.GET("/my-custom-endpoint", func(c *gin.Context) {
+ c.JSON(200, gin.H{"message": "custom endpoint"})
+ })
+ }),
+ ).
+ Build()
+```
+
+## Advanced: Lifecycle Hooks
+
+Respond to service lifecycle events:
+
+```go
+hooks := cliproxy.Hooks{
+ OnBeforeStart: func(cfg *config.Config) {
+ log.Println("Initializing database connections...")
+ // Your custom init logic
+ },
+ OnAfterStart: func(s *cliproxy.Service) {
+ log.Println("Service ready, starting health checks...")
+ // Your custom startup logic
+ },
+ OnBeforeShutdown: func(s *cliproxy.Service) {
+ log.Println("Graceful shutdown started...")
+ // Your custom shutdown logic
+ },
+}
+
+svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithHooks(hooks).
+ Build()
+```
+
+## Configuration: Hot Reload
+
+The embedded library automatically reloads config when files change:
+
+```yaml
+# config.yaml
+server:
+ port: 8317
+ hot-reload: true # Enable hot reload (default: true)
+
+providers:
+ claude:
+ type: "claude"
+ enabled: true
+```
+
+When you modify `config.yaml` or add/remove files in `auths/`, the library:
+1. Detects the change (file system watcher)
+2. Validates the new config
+3. Atomically swaps the runtime config
+4. Notifies background workers (token refresh, health checks)
+
+No restart required!
+
+## Configuration: Custom Sources
+
+Load config from anywhere:
+
+```go
+// From environment variables
+type EnvConfigLoader struct{}
+
+func (l *EnvConfigLoader) Load() (*config.Config, error) {
+ cfg := &config.Config{}
+
+ cfg.Server.Port = getEnvInt("PROXY_PORT", 8317)
+ cfg.Providers["claude"].Enabled = getEnvBool("ENABLE_CLAUDE", true)
+
+ return cfg, nil
+}
+
+svc, err := cliproxy.NewBuilder().
+ WithConfigLoader(&EnvConfigLoader{}).
+ Build()
+```
+
+## Monitoring: Metrics
+
+Access provider metrics:
+
+```go
+svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithRouterConfigurator(func(e *gin.Engine, h *handlers.BaseAPIHandler, cfg *config.Config) {
+ // Metrics endpoint
+ e.GET("/metrics", func(c *gin.Context) {
+ metrics := h.GetProviderMetrics()
+ c.JSON(200, metrics)
+ })
+ }).
+ Build()
+```
+
+Metrics include:
+- Request count per provider
+- Average latency
+- Error rate
+- Token usage
+- Quota remaining
+
+## Monitoring: Logging
+
+Customize logging:
+
+```go
+import "log/slog"
+
+svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithLogger(slog.New(slog.NewJSONHandler(os.Stdout, nil))).
+ Build()
+```
+
+Log levels:
+- `DEBUG`: Detailed request/response data
+- `INFO`: General operations (default)
+- `WARN`: Recoverable errors (rate limits, retries)
+- `ERROR`: Failed requests
+
+## Troubleshooting
+
+### Service Won't Start
+
+**Problem**: `Failed to build service`
+
+**Solutions**:
+1. Check config.yaml syntax: `go run github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config@latest validate config.yaml`
+2. Verify auth files exist and are valid JSON
+3. Check port is not in use
+
+### Config Changes Not Applied
+
+**Problem**: Modified config.yaml but no effect
+
+**Solutions**:
+1. Ensure hot-reload is enabled
+2. Wait 500ms for debouncing
+3. Check file permissions (readable by process)
+4. Verify config is valid (errors logged)
+
+### Custom Translator Not Working
+
+**Problem**: Custom provider returns errors
+
+**Solutions**:
+1. Implement all required interface methods
+2. Validate request/response formats
+3. Check error handling in TranslateRequest/TranslateResponse
+4. Add debug logging
+
+### Performance Issues
+
+**Problem**: High latency or CPU usage
+
+**Solutions**:
+1. Enable connection pooling in HTTP client
+2. Use streaming for long responses
+3. Tune worker pool size
+4. Profile with `pprof`
+
+## Next Steps
+
+- See [DEV.md](./DEV.md) for extending the library
+- See [../auth/](../auth/) for authentication features
+- See [../security/](../security/) for security features
+- See [../../api/](../../api/) for API documentation
diff --git a/docs/fragemented/features/architecture/index.md b/docs/fragemented/features/architecture/index.md
new file mode 100644
index 0000000000..14a729c235
--- /dev/null
+++ b/docs/fragemented/features/architecture/index.md
@@ -0,0 +1,10 @@
+# Consolidated Index
+
+## Files
+
+* `DEV.md`
+* `SPEC.md`
+* `USER.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/features/architecture/merged.md b/docs/fragemented/features/architecture/merged.md
new file mode 100644
index 0000000000..df2d1c1471
--- /dev/null
+++ b/docs/fragemented/features/architecture/merged.md
@@ -0,0 +1,1673 @@
+# Merged Fragmented Markdown
+
+## Source: features/architecture/DEV.md
+
+# Developer Guide: Extending Library-First Architecture
+
+## Contributing to pkg/llmproxy
+
+This guide is for developers who want to extend the core library functionality: adding new providers, customizing translators, implementing new authentication flows, or optimizing performance.
+
+## Project Structure
+
+```
+pkg/llmproxy/
+├── translator/ # Protocol translation layer
+│ ├── base.go # Common interfaces and utilities
+│ ├── claude.go # Anthropic Claude
+│ ├── gemini.go # Google Gemini
+│ ├── openai.go # OpenAI GPT
+│ ├── kiro.go # AWS CodeWhisperer
+│ ├── copilot.go # GitHub Copilot
+│ └── aggregators.go # Multi-provider aggregators
+├── provider/ # Provider execution layer
+│ ├── base.go # Provider interface and executor
+│ ├── http.go # HTTP client with retry logic
+│ ├── rate_limit.go # Token bucket implementation
+│ └── health.go # Health check logic
+├── auth/ # Authentication lifecycle
+│ ├── manager.go # Core auth manager
+│ ├── oauth.go # OAuth flows
+│ ├── device_flow.go # Device authorization flow
+│ └── refresh.go # Token refresh worker
+├── config/ # Configuration management
+│ ├── loader.go # Config file parsing
+│ ├── schema.go # Validation schema
+│ └── synthesis.go # Config merge logic
+├── watcher/ # Dynamic reload orchestration
+│ ├── file.go # File system watcher
+│ ├── debounce.go # Debouncing logic
+│ └── notify.go # Change notifications
+└── metrics/ # Observability
+ ├── collector.go # Metrics collection
+ └── exporter.go # Metrics export
+```
+
+## Adding a New Provider
+
+### Step 1: Define Provider Configuration
+
+Add provider config to `config/schema.go`:
+
+```go
+type ProviderConfig struct {
+ Type string `yaml:"type" validate:"required,oneof=claude gemini openai kiro copilot myprovider"`
+ Enabled bool `yaml:"enabled"`
+ Models []ModelConfig `yaml:"models"`
+ AuthType string `yaml:"auth_type" validate:"required,oneof=api_key oauth device_flow"`
+ Priority int `yaml:"priority"`
+ Cooldown time.Duration `yaml:"cooldown"`
+ Endpoint string `yaml:"endpoint"`
+ // Provider-specific fields
+ CustomField string `yaml:"custom_field"`
+}
+```
+
+### Step 2: Implement Translator Interface
+
+Create `pkg/llmproxy/translator/myprovider.go`:
+
+```go
+package translator
+
+import (
+ "context"
+ "encoding/json"
+
+ openai "github.com/sashabaranov/go-openai"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy"
+)
+
+type MyProviderTranslator struct {
+ config *config.ProviderConfig
+}
+
+func NewMyProviderTranslator(cfg *config.ProviderConfig) *MyProviderTranslator {
+ return &MyProviderTranslator{config: cfg}
+}
+
+func (t *MyProviderTranslator) TranslateRequest(
+ ctx context.Context,
+ req *openai.ChatCompletionRequest,
+) (*llmproxy.ProviderRequest, error) {
+ // Map OpenAI models to provider models
+ modelMapping := map[string]string{
+ "gpt-4": "myprovider-v1-large",
+ "gpt-3.5-turbo": "myprovider-v1-medium",
+ }
+ providerModel := modelMapping[req.Model]
+ if providerModel == "" {
+ providerModel = req.Model
+ }
+
+ // Convert messages
+ messages := make([]map[string]interface{}, len(req.Messages))
+ for i, msg := range req.Messages {
+ messages[i] = map[string]interface{}{
+ "role": msg.Role,
+ "content": msg.Content,
+ }
+ }
+
+ // Build request
+ providerReq := &llmproxy.ProviderRequest{
+ Method: "POST",
+ Endpoint: t.config.Endpoint + "/v1/chat/completions",
+ Headers: map[string]string{
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+ },
+ Body: map[string]interface{}{
+ "model": providerModel,
+ "messages": messages,
+ "stream": req.Stream,
+ },
+ }
+
+ // Add optional parameters
+ if req.Temperature != 0 {
+ providerReq.Body["temperature"] = req.Temperature
+ }
+ if req.MaxTokens != 0 {
+ providerReq.Body["max_tokens"] = req.MaxTokens
+ }
+
+ return providerReq, nil
+}
+
+func (t *MyProviderTranslator) TranslateResponse(
+ ctx context.Context,
+ resp *llmproxy.ProviderResponse,
+) (*openai.ChatCompletionResponse, error) {
+ // Parse provider response
+ var providerBody struct {
+ ID string `json:"id"`
+ Model string `json:"model"`
+ Choices []struct {
+ Message struct {
+ Role string `json:"role"`
+ Content string `json:"content"`
+ } `json:"message"`
+ FinishReason string `json:"finish_reason"`
+ } `json:"choices"`
+ Usage struct {
+ PromptTokens int `json:"prompt_tokens"`
+ CompletionTokens int `json:"completion_tokens"`
+ TotalTokens int `json:"total_tokens"`
+ } `json:"usage"`
+ }
+
+ if err := json.Unmarshal(resp.Body, &providerBody); err != nil {
+ return nil, fmt.Errorf("failed to parse provider response: %w", err)
+ }
+
+ // Convert to OpenAI format
+ choices := make([]openai.ChatCompletionChoice, len(providerBody.Choices))
+ for i, choice := range providerBody.Choices {
+ choices[i] = openai.ChatCompletionChoice{
+ Message: openai.ChatCompletionMessage{
+ Role: openai.ChatMessageRole(choice.Message.Role),
+ Content: choice.Message.Content,
+ },
+ FinishReason: openai.FinishReason(choice.FinishReason),
+ }
+ }
+
+ return &openai.ChatCompletionResponse{
+ ID: providerBody.ID,
+ Model: resp.RequestModel,
+ Choices: choices,
+ Usage: openai.Usage{
+ PromptTokens: providerBody.Usage.PromptTokens,
+ CompletionTokens: providerBody.Usage.CompletionTokens,
+ TotalTokens: providerBody.Usage.TotalTokens,
+ },
+ }, nil
+}
+
+func (t *MyProviderTranslator) TranslateStream(
+ ctx context.Context,
+ stream io.Reader,
+) (<-chan *openai.ChatCompletionStreamResponse, error) {
+ // Implement streaming translation
+ ch := make(chan *openai.ChatCompletionStreamResponse)
+
+ go func() {
+ defer close(ch)
+
+ scanner := bufio.NewScanner(stream)
+ for scanner.Scan() {
+ line := scanner.Text()
+ if !strings.HasPrefix(line, "data: ") {
+ continue
+ }
+
+ data := strings.TrimPrefix(line, "data: ")
+ if data == "[DONE]" {
+ return
+ }
+
+ var chunk struct {
+ ID string `json:"id"`
+ Choices []struct {
+ Delta struct {
+ Content string `json:"content"`
+ } `json:"delta"`
+ FinishReason *string `json:"finish_reason"`
+ } `json:"choices"`
+ }
+
+ if err := json.Unmarshal([]byte(data), &chunk); err != nil {
+ continue
+ }
+
+ ch <- &openai.ChatCompletionStreamResponse{
+ ID: chunk.ID,
+ Choices: []openai.ChatCompletionStreamChoice{
+ {
+ Delta: openai.ChatCompletionStreamDelta{
+ Content: chunk.Choices[0].Delta.Content,
+ },
+ FinishReason: chunk.Choices[0].FinishReason,
+ },
+ },
+ }
+ }
+ }()
+
+ return ch, nil
+}
+
+func (t *MyProviderTranslator) SupportsStreaming() bool {
+ return true
+}
+
+func (t *MyProviderTranslator) SupportsFunctions() bool {
+ return false
+}
+
+func (t *MyProviderTranslator) MaxTokens() int {
+ return 4096
+}
+```
+
+### Step 3: Implement Provider Executor
+
+Create `pkg/llmproxy/provider/myprovider.go`:
+
+```go
+package provider
+
+import (
+ "context"
+ "fmt"
+ "net/http"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/coreauth"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/translator"
+)
+
+type MyProviderExecutor struct {
+ config *config.ProviderConfig
+ client *http.Client
+ rateLimit *RateLimiter
+ translator *translator.MyProviderTranslator
+}
+
+func NewMyProviderExecutor(
+ cfg *config.ProviderConfig,
+ rtProvider coreauth.RoundTripperProvider,
+) *MyProviderExecutor {
+ return &MyProviderExecutor{
+ config: cfg,
+ client: NewHTTPClient(rtProvider),
+ rateLimit: NewRateLimiter(cfg.RateLimit),
+ translator: translator.NewMyProviderTranslator(cfg),
+ }
+}
+
+func (e *MyProviderExecutor) Execute(
+ ctx context.Context,
+ auth coreauth.Auth,
+ req *llmproxy.ProviderRequest,
+) (*llmproxy.ProviderResponse, error) {
+ // Rate limit check
+ if err := e.rateLimit.Wait(ctx); err != nil {
+ return nil, fmt.Errorf("rate limit exceeded: %w", err)
+ }
+
+ // Add auth headers
+ if auth != nil {
+ req.Headers["Authorization"] = fmt.Sprintf("Bearer %s", auth.Token)
+ }
+
+ // Execute request
+ resp, err := e.client.Do(ctx, req)
+ if err != nil {
+ return nil, fmt.Errorf("request failed: %w", err)
+ }
+
+ // Check for errors
+ if resp.StatusCode >= 400 {
+ return nil, fmt.Errorf("provider error: %s", string(resp.Body))
+ }
+
+ return resp, nil
+}
+
+func (e *MyProviderExecutor) ExecuteStream(
+ ctx context.Context,
+ auth coreauth.Auth,
+ req *llmproxy.ProviderRequest,
+) (<-chan *llmproxy.ProviderChunk, error) {
+ // Rate limit check
+ if err := e.rateLimit.Wait(ctx); err != nil {
+ return nil, fmt.Errorf("rate limit exceeded: %w", err)
+ }
+
+ // Add auth headers
+ if auth != nil {
+ req.Headers["Authorization"] = fmt.Sprintf("Bearer %s", auth.Token)
+ }
+
+ // Execute streaming request
+ stream, err := e.client.DoStream(ctx, req)
+ if err != nil {
+ return nil, fmt.Errorf("request failed: %w", err)
+ }
+
+ return stream, nil
+}
+
+func (e *MyProviderExecutor) HealthCheck(
+ ctx context.Context,
+ auth coreauth.Auth,
+) error {
+ req := &llmproxy.ProviderRequest{
+ Method: "GET",
+ Endpoint: e.config.Endpoint + "/v1/health",
+ }
+
+ resp, err := e.client.Do(ctx, req)
+ if err != nil {
+ return err
+ }
+
+ if resp.StatusCode != 200 {
+ return fmt.Errorf("health check failed: %s", string(resp.Body))
+ }
+
+ return nil
+}
+
+func (e *MyProviderExecutor) Name() string {
+ return "myprovider"
+}
+
+func (e *MyProviderExecutor) SupportsModel(model string) bool {
+ for _, m := range e.config.Models {
+ if m.Name == model {
+ return m.Enabled
+ }
+ }
+ return false
+}
+```
+
+### Step 4: Register Provider
+
+Update `pkg/llmproxy/provider/registry.go`:
+
+```go
+package provider
+
+import (
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/coreauth"
+)
+
+type ProviderFactory func(
+ cfg *config.ProviderConfig,
+ rtProvider coreauth.RoundTripperProvider,
+) ProviderExecutor
+
+var providers = map[string]ProviderFactory{
+ "claude": NewClaudeExecutor,
+ "gemini": NewGeminiExecutor,
+ "openai": NewOpenAIExecutor,
+ "kiro": NewKiroExecutor,
+ "copilot": NewCopilotExecutor,
+ "myprovider": NewMyProviderExecutor, // Add your provider
+}
+
+func GetExecutor(
+ providerType string,
+ cfg *config.ProviderConfig,
+ rtProvider coreauth.RoundTripperProvider,
+) (ProviderExecutor, error) {
+ factory, ok := providers[providerType]
+ if !ok {
+ return nil, fmt.Errorf("unknown provider type: %s", providerType)
+ }
+
+ return factory(cfg, rtProvider), nil
+}
+```
+
+### Step 5: Add Tests
+
+Create `pkg/llmproxy/translator/myprovider_test.go`:
+
+```go
+package translator
+
+import (
+ "context"
+ "testing"
+
+ openai "github.com/sashabaranov/go-openai"
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+)
+
+func TestMyProviderTranslator(t *testing.T) {
+ cfg := &config.ProviderConfig{
+ Type: "myprovider",
+ Endpoint: "https://api.myprovider.com",
+ }
+
+ translator := NewMyProviderTranslator(cfg)
+
+ t.Run("TranslateRequest", func(t *testing.T) {
+ req := &openai.ChatCompletionRequest{
+ Model: "gpt-4",
+ Messages: []openai.ChatCompletionMessage{
+ {Role: "user", Content: "Hello"},
+ },
+ }
+
+ providerReq, err := translator.TranslateRequest(context.Background(), req)
+ if err != nil {
+ t.Fatalf("TranslateRequest failed: %v", err)
+ }
+
+ if providerReq.Endpoint != "https://api.myprovider.com/v1/chat/completions" {
+ t.Errorf("unexpected endpoint: %s", providerReq.Endpoint)
+ }
+ })
+
+ t.Run("TranslateResponse", func(t *testing.T) {
+ providerResp := &llmproxy.ProviderResponse{
+ Body: []byte(`{
+ "id": "test-id",
+ "model": "myprovider-v1-large",
+ "choices": [{
+ "message": {"role": "assistant", "content": "Hi!"},
+ "finish_reason": "stop"
+ }],
+ "usage": {"prompt_tokens": 10, "completion_tokens": 5, "total_tokens": 15}
+ }`),
+ }
+
+ openaiResp, err := translator.TranslateResponse(context.Background(), providerResp)
+ if err != nil {
+ t.Fatalf("TranslateResponse failed: %v", err)
+ }
+
+ if openaiResp.ID != "test-id" {
+ t.Errorf("unexpected id: %s", openaiResp.ID)
+ }
+ })
+}
+```
+
+## Custom Authentication Flows
+
+### Implementing OAuth
+
+If your provider uses OAuth, implement the `AuthFlow` interface:
+
+```go
+package auth
+
+import (
+ "context"
+ "time"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+)
+
+type MyProviderOAuthFlow struct {
+ clientID string
+ clientSecret string
+ redirectURL string
+ tokenURL string
+ authURL string
+}
+
+func (f *MyProviderOAuthFlow) Start(ctx context.Context) (*AuthResult, error) {
+ // Generate authorization URL
+ state := generateState()
+ authURL := fmt.Sprintf("%s?client_id=%s&redirect_uri=%s&state=%s",
+ f.authURL, f.clientID, f.redirectURL, state)
+
+ return &AuthResult{
+ Method: "oauth",
+ AuthURL: authURL,
+ State: state,
+ ExpiresAt: time.Now().Add(10 * time.Minute),
+ }, nil
+}
+
+func (f *MyProviderOAuthFlow) Exchange(ctx context.Context, code string) (*AuthToken, error) {
+ // Exchange authorization code for token
+ req := map[string]string{
+ "client_id": f.clientID,
+ "client_secret": f.clientSecret,
+ "code": code,
+ "redirect_uri": f.redirectURL,
+ "grant_type": "authorization_code",
+ }
+
+ resp, err := http.PostForm(f.tokenURL, req)
+ if err != nil {
+ return nil, err
+ }
+
+ var token struct {
+ AccessToken string `json:"access_token"`
+ RefreshToken string `json:"refresh_token"`
+ ExpiresIn int `json:"expires_in"`
+ }
+
+ if err := json.NewDecoder(resp.Body).Decode(&token); err != nil {
+ return nil, err
+ }
+
+ return &AuthToken{
+ AccessToken: token.AccessToken,
+ RefreshToken: token.RefreshToken,
+ ExpiresAt: time.Now().Add(time.Duration(token.ExpiresIn) * time.Second),
+ }, nil
+}
+
+func (f *MyProviderOAuthFlow) Refresh(ctx context.Context, refreshToken string) (*AuthToken, error) {
+ // Refresh token
+ req := map[string]string{
+ "client_id": f.clientID,
+ "client_secret": f.clientSecret,
+ "refresh_token": refreshToken,
+ "grant_type": "refresh_token",
+ }
+
+ resp, err := http.PostForm(f.tokenURL, req)
+ if err != nil {
+ return nil, err
+ }
+
+ var token struct {
+ AccessToken string `json:"access_token"`
+ RefreshToken string `json:"refresh_token"`
+ ExpiresIn int `json:"expires_in"`
+ }
+
+ if err := json.NewDecoder(resp.Body).Decode(&token); err != nil {
+ return nil, err
+ }
+
+ return &AuthToken{
+ AccessToken: token.AccessToken,
+ RefreshToken: token.RefreshToken,
+ ExpiresAt: time.Now().Add(time.Duration(token.ExpiresIn) * time.Second),
+ }, nil
+}
+```
+
+### Implementing Device Flow
+
+```go
+package auth
+
+import (
+ "context"
+ "fmt"
+ "time"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+)
+
+type MyProviderDeviceFlow struct {
+ deviceCodeURL string
+ tokenURL string
+ clientID string
+}
+
+func (f *MyProviderDeviceFlow) Start(ctx context.Context) (*AuthResult, error) {
+ // Request device code
+ resp, err := http.PostForm(f.deviceCodeURL, map[string]string{
+ "client_id": f.clientID,
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ var dc struct {
+ DeviceCode string `json:"device_code"`
+ UserCode string `json:"user_code"`
+ VerificationURI string `json:"verification_uri"`
+ VerificationURIComplete string `json:"verification_uri_complete"`
+ ExpiresIn int `json:"expires_in"`
+ Interval int `json:"interval"`
+ }
+
+ if err := json.NewDecoder(resp.Body).Decode(&dc); err != nil {
+ return nil, err
+ }
+
+ return &AuthResult{
+ Method: "device_flow",
+ UserCode: dc.UserCode,
+ VerificationURL: dc.VerificationURI,
+ VerificationURLComplete: dc.VerificationURIComplete,
+ DeviceCode: dc.DeviceCode,
+ Interval: dc.Interval,
+ ExpiresAt: time.Now().Add(time.Duration(dc.ExpiresIn) * time.Second),
+ }, nil
+}
+
+func (f *MyProviderDeviceFlow) Poll(ctx context.Context, deviceCode string) (*AuthToken, error) {
+ // Poll for token
+ ticker := time.NewTicker(5 * time.Second)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return nil, ctx.Err()
+ case <-ticker.C:
+ resp, err := http.PostForm(f.tokenURL, map[string]string{
+ "client_id": f.clientID,
+ "grant_type": "urn:ietf:params:oauth:grant-type:device_code",
+ "device_code": deviceCode,
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ var token struct {
+ AccessToken string `json:"access_token"`
+ ExpiresIn int `json:"expires_in"`
+ Error string `json:"error"`
+ }
+
+ if err := json.NewDecoder(resp.Body).Decode(&token); err != nil {
+ return nil, err
+ }
+
+ if token.Error == "" {
+ return &AuthToken{
+ AccessToken: token.AccessToken,
+ ExpiresAt: time.Now().Add(time.Duration(token.ExpiresIn) * time.Second),
+ }, nil
+ }
+
+ if token.Error != "authorization_pending" {
+ return nil, fmt.Errorf("device flow error: %s", token.Error)
+ }
+ }
+ }
+}
+```
+
+## Performance Optimization
+
+### Connection Pooling
+
+```go
+package provider
+
+import (
+ "net/http"
+ "time"
+)
+
+func NewHTTPClient(rtProvider coreauth.RoundTripperProvider) *http.Client {
+ transport := &http.Transport{
+ MaxIdleConns: 100,
+ MaxIdleConnsPerHost: 10,
+ IdleConnTimeout: 90 * time.Second,
+ TLSHandshakeTimeout: 10 * time.Second,
+ }
+
+ return &http.Client{
+ Transport: transport,
+ Timeout: 60 * time.Second,
+ }
+}
+```
+
+### Rate Limiting Optimization
+
+```go
+package provider
+
+import (
+ "golang.org/x/time/rate"
+)
+
+type RateLimiter struct {
+ limiter *rate.Limiter
+}
+
+func NewRateLimiter(reqPerSec float64) *RateLimiter {
+ return &RateLimiter{
+ limiter: rate.NewLimiter(rate.Limit(reqPerSec), 10), // Burst of 10
+ }
+}
+
+func (r *RateLimiter) Wait(ctx context.Context) error {
+ return r.limiter.Wait(ctx)
+}
+```
+
+### Caching Strategy
+
+```go
+package provider
+
+import (
+ "sync"
+ "time"
+)
+
+type Cache struct {
+ mu sync.RWMutex
+ data map[string]cacheEntry
+ ttl time.Duration
+}
+
+type cacheEntry struct {
+ value interface{}
+ expiresAt time.Time
+}
+
+func NewCache(ttl time.Duration) *Cache {
+ c := &Cache{
+ data: make(map[string]cacheEntry),
+ ttl: ttl,
+ }
+
+ // Start cleanup goroutine
+ go c.cleanup()
+
+ return c
+}
+
+func (c *Cache) Get(key string) (interface{}, bool) {
+ c.mu.RLock()
+ defer c.mu.RUnlock()
+
+ entry, ok := c.data[key]
+ if !ok || time.Now().After(entry.expiresAt) {
+ return nil, false
+ }
+
+ return entry.value, true
+}
+
+func (c *Cache) Set(key string, value interface{}) {
+ c.mu.Lock()
+ defer c.mu.Unlock()
+
+ c.data[key] = cacheEntry{
+ value: value,
+ expiresAt: time.Now().Add(c.ttl),
+ }
+}
+
+func (c *Cache) cleanup() {
+ ticker := time.NewTicker(time.Minute)
+ defer ticker.Stop()
+
+ for range ticker.C {
+ c.mu.Lock()
+ for key, entry := range c.data {
+ if time.Now().After(entry.expiresAt) {
+ delete(c.data, key)
+ }
+ }
+ c.mu.Unlock()
+ }
+}
+```
+
+## Testing Guidelines
+
+### Unit Tests
+
+- Test all translator methods
+- Mock HTTP responses
+- Cover error paths
+
+### Integration Tests
+
+- Test against real provider APIs (use test keys)
+- Test authentication flows
+- Test streaming responses
+
+### Contract Tests
+
+- Verify OpenAI API compatibility
+- Test model mapping
+- Validate error handling
+
+## Submitting Changes
+
+1. **Add tests** for new functionality
+2. **Run linter**: `make lint`
+3. **Run tests**: `make test`
+4. **Update documentation** if API changes
+5. **Submit PR** with description of changes
+
+## API Stability
+
+All exported APIs in `pkg/llmproxy` follow semantic versioning:
+- **Major version bump** (v7, v8): Breaking changes
+- **Minor version bump**: New features (backwards compatible)
+- **Patch version**: Bug fixes
+
+Deprecated APIs remain for 2 major versions before removal.
+
+
+---
+
+## Source: features/architecture/SPEC.md
+
+# Technical Specification: Library-First Architecture (pkg/llmproxy)
+
+## Overview
+
+**cliproxyapi++** implements a "Library-First" architectural pattern by extracting all core proxy logic from the traditional `internal/` package into a public, reusable `pkg/llmproxy` module. This transformation enables external Go applications to import and embed the entire translation, authentication, and communication engine without depending on the CLI binary.
+
+## Architecture Migration
+
+### Before: Mainline Structure
+```
+CLIProxyAPI/
+├── internal/
+│ ├── translator/ # Core translation logic (NOT IMPORTABLE)
+│ ├── provider/ # Provider executors (NOT IMPORTABLE)
+│ └── auth/ # Auth management (NOT IMPORTABLE)
+└── cmd/server/
+```
+
+### After: cliproxyapi++ Structure
+```
+cliproxyapi++/
+├── pkg/llmproxy/ # PUBLIC LIBRARY (IMPORTABLE)
+│ ├── translator/ # Translation engine
+│ ├── provider/ # Provider implementations
+│ ├── config/ # Configuration synthesis
+│ ├── watcher/ # Dynamic reload orchestration
+│ └── auth/ # Auth lifecycle management
+├── cmd/server/ # CLI entry point (uses pkg/llmproxy)
+└── sdk/cliproxy/ # High-level embedding SDK
+```
+
+## Core Components
+
+### 1. Translation Engine (`pkg/llmproxy/translator`)
+
+**Purpose**: Handles bidirectional protocol conversion between OpenAI-compatible requests and proprietary LLM APIs.
+
+**Key Interfaces**:
+```go
+type Translator interface {
+ // Convert OpenAI format to provider format
+ TranslateRequest(ctx context.Context, req *openai.ChatRequest) (*ProviderRequest, error)
+
+ // Convert provider response back to OpenAI format
+ TranslateResponse(ctx context.Context, resp *ProviderResponse) (*openai.ChatResponse, error)
+
+ // Stream translation for SSE
+ TranslateStream(ctx context.Context, stream io.Reader) (<-chan *openai.ChatChunk, error)
+
+ // Provider-specific capabilities
+ SupportsStreaming() bool
+ SupportsFunctions() bool
+ MaxTokens() int
+}
+```
+
+**Implemented Translators**:
+- `claude.go` - Anthropic Claude API
+- `gemini.go` - Google Gemini API
+- `openai.go` - OpenAI GPT API
+- `kiro.go` - AWS CodeWhisperer (custom protocol)
+- `copilot.go` - GitHub Copilot (custom protocol)
+- `aggregators.go` - OpenRouter, Together, Fireworks
+
+**Translation Strategy**:
+1. **Request Normalization**: Parse OpenAI-format request, extract:
+ - Messages (system, user, assistant)
+ - Tools/functions
+ - Generation parameters (temp, top_p, max_tokens)
+ - Streaming flag
+
+2. **Provider Mapping**: Map OpenAI models to provider endpoints:
+ ```
+ claude-3-5-sonnet -> claude-3-5-sonnet-20241022 (Anthropic)
+ gpt-4 -> gpt-4-turbo-preview (OpenAI)
+ gemini-1.5-pro -> gemini-1.5-pro-preview-0514 (Gemini)
+ ```
+
+3. **Response Normalization**: Convert provider responses to OpenAI format:
+ - Standardize usage statistics (prompt_tokens, completion_tokens)
+ - Normalize finish reasons (stop, length, content_filter)
+ - Map provider-specific error codes to OpenAI error types
+
+### 2. Provider Execution (`pkg/llmproxy/provider`)
+
+**Purpose**: Orchestrates HTTP communication with LLM providers, handling authentication, retry logic, and error recovery.
+
+**Key Interfaces**:
+```go
+type ProviderExecutor interface {
+ // Execute a single request (non-streaming)
+ Execute(ctx context.Context, auth coreauth.Auth, req *ProviderRequest) (*ProviderResponse, error)
+
+ // Execute streaming request
+ ExecuteStream(ctx context.Context, auth coreauth.Auth, req *ProviderRequest) (<-chan *ProviderChunk, error)
+
+ // Health check provider
+ HealthCheck(ctx context.Context, auth coreauth.Auth) error
+
+ // Provider metadata
+ Name() string
+ SupportsModel(model string) bool
+}
+```
+
+**Executor Lifecycle**:
+```
+Request -> RateLimitCheck -> AuthValidate -> ProviderExecute ->
+ -> Success -> Response
+ -> RetryableError -> Backoff -> Retry
+ -> NonRetryableError -> Error
+```
+
+**Rate Limiting**:
+- Per-provider token bucket
+- Per-credential quota tracking
+- Intelligent cooldown on 429 responses
+
+### 3. Configuration Management (`pkg/llmproxy/config`)
+
+**Purpose**: Loads, validates, and synthesizes configuration from multiple sources.
+
+**Configuration Hierarchy**:
+```
+1. Base config (config.yaml)
+2. Environment overrides (CLI_PROXY_*)
+3. Runtime synthesis (watcher merges changes)
+4. Per-request overrides (query params)
+```
+
+**Key Structures**:
+```go
+type Config struct {
+ Server ServerConfig
+ Providers map[string]ProviderConfig
+ Auth AuthConfig
+ Management ManagementConfig
+ Logging LoggingConfig
+}
+
+type ProviderConfig struct {
+ Type string // "claude", "gemini", "openai", etc.
+ Enabled bool
+ Models []ModelConfig
+ AuthType string // "api_key", "oauth", "device_flow"
+ Priority int // Routing priority
+ Cooldown time.Duration
+}
+```
+
+**Hot-Reload Mechanism**:
+- File watcher on `config.yaml` and `auths/` directory
+- Debounced reload (500ms delay)
+- Atomic config swapping (no request interruption)
+- Validation before activation (reject invalid configs)
+
+### 4. Watcher & Synthesis (`pkg/llmproxy/watcher`)
+
+**Purpose**: Orchestrates dynamic configuration updates and background lifecycle management.
+
+**Watcher Architecture**:
+```go
+type Watcher struct {
+ configPath string
+ authDir string
+ reloadChan chan struct{}
+ currentConfig atomic.Value // *Config
+ currentAuths atomic.Value // []coreauth.Auth
+}
+
+// Run starts the watcher goroutine
+func (w *Watcher) Run(ctx context.Context) error {
+ // 1. Initial load
+ w.loadAll()
+
+ // 2. Watch files
+ go w.watchConfig(ctx)
+ go w.watchAuths(ctx)
+
+ // 3. Handle reloads
+ for {
+ select {
+ case <-w.reloadChan:
+ w.loadAll()
+ case <-ctx.Done():
+ return ctx.Err()
+ }
+ }
+}
+```
+
+**Synthesis Pipeline**:
+```
+Config File Changed -> Parse YAML -> Validate Schema ->
+ Merge with Existing -> Check Conflicts -> Atomic Swap
+```
+
+**Background Workers**:
+1. **Token Refresh Worker**: Checks every 5 minutes, refreshes tokens expiring within 10 minutes
+2. **Health Check Worker**: Pings providers every 30 seconds, marks unhealthy providers
+3. **Metrics Collector**: Aggregates request latency, error rates, token usage
+
+## Data Flow
+
+### Request Processing Flow
+```
+HTTP Request (OpenAI format)
+ ↓
+Middleware (CORS, auth, logging)
+ ↓
+Handler (Parse request, select provider)
+ ↓
+Provider Executor (Rate limit check)
+ ↓
+Translator (Convert to provider format)
+ ↓
+HTTP Client (Execute provider API)
+ ↓
+Translator (Convert response)
+ ↓
+Handler (Send response)
+ ↓
+Middleware (Log metrics)
+ ↓
+HTTP Response (OpenAI format)
+```
+
+### Configuration Reload Flow
+```
+File System Event (config.yaml changed)
+ ↓
+Watcher (Detect change)
+ ↓
+Debounce (500ms)
+ ↓
+Config Loader (Parse and validate)
+ ↓
+Synthesizer (Merge with existing)
+ ↓
+Atomic Swap (Update runtime config)
+ ↓
+Notification (Trigger background workers)
+```
+
+### Token Refresh Flow
+```
+Background Worker (Every 5 min)
+ ↓
+Scan All Auths
+ ↓
+Check Expiry (token.ExpiresAt < now + 10min)
+ ↓
+Execute Refresh Flow
+ ↓
+Update Storage (auths/{provider}.json)
+ ↓
+Notify Watcher
+ ↓
+Atomic Swap (Update runtime auths)
+```
+
+## Reusability Patterns
+
+### Embedding as Library
+```go
+import "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy"
+
+// Create translator
+translator := llmproxy.NewClaudeTranslator()
+
+// Translate request
+providerReq, err := translator.TranslateRequest(ctx, openaiReq)
+
+// Create executor
+executor := llmproxy.NewClaudeExecutor()
+
+// Execute
+resp, err := executor.Execute(ctx, auth, providerReq)
+
+// Translate response
+openaiResp, err := translator.TranslateResponse(ctx, resp)
+```
+
+### Custom Provider Integration
+```go
+// Implement Translator interface
+type MyCustomTranslator struct{}
+
+func (t *MyCustomTranslator) TranslateRequest(ctx context.Context, req *openai.ChatRequest) (*llmproxy.ProviderRequest, error) {
+ // Custom translation logic
+ return &llmproxy.ProviderRequest{}, nil
+}
+
+// Register with executor
+executor := llmproxy.NewExecutor(
+ llmproxy.WithTranslator(&MyCustomTranslator{}),
+)
+```
+
+### Extending Configuration
+```go
+// Custom config synthesizer
+type MySynthesizer struct{}
+
+func (s *MySynthesizer) Synthesize(base *llmproxy.Config, overrides map[string]interface{}) (*llmproxy.Config, error) {
+ // Custom merge logic
+ return base, nil
+}
+
+// Use in watcher
+watcher := llmproxy.NewWatcher(
+ llmproxy.WithSynthesizer(&MySynthesizer{}),
+)
+```
+
+## Performance Characteristics
+
+### Memory Footprint
+- Base package: ~15MB (includes all translators)
+- Per-request allocation: <1MB
+- Config reload overhead: <10ms
+
+### Concurrency Model
+- Request handling: Goroutine-per-request (bounded by worker pool)
+- Config reloading: Single goroutine (serialized)
+- Token refresh: Single goroutine (serialized per provider)
+- Health checks: Per-provider goroutines
+
+### Throughput
+- Single instance: ~1000 requests/second (varies by provider)
+- Hot reload impact: <5ms latency blip during swap
+- Background workers: <1% CPU utilization
+
+## Security Considerations
+
+### Public API Stability
+- All exported APIs follow semantic versioning
+- Breaking changes require major version bump (v7, v8, etc.)
+- Deprecated APIs remain for 2 major versions
+
+### Input Validation
+- All translator inputs validated before provider execution
+- Config validation on load (reject malformed configs)
+- Auth credential validation before storage
+
+### Error Propagation
+- Internal errors sanitized before API response
+- Provider errors mapped to OpenAI error types
+- Detailed logging for debugging (configurable verbosity)
+
+## Migration Guide
+
+### From Mainline internal/
+```go
+// Before (mainline)
+import "github.com/router-for-me/CLIProxyAPI/v6/internal/translator"
+
+// After (cliproxyapi++)
+import "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/translator"
+```
+
+### Function Compatibility
+Most internal functions have public equivalents:
+- `internal/translator.NewClaude()` → `llmproxy/translator.NewClaude()`
+- `internal/provider.NewExecutor()` → `llmproxy/provider.NewExecutor()`
+- `internal/config.Load()` → `llmproxy/config.LoadConfig()`
+
+## Testing Strategy
+
+### Unit Tests
+- Each translator: Mock provider responses
+- Each executor: Mock HTTP transport
+- Config validation: Test schema violations
+
+### Integration Tests
+- End-to-end proxy: Real provider APIs (test keys)
+- Hot reload: File system changes
+- Token refresh: Expiring credentials
+
+### Contract Tests
+- OpenAI API compatibility: Verify response format
+- Provider contract: Verify translator mapping
+
+
+---
+
+## Source: features/architecture/USER.md
+
+# User Guide: Library-First Architecture
+
+## What is "Library-First"?
+
+The **Library-First** architecture means that all the core proxy logic (translation, authentication, provider communication) is packaged as a reusable Go library (`pkg/llmproxy`). This allows you to embed the proxy directly into your own applications instead of running it as a separate service.
+
+## Why Use the Library?
+
+### Benefits Over Standalone CLI
+
+| Aspect | Standalone CLI | Embedded Library |
+|--------|---------------|------------------|
+| **Deployment** | Separate process, network calls | In-process, zero network overhead |
+| **Configuration** | External config file | Programmatic config |
+| **Customization** | Limited to config options | Full code access |
+| **Performance** | Network latency + serialization | Direct function calls |
+| **Monitoring** | External metrics/logs | Internal hooks/observability |
+
+### When to Use Each
+
+**Use Standalone CLI when**:
+- You want a simple, drop-in proxy
+- You're integrating with existing OpenAI clients
+- You don't need custom logic
+- You prefer configuration over code
+
+**Use Embedded Library when**:
+- You're building a Go application
+- You need custom request/response processing
+- You want to integrate with your auth system
+- You need fine-grained control over routing
+
+## Quick Start: Embedding in Your App
+
+### Step 1: Install the SDK
+
+```bash
+go get github.com/KooshaPari/cliproxyapi-plusplus/sdk/cliproxy
+```
+
+### Step 2: Basic Embedding
+
+Create `main.go`:
+
+```go
+package main
+
+import (
+ "context"
+ "log"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config"
+ "github.com/KooshaPari/cliproxyapi-plusplus/sdk/cliproxy"
+)
+
+func main() {
+ // Load config
+ cfg, err := config.LoadConfig("config.yaml")
+ if err != nil {
+ log.Fatalf("Failed to load config: %v", err)
+ }
+
+ // Build service
+ svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ Build()
+ if err != nil {
+ log.Fatalf("Failed to build service: %v", err)
+ }
+
+ // Run service
+ ctx := context.Background()
+ if err := svc.Run(ctx); err != nil {
+ log.Fatalf("Service error: %v", err)
+ }
+}
+```
+
+### Step 3: Create Config File
+
+Create `config.yaml`:
+
+```yaml
+server:
+ port: 8317
+
+providers:
+ claude:
+ type: "claude"
+ enabled: true
+ models:
+ - name: "claude-3-5-sonnet"
+ enabled: true
+
+auth:
+ dir: "./auths"
+ providers:
+ - "claude"
+```
+
+### Step 4: Run Your App
+
+```bash
+# Add your Claude API key
+echo '{"type":"api_key","token":"sk-ant-xxx"}' > auths/claude.json
+
+# Run your app
+go run main.go
+```
+
+Your embedded proxy is now running on port 8317 with OpenAI-compatible endpoints!
+
+## Advanced: Custom Translators
+
+If you need to support a custom LLM provider, you can implement your own translator:
+
+```go
+package main
+
+import (
+ "context"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/translator"
+ openai "github.com/sashabaranov/go-openai"
+)
+
+// MyCustomTranslator implements the Translator interface
+type MyCustomTranslator struct{}
+
+func (t *MyCustomTranslator) TranslateRequest(
+ ctx context.Context,
+ req *openai.ChatCompletionRequest,
+) (*translator.ProviderRequest, error) {
+ // Convert OpenAI request to your provider's format
+ return &translator.ProviderRequest{
+ Endpoint: "https://api.myprovider.com/v1/chat",
+ Headers: map[string]string{
+ "Content-Type": "application/json",
+ },
+ Body: map[string]interface{}{
+ "messages": req.Messages,
+ "model": req.Model,
+ },
+ }, nil
+}
+
+func (t *MyCustomTranslator) TranslateResponse(
+ ctx context.Context,
+ resp *translator.ProviderResponse,
+) (*openai.ChatCompletionResponse, error) {
+ // Convert provider response back to OpenAI format
+ return &openai.ChatCompletionResponse{
+ ID: resp.ID,
+ Choices: []openai.ChatCompletionChoice{
+ {
+ Message: openai.ChatCompletionMessage{
+ Role: "assistant",
+ Content: resp.Content,
+ },
+ },
+ },
+ }, nil
+}
+
+// Register your translator
+func main() {
+ myTranslator := &MyCustomTranslator{}
+
+ svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithCustomTranslator("myprovider", myTranslator).
+ Build()
+ // ...
+}
+```
+
+## Advanced: Custom Auth Management
+
+Integrate with your existing auth system:
+
+```go
+package main
+
+import (
+ "context"
+ "sync"
+
+ "github.com/KooshaPari/cliproxyapi-plusplus/sdk/cliproxy"
+)
+
+// MyAuthProvider implements TokenClientProvider
+type MyAuthProvider struct {
+ mu sync.RWMutex
+ tokens map[string]string
+}
+
+func (p *MyAuthProvider) Load(
+ ctx context.Context,
+ cfg *config.Config,
+) (*cliproxy.TokenClientResult, error) {
+ p.mu.RLock()
+ defer p.mu.RUnlock()
+
+ var clients []cliproxy.AuthClient
+ for provider, token := range p.tokens {
+ clients = append(clients, cliproxy.AuthClient{
+ Provider: provider,
+ Type: "api_key",
+ Token: token,
+ })
+ }
+
+ return &cliproxy.TokenClientResult{
+ Clients: clients,
+ Count: len(clients),
+ }, nil
+}
+
+func (p *MyAuthProvider) AddToken(provider, token string) {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+ p.tokens[provider] = token
+}
+
+func main() {
+ authProvider := &MyAuthProvider{
+ tokens: make(map[string]string),
+ }
+
+ // Add tokens programmatically
+ authProvider.AddToken("claude", "sk-ant-xxx")
+ authProvider.AddToken("openai", "sk-xxx")
+
+ svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithTokenClientProvider(authProvider).
+ Build()
+ // ...
+}
+```
+
+## Advanced: Request Interception
+
+Add custom logic before/after requests:
+
+```go
+svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithServerOptions(
+ cliproxy.WithMiddleware(func(c *gin.Context) {
+ // Log request before processing
+ log.Printf("Request: %s %s", c.Request.Method, c.Request.URL.Path)
+ c.Next()
+
+ // Log response after processing
+ log.Printf("Response status: %d", c.Writer.Status())
+ }),
+ cliproxy.WithRouterConfigurator(func(e *gin.Engine, h *handlers.BaseAPIHandler, cfg *config.Config) {
+ // Add custom routes
+ e.GET("/my-custom-endpoint", func(c *gin.Context) {
+ c.JSON(200, gin.H{"message": "custom endpoint"})
+ })
+ }),
+ ).
+ Build()
+```
+
+## Advanced: Lifecycle Hooks
+
+Respond to service lifecycle events:
+
+```go
+hooks := cliproxy.Hooks{
+ OnBeforeStart: func(cfg *config.Config) {
+ log.Println("Initializing database connections...")
+ // Your custom init logic
+ },
+ OnAfterStart: func(s *cliproxy.Service) {
+ log.Println("Service ready, starting health checks...")
+ // Your custom startup logic
+ },
+ OnBeforeShutdown: func(s *cliproxy.Service) {
+ log.Println("Graceful shutdown started...")
+ // Your custom shutdown logic
+ },
+}
+
+svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithHooks(hooks).
+ Build()
+```
+
+## Configuration: Hot Reload
+
+The embedded library automatically reloads config when files change:
+
+```yaml
+# config.yaml
+server:
+ port: 8317
+ hot-reload: true # Enable hot reload (default: true)
+
+providers:
+ claude:
+ type: "claude"
+ enabled: true
+```
+
+When you modify `config.yaml` or add/remove files in `auths/`, the library:
+1. Detects the change (file system watcher)
+2. Validates the new config
+3. Atomically swaps the runtime config
+4. Notifies background workers (token refresh, health checks)
+
+No restart required!
+
+## Configuration: Custom Sources
+
+Load config from anywhere:
+
+```go
+// From environment variables
+type EnvConfigLoader struct{}
+
+func (l *EnvConfigLoader) Load() (*config.Config, error) {
+ cfg := &config.Config{}
+
+ cfg.Server.Port = getEnvInt("PROXY_PORT", 8317)
+ cfg.Providers["claude"].Enabled = getEnvBool("ENABLE_CLAUDE", true)
+
+ return cfg, nil
+}
+
+svc, err := cliproxy.NewBuilder().
+ WithConfigLoader(&EnvConfigLoader{}).
+ Build()
+```
+
+## Monitoring: Metrics
+
+Access provider metrics:
+
+```go
+svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithRouterConfigurator(func(e *gin.Engine, h *handlers.BaseAPIHandler, cfg *config.Config) {
+ // Metrics endpoint
+ e.GET("/metrics", func(c *gin.Context) {
+ metrics := h.GetProviderMetrics()
+ c.JSON(200, metrics)
+ })
+ }).
+ Build()
+```
+
+Metrics include:
+- Request count per provider
+- Average latency
+- Error rate
+- Token usage
+- Quota remaining
+
+## Monitoring: Logging
+
+Customize logging:
+
+```go
+import "log/slog"
+
+svc, err := cliproxy.NewBuilder().
+ WithConfig(cfg).
+ WithConfigPath("config.yaml").
+ WithLogger(slog.New(slog.NewJSONHandler(os.Stdout, nil))).
+ Build()
+```
+
+Log levels:
+- `DEBUG`: Detailed request/response data
+- `INFO`: General operations (default)
+- `WARN`: Recoverable errors (rate limits, retries)
+- `ERROR`: Failed requests
+
+## Troubleshooting
+
+### Service Won't Start
+
+**Problem**: `Failed to build service`
+
+**Solutions**:
+1. Check config.yaml syntax: `go run github.com/KooshaPari/cliproxyapi-plusplus/pkg/llmproxy/config@latest validate config.yaml`
+2. Verify auth files exist and are valid JSON
+3. Check port is not in use
+
+### Config Changes Not Applied
+
+**Problem**: Modified config.yaml but no effect
+
+**Solutions**:
+1. Ensure hot-reload is enabled
+2. Wait 500ms for debouncing
+3. Check file permissions (readable by process)
+4. Verify config is valid (errors logged)
+
+### Custom Translator Not Working
+
+**Problem**: Custom provider returns errors
+
+**Solutions**:
+1. Implement all required interface methods
+2. Validate request/response formats
+3. Check error handling in TranslateRequest/TranslateResponse
+4. Add debug logging
+
+### Performance Issues
+
+**Problem**: High latency or CPU usage
+
+**Solutions**:
+1. Enable connection pooling in HTTP client
+2. Use streaming for long responses
+3. Tune worker pool size
+4. Profile with `pprof`
+
+## Next Steps
+
+- See [DEV.md](./DEV.md) for extending the library
+- See [../auth/](../auth/) for authentication features
+- See [../security/](../security/) for security features
+- See [../../api/](../../api/) for API documentation
+
+
+---
diff --git a/docs/fragemented/features/auth/DEV.md b/docs/fragemented/features/auth/DEV.md
new file mode 100644
index 0000000000..585b4db001
--- /dev/null
+++ b/docs/fragemented/features/auth/DEV.md
@@ -0,0 +1,16 @@
+# Developer Guide: Authentication
+
+This page captures extension guidance for auth-related changes.
+
+## Core tasks
+
+- Add or update auth provider implementations.
+- Verify token refresh behavior and error handling.
+- Validate quota tracking and credential rotation behavior.
+
+## Related docs
+
+- [User Guide](./USER.md)
+- [Technical Spec](./SPEC.md)
+- [Operations Feature](../operations/index.md)
+- [Security Feature](../security/index.md)
diff --git a/docs/fragemented/features/auth/SPEC.md b/docs/fragemented/features/auth/SPEC.md
new file mode 100644
index 0000000000..d17da94537
--- /dev/null
+++ b/docs/fragemented/features/auth/SPEC.md
@@ -0,0 +1,590 @@
+# Technical Specification: Enterprise Authentication & Lifecycle
+
+## Overview
+
+**cliproxyapi++** implements enterprise-grade authentication management with full lifecycle automation, supporting multiple authentication flows (API keys, OAuth, device authorization) and automatic token refresh capabilities.
+
+## Authentication Architecture
+
+### Core Components
+
+```
+Auth System
+├── Auth Manager (coreauth.Manager)
+│ ├── Token Store (File-based)
+│ ├── Refresh Worker (Background)
+│ ├── Health Checker
+│ └── Quota Tracker
+├── Auth Flows
+│ ├── API Key Flow
+│ ├── OAuth 2.0 Flow
+│ ├── Device Authorization Flow
+│ └── Custom Provider Flows
+└── Credential Management
+ ├── Multi-credential support
+ ├── Per-credential quota tracking
+ └── Automatic rotation
+```
+
+## Authentication Flows
+
+### 1. API Key Authentication
+
+**Purpose**: Simple token-based authentication for providers with static API keys.
+
+**Implementation**:
+```go
+type APIKeyAuth struct {
+ Token string `json:"token"`
+}
+
+func (a *APIKeyAuth) GetHeaders() map[string]string {
+ return map[string]string{
+ "Authorization": fmt.Sprintf("Bearer %s", a.Token),
+ }
+}
+```
+
+**Supported Providers**: Claude, Gemini, OpenAI, Mistral, Groq, DeepSeek
+
+**Storage Format** (`auths/{provider}.json`):
+```json
+{
+ "type": "api_key",
+ "token": "sk-ant-xxx",
+ "priority": 1,
+ "quota": {
+ "limit": 1000000,
+ "used": 50000
+ }
+}
+```
+
+### 2. OAuth 2.0 Flow
+
+**Purpose**: Standard OAuth 2.0 authorization code flow for providers requiring user consent.
+
+**Flow Sequence**:
+```
+1. User initiates auth
+2. Redirect to provider auth URL
+3. User grants consent
+4. Provider redirects with authorization code
+5. Exchange code for access token
+6. Store access + refresh token
+```
+
+**Implementation**:
+```go
+type OAuthFlow struct {
+ clientID string
+ clientSecret string
+ redirectURL string
+ authURL string
+ tokenURL string
+}
+
+func (f *OAuthFlow) Start(ctx context.Context) (*AuthResult, error) {
+ state := generateSecureState()
+ authURL := fmt.Sprintf("%s?response_type=code&client_id=%s&redirect_uri=%s&state=%s",
+ f.authURL, f.clientID, f.redirectURL, state)
+
+ return &AuthResult{
+ Method: "oauth",
+ AuthURL: authURL,
+ State: state,
+ }, nil
+}
+
+func (f *OAuthFlow) Exchange(ctx context.Context, code string) (*AuthToken, error) {
+ // Exchange authorization code for tokens
+ resp, err := http.PostForm(f.tokenURL, map[string]string{
+ "client_id": f.clientID,
+ "client_secret": f.clientSecret,
+ "code": code,
+ "redirect_uri": f.redirectURL,
+ "grant_type": "authorization_code",
+ })
+
+ // Parse and return tokens
+}
+```
+
+**Supported Providers**: GitHub Copilot (partial)
+
+### 3. Device Authorization Flow
+
+**Purpose**: OAuth 2.0 device authorization grant for headless/batch environments.
+
+**Flow Sequence**:
+```
+1. Request device code
+2. Display user code and verification URL
+3. User visits URL, enters code
+4. Background polling for token
+5. Receive access token
+```
+
+**Implementation**:
+```go
+type DeviceFlow struct {
+ deviceCodeURL string
+ tokenURL string
+ clientID string
+}
+
+func (f *DeviceFlow) Start(ctx context.Context) (*AuthResult, error) {
+ resp, err := http.PostForm(f.deviceCodeURL, map[string]string{
+ "client_id": f.clientID,
+ })
+
+ var dc struct {
+ DeviceCode string `json:"device_code"`
+ UserCode string `json:"user_code"`
+ VerificationURI string `json:"verification_uri"`
+ VerificationURIComplete string `json:"verification_uri_complete"`
+ ExpiresIn int `json:"expires_in"`
+ Interval int `json:"interval"`
+ }
+
+ // Parse and return device code info
+ return &AuthResult{
+ Method: "device_flow",
+ UserCode: dc.UserCode,
+ VerificationURL: dc.VerificationURI,
+ DeviceCode: dc.DeviceCode,
+ Interval: dc.Interval,
+ ExpiresAt: time.Now().Add(time.Duration(dc.ExpiresIn) * time.Second),
+ }, nil
+}
+
+func (f *DeviceFlow) Poll(ctx context.Context, deviceCode string) (*AuthToken, error) {
+ ticker := time.NewTicker(time.Duration(f.Interval) * time.Second)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return nil, ctx.Err()
+ case <-ticker.C:
+ resp, err := http.PostForm(f.tokenURL, map[string]string{
+ "client_id": f.clientID,
+ "grant_type": "urn:ietf:params:oauth:grant-type:device_code",
+ "device_code": deviceCode,
+ })
+
+ var token struct {
+ AccessToken string `json:"access_token"`
+ ExpiresIn int `json:"expires_in"`
+ Error string `json:"error"`
+ }
+
+ if token.Error == "" {
+ return &AuthToken{
+ AccessToken: token.AccessToken,
+ ExpiresAt: time.Now().Add(time.Duration(token.ExpiresIn) * time.Second),
+ }, nil
+ }
+
+ if token.Error != "authorization_pending" {
+ return nil, fmt.Errorf("device flow error: %s", token.Error)
+ }
+ }
+ }
+}
+```
+
+**Supported Providers**: GitHub Copilot (Full), Kiro (AWS CodeWhisperer)
+
+## Provider-Specific Authentication
+
+### GitHub Copilot (Full OAuth Device Flow)
+
+**Authentication Flow**:
+1. Device code request to GitHub
+2. User authorizes via browser
+3. Poll for access token
+4. Refresh token management
+
+**Token Storage** (`auths/copilot.json`):
+```json
+{
+ "type": "oauth_device_flow",
+ "access_token": "ghu_xxx",
+ "refresh_token": "ghr_xxx",
+ "expires_at": "2026-02-20T00:00:00Z",
+ "quota": {
+ "limit": 10000,
+ "used": 100
+ }
+}
+```
+
+**Unique Features**:
+- Per-credential quota tracking
+- Automatic quota rotation
+- Multi-credential load balancing
+
+### Kiro (AWS CodeWhisperer)
+
+**Authentication Flow**:
+1. Browser-based AWS Builder ID login
+2. Interactive web UI (`/v0/oauth/kiro`)
+3. SSO integration with AWS Identity Center
+4. Token persistence and refresh
+
+**Token Storage** (`auths/kiro.json`):
+```json
+{
+ "type": "oauth_device_flow",
+ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
+ "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
+ "expires_at": "2026-02-20T00:00:00Z",
+ "identity_id": "us-east-1:12345678-1234-1234-1234-123456789012"
+}
+```
+
+**Web UI Integration**:
+```go
+// Route handler for /v0/oauth/kiro
+func HandleKiroAuth(c *gin.Context) {
+ // Generate device code
+ deviceCode, err := kiro.GetDeviceCode()
+
+ // Render interactive HTML page
+ c.HTML(200, "kiro_auth.html", gin.H{
+ "UserCode": deviceCode.UserCode,
+ "VerificationURL": deviceCode.VerificationURL,
+ })
+}
+```
+
+## Background Token Refresh
+
+### Refresh Worker Architecture
+
+```go
+type RefreshWorker struct {
+ manager *AuthManager
+ interval time.Duration
+ leadTime time.Duration
+ stopChan chan struct{}
+}
+
+func (w *RefreshWorker) Run(ctx context.Context) {
+ ticker := time.NewTicker(w.interval)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-ticker.C:
+ w.checkAndRefresh()
+ }
+ }
+}
+
+func (w *RefreshWorker) checkAndRefresh() {
+ now := time.Now()
+
+ for _, auth := range w.manager.ListAll() {
+ if auth.ExpiresAt.Sub(now) <= w.leadTime {
+ log.Infof("Refreshing token for %s", auth.Provider)
+
+ newToken, err := w.manager.Refresh(auth)
+ if err != nil {
+ log.Errorf("Failed to refresh %s: %v", auth.Provider, err)
+ continue
+ }
+
+ if err := w.manager.Update(auth.Provider, newToken); err != nil {
+ log.Errorf("Failed to update %s: %v", auth.Provider, err)
+ }
+ }
+ }
+}
+```
+
+**Configuration**:
+```yaml
+auth:
+ refresh:
+ enabled: true
+ check_interval: "5m"
+ refresh_lead_time: "10m"
+```
+
+**Refresh Lead Time**: Tokens are refreshed 10 minutes before expiration to ensure zero downtime.
+
+### Refresh Strategies
+
+#### OAuth Refresh Token Flow
+```go
+func (m *AuthManager) Refresh(auth *Auth) (*AuthToken, error) {
+ if auth.RefreshToken == "" {
+ return nil, fmt.Errorf("no refresh token available")
+ }
+
+ req := map[string]string{
+ "client_id": m.clientID,
+ "client_secret": m.clientSecret,
+ "refresh_token": auth.RefreshToken,
+ "grant_type": "refresh_token",
+ }
+
+ resp, err := http.PostForm(m.tokenURL, req)
+ // ... parse and return new token
+}
+```
+
+#### Device Flow Re-authorization
+```go
+func (m *AuthManager) Refresh(auth *Auth) (*AuthToken, error) {
+ // For device flow, we need full re-authorization
+ // Trigger notification to user
+ m.notifyReauthRequired(auth.Provider)
+
+ // Wait for new authorization (with timeout)
+ return m.waitForNewAuth(auth.Provider, 30*time.Minute)
+}
+```
+
+## Credential Management
+
+### Multi-Credential Support
+
+```go
+type CredentialPool struct {
+ mu sync.RWMutex
+ creds map[string][]*Auth // provider -> credentials
+ strategy SelectionStrategy
+}
+
+type SelectionStrategy interface {
+ Select(creds []*Auth) *Auth
+}
+
+// Round-robin strategy
+type RoundRobinStrategy struct {
+ counters map[string]int
+}
+
+func (s *RoundRobinStrategy) Select(creds []*Auth) *Auth {
+ // Increment counter and select next credential
+}
+
+// Quota-aware strategy
+type QuotaAwareStrategy struct{}
+
+func (s *QuotaAwareStrategy) Select(creds []*Auth) *Auth {
+ // Select credential with most remaining quota
+}
+```
+
+### Quota Tracking
+
+```go
+type Quota struct {
+ Limit int64 `json:"limit"`
+ Used int64 `json:"used"`
+ Remaining int64 `json:"remaining"`
+}
+
+func (q *Quota) Consume(tokens int) error {
+ if q.Remaining < int64(tokens) {
+ return fmt.Errorf("quota exceeded")
+ }
+ q.Used += int64(tokens)
+ q.Remaining = q.Limit - q.Used
+ return nil
+}
+
+func (q *Quota) Reset() {
+ q.Used = 0
+ q.Remaining = q.Limit
+}
+```
+
+### Per-Request Quota Decuction
+
+```go
+func (m *AuthManager) ConsumeQuota(provider string, tokens int) error {
+ m.mu.Lock()
+ defer m.mu.Unlock()
+
+ for _, auth := range m.creds[provider] {
+ if err := auth.Quota.Consume(tokens); err == nil {
+ return nil
+ }
+ }
+
+ return fmt.Errorf("all credentials exhausted for %s", provider)
+}
+```
+
+## Security Considerations
+
+### Token Storage
+
+**File Permissions**:
+- Auth files: `0600` (read/write by owner only)
+- Directory: `0700` (access by owner only)
+
+**Encryption** (Optional):
+```yaml
+auth:
+ encryption:
+ enabled: true
+ key: "ENCRYPTION_KEY_32_BYTES_LONG"
+```
+
+### Token Validation
+
+```go
+func (m *AuthManager) Validate(auth *Auth) error {
+ now := time.Now()
+
+ if auth.ExpiresAt.Before(now) {
+ return fmt.Errorf("token expired")
+ }
+
+ if auth.Token == "" {
+ return fmt.Errorf("empty token")
+ }
+
+ return nil
+}
+```
+
+### Device Fingerprinting
+
+Generate unique device identifiers to satisfy provider security checks:
+
+```go
+func GenerateDeviceID() string {
+ mac := getMACAddress()
+ hostname := getHostname()
+ timestamp := time.Now().Unix()
+
+ h := sha256.New()
+ h.Write([]byte(mac))
+ h.Write([]byte(hostname))
+ h.Write([]byte(fmt.Sprintf("%d", timestamp)))
+
+ return hex.EncodeToString(h.Sum(nil))
+}
+```
+
+## Error Handling
+
+### Authentication Errors
+
+| Error Type | Retryable | Action |
+|------------|-----------|--------|
+| Invalid credentials | No | Prompt user to re-authenticate |
+| Expired token | Yes | Trigger refresh |
+| Rate limit exceeded | Yes | Implement backoff |
+| Network error | Yes | Retry with exponential backoff |
+
+### Retry Logic
+
+```go
+func (m *AuthManager) ExecuteWithRetry(
+ ctx context.Context,
+ auth *Auth,
+ fn func() error,
+) error {
+ maxRetries := 3
+ backoff := time.Second
+
+ for i := 0; i < maxRetries; i++ {
+ err := fn()
+ if err == nil {
+ return nil
+ }
+
+ if !isRetryableError(err) {
+ return err
+ }
+
+ time.Sleep(backoff)
+ backoff *= 2
+ }
+
+ return fmt.Errorf("max retries exceeded")
+}
+```
+
+## Monitoring
+
+### Auth Metrics
+
+```go
+type AuthMetrics struct {
+ TotalCredentials int
+ ExpiredCredentials int
+ RefreshCount int
+ FailedRefreshCount int
+ QuotaUsage map[string]float64
+}
+```
+
+### Health Checks
+
+```go
+func (m *AuthManager) HealthCheck(ctx context.Context) error {
+ for _, auth := range m.ListAll() {
+ if err := m.Validate(auth); err != nil {
+ return fmt.Errorf("invalid auth for %s: %w", auth.Provider, err)
+ }
+ }
+ return nil
+}
+```
+
+## API Reference
+
+### Management Endpoints
+
+#### Get All Auths
+```
+GET /v0/management/auths
+```
+
+Response:
+```json
+{
+ "auths": [
+ {
+ "provider": "claude",
+ "type": "api_key",
+ "quota": {"limit": 1000000, "used": 50000}
+ }
+ ]
+}
+```
+
+#### Add Auth
+```
+POST /v0/management/auths
+```
+
+Request:
+```json
+{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-xxx"
+}
+```
+
+#### Delete Auth
+```
+DELETE /v0/management/auths/{provider}
+```
+
+#### Refresh Auth
+```
+POST /v0/management/auths/{provider}/refresh
+```
diff --git a/docs/fragemented/features/auth/USER.md b/docs/fragemented/features/auth/USER.md
new file mode 100644
index 0000000000..79552c5de4
--- /dev/null
+++ b/docs/fragemented/features/auth/USER.md
@@ -0,0 +1,492 @@
+# User Guide: Enterprise Authentication
+
+## Understanding Authentication in cliproxyapi++
+
+cliproxyapi++ supports multiple authentication methods for different LLM providers. The authentication system handles credential management, automatic token refresh, and quota tracking seamlessly in the background.
+
+## Quick Start: Adding Credentials
+
+### Method 1: Manual Configuration
+
+Create credential files in the `auths/` directory:
+
+**Claude API Key** (`auths/claude.json`):
+```json
+{
+ "type": "api_key",
+ "token": "sk-ant-xxxxx",
+ "priority": 1
+}
+```
+
+**OpenAI API Key** (`auths/openai.json`):
+```json
+{
+ "type": "api_key",
+ "token": "sk-xxxxx",
+ "priority": 2
+}
+```
+
+**Gemini API Key** (`auths/gemini.json`):
+```json
+{
+ "type": "api_key",
+ "token": "AIzaSyxxxxx",
+ "priority": 3
+}
+```
+
+### Method 2: Interactive Setup (Web UI)
+
+For providers with OAuth/device flow, use the web interface:
+
+**GitHub Copilot**:
+1. Visit `http://localhost:8317/v0/oauth/copilot`
+2. Enter your GitHub credentials
+3. Authorize the application
+4. Token is automatically stored
+
+**Kiro (AWS CodeWhisperer)**:
+1. Visit `http://localhost:8317/v0/oauth/kiro`
+2. Choose AWS Builder ID or Identity Center
+3. Complete browser-based login
+4. Token is automatically stored
+
+### Method 3: CLI Commands
+
+```bash
+# Add API key
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-xxxxx"
+ }'
+
+# Add with priority
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-xxxxx",
+ "priority": 10
+ }'
+```
+
+## Authentication Methods
+
+### API Key Authentication
+
+**Best for**: Providers with static API keys that don't expire.
+
+**Supported Providers**:
+- Claude (Anthropic)
+- OpenAI
+- Gemini (Google)
+- Mistral
+- Groq
+- DeepSeek
+- And many more
+
+**Setup**:
+```json
+{
+ "type": "api_key",
+ "token": "your-api-key-here",
+ "priority": 1
+}
+```
+
+**Priority**: Lower number = higher priority. Used when multiple credentials exist for the same provider.
+
+### OAuth 2.0 Device Flow
+
+**Best for**: Providers requiring user consent with token refresh capability.
+
+**Supported Providers**:
+- GitHub Copilot
+- Kiro (AWS CodeWhisperer)
+
+**Setup**: Use web UI - automatic handling of device code, user authorization, and token storage.
+
+**How it Works**:
+1. System requests a device code from provider
+2. You're shown a user code and verification URL
+3. Visit URL, enter code, authorize
+4. System polls for token in background
+5. Token stored and automatically refreshed
+
+**Example: GitHub Copilot**:
+```bash
+# Visit web UI
+open http://localhost:8317/v0/oauth/copilot
+
+# Enter your GitHub credentials
+# Authorize the application
+# Done! Token is stored and managed automatically
+```
+
+### Custom Provider Authentication
+
+**Best for**: Proprietary providers with custom auth flows.
+
+**Setup**: Implement custom auth flow in embedded library (see DEV.md).
+
+## Quota Management
+
+### Understanding Quotas
+
+Track usage per credential:
+
+```json
+{
+ "type": "api_key",
+ "token": "sk-ant-xxxxx",
+ "quota": {
+ "limit": 1000000,
+ "used": 50000,
+ "remaining": 950000
+ }
+}
+```
+
+**Automatic Quota Tracking**:
+- Request tokens are deducted from quota after each request
+- Multiple credentials are load-balanced based on remaining quota
+- Automatic rotation when quota is exhausted
+
+### Setting Quotas
+
+```bash
+# Update quota via API
+curl -X PUT http://localhost:8317/v0/management/auths/claude/quota \
+ -H "Content-Type: application/json" \
+ -d '{
+ "limit": 1000000
+ }'
+```
+
+### Quota Reset
+
+Quotas reset automatically based on provider billing cycles (configurable in `config.yaml`):
+
+```yaml
+auth:
+ quota:
+ reset_schedule:
+ claude: "monthly"
+ openai: "monthly"
+ gemini: "daily"
+```
+
+## Automatic Token Refresh
+
+### How It Works
+
+The refresh worker runs every 5 minutes and:
+1. Checks all credentials for expiration
+2. Refreshes tokens expiring within 10 minutes
+3. Updates stored credentials
+4. Notifies applications of refresh (no downtime)
+
+### Configuration
+
+```yaml
+auth:
+ refresh:
+ enabled: true
+ check_interval: "5m"
+ refresh_lead_time: "10m"
+```
+
+### Monitoring Refresh
+
+```bash
+# Check refresh status
+curl http://localhost:8317/v0/management/auths/refresh/status
+```
+
+Response:
+```json
+{
+ "last_check": "2026-02-19T23:00:00Z",
+ "next_check": "2026-02-19T23:05:00Z",
+ "credentials_checked": 5,
+ "refreshed": 1,
+ "failed": 0
+}
+```
+
+## Multi-Credential Management
+
+### Adding Multiple Credentials
+
+```bash
+# First Claude key
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-key1",
+ "priority": 1
+ }'
+
+# Second Claude key
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-key2",
+ "priority": 2
+ }'
+```
+
+### Load Balancing Strategies
+
+**Round-Robin**: Rotate through credentials evenly
+```yaml
+auth:
+ selection_strategy: "round_robin"
+```
+
+**Quota-Aware**: Use credential with most remaining quota
+```yaml
+auth:
+ selection_strategy: "quota_aware"
+```
+
+**Priority-Based**: Use highest priority first
+```yaml
+auth:
+ selection_strategy: "priority"
+```
+
+### Monitoring Credentials
+
+```bash
+# List all credentials
+curl http://localhost:8317/v0/management/auths
+```
+
+Response:
+```json
+{
+ "auths": [
+ {
+ "provider": "claude",
+ "type": "api_key",
+ "priority": 1,
+ "quota": {
+ "limit": 1000000,
+ "used": 50000,
+ "remaining": 950000
+ },
+ "status": "active"
+ },
+ {
+ "provider": "claude",
+ "type": "api_key",
+ "priority": 2,
+ "quota": {
+ "limit": 1000000,
+ "used": 30000,
+ "remaining": 970000
+ },
+ "status": "active"
+ }
+ ]
+}
+```
+
+## Credential Rotation
+
+### Automatic Rotation
+
+When quota is exhausted or token expires:
+1. System selects next available credential
+2. Notifications sent (configured)
+3. Load continues seamlessly
+
+### Manual Rotation
+
+```bash
+# Remove exhausted credential
+curl -X DELETE http://localhost:8317/v0/management/auths/claude?id=sk-ant-key1
+
+# Add new credential
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-key3",
+ "priority": 1
+ }'
+```
+
+## Troubleshooting
+
+### Token Not Refreshing
+
+**Problem**: Token expired but not refreshed
+
+**Solutions**:
+1. Check refresh worker is enabled in config
+2. Verify refresh token exists (OAuth only)
+3. Check logs: `tail -f logs/auth.log`
+4. Manual refresh: `POST /v0/management/auths/{provider}/refresh`
+
+### Authentication Failed
+
+**Problem**: 401 errors from provider
+
+**Solutions**:
+1. Verify token is correct
+2. Check token hasn't expired
+3. Verify provider is enabled in config
+4. Test token with provider's API directly
+
+### Quota Exhausted
+
+**Problem**: Requests failing due to quota
+
+**Solutions**:
+1. Add additional credentials for provider
+2. Check quota reset schedule
+3. Monitor usage: `GET /v0/management/auths`
+4. Adjust selection strategy
+
+### OAuth Flow Stuck
+
+**Problem**: Device flow not completing
+
+**Solutions**:
+1. Ensure you visited the verification URL
+2. Check you entered the correct user code
+3. Verify provider authorization wasn't denied
+4. Check browser console for errors
+5. Retry: refresh the auth page
+
+### Credential Not Found
+
+**Problem**: "No credentials for provider X" error
+
+**Solutions**:
+1. Add credential for provider
+2. Check credential file exists in `auths/`
+3. Verify file is valid JSON
+4. Check provider is enabled in config
+
+## Best Practices
+
+### Security
+
+1. **Never commit credentials** to version control
+2. **Use file permissions**: `chmod 600 auths/*.json`
+3. **Enable encryption** for sensitive environments
+4. **Rotate credentials** regularly
+5. **Use different credentials** for dev/prod
+
+### Performance
+
+1. **Use multiple credentials** for high-volume providers
+2. **Enable quota-aware selection** for load balancing
+3. **Monitor refresh logs** for issues
+4. **Set appropriate priorities** for credential routing
+
+### Monitoring
+
+1. **Check auth metrics** regularly
+2. **Set up alerts** for quota exhaustion
+3. **Monitor refresh failures**
+4. **Review credential usage** patterns
+
+## Advanced: Encryption
+
+Enable credential encryption:
+
+```yaml
+auth:
+ encryption:
+ enabled: true
+ key: "YOUR_32_BYTE_ENCRYPTION_KEY_HERE"
+```
+
+Generate encryption key:
+```bash
+openssl rand -base64 32
+```
+
+## API Reference
+
+### Auth Management
+
+**List All Auths**
+```http
+GET /v0/management/auths
+```
+
+**Get Auth for Provider**
+```http
+GET /v0/management/auths/{provider}
+```
+
+**Add Auth**
+```http
+POST /v0/management/auths
+Content-Type: application/json
+
+{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-xxxxx",
+ "priority": 1
+}
+```
+
+**Update Auth**
+```http
+PUT /v0/management/auths/{provider}
+Content-Type: application/json
+
+{
+ "token": "sk-ant-new-token",
+ "priority": 2
+}
+```
+
+**Delete Auth**
+```http
+DELETE /v0/management/auths/{provider}?id=credential-id
+```
+
+**Refresh Auth**
+```http
+POST /v0/management/auths/{provider}/refresh
+```
+
+**Get Quota**
+```http
+GET /v0/management/auths/{provider}/quota
+```
+
+**Update Quota**
+```http
+PUT /v0/management/auths/{provider}/quota
+Content-Type: application/json
+
+{
+ "limit": 1000000
+}
+```
+
+## Next Steps
+
+- See [DEV.md](./DEV.md) for implementing custom auth flows
+- See [../security/](../security/) for security features
+- See [../operations/](../operations/) for operational guidance
diff --git a/docs/fragemented/features/auth/index.md b/docs/fragemented/features/auth/index.md
new file mode 100644
index 0000000000..14a729c235
--- /dev/null
+++ b/docs/fragemented/features/auth/index.md
@@ -0,0 +1,10 @@
+# Consolidated Index
+
+## Files
+
+* `DEV.md`
+* `SPEC.md`
+* `USER.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/features/auth/merged.md b/docs/fragemented/features/auth/merged.md
new file mode 100644
index 0000000000..d86a78414e
--- /dev/null
+++ b/docs/fragemented/features/auth/merged.md
@@ -0,0 +1,1117 @@
+# Merged Fragmented Markdown
+
+## Source: features/auth/DEV.md
+
+# Developer Guide: Authentication
+
+This page captures extension guidance for auth-related changes.
+
+## Core tasks
+
+- Add or update auth provider implementations.
+- Verify token refresh behavior and error handling.
+- Validate quota tracking and credential rotation behavior.
+
+## Related docs
+
+- [User Guide](./USER.md)
+- [Technical Spec](./SPEC.md)
+- [Operations Feature](../operations/index.md)
+- [Security Feature](../security/index.md)
+
+
+---
+
+## Source: features/auth/SPEC.md
+
+# Technical Specification: Enterprise Authentication & Lifecycle
+
+## Overview
+
+**cliproxyapi++** implements enterprise-grade authentication management with full lifecycle automation, supporting multiple authentication flows (API keys, OAuth, device authorization) and automatic token refresh capabilities.
+
+## Authentication Architecture
+
+### Core Components
+
+```
+Auth System
+├── Auth Manager (coreauth.Manager)
+│ ├── Token Store (File-based)
+│ ├── Refresh Worker (Background)
+│ ├── Health Checker
+│ └── Quota Tracker
+├── Auth Flows
+│ ├── API Key Flow
+│ ├── OAuth 2.0 Flow
+│ ├── Device Authorization Flow
+│ └── Custom Provider Flows
+└── Credential Management
+ ├── Multi-credential support
+ ├── Per-credential quota tracking
+ └── Automatic rotation
+```
+
+## Authentication Flows
+
+### 1. API Key Authentication
+
+**Purpose**: Simple token-based authentication for providers with static API keys.
+
+**Implementation**:
+```go
+type APIKeyAuth struct {
+ Token string `json:"token"`
+}
+
+func (a *APIKeyAuth) GetHeaders() map[string]string {
+ return map[string]string{
+ "Authorization": fmt.Sprintf("Bearer %s", a.Token),
+ }
+}
+```
+
+**Supported Providers**: Claude, Gemini, OpenAI, Mistral, Groq, DeepSeek
+
+**Storage Format** (`auths/{provider}.json`):
+```json
+{
+ "type": "api_key",
+ "token": "sk-ant-xxx",
+ "priority": 1,
+ "quota": {
+ "limit": 1000000,
+ "used": 50000
+ }
+}
+```
+
+### 2. OAuth 2.0 Flow
+
+**Purpose**: Standard OAuth 2.0 authorization code flow for providers requiring user consent.
+
+**Flow Sequence**:
+```
+1. User initiates auth
+2. Redirect to provider auth URL
+3. User grants consent
+4. Provider redirects with authorization code
+5. Exchange code for access token
+6. Store access + refresh token
+```
+
+**Implementation**:
+```go
+type OAuthFlow struct {
+ clientID string
+ clientSecret string
+ redirectURL string
+ authURL string
+ tokenURL string
+}
+
+func (f *OAuthFlow) Start(ctx context.Context) (*AuthResult, error) {
+ state := generateSecureState()
+ authURL := fmt.Sprintf("%s?response_type=code&client_id=%s&redirect_uri=%s&state=%s",
+ f.authURL, f.clientID, f.redirectURL, state)
+
+ return &AuthResult{
+ Method: "oauth",
+ AuthURL: authURL,
+ State: state,
+ }, nil
+}
+
+func (f *OAuthFlow) Exchange(ctx context.Context, code string) (*AuthToken, error) {
+ // Exchange authorization code for tokens
+ resp, err := http.PostForm(f.tokenURL, map[string]string{
+ "client_id": f.clientID,
+ "client_secret": f.clientSecret,
+ "code": code,
+ "redirect_uri": f.redirectURL,
+ "grant_type": "authorization_code",
+ })
+
+ // Parse and return tokens
+}
+```
+
+**Supported Providers**: GitHub Copilot (partial)
+
+### 3. Device Authorization Flow
+
+**Purpose**: OAuth 2.0 device authorization grant for headless/batch environments.
+
+**Flow Sequence**:
+```
+1. Request device code
+2. Display user code and verification URL
+3. User visits URL, enters code
+4. Background polling for token
+5. Receive access token
+```
+
+**Implementation**:
+```go
+type DeviceFlow struct {
+ deviceCodeURL string
+ tokenURL string
+ clientID string
+}
+
+func (f *DeviceFlow) Start(ctx context.Context) (*AuthResult, error) {
+ resp, err := http.PostForm(f.deviceCodeURL, map[string]string{
+ "client_id": f.clientID,
+ })
+
+ var dc struct {
+ DeviceCode string `json:"device_code"`
+ UserCode string `json:"user_code"`
+ VerificationURI string `json:"verification_uri"`
+ VerificationURIComplete string `json:"verification_uri_complete"`
+ ExpiresIn int `json:"expires_in"`
+ Interval int `json:"interval"`
+ }
+
+ // Parse and return device code info
+ return &AuthResult{
+ Method: "device_flow",
+ UserCode: dc.UserCode,
+ VerificationURL: dc.VerificationURI,
+ DeviceCode: dc.DeviceCode,
+ Interval: dc.Interval,
+ ExpiresAt: time.Now().Add(time.Duration(dc.ExpiresIn) * time.Second),
+ }, nil
+}
+
+func (f *DeviceFlow) Poll(ctx context.Context, deviceCode string) (*AuthToken, error) {
+ ticker := time.NewTicker(time.Duration(f.Interval) * time.Second)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return nil, ctx.Err()
+ case <-ticker.C:
+ resp, err := http.PostForm(f.tokenURL, map[string]string{
+ "client_id": f.clientID,
+ "grant_type": "urn:ietf:params:oauth:grant-type:device_code",
+ "device_code": deviceCode,
+ })
+
+ var token struct {
+ AccessToken string `json:"access_token"`
+ ExpiresIn int `json:"expires_in"`
+ Error string `json:"error"`
+ }
+
+ if token.Error == "" {
+ return &AuthToken{
+ AccessToken: token.AccessToken,
+ ExpiresAt: time.Now().Add(time.Duration(token.ExpiresIn) * time.Second),
+ }, nil
+ }
+
+ if token.Error != "authorization_pending" {
+ return nil, fmt.Errorf("device flow error: %s", token.Error)
+ }
+ }
+ }
+}
+```
+
+**Supported Providers**: GitHub Copilot (Full), Kiro (AWS CodeWhisperer)
+
+## Provider-Specific Authentication
+
+### GitHub Copilot (Full OAuth Device Flow)
+
+**Authentication Flow**:
+1. Device code request to GitHub
+2. User authorizes via browser
+3. Poll for access token
+4. Refresh token management
+
+**Token Storage** (`auths/copilot.json`):
+```json
+{
+ "type": "oauth_device_flow",
+ "access_token": "ghu_xxx",
+ "refresh_token": "ghr_xxx",
+ "expires_at": "2026-02-20T00:00:00Z",
+ "quota": {
+ "limit": 10000,
+ "used": 100
+ }
+}
+```
+
+**Unique Features**:
+- Per-credential quota tracking
+- Automatic quota rotation
+- Multi-credential load balancing
+
+### Kiro (AWS CodeWhisperer)
+
+**Authentication Flow**:
+1. Browser-based AWS Builder ID login
+2. Interactive web UI (`/v0/oauth/kiro`)
+3. SSO integration with AWS Identity Center
+4. Token persistence and refresh
+
+**Token Storage** (`auths/kiro.json`):
+```json
+{
+ "type": "oauth_device_flow",
+ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
+ "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
+ "expires_at": "2026-02-20T00:00:00Z",
+ "identity_id": "us-east-1:12345678-1234-1234-1234-123456789012"
+}
+```
+
+**Web UI Integration**:
+```go
+// Route handler for /v0/oauth/kiro
+func HandleKiroAuth(c *gin.Context) {
+ // Generate device code
+ deviceCode, err := kiro.GetDeviceCode()
+
+ // Render interactive HTML page
+ c.HTML(200, "kiro_auth.html", gin.H{
+ "UserCode": deviceCode.UserCode,
+ "VerificationURL": deviceCode.VerificationURL,
+ })
+}
+```
+
+## Background Token Refresh
+
+### Refresh Worker Architecture
+
+```go
+type RefreshWorker struct {
+ manager *AuthManager
+ interval time.Duration
+ leadTime time.Duration
+ stopChan chan struct{}
+}
+
+func (w *RefreshWorker) Run(ctx context.Context) {
+ ticker := time.NewTicker(w.interval)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-ticker.C:
+ w.checkAndRefresh()
+ }
+ }
+}
+
+func (w *RefreshWorker) checkAndRefresh() {
+ now := time.Now()
+
+ for _, auth := range w.manager.ListAll() {
+ if auth.ExpiresAt.Sub(now) <= w.leadTime {
+ log.Infof("Refreshing token for %s", auth.Provider)
+
+ newToken, err := w.manager.Refresh(auth)
+ if err != nil {
+ log.Errorf("Failed to refresh %s: %v", auth.Provider, err)
+ continue
+ }
+
+ if err := w.manager.Update(auth.Provider, newToken); err != nil {
+ log.Errorf("Failed to update %s: %v", auth.Provider, err)
+ }
+ }
+ }
+}
+```
+
+**Configuration**:
+```yaml
+auth:
+ refresh:
+ enabled: true
+ check_interval: "5m"
+ refresh_lead_time: "10m"
+```
+
+**Refresh Lead Time**: Tokens are refreshed 10 minutes before expiration to ensure zero downtime.
+
+### Refresh Strategies
+
+#### OAuth Refresh Token Flow
+```go
+func (m *AuthManager) Refresh(auth *Auth) (*AuthToken, error) {
+ if auth.RefreshToken == "" {
+ return nil, fmt.Errorf("no refresh token available")
+ }
+
+ req := map[string]string{
+ "client_id": m.clientID,
+ "client_secret": m.clientSecret,
+ "refresh_token": auth.RefreshToken,
+ "grant_type": "refresh_token",
+ }
+
+ resp, err := http.PostForm(m.tokenURL, req)
+ // ... parse and return new token
+}
+```
+
+#### Device Flow Re-authorization
+```go
+func (m *AuthManager) Refresh(auth *Auth) (*AuthToken, error) {
+ // For device flow, we need full re-authorization
+ // Trigger notification to user
+ m.notifyReauthRequired(auth.Provider)
+
+ // Wait for new authorization (with timeout)
+ return m.waitForNewAuth(auth.Provider, 30*time.Minute)
+}
+```
+
+## Credential Management
+
+### Multi-Credential Support
+
+```go
+type CredentialPool struct {
+ mu sync.RWMutex
+ creds map[string][]*Auth // provider -> credentials
+ strategy SelectionStrategy
+}
+
+type SelectionStrategy interface {
+ Select(creds []*Auth) *Auth
+}
+
+// Round-robin strategy
+type RoundRobinStrategy struct {
+ counters map[string]int
+}
+
+func (s *RoundRobinStrategy) Select(creds []*Auth) *Auth {
+ // Increment counter and select next credential
+}
+
+// Quota-aware strategy
+type QuotaAwareStrategy struct{}
+
+func (s *QuotaAwareStrategy) Select(creds []*Auth) *Auth {
+ // Select credential with most remaining quota
+}
+```
+
+### Quota Tracking
+
+```go
+type Quota struct {
+ Limit int64 `json:"limit"`
+ Used int64 `json:"used"`
+ Remaining int64 `json:"remaining"`
+}
+
+func (q *Quota) Consume(tokens int) error {
+ if q.Remaining < int64(tokens) {
+ return fmt.Errorf("quota exceeded")
+ }
+ q.Used += int64(tokens)
+ q.Remaining = q.Limit - q.Used
+ return nil
+}
+
+func (q *Quota) Reset() {
+ q.Used = 0
+ q.Remaining = q.Limit
+}
+```
+
+### Per-Request Quota Decuction
+
+```go
+func (m *AuthManager) ConsumeQuota(provider string, tokens int) error {
+ m.mu.Lock()
+ defer m.mu.Unlock()
+
+ for _, auth := range m.creds[provider] {
+ if err := auth.Quota.Consume(tokens); err == nil {
+ return nil
+ }
+ }
+
+ return fmt.Errorf("all credentials exhausted for %s", provider)
+}
+```
+
+## Security Considerations
+
+### Token Storage
+
+**File Permissions**:
+- Auth files: `0600` (read/write by owner only)
+- Directory: `0700` (access by owner only)
+
+**Encryption** (Optional):
+```yaml
+auth:
+ encryption:
+ enabled: true
+ key: "ENCRYPTION_KEY_32_BYTES_LONG"
+```
+
+### Token Validation
+
+```go
+func (m *AuthManager) Validate(auth *Auth) error {
+ now := time.Now()
+
+ if auth.ExpiresAt.Before(now) {
+ return fmt.Errorf("token expired")
+ }
+
+ if auth.Token == "" {
+ return fmt.Errorf("empty token")
+ }
+
+ return nil
+}
+```
+
+### Device Fingerprinting
+
+Generate unique device identifiers to satisfy provider security checks:
+
+```go
+func GenerateDeviceID() string {
+ mac := getMACAddress()
+ hostname := getHostname()
+ timestamp := time.Now().Unix()
+
+ h := sha256.New()
+ h.Write([]byte(mac))
+ h.Write([]byte(hostname))
+ h.Write([]byte(fmt.Sprintf("%d", timestamp)))
+
+ return hex.EncodeToString(h.Sum(nil))
+}
+```
+
+## Error Handling
+
+### Authentication Errors
+
+| Error Type | Retryable | Action |
+|------------|-----------|--------|
+| Invalid credentials | No | Prompt user to re-authenticate |
+| Expired token | Yes | Trigger refresh |
+| Rate limit exceeded | Yes | Implement backoff |
+| Network error | Yes | Retry with exponential backoff |
+
+### Retry Logic
+
+```go
+func (m *AuthManager) ExecuteWithRetry(
+ ctx context.Context,
+ auth *Auth,
+ fn func() error,
+) error {
+ maxRetries := 3
+ backoff := time.Second
+
+ for i := 0; i < maxRetries; i++ {
+ err := fn()
+ if err == nil {
+ return nil
+ }
+
+ if !isRetryableError(err) {
+ return err
+ }
+
+ time.Sleep(backoff)
+ backoff *= 2
+ }
+
+ return fmt.Errorf("max retries exceeded")
+}
+```
+
+## Monitoring
+
+### Auth Metrics
+
+```go
+type AuthMetrics struct {
+ TotalCredentials int
+ ExpiredCredentials int
+ RefreshCount int
+ FailedRefreshCount int
+ QuotaUsage map[string]float64
+}
+```
+
+### Health Checks
+
+```go
+func (m *AuthManager) HealthCheck(ctx context.Context) error {
+ for _, auth := range m.ListAll() {
+ if err := m.Validate(auth); err != nil {
+ return fmt.Errorf("invalid auth for %s: %w", auth.Provider, err)
+ }
+ }
+ return nil
+}
+```
+
+## API Reference
+
+### Management Endpoints
+
+#### Get All Auths
+```
+GET /v0/management/auths
+```
+
+Response:
+```json
+{
+ "auths": [
+ {
+ "provider": "claude",
+ "type": "api_key",
+ "quota": {"limit": 1000000, "used": 50000}
+ }
+ ]
+}
+```
+
+#### Add Auth
+```
+POST /v0/management/auths
+```
+
+Request:
+```json
+{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-xxx"
+}
+```
+
+#### Delete Auth
+```
+DELETE /v0/management/auths/{provider}
+```
+
+#### Refresh Auth
+```
+POST /v0/management/auths/{provider}/refresh
+```
+
+
+---
+
+## Source: features/auth/USER.md
+
+# User Guide: Enterprise Authentication
+
+## Understanding Authentication in cliproxyapi++
+
+cliproxyapi++ supports multiple authentication methods for different LLM providers. The authentication system handles credential management, automatic token refresh, and quota tracking seamlessly in the background.
+
+## Quick Start: Adding Credentials
+
+### Method 1: Manual Configuration
+
+Create credential files in the `auths/` directory:
+
+**Claude API Key** (`auths/claude.json`):
+```json
+{
+ "type": "api_key",
+ "token": "sk-ant-xxxxx",
+ "priority": 1
+}
+```
+
+**OpenAI API Key** (`auths/openai.json`):
+```json
+{
+ "type": "api_key",
+ "token": "sk-xxxxx",
+ "priority": 2
+}
+```
+
+**Gemini API Key** (`auths/gemini.json`):
+```json
+{
+ "type": "api_key",
+ "token": "AIzaSyxxxxx",
+ "priority": 3
+}
+```
+
+### Method 2: Interactive Setup (Web UI)
+
+For providers with OAuth/device flow, use the web interface:
+
+**GitHub Copilot**:
+1. Visit `http://localhost:8317/v0/oauth/copilot`
+2. Enter your GitHub credentials
+3. Authorize the application
+4. Token is automatically stored
+
+**Kiro (AWS CodeWhisperer)**:
+1. Visit `http://localhost:8317/v0/oauth/kiro`
+2. Choose AWS Builder ID or Identity Center
+3. Complete browser-based login
+4. Token is automatically stored
+
+### Method 3: CLI Commands
+
+```bash
+# Add API key
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-xxxxx"
+ }'
+
+# Add with priority
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-xxxxx",
+ "priority": 10
+ }'
+```
+
+## Authentication Methods
+
+### API Key Authentication
+
+**Best for**: Providers with static API keys that don't expire.
+
+**Supported Providers**:
+- Claude (Anthropic)
+- OpenAI
+- Gemini (Google)
+- Mistral
+- Groq
+- DeepSeek
+- And many more
+
+**Setup**:
+```json
+{
+ "type": "api_key",
+ "token": "your-api-key-here",
+ "priority": 1
+}
+```
+
+**Priority**: Lower number = higher priority. Used when multiple credentials exist for the same provider.
+
+### OAuth 2.0 Device Flow
+
+**Best for**: Providers requiring user consent with token refresh capability.
+
+**Supported Providers**:
+- GitHub Copilot
+- Kiro (AWS CodeWhisperer)
+
+**Setup**: Use web UI - automatic handling of device code, user authorization, and token storage.
+
+**How it Works**:
+1. System requests a device code from provider
+2. You're shown a user code and verification URL
+3. Visit URL, enter code, authorize
+4. System polls for token in background
+5. Token stored and automatically refreshed
+
+**Example: GitHub Copilot**:
+```bash
+# Visit web UI
+open http://localhost:8317/v0/oauth/copilot
+
+# Enter your GitHub credentials
+# Authorize the application
+# Done! Token is stored and managed automatically
+```
+
+### Custom Provider Authentication
+
+**Best for**: Proprietary providers with custom auth flows.
+
+**Setup**: Implement custom auth flow in embedded library (see DEV.md).
+
+## Quota Management
+
+### Understanding Quotas
+
+Track usage per credential:
+
+```json
+{
+ "type": "api_key",
+ "token": "sk-ant-xxxxx",
+ "quota": {
+ "limit": 1000000,
+ "used": 50000,
+ "remaining": 950000
+ }
+}
+```
+
+**Automatic Quota Tracking**:
+- Request tokens are deducted from quota after each request
+- Multiple credentials are load-balanced based on remaining quota
+- Automatic rotation when quota is exhausted
+
+### Setting Quotas
+
+```bash
+# Update quota via API
+curl -X PUT http://localhost:8317/v0/management/auths/claude/quota \
+ -H "Content-Type: application/json" \
+ -d '{
+ "limit": 1000000
+ }'
+```
+
+### Quota Reset
+
+Quotas reset automatically based on provider billing cycles (configurable in `config.yaml`):
+
+```yaml
+auth:
+ quota:
+ reset_schedule:
+ claude: "monthly"
+ openai: "monthly"
+ gemini: "daily"
+```
+
+## Automatic Token Refresh
+
+### How It Works
+
+The refresh worker runs every 5 minutes and:
+1. Checks all credentials for expiration
+2. Refreshes tokens expiring within 10 minutes
+3. Updates stored credentials
+4. Notifies applications of refresh (no downtime)
+
+### Configuration
+
+```yaml
+auth:
+ refresh:
+ enabled: true
+ check_interval: "5m"
+ refresh_lead_time: "10m"
+```
+
+### Monitoring Refresh
+
+```bash
+# Check refresh status
+curl http://localhost:8317/v0/management/auths/refresh/status
+```
+
+Response:
+```json
+{
+ "last_check": "2026-02-19T23:00:00Z",
+ "next_check": "2026-02-19T23:05:00Z",
+ "credentials_checked": 5,
+ "refreshed": 1,
+ "failed": 0
+}
+```
+
+## Multi-Credential Management
+
+### Adding Multiple Credentials
+
+```bash
+# First Claude key
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-key1",
+ "priority": 1
+ }'
+
+# Second Claude key
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-key2",
+ "priority": 2
+ }'
+```
+
+### Load Balancing Strategies
+
+**Round-Robin**: Rotate through credentials evenly
+```yaml
+auth:
+ selection_strategy: "round_robin"
+```
+
+**Quota-Aware**: Use credential with most remaining quota
+```yaml
+auth:
+ selection_strategy: "quota_aware"
+```
+
+**Priority-Based**: Use highest priority first
+```yaml
+auth:
+ selection_strategy: "priority"
+```
+
+### Monitoring Credentials
+
+```bash
+# List all credentials
+curl http://localhost:8317/v0/management/auths
+```
+
+Response:
+```json
+{
+ "auths": [
+ {
+ "provider": "claude",
+ "type": "api_key",
+ "priority": 1,
+ "quota": {
+ "limit": 1000000,
+ "used": 50000,
+ "remaining": 950000
+ },
+ "status": "active"
+ },
+ {
+ "provider": "claude",
+ "type": "api_key",
+ "priority": 2,
+ "quota": {
+ "limit": 1000000,
+ "used": 30000,
+ "remaining": 970000
+ },
+ "status": "active"
+ }
+ ]
+}
+```
+
+## Credential Rotation
+
+### Automatic Rotation
+
+When quota is exhausted or token expires:
+1. System selects next available credential
+2. Notifications sent (configured)
+3. Load continues seamlessly
+
+### Manual Rotation
+
+```bash
+# Remove exhausted credential
+curl -X DELETE http://localhost:8317/v0/management/auths/claude?id=sk-ant-key1
+
+# Add new credential
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-key3",
+ "priority": 1
+ }'
+```
+
+## Troubleshooting
+
+### Token Not Refreshing
+
+**Problem**: Token expired but not refreshed
+
+**Solutions**:
+1. Check refresh worker is enabled in config
+2. Verify refresh token exists (OAuth only)
+3. Check logs: `tail -f logs/auth.log`
+4. Manual refresh: `POST /v0/management/auths/{provider}/refresh`
+
+### Authentication Failed
+
+**Problem**: 401 errors from provider
+
+**Solutions**:
+1. Verify token is correct
+2. Check token hasn't expired
+3. Verify provider is enabled in config
+4. Test token with provider's API directly
+
+### Quota Exhausted
+
+**Problem**: Requests failing due to quota
+
+**Solutions**:
+1. Add additional credentials for provider
+2. Check quota reset schedule
+3. Monitor usage: `GET /v0/management/auths`
+4. Adjust selection strategy
+
+### OAuth Flow Stuck
+
+**Problem**: Device flow not completing
+
+**Solutions**:
+1. Ensure you visited the verification URL
+2. Check you entered the correct user code
+3. Verify provider authorization wasn't denied
+4. Check browser console for errors
+5. Retry: refresh the auth page
+
+### Credential Not Found
+
+**Problem**: "No credentials for provider X" error
+
+**Solutions**:
+1. Add credential for provider
+2. Check credential file exists in `auths/`
+3. Verify file is valid JSON
+4. Check provider is enabled in config
+
+## Best Practices
+
+### Security
+
+1. **Never commit credentials** to version control
+2. **Use file permissions**: `chmod 600 auths/*.json`
+3. **Enable encryption** for sensitive environments
+4. **Rotate credentials** regularly
+5. **Use different credentials** for dev/prod
+
+### Performance
+
+1. **Use multiple credentials** for high-volume providers
+2. **Enable quota-aware selection** for load balancing
+3. **Monitor refresh logs** for issues
+4. **Set appropriate priorities** for credential routing
+
+### Monitoring
+
+1. **Check auth metrics** regularly
+2. **Set up alerts** for quota exhaustion
+3. **Monitor refresh failures**
+4. **Review credential usage** patterns
+
+## Advanced: Encryption
+
+Enable credential encryption:
+
+```yaml
+auth:
+ encryption:
+ enabled: true
+ key: "YOUR_32_BYTE_ENCRYPTION_KEY_HERE"
+```
+
+Generate encryption key:
+```bash
+openssl rand -base64 32
+```
+
+## API Reference
+
+### Auth Management
+
+**List All Auths**
+```http
+GET /v0/management/auths
+```
+
+**Get Auth for Provider**
+```http
+GET /v0/management/auths/{provider}
+```
+
+**Add Auth**
+```http
+POST /v0/management/auths
+Content-Type: application/json
+
+{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-xxxxx",
+ "priority": 1
+}
+```
+
+**Update Auth**
+```http
+PUT /v0/management/auths/{provider}
+Content-Type: application/json
+
+{
+ "token": "sk-ant-new-token",
+ "priority": 2
+}
+```
+
+**Delete Auth**
+```http
+DELETE /v0/management/auths/{provider}?id=credential-id
+```
+
+**Refresh Auth**
+```http
+POST /v0/management/auths/{provider}/refresh
+```
+
+**Get Quota**
+```http
+GET /v0/management/auths/{provider}/quota
+```
+
+**Update Quota**
+```http
+PUT /v0/management/auths/{provider}/quota
+Content-Type: application/json
+
+{
+ "limit": 1000000
+}
+```
+
+## Next Steps
+
+- See [DEV.md](./DEV.md) for implementing custom auth flows
+- See [../security/](../security/) for security features
+- See [../operations/](../operations/) for operational guidance
+
+
+---
diff --git a/docs/fragemented/features/index.md b/docs/fragemented/features/index.md
new file mode 100644
index 0000000000..f9abf67266
--- /dev/null
+++ b/docs/fragemented/features/index.md
@@ -0,0 +1,29 @@
+# Feature Guides
+
+Feature-level docs are split by audience and detail level.
+
+## Architecture
+
+- [User Guide](./architecture/USER.md)
+- [Technical Spec](./architecture/SPEC.md)
+- [Developer Guide](./architecture/DEV.md)
+
+## Authentication
+
+- [User Guide](./auth/USER.md)
+- [Technical Spec](./auth/SPEC.md)
+
+## Security
+
+- [User Guide](./security/USER.md)
+- [Technical Spec](./security/SPEC.md)
+
+## Operations
+
+- [User Guide](./operations/USER.md)
+- [Technical Spec](./operations/SPEC.md)
+
+## Providers
+
+- [User Guide](./providers/USER.md)
+- [Technical Spec](./providers/SPEC.md)
diff --git a/docs/fragemented/features/operations/SPEC.md b/docs/fragemented/features/operations/SPEC.md
new file mode 100644
index 0000000000..d601442e27
--- /dev/null
+++ b/docs/fragemented/features/operations/SPEC.md
@@ -0,0 +1,817 @@
+# Technical Specification: High-Scale Operations
+
+## Overview
+
+**cliproxyapi++** is designed for high-scale production environments with intelligent operations features: automated cooldown, load balancing, health checking, and comprehensive observability.
+
+## Operations Architecture
+
+### Core Components
+
+```
+Operations Layer
+├── Intelligent Cooldown System
+│ ├── Rate Limit Detection
+│ ├── Provider-Specific Cooldown
+│ ├── Automatic Recovery
+│ └── Load Redistribution
+├── Load Balancing
+│ ├── Round-Robin Strategy
+│ ├── Quota-Aware Strategy
+│ ├── Latency-Based Strategy
+│ └── Cost-Based Strategy
+├── Health Monitoring
+│ ├── Provider Health Checks
+│ ├── Dependency Health Checks
+│ ├── Service Health Checks
+│ └── Self-Healing
+└── Observability
+ ├── Metrics Collection
+ ├── Distributed Tracing
+ ├── Structured Logging
+ └── Alerting
+```
+
+## Intelligent Cooldown System
+
+### Rate Limit Detection
+
+**Purpose**: Automatically detect when providers are rate-limited and temporarily pause requests.
+
+**Implementation**:
+```go
+type RateLimitDetector struct {
+ mu sync.RWMutex
+ providerStatus map[string]ProviderStatus
+ detectionWindow time.Duration
+ threshold int
+}
+
+type ProviderStatus struct {
+ InCooldown bool
+ CooldownUntil time.Time
+ RecentErrors []time.Time
+ RateLimitCount int
+}
+
+func (d *RateLimitDetector) RecordError(provider string, statusCode int) {
+ d.mu.Lock()
+ defer d.mu.Unlock()
+
+ status := d.providerStatus[provider]
+
+ // Check for rate limit (429)
+ if statusCode == 429 {
+ status.RateLimitCount++
+ status.RecentErrors = append(status.RecentErrors, time.Now())
+ }
+
+ // Clean old errors
+ cutoff := time.Now().Add(-d.detectionWindow)
+ var recent []time.Time
+ for _, errTime := range status.RecentErrors {
+ if errTime.After(cutoff) {
+ recent = append(recent, errTime)
+ }
+ }
+ status.RecentErrors = recent
+
+ // Trigger cooldown if threshold exceeded
+ if status.RateLimitCount >= d.threshold {
+ status.InCooldown = true
+ status.CooldownUntil = time.Now().Add(5 * time.Minute)
+ status.RateLimitCount = 0
+ }
+
+ d.providerStatus[provider] = status
+}
+```
+
+### Cooldown Duration
+
+**Provider-specific cooldown periods**:
+```yaml
+providers:
+ claude:
+ cooldown:
+ enabled: true
+ default_duration: "5m"
+ rate_limit_duration: "10m"
+ error_duration: "2m"
+ openai:
+ cooldown:
+ enabled: true
+ default_duration: "3m"
+ rate_limit_duration: "5m"
+ error_duration: "1m"
+```
+
+### Automatic Recovery
+
+**Recovery mechanisms**:
+```go
+type CooldownRecovery struct {
+ detector *RateLimitDetector
+ checker *HealthChecker
+}
+
+func (r *CooldownRecovery) Run(ctx context.Context) {
+ ticker := time.NewTicker(30 * time.Second)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-ticker.C:
+ r.attemptRecovery()
+ }
+ }
+}
+
+func (r *CooldownRecovery) attemptRecovery() {
+ for provider, status := range r.detector.providerStatus {
+ if status.InCooldown && time.Now().After(status.CooldownUntil) {
+ // Try health check
+ if err := r.checker.Check(provider); err == nil {
+ // Recovery successful
+ r.detector.ExitCooldown(provider)
+ log.Infof("Provider %s recovered from cooldown", provider)
+ }
+ }
+ }
+}
+```
+
+### Load Redistribution
+
+**Redistribute requests away from cooldown providers**:
+```go
+type LoadRedistributor struct {
+ providerRegistry map[string]ProviderExecutor
+ cooldownDetector *RateLimitDetector
+}
+
+func (l *LoadRedistributor) SelectProvider(providers []string) (string, error) {
+ // Filter out providers in cooldown
+ available := []string{}
+ for _, provider := range providers {
+ if !l.cooldownDetector.IsInCooldown(provider) {
+ available = append(available, provider)
+ }
+ }
+
+ if len(available) == 0 {
+ return "", fmt.Errorf("all providers in cooldown")
+ }
+
+ // Select from available providers
+ return l.selectFromAvailable(available)
+}
+```
+
+## Load Balancing Strategies
+
+### Strategy Interface
+
+```go
+type LoadBalancingStrategy interface {
+ Select(providers []string, metrics *ProviderMetrics) (string, error)
+ Name() string
+}
+```
+
+### Round-Robin Strategy
+
+```go
+type RoundRobinStrategy struct {
+ counters map[string]int
+ mu sync.Mutex
+}
+
+func (s *RoundRobinStrategy) Select(providers []string, metrics *ProviderMetrics) (string, error) {
+ s.mu.Lock()
+ defer s.mu.Unlock()
+
+ if len(providers) == 0 {
+ return "", fmt.Errorf("no providers available")
+ }
+
+ // Get counter for first provider (all share counter)
+ counter := s.counters["roundrobin"]
+ selected := providers[counter%len(providers)]
+
+ s.counters["roundrobin"] = counter + 1
+
+ return selected, nil
+}
+```
+
+### Quota-Aware Strategy
+
+```go
+type QuotaAwareStrategy struct{}
+
+func (s *QuotaAwareStrategy) Select(providers []string, metrics *ProviderMetrics) (string, error) {
+ var bestProvider string
+ var bestQuota float64
+
+ for _, provider := range providers {
+ quota := metrics.GetQuotaRemaining(provider)
+ if quota > bestQuota {
+ bestQuota = quota
+ bestProvider = provider
+ }
+ }
+
+ if bestProvider == "" {
+ return "", fmt.Errorf("no providers available")
+ }
+
+ return bestProvider, nil
+}
+```
+
+### Latency-Based Strategy
+
+```go
+type LatencyStrategy struct {
+ window time.Duration
+}
+
+func (s *LatencyStrategy) Select(providers []string, metrics *ProviderMetrics) (string, error) {
+ var bestProvider string
+ var bestLatency time.Duration
+
+ for _, provider := range providers {
+ latency := metrics.GetAverageLatency(provider, s.window)
+ if bestProvider == "" || latency < bestLatency {
+ bestLatency = latency
+ bestProvider = provider
+ }
+ }
+
+ if bestProvider == "" {
+ return "", fmt.Errorf("no providers available")
+ }
+
+ return bestProvider, nil
+}
+```
+
+### Cost-Based Strategy
+
+```go
+type CostStrategy struct{}
+
+func (s *CostStrategy) Select(providers []string, metrics *ProviderMetrics) (string, error) {
+ var bestProvider string
+ var bestCost float64
+
+ for _, provider := range providers {
+ cost := metrics.GetAverageCost(provider)
+ if bestProvider == "" || cost < bestCost {
+ bestCost = cost
+ bestProvider = provider
+ }
+ }
+
+ if bestProvider == "" {
+ return "", fmt.Errorf("no providers available")
+ }
+
+ return bestProvider, nil
+}
+```
+
+## Health Monitoring
+
+### Provider Health Checks
+
+```go
+type ProviderHealthChecker struct {
+ executors map[string]ProviderExecutor
+ interval time.Duration
+ timeout time.Duration
+}
+
+func (h *ProviderHealthChecker) Check(provider string) error {
+ executor, ok := h.executors[provider]
+ if !ok {
+ return fmt.Errorf("provider not found: %s", provider)
+ }
+
+ ctx, cancel := context.WithTimeout(context.Background(), h.timeout)
+ defer cancel()
+
+ return executor.HealthCheck(ctx, nil)
+}
+
+func (h *ProviderHealthChecker) Run(ctx context.Context) {
+ ticker := time.NewTicker(h.interval)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-ticker.C:
+ h.checkAllProviders()
+ }
+ }
+}
+
+func (h *ProviderHealthChecker) checkAllProviders() {
+ for provider := range h.executors {
+ if err := h.Check(provider); err != nil {
+ log.Warnf("Provider %s health check failed: %v", provider, err)
+ } else {
+ log.Debugf("Provider %s healthy", provider)
+ }
+ }
+}
+```
+
+### Health Status
+
+```go
+type HealthStatus struct {
+ Provider string `json:"provider"`
+ Status string `json:"status"`
+ LastCheck time.Time `json:"last_check"`
+ LastSuccess time.Time `json:"last_success"`
+ ErrorCount int `json:"error_count"`
+}
+
+type HealthStatus struct {
+ Providers map[string]ProviderHealthStatus `json:"providers"`
+ Overall string `json:"overall"`
+ Timestamp time.Time `json:"timestamp"`
+}
+```
+
+### Self-Healing
+
+```go
+type SelfHealing struct {
+ healthChecker *ProviderHealthChecker
+ strategy LoadBalancingStrategy
+}
+
+func (s *SelfHealing) Run(ctx context.Context) {
+ ticker := time.NewTicker(1 * time.Minute)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-ticker.C:
+ s.heal()
+ }
+ }
+}
+
+func (s *SelfHealing) heal() {
+ status := s.healthChecker.GetStatus()
+
+ for provider, providerStatus := range status.Providers {
+ if providerStatus.Status == "unhealthy" {
+ log.Warnf("Provider %s unhealthy, attempting recovery", provider)
+
+ // Try recovery
+ if err := s.healthChecker.Check(provider); err == nil {
+ log.Infof("Provider %s recovered", provider)
+ } else {
+ log.Errorf("Provider %s recovery failed: %v", provider, err)
+ }
+ }
+ }
+}
+```
+
+## Observability
+
+### Metrics Collection
+
+**Metrics types**:
+- Counter: Total requests, errors, tokens
+- Gauge: Current connections, queue size
+- Histogram: Request latency, response size
+- Summary: Response time percentiles
+
+```go
+type MetricsCollector struct {
+ registry prometheus.Registry
+
+ // Counters
+ requestCount *prometheus.CounterVec
+ errorCount *prometheus.CounterVec
+ tokenCount *prometheus.CounterVec
+
+ // Gauges
+ activeRequests *prometheus.GaugeVec
+ queueSize prometheus.Gauge
+
+ // Histograms
+ requestLatency *prometheus.HistogramVec
+ responseSize *prometheus.HistogramVec
+}
+
+func NewMetricsCollector() *MetricsCollector {
+ registry := prometheus.NewRegistry()
+
+ c := &MetricsCollector{
+ registry: registry,
+ requestCount: prometheus.NewCounterVec(
+ prometheus.CounterOpts{
+ Name: "cliproxy_requests_total",
+ Help: "Total number of requests",
+ },
+ []string{"provider", "model", "status"},
+ ),
+ errorCount: prometheus.NewCounterVec(
+ prometheus.CounterOpts{
+ Name: "cliproxy_errors_total",
+ Help: "Total number of errors",
+ },
+ []string{"provider", "error_type"},
+ ),
+ tokenCount: prometheus.NewCounterVec(
+ prometheus.CounterOpts{
+ Name: "cliproxy_tokens_total",
+ Help: "Total number of tokens processed",
+ },
+ []string{"provider", "model", "type"},
+ ),
+ }
+
+ registry.MustRegister(c.requestCount, c.errorCount, c.tokenCount)
+
+ return c
+}
+```
+
+### Distributed Tracing
+
+**OpenTelemetry integration**:
+```go
+import (
+ "go.opentelemetry.io/otel"
+ "go.opentelemetry.io/otel/exporters/jaeger"
+ "go.opentelemetry.io/otel/sdk/trace"
+)
+
+func InitTracing(serviceName string) error {
+ exporter, err := jaeger.New(jaeger.WithCollectorEndpoint(
+ jaeger.WithEndpoint("http://localhost:14268/api/traces"),
+ ))
+ if err != nil {
+ return err
+ }
+
+ tp := trace.NewTracerProvider(
+ trace.WithBatcher(exporter),
+ )
+
+ otel.SetTracerProvider(tp)
+
+ return nil
+}
+```
+
+**Trace requests**:
+```go
+func (h *Handler) HandleRequest(c *gin.Context) {
+ ctx := c.Request.Context()
+ span := trace.SpanFromContext(ctx)
+
+ span.SetAttributes(
+ attribute.String("provider", provider),
+ attribute.String("model", model),
+ )
+
+ // Process request
+ resp, err := h.executeRequest(ctx, req)
+
+ if err != nil {
+ span.RecordError(err)
+ span.SetStatus(codes.Error, err.Error())
+ } else {
+ span.SetStatus(codes.Ok, "success")
+ }
+}
+```
+
+### Structured Logging
+
+**Log levels**:
+- DEBUG: Detailed request/response data
+- INFO: General operations
+- WARN: Recoverable errors (rate limits, retries)
+- ERROR: Failed requests
+
+```go
+import "log/slog"
+
+type RequestLogger struct {
+ logger *slog.Logger
+}
+
+func (l *RequestLogger) LogRequest(req *openai.ChatCompletionRequest, resp *openai.ChatCompletionResponse, err error) {
+ attrs := []slog.Attr{
+ slog.String("provider", req.Provider),
+ slog.String("model", req.Model),
+ slog.Int("message_count", len(req.Messages)),
+ slog.Duration("latency", time.Since(req.StartTime)),
+ }
+
+ if resp != nil {
+ attrs = append(attrs,
+ slog.Int("prompt_tokens", resp.Usage.PromptTokens),
+ slog.Int("completion_tokens", resp.Usage.CompletionTokens),
+ )
+ }
+
+ if err != nil {
+ l.logger.LogAttrs(context.Background(), slog.LevelError, "request_failed", attrs...)
+ } else {
+ l.logger.LogAttrs(context.Background(), slog.LevelInfo, "request_success", attrs...)
+ }
+}
+```
+
+### Alerting
+
+**Alert conditions**:
+```yaml
+alerts:
+ - name: High error rate
+ condition: error_rate > 0.05
+ duration: 5m
+ severity: warning
+ action: notify_slack
+
+ - name: Provider down
+ condition: provider_health == "unhealthy"
+ duration: 2m
+ severity: critical
+ action: notify_pagerduty
+
+ - name: Rate limit hit
+ condition: rate_limit_count > 10
+ duration: 1m
+ severity: warning
+ action: notify_slack
+
+ - name: High latency
+ condition: p95_latency > 5s
+ duration: 10m
+ severity: warning
+ action: notify_email
+```
+
+## Performance Optimization
+
+### Connection Pooling
+
+```go
+type ConnectionPool struct {
+ clients map[string]*http.Client
+ mu sync.RWMutex
+}
+
+func NewConnectionPool() *ConnectionPool {
+ return &ConnectionPool{
+ clients: make(map[string]*http.Client),
+ }
+}
+
+func (p *ConnectionPool) GetClient(provider string) *http.Client {
+ p.mu.RLock()
+ client, ok := p.clients[provider]
+ p.mu.RUnlock()
+
+ if ok {
+ return client
+ }
+
+ p.mu.Lock()
+ defer p.mu.Unlock()
+
+ // Create new client
+ client = &http.Client{
+ Transport: &http.Transport{
+ MaxIdleConns: 100,
+ MaxIdleConnsPerHost: 10,
+ IdleConnTimeout: 90 * time.Second,
+ },
+ Timeout: 60 * time.Second,
+ }
+
+ p.clients[provider] = client
+ return client
+}
+```
+
+### Request Batching
+
+**Batch multiple requests**:
+```go
+type RequestBatcher struct {
+ batch []*openai.ChatCompletionRequest
+ maxBatch int
+ timeout time.Duration
+ resultChan chan *BatchResult
+}
+
+func (b *RequestBatcher) Add(req *openai.ChatCompletionRequest) {
+ b.batch = append(b.batch, req)
+
+ if len(b.batch) >= b.maxBatch {
+ b.flush()
+ }
+}
+
+func (b *RequestBatcher) flush() {
+ if len(b.batch) == 0 {
+ return
+ }
+
+ // Execute batch
+ results := b.executeBatch(b.batch)
+
+ // Send results
+ for _, result := range results {
+ b.resultChan <- result
+ }
+
+ b.batch = nil
+}
+```
+
+### Response Caching
+
+**Cache responses**:
+```go
+type ResponseCache struct {
+ cache *lru.Cache
+ ttl time.Duration
+}
+
+func NewResponseCache(size int, ttl time.Duration) *ResponseCache {
+ return &ResponseCache{
+ cache: lru.New(size),
+ ttl: ttl,
+ }
+}
+
+func (c *ResponseCache) Get(key string) (*openai.ChatCompletionResponse, bool) {
+ item, ok := c.cache.Get(key)
+ if !ok {
+ return nil, false
+ }
+
+ cached := item.(*CacheEntry)
+ if time.Since(cached.Timestamp) > c.ttl {
+ c.cache.Remove(key)
+ return nil, false
+ }
+
+ return cached.Response, true
+}
+
+func (c *ResponseCache) Set(key string, resp *openai.ChatCompletionResponse) {
+ c.cache.Add(key, &CacheEntry{
+ Response: resp,
+ Timestamp: time.Now(),
+ })
+}
+```
+
+## Disaster Recovery
+
+### Backup and Restore
+
+**Backup configuration**:
+```bash
+#!/bin/bash
+# backup.sh
+
+BACKUP_DIR="/backups/cliproxy"
+TIMESTAMP=$(date +%Y%m%d_%H%M%S)
+
+# Backup config
+cp config.yaml "$BACKUP_DIR/config_$TIMESTAMP.yaml"
+
+# Backup auths
+tar -czf "$BACKUP_DIR/auths_$TIMESTAMP.tar.gz" auths/
+
+# Backup logs
+tar -czf "$BACKUP_DIR/logs_$TIMESTAMP.tar.gz" logs/
+
+echo "Backup complete: $BACKUP_DIR/cliproxy_$TIMESTAMP"
+```
+
+**Restore configuration**:
+```bash
+#!/bin/bash
+# restore.sh
+
+BACKUP_FILE="$1"
+
+# Extract config
+tar -xzf "$BACKUP_FILE" --wildcards "config_*.yaml"
+
+# Extract auths
+tar -xzf "$BACKUP_FILE" --wildcards "auths_*.tar.gz"
+
+# Restart service
+docker compose restart
+```
+
+### Failover
+
+**Active-passive failover**:
+```yaml
+server:
+ failover:
+ enabled: true
+ mode: "active_passive"
+ health_check_interval: "10s"
+ failover_timeout: "30s"
+ backup_url: "http://backup-proxy:8317"
+```
+
+**Active-active failover**:
+```yaml
+server:
+ failover:
+ enabled: true
+ mode: "active_active"
+ load_balancing: "consistent_hash"
+ health_check_interval: "10s"
+ peers:
+ - "http://proxy1:8317"
+ - "http://proxy2:8317"
+ - "http://proxy3:8317"
+```
+
+## API Reference
+
+### Operations Endpoints
+
+**Health Check**
+```http
+GET /health
+```
+
+**Metrics**
+```http
+GET /metrics
+```
+
+**Provider Status**
+```http
+GET /v0/operations/providers/status
+```
+
+Response:
+```json
+{
+ "providers": {
+ "claude": {
+ "status": "healthy",
+ "in_cooldown": false,
+ "last_check": "2026-02-19T23:00:00Z",
+ "requests_last_minute": 100,
+ "errors_last_minute": 2,
+ "average_latency_ms": 500
+ }
+ }
+}
+```
+
+**Cooldown Status**
+```http
+GET /v0/operations/cooldown/status
+```
+
+Response:
+```json
+{
+ "providers_in_cooldown": ["claude"],
+ "cooldown_periods": {
+ "claude": {
+ "started_at": "2026-02-19T22:50:00Z",
+ "ends_at": "2026-02-19T22:55:00Z",
+ "reason": "rate_limit"
+ }
+ }
+}
+```
+
+**Force Recovery**
+```http
+POST /v0/operations/providers/{provider}/recover
+```
diff --git a/docs/fragemented/features/operations/USER.md b/docs/fragemented/features/operations/USER.md
new file mode 100644
index 0000000000..9443aa1981
--- /dev/null
+++ b/docs/fragemented/features/operations/USER.md
@@ -0,0 +1,747 @@
+# User Guide: High-Scale Operations
+
+## Understanding Operations in cliproxyapi++
+
+cliproxyapi++ is built for production environments with intelligent operations that automatically handle rate limits, load balance requests, monitor health, and recover from failures. This guide explains how to configure and use these features.
+
+## Quick Start: Production Deployment
+
+### docker-compose.yml (Production)
+
+```yaml
+services:
+ cliproxy:
+ image: KooshaPari/cliproxyapi-plusplus:latest
+ container_name: cliproxyapi++
+
+ # Security
+ security_opt:
+ - no-new-privileges:true
+ read_only: true
+ user: "65534:65534"
+
+ # Resources
+ deploy:
+ resources:
+ limits:
+ cpus: '4'
+ memory: 2G
+ reservations:
+ cpus: '1'
+ memory: 512M
+
+ # Health check
+ healthcheck:
+ test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8317/health"]
+ interval: 30s
+ timeout: 10s
+ retries: 3
+ start_period: 40s
+
+ # Ports
+ ports:
+ - "8317:8317"
+ - "9090:9090" # Metrics
+
+ # Volumes
+ volumes:
+ - ./config.yaml:/config/config.yaml:ro
+ - ./auths:/auths:rw
+ - ./logs:/logs:rw
+
+ # Restart
+ restart: unless-stopped
+```
+
+## Intelligent Cooldown
+
+### What is Cooldown?
+
+When a provider returns rate limit errors (429), cliproxyapi++ automatically pauses requests to that provider for a configurable cooldown period. This prevents your IP from being flagged and allows the provider to recover.
+
+### Configure Cooldown
+
+**config.yaml**:
+```yaml
+server:
+ operations:
+ cooldown:
+ enabled: true
+ detection_window: "1m"
+ error_threshold: 5 # 5 errors in 1 minute triggers cooldown
+
+providers:
+ claude:
+ cooldown:
+ enabled: true
+ default_duration: "5m"
+ rate_limit_duration: "10m" # Longer cooldown for 429
+ error_duration: "2m" # Shorter for other errors
+
+ openai:
+ cooldown:
+ enabled: true
+ default_duration: "3m"
+ rate_limit_duration: "5m"
+ error_duration: "1m"
+```
+
+### Monitor Cooldown Status
+
+```bash
+# Check cooldown status
+curl http://localhost:8317/v0/operations/cooldown/status
+```
+
+Response:
+```json
+{
+ "providers_in_cooldown": ["claude"],
+ "cooldown_periods": {
+ "claude": {
+ "started_at": "2026-02-19T22:50:00Z",
+ "ends_at": "2026-02-19T23:00:00Z",
+ "remaining_seconds": 300,
+ "reason": "rate_limit"
+ }
+ }
+}
+```
+
+### Manual Cooldown Control
+
+**Force cooldown**:
+```bash
+curl -X POST http://localhost:8317/v0/operations/providers/claude/cooldown \
+ -H "Content-Type: application/json" \
+ -d '{
+ "duration": "10m",
+ "reason": "manual"
+ }'
+```
+
+**Force recovery**:
+```bash
+curl -X POST http://localhost:8317/v0/operations/providers/claude/recover
+```
+
+## Load Balancing
+
+### Choose a Strategy
+
+**config.yaml**:
+```yaml
+server:
+ operations:
+ load_balancing:
+ strategy: "round_robin" # Options: round_robin, quota_aware, latency, cost
+```
+
+**Strategies**:
+- `round_robin`: Rotate evenly through providers (default)
+- `quota_aware`: Use provider with most remaining quota
+- `latency`: Use provider with lowest recent latency
+- `cost`: Use provider with lowest average cost
+
+### Round-Robin (Default)
+
+```yaml
+server:
+ operations:
+ load_balancing:
+ strategy: "round_robin"
+```
+
+**Best for**: Simple deployments with similar providers.
+
+### Quota-Aware
+
+```yaml
+server:
+ operations:
+ load_balancing:
+ strategy: "quota_aware"
+
+providers:
+ claude:
+ quota:
+ limit: 1000000
+ reset: "monthly"
+
+ openai:
+ quota:
+ limit: 2000000
+ reset: "monthly"
+```
+
+**Best for**: Managing API quota limits across multiple providers.
+
+### Latency-Based
+
+```yaml
+server:
+ operations:
+ load_balancing:
+ strategy: "latency"
+ latency_window: "5m" # Average over last 5 minutes
+```
+
+**Best for**: Performance-critical applications.
+
+### Cost-Based
+
+```yaml
+server:
+ operations:
+ load_balancing:
+ strategy: "cost"
+
+providers:
+ claude:
+ cost_per_1k_tokens:
+ input: 0.003
+ output: 0.015
+
+ openai:
+ cost_per_1k_tokens:
+ input: 0.005
+ output: 0.015
+```
+
+**Best for**: Cost optimization.
+
+### Provider Priority
+
+```yaml
+providers:
+ claude:
+ priority: 1 # Higher priority
+ gemini:
+ priority: 2
+ openai:
+ priority: 3
+```
+
+Higher priority providers are preferred (lower number = higher priority).
+
+## Health Monitoring
+
+### Configure Health Checks
+
+**config.yaml**:
+```yaml
+server:
+ operations:
+ health_check:
+ enabled: true
+ interval: "30s"
+ timeout: "10s"
+ unhealthy_threshold: 3 # 3 failures = unhealthy
+ healthy_threshold: 2 # 2 successes = healthy
+
+providers:
+ claude:
+ health_check:
+ enabled: true
+ endpoint: "https://api.anthropic.com/v1/messages"
+ method: "GET"
+```
+
+### Monitor Provider Health
+
+```bash
+# Check all providers
+curl http://localhost:8317/v0/operations/providers/status
+```
+
+Response:
+```json
+{
+ "providers": {
+ "claude": {
+ "status": "healthy",
+ "in_cooldown": false,
+ "last_check": "2026-02-19T23:00:00Z",
+ "uptime_percent": 99.9,
+ "requests_last_minute": 100,
+ "errors_last_minute": 0,
+ "average_latency_ms": 450
+ },
+ "openai": {
+ "status": "unhealthy",
+ "in_cooldown": true,
+ "last_check": "2026-02-19T23:00:00Z",
+ "uptime_percent": 95.0,
+ "requests_last_minute": 0,
+ "errors_last_minute": 10,
+ "average_latency_ms": 0
+ }
+ }
+}
+```
+
+### Self-Healing
+
+Enable automatic recovery of unhealthy providers:
+
+```yaml
+server:
+ operations:
+ self_healing:
+ enabled: true
+ check_interval: "1m"
+ max_attempts: 3
+ backoff_duration: "30s"
+```
+
+## Observability
+
+### Enable Metrics
+
+**config.yaml**:
+```yaml
+metrics:
+ enabled: true
+ port: 9090
+ path: "/metrics"
+```
+
+**View metrics**:
+```bash
+curl http://localhost:9090/metrics
+```
+
+**Key metrics**:
+```
+# Request count
+cliproxy_requests_total{provider="claude",model="claude-3-5-sonnet",status="success"} 1000
+
+# Error count
+cliproxy_errors_total{provider="claude",error_type="rate_limit"} 5
+
+# Token usage
+cliproxy_tokens_total{provider="claude",model="claude-3-5-sonnet",type="input"} 50000
+cliproxy_tokens_total{provider="claude",model="claude-3-5-sonnet",type="output"} 25000
+
+# Request latency
+cliproxy_request_duration_seconds_bucket{provider="claude",le="0.5"} 800
+cliproxy_request_duration_seconds_bucket{provider="claude",le="1"} 950
+cliproxy_request_duration_seconds_bucket{provider="claude",le="+Inf"} 1000
+```
+
+### Prometheus Integration
+
+**prometheus.yml**:
+```yaml
+scrape_configs:
+ - job_name: 'cliproxyapi'
+ static_configs:
+ - targets: ['localhost:9090']
+ scrape_interval: 15s
+```
+
+### Grafana Dashboards
+
+Import the cliproxyapi++ dashboard for:
+- Request rate by provider
+- Error rate tracking
+- P95/P99 latency
+- Token usage over time
+- Cooldown events
+- Provider health status
+
+### Structured Logging
+
+**config.yaml**:
+```yaml
+logging:
+ level: "info" # debug, info, warn, error
+ format: "json"
+ output: "/logs/cliproxy.log"
+ rotation:
+ enabled: true
+ max_size: "100M"
+ max_age: "30d"
+ max_backups: 10
+```
+
+**View logs**:
+```bash
+# Follow logs
+tail -f logs/cliproxy.log
+
+# Filter for errors
+grep "level=error" logs/cliproxy.log
+
+# Pretty print JSON logs
+cat logs/cliproxy.log | jq '.'
+```
+
+**Log entry example**:
+```json
+{
+ "timestamp": "2026-02-19T23:00:00Z",
+ "level": "info",
+ "msg": "request_success",
+ "provider": "claude",
+ "model": "claude-3-5-sonnet",
+ "request_id": "req-123",
+ "latency_ms": 450,
+ "tokens": {
+ "input": 100,
+ "output": 50
+ }
+}
+```
+
+### Distributed Tracing (Optional)
+
+Enable OpenTelemetry tracing:
+
+```yaml
+tracing:
+ enabled: true
+ exporter: "jaeger" # Options: jaeger, zipkin, otlp
+ endpoint: "http://localhost:14268/api/traces"
+ service_name: "cliproxyapi++"
+ sample_rate: 0.1 # Sample 10% of traces
+```
+
+**View traces**:
+- Jaeger UI: http://localhost:1668
+- Zipkin UI: http://localhost:9411
+
+## Alerting
+
+### Configure Alerts
+
+**config.yaml**:
+```yaml
+alerts:
+ enabled: true
+ rules:
+ - name: High error rate
+ condition: error_rate > 0.05
+ duration: "5m"
+ severity: warning
+ notifications:
+ - slack
+ - email
+
+ - name: Provider down
+ condition: provider_health == "unhealthy"
+ duration: "2m"
+ severity: critical
+ notifications:
+ - pagerduty
+
+ - name: Rate limit hit
+ condition: rate_limit_count > 10
+ duration: "1m"
+ severity: warning
+ notifications:
+ - slack
+
+ - name: High latency
+ condition: p95_latency > 5s
+ duration: "10m"
+ severity: warning
+ notifications:
+ - email
+```
+
+### Notification Channels
+
+**Slack**:
+```yaml
+notifications:
+ slack:
+ enabled: true
+ webhook_url: "${SLACK_WEBHOOK_URL}"
+ channel: "#alerts"
+```
+
+**Email**:
+```yaml
+notifications:
+ email:
+ enabled: true
+ smtp_server: "smtp.example.com:587"
+ from: "alerts@example.com"
+ to: ["ops@example.com"]
+```
+
+**PagerDuty**:
+```yaml
+notifications:
+ pagerduty:
+ enabled: true
+ api_key: "${PAGERDUTY_API_KEY}"
+ service_key: "your-service-key"
+```
+
+## Performance Optimization
+
+### Connection Pooling
+
+Configure connection pools:
+
+```yaml
+server:
+ operations:
+ connection_pool:
+ max_idle_conns: 100
+ max_idle_conns_per_host: 10
+ idle_conn_timeout: "90s"
+```
+
+### Request Batching
+
+Enable batch processing:
+
+```yaml
+server:
+ operations:
+ batch_processing:
+ enabled: true
+ max_batch_size: 10
+ timeout: "100ms"
+```
+
+### Response Caching
+
+Cache responses for identical requests:
+
+```yaml
+server:
+ operations:
+ cache:
+ enabled: true
+ size: 1000 # Number of cached responses
+ ttl: "5m" # Time to live
+```
+
+## Disaster Recovery
+
+### Backup Configuration
+
+Automated backup script:
+
+```bash
+#!/bin/bash
+# backup.sh
+
+BACKUP_DIR="/backups/cliproxy"
+TIMESTAMP=$(date +%Y%m%d_%H%M%S)
+
+# Create backup directory
+mkdir -p "$BACKUP_DIR"
+
+# Backup config
+cp config.yaml "$BACKUP_DIR/config_$TIMESTAMP.yaml"
+
+# Backup auths
+tar -czf "$BACKUP_DIR/auths_$TIMESTAMP.tar.gz" auths/
+
+# Backup logs
+tar -czf "$BACKUP_DIR/logs_$TIMESTAMP.tar.gz" logs/
+
+# Remove old backups (keep last 30)
+find "$BACKUP_DIR" -name "*.tar.gz" -mtime +30 -delete
+
+echo "Backup complete: $BACKUP_DIR/cliproxy_$TIMESTAMP"
+```
+
+Schedule with cron:
+```bash
+# Run daily at 2 AM
+0 2 * * * /path/to/backup.sh
+```
+
+### Restore Configuration
+
+```bash
+#!/bin/bash
+# restore.sh
+
+BACKUP_FILE="$1"
+
+# Stop service
+docker compose down
+
+# Extract config
+tar -xzf "$BACKUP_FILE" --wildcards "config_*.yaml"
+
+# Extract auths
+tar -xzf "$BACKUP_FILE" --wildcards "auths_*.tar.gz"
+
+# Start service
+docker compose up -d
+```
+
+### Failover Configuration
+
+**Active-Passive**:
+```yaml
+server:
+ failover:
+ enabled: true
+ mode: "active_passive"
+ health_check_interval: "10s"
+ failover_timeout: "30s"
+ backup_url: "http://backup-proxy:8317"
+```
+
+**Active-Active**:
+```yaml
+server:
+ failover:
+ enabled: true
+ mode: "active_active"
+ load_balancing: "consistent_hash"
+ health_check_interval: "10s"
+ peers:
+ - "http://proxy1:8317"
+ - "http://proxy2:8317"
+ - "http://proxy3:8317"
+```
+
+## Troubleshooting
+
+### High Error Rate
+
+**Problem**: Error rate > 5%
+
+**Solutions**:
+1. Check provider status: `GET /v0/operations/providers/status`
+2. Review cooldown status: `GET /v0/operations/cooldown/status`
+3. Check logs for error patterns
+4. Verify credentials are valid
+5. Check provider status page for outages
+
+### Provider Always in Cooldown
+
+**Problem**: Provider stuck in cooldown
+
+**Solutions**:
+1. Manually recover: `POST /v0/operations/providers/{provider}/recover`
+2. Adjust cooldown thresholds
+3. Check rate limits from provider
+4. Reduce request rate
+5. Use multiple providers for load distribution
+
+### High Latency
+
+**Problem**: Requests taking > 5 seconds
+
+**Solutions**:
+1. Check connection pool settings
+2. Enable latency-based load balancing
+3. Check provider status for issues
+4. Review network connectivity
+5. Consider caching responses
+
+### Memory Usage High
+
+**Problem**: Container using > 2GB memory
+
+**Solutions**:
+1. Check connection pool size
+2. Limit cache size
+3. Reduce worker pool size
+4. Check for memory leaks in logs
+5. Restart container
+
+### Health Checks Failing
+
+**Problem**: Provider marked unhealthy
+
+**Solutions**:
+1. Check health check endpoint is correct
+2. Verify network connectivity to provider
+3. Check credentials are valid
+4. Review provider status page
+5. Adjust health check timeout
+
+## Best Practices
+
+### Deployment
+
+- [ ] Use docker-compose for easy management
+- [ ] Enable health checks
+- [ ] Set appropriate resource limits
+- [ ] Configure logging rotation
+- [ ] Enable metrics collection
+- [ ] Set up alerting
+
+### Monitoring
+
+- [ ] Monitor error rate (target < 1%)
+- [ ] Monitor P95 latency (target < 2s)
+- [ ] Monitor token usage
+- [ ] Track cooldown events
+- [ ] Review audit logs daily
+- [ ] Set up Grafana dashboards
+
+### Scaling
+
+- [ ] Use multiple providers for redundancy
+- [ ] Enable load balancing
+- [ ] Configure connection pooling
+- [ ] Set up active-active failover
+- [ ] Monitor resource usage
+- [ ] Scale horizontally as needed
+
+### Backup
+
+- [ ] Daily automated backups
+- [ ] Test restore procedure
+- [ ] Store backups off-site
+- [ ] Encrypt sensitive data
+- [ ] Document recovery process
+- [ ] Regular disaster recovery drills
+
+## API Reference
+
+### Operations Endpoints
+
+**Health Check**
+```http
+GET /health
+```
+
+**Metrics**
+```http
+GET /metrics
+```
+
+**Provider Status**
+```http
+GET /v0/operations/providers/status
+```
+
+**Cooldown Status**
+```http
+GET /v0/operations/cooldown/status
+```
+
+**Force Cooldown**
+```http
+POST /v0/operations/providers/{provider}/cooldown
+```
+
+**Force Recovery**
+```http
+POST /v0/operations/providers/{provider}/recover
+```
+
+**Load Balancing Status**
+```http
+GET /v0/operations/load_balancing/status
+```
+
+## Next Steps
+
+- See [SPEC.md](./SPEC.md) for technical operations details
+- See [../security/](../security/) for security operations
+- See [../../api/](../../api/) for API documentation
diff --git a/docs/fragemented/features/operations/index.md b/docs/fragemented/features/operations/index.md
new file mode 100644
index 0000000000..bc0a5bc0be
--- /dev/null
+++ b/docs/fragemented/features/operations/index.md
@@ -0,0 +1,9 @@
+# Consolidated Index
+
+## Files
+
+* `SPEC.md`
+* `USER.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/features/operations/merged.md b/docs/fragemented/features/operations/merged.md
new file mode 100644
index 0000000000..acfae774e0
--- /dev/null
+++ b/docs/fragemented/features/operations/merged.md
@@ -0,0 +1,1577 @@
+# Merged Fragmented Markdown
+
+## Source: features/operations/SPEC.md
+
+# Technical Specification: High-Scale Operations
+
+## Overview
+
+**cliproxyapi++** is designed for high-scale production environments with intelligent operations features: automated cooldown, load balancing, health checking, and comprehensive observability.
+
+## Operations Architecture
+
+### Core Components
+
+```
+Operations Layer
+├── Intelligent Cooldown System
+│ ├── Rate Limit Detection
+│ ├── Provider-Specific Cooldown
+│ ├── Automatic Recovery
+│ └── Load Redistribution
+├── Load Balancing
+│ ├── Round-Robin Strategy
+│ ├── Quota-Aware Strategy
+│ ├── Latency-Based Strategy
+│ └── Cost-Based Strategy
+├── Health Monitoring
+│ ├── Provider Health Checks
+│ ├── Dependency Health Checks
+│ ├── Service Health Checks
+│ └── Self-Healing
+└── Observability
+ ├── Metrics Collection
+ ├── Distributed Tracing
+ ├── Structured Logging
+ └── Alerting
+```
+
+## Intelligent Cooldown System
+
+### Rate Limit Detection
+
+**Purpose**: Automatically detect when providers are rate-limited and temporarily pause requests.
+
+**Implementation**:
+```go
+type RateLimitDetector struct {
+ mu sync.RWMutex
+ providerStatus map[string]ProviderStatus
+ detectionWindow time.Duration
+ threshold int
+}
+
+type ProviderStatus struct {
+ InCooldown bool
+ CooldownUntil time.Time
+ RecentErrors []time.Time
+ RateLimitCount int
+}
+
+func (d *RateLimitDetector) RecordError(provider string, statusCode int) {
+ d.mu.Lock()
+ defer d.mu.Unlock()
+
+ status := d.providerStatus[provider]
+
+ // Check for rate limit (429)
+ if statusCode == 429 {
+ status.RateLimitCount++
+ status.RecentErrors = append(status.RecentErrors, time.Now())
+ }
+
+ // Clean old errors
+ cutoff := time.Now().Add(-d.detectionWindow)
+ var recent []time.Time
+ for _, errTime := range status.RecentErrors {
+ if errTime.After(cutoff) {
+ recent = append(recent, errTime)
+ }
+ }
+ status.RecentErrors = recent
+
+ // Trigger cooldown if threshold exceeded
+ if status.RateLimitCount >= d.threshold {
+ status.InCooldown = true
+ status.CooldownUntil = time.Now().Add(5 * time.Minute)
+ status.RateLimitCount = 0
+ }
+
+ d.providerStatus[provider] = status
+}
+```
+
+### Cooldown Duration
+
+**Provider-specific cooldown periods**:
+```yaml
+providers:
+ claude:
+ cooldown:
+ enabled: true
+ default_duration: "5m"
+ rate_limit_duration: "10m"
+ error_duration: "2m"
+ openai:
+ cooldown:
+ enabled: true
+ default_duration: "3m"
+ rate_limit_duration: "5m"
+ error_duration: "1m"
+```
+
+### Automatic Recovery
+
+**Recovery mechanisms**:
+```go
+type CooldownRecovery struct {
+ detector *RateLimitDetector
+ checker *HealthChecker
+}
+
+func (r *CooldownRecovery) Run(ctx context.Context) {
+ ticker := time.NewTicker(30 * time.Second)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-ticker.C:
+ r.attemptRecovery()
+ }
+ }
+}
+
+func (r *CooldownRecovery) attemptRecovery() {
+ for provider, status := range r.detector.providerStatus {
+ if status.InCooldown && time.Now().After(status.CooldownUntil) {
+ // Try health check
+ if err := r.checker.Check(provider); err == nil {
+ // Recovery successful
+ r.detector.ExitCooldown(provider)
+ log.Infof("Provider %s recovered from cooldown", provider)
+ }
+ }
+ }
+}
+```
+
+### Load Redistribution
+
+**Redistribute requests away from cooldown providers**:
+```go
+type LoadRedistributor struct {
+ providerRegistry map[string]ProviderExecutor
+ cooldownDetector *RateLimitDetector
+}
+
+func (l *LoadRedistributor) SelectProvider(providers []string) (string, error) {
+ // Filter out providers in cooldown
+ available := []string{}
+ for _, provider := range providers {
+ if !l.cooldownDetector.IsInCooldown(provider) {
+ available = append(available, provider)
+ }
+ }
+
+ if len(available) == 0 {
+ return "", fmt.Errorf("all providers in cooldown")
+ }
+
+ // Select from available providers
+ return l.selectFromAvailable(available)
+}
+```
+
+## Load Balancing Strategies
+
+### Strategy Interface
+
+```go
+type LoadBalancingStrategy interface {
+ Select(providers []string, metrics *ProviderMetrics) (string, error)
+ Name() string
+}
+```
+
+### Round-Robin Strategy
+
+```go
+type RoundRobinStrategy struct {
+ counters map[string]int
+ mu sync.Mutex
+}
+
+func (s *RoundRobinStrategy) Select(providers []string, metrics *ProviderMetrics) (string, error) {
+ s.mu.Lock()
+ defer s.mu.Unlock()
+
+ if len(providers) == 0 {
+ return "", fmt.Errorf("no providers available")
+ }
+
+ // Get counter for first provider (all share counter)
+ counter := s.counters["roundrobin"]
+ selected := providers[counter%len(providers)]
+
+ s.counters["roundrobin"] = counter + 1
+
+ return selected, nil
+}
+```
+
+### Quota-Aware Strategy
+
+```go
+type QuotaAwareStrategy struct{}
+
+func (s *QuotaAwareStrategy) Select(providers []string, metrics *ProviderMetrics) (string, error) {
+ var bestProvider string
+ var bestQuota float64
+
+ for _, provider := range providers {
+ quota := metrics.GetQuotaRemaining(provider)
+ if quota > bestQuota {
+ bestQuota = quota
+ bestProvider = provider
+ }
+ }
+
+ if bestProvider == "" {
+ return "", fmt.Errorf("no providers available")
+ }
+
+ return bestProvider, nil
+}
+```
+
+### Latency-Based Strategy
+
+```go
+type LatencyStrategy struct {
+ window time.Duration
+}
+
+func (s *LatencyStrategy) Select(providers []string, metrics *ProviderMetrics) (string, error) {
+ var bestProvider string
+ var bestLatency time.Duration
+
+ for _, provider := range providers {
+ latency := metrics.GetAverageLatency(provider, s.window)
+ if bestProvider == "" || latency < bestLatency {
+ bestLatency = latency
+ bestProvider = provider
+ }
+ }
+
+ if bestProvider == "" {
+ return "", fmt.Errorf("no providers available")
+ }
+
+ return bestProvider, nil
+}
+```
+
+### Cost-Based Strategy
+
+```go
+type CostStrategy struct{}
+
+func (s *CostStrategy) Select(providers []string, metrics *ProviderMetrics) (string, error) {
+ var bestProvider string
+ var bestCost float64
+
+ for _, provider := range providers {
+ cost := metrics.GetAverageCost(provider)
+ if bestProvider == "" || cost < bestCost {
+ bestCost = cost
+ bestProvider = provider
+ }
+ }
+
+ if bestProvider == "" {
+ return "", fmt.Errorf("no providers available")
+ }
+
+ return bestProvider, nil
+}
+```
+
+## Health Monitoring
+
+### Provider Health Checks
+
+```go
+type ProviderHealthChecker struct {
+ executors map[string]ProviderExecutor
+ interval time.Duration
+ timeout time.Duration
+}
+
+func (h *ProviderHealthChecker) Check(provider string) error {
+ executor, ok := h.executors[provider]
+ if !ok {
+ return fmt.Errorf("provider not found: %s", provider)
+ }
+
+ ctx, cancel := context.WithTimeout(context.Background(), h.timeout)
+ defer cancel()
+
+ return executor.HealthCheck(ctx, nil)
+}
+
+func (h *ProviderHealthChecker) Run(ctx context.Context) {
+ ticker := time.NewTicker(h.interval)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-ticker.C:
+ h.checkAllProviders()
+ }
+ }
+}
+
+func (h *ProviderHealthChecker) checkAllProviders() {
+ for provider := range h.executors {
+ if err := h.Check(provider); err != nil {
+ log.Warnf("Provider %s health check failed: %v", provider, err)
+ } else {
+ log.Debugf("Provider %s healthy", provider)
+ }
+ }
+}
+```
+
+### Health Status
+
+```go
+type HealthStatus struct {
+ Provider string `json:"provider"`
+ Status string `json:"status"`
+ LastCheck time.Time `json:"last_check"`
+ LastSuccess time.Time `json:"last_success"`
+ ErrorCount int `json:"error_count"`
+}
+
+type HealthStatus struct {
+ Providers map[string]ProviderHealthStatus `json:"providers"`
+ Overall string `json:"overall"`
+ Timestamp time.Time `json:"timestamp"`
+}
+```
+
+### Self-Healing
+
+```go
+type SelfHealing struct {
+ healthChecker *ProviderHealthChecker
+ strategy LoadBalancingStrategy
+}
+
+func (s *SelfHealing) Run(ctx context.Context) {
+ ticker := time.NewTicker(1 * time.Minute)
+ defer ticker.Stop()
+
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-ticker.C:
+ s.heal()
+ }
+ }
+}
+
+func (s *SelfHealing) heal() {
+ status := s.healthChecker.GetStatus()
+
+ for provider, providerStatus := range status.Providers {
+ if providerStatus.Status == "unhealthy" {
+ log.Warnf("Provider %s unhealthy, attempting recovery", provider)
+
+ // Try recovery
+ if err := s.healthChecker.Check(provider); err == nil {
+ log.Infof("Provider %s recovered", provider)
+ } else {
+ log.Errorf("Provider %s recovery failed: %v", provider, err)
+ }
+ }
+ }
+}
+```
+
+## Observability
+
+### Metrics Collection
+
+**Metrics types**:
+- Counter: Total requests, errors, tokens
+- Gauge: Current connections, queue size
+- Histogram: Request latency, response size
+- Summary: Response time percentiles
+
+```go
+type MetricsCollector struct {
+ registry prometheus.Registry
+
+ // Counters
+ requestCount *prometheus.CounterVec
+ errorCount *prometheus.CounterVec
+ tokenCount *prometheus.CounterVec
+
+ // Gauges
+ activeRequests *prometheus.GaugeVec
+ queueSize prometheus.Gauge
+
+ // Histograms
+ requestLatency *prometheus.HistogramVec
+ responseSize *prometheus.HistogramVec
+}
+
+func NewMetricsCollector() *MetricsCollector {
+ registry := prometheus.NewRegistry()
+
+ c := &MetricsCollector{
+ registry: registry,
+ requestCount: prometheus.NewCounterVec(
+ prometheus.CounterOpts{
+ Name: "cliproxy_requests_total",
+ Help: "Total number of requests",
+ },
+ []string{"provider", "model", "status"},
+ ),
+ errorCount: prometheus.NewCounterVec(
+ prometheus.CounterOpts{
+ Name: "cliproxy_errors_total",
+ Help: "Total number of errors",
+ },
+ []string{"provider", "error_type"},
+ ),
+ tokenCount: prometheus.NewCounterVec(
+ prometheus.CounterOpts{
+ Name: "cliproxy_tokens_total",
+ Help: "Total number of tokens processed",
+ },
+ []string{"provider", "model", "type"},
+ ),
+ }
+
+ registry.MustRegister(c.requestCount, c.errorCount, c.tokenCount)
+
+ return c
+}
+```
+
+### Distributed Tracing
+
+**OpenTelemetry integration**:
+```go
+import (
+ "go.opentelemetry.io/otel"
+ "go.opentelemetry.io/otel/exporters/jaeger"
+ "go.opentelemetry.io/otel/sdk/trace"
+)
+
+func InitTracing(serviceName string) error {
+ exporter, err := jaeger.New(jaeger.WithCollectorEndpoint(
+ jaeger.WithEndpoint("http://localhost:14268/api/traces"),
+ ))
+ if err != nil {
+ return err
+ }
+
+ tp := trace.NewTracerProvider(
+ trace.WithBatcher(exporter),
+ )
+
+ otel.SetTracerProvider(tp)
+
+ return nil
+}
+```
+
+**Trace requests**:
+```go
+func (h *Handler) HandleRequest(c *gin.Context) {
+ ctx := c.Request.Context()
+ span := trace.SpanFromContext(ctx)
+
+ span.SetAttributes(
+ attribute.String("provider", provider),
+ attribute.String("model", model),
+ )
+
+ // Process request
+ resp, err := h.executeRequest(ctx, req)
+
+ if err != nil {
+ span.RecordError(err)
+ span.SetStatus(codes.Error, err.Error())
+ } else {
+ span.SetStatus(codes.Ok, "success")
+ }
+}
+```
+
+### Structured Logging
+
+**Log levels**:
+- DEBUG: Detailed request/response data
+- INFO: General operations
+- WARN: Recoverable errors (rate limits, retries)
+- ERROR: Failed requests
+
+```go
+import "log/slog"
+
+type RequestLogger struct {
+ logger *slog.Logger
+}
+
+func (l *RequestLogger) LogRequest(req *openai.ChatCompletionRequest, resp *openai.ChatCompletionResponse, err error) {
+ attrs := []slog.Attr{
+ slog.String("provider", req.Provider),
+ slog.String("model", req.Model),
+ slog.Int("message_count", len(req.Messages)),
+ slog.Duration("latency", time.Since(req.StartTime)),
+ }
+
+ if resp != nil {
+ attrs = append(attrs,
+ slog.Int("prompt_tokens", resp.Usage.PromptTokens),
+ slog.Int("completion_tokens", resp.Usage.CompletionTokens),
+ )
+ }
+
+ if err != nil {
+ l.logger.LogAttrs(context.Background(), slog.LevelError, "request_failed", attrs...)
+ } else {
+ l.logger.LogAttrs(context.Background(), slog.LevelInfo, "request_success", attrs...)
+ }
+}
+```
+
+### Alerting
+
+**Alert conditions**:
+```yaml
+alerts:
+ - name: High error rate
+ condition: error_rate > 0.05
+ duration: 5m
+ severity: warning
+ action: notify_slack
+
+ - name: Provider down
+ condition: provider_health == "unhealthy"
+ duration: 2m
+ severity: critical
+ action: notify_pagerduty
+
+ - name: Rate limit hit
+ condition: rate_limit_count > 10
+ duration: 1m
+ severity: warning
+ action: notify_slack
+
+ - name: High latency
+ condition: p95_latency > 5s
+ duration: 10m
+ severity: warning
+ action: notify_email
+```
+
+## Performance Optimization
+
+### Connection Pooling
+
+```go
+type ConnectionPool struct {
+ clients map[string]*http.Client
+ mu sync.RWMutex
+}
+
+func NewConnectionPool() *ConnectionPool {
+ return &ConnectionPool{
+ clients: make(map[string]*http.Client),
+ }
+}
+
+func (p *ConnectionPool) GetClient(provider string) *http.Client {
+ p.mu.RLock()
+ client, ok := p.clients[provider]
+ p.mu.RUnlock()
+
+ if ok {
+ return client
+ }
+
+ p.mu.Lock()
+ defer p.mu.Unlock()
+
+ // Create new client
+ client = &http.Client{
+ Transport: &http.Transport{
+ MaxIdleConns: 100,
+ MaxIdleConnsPerHost: 10,
+ IdleConnTimeout: 90 * time.Second,
+ },
+ Timeout: 60 * time.Second,
+ }
+
+ p.clients[provider] = client
+ return client
+}
+```
+
+### Request Batching
+
+**Batch multiple requests**:
+```go
+type RequestBatcher struct {
+ batch []*openai.ChatCompletionRequest
+ maxBatch int
+ timeout time.Duration
+ resultChan chan *BatchResult
+}
+
+func (b *RequestBatcher) Add(req *openai.ChatCompletionRequest) {
+ b.batch = append(b.batch, req)
+
+ if len(b.batch) >= b.maxBatch {
+ b.flush()
+ }
+}
+
+func (b *RequestBatcher) flush() {
+ if len(b.batch) == 0 {
+ return
+ }
+
+ // Execute batch
+ results := b.executeBatch(b.batch)
+
+ // Send results
+ for _, result := range results {
+ b.resultChan <- result
+ }
+
+ b.batch = nil
+}
+```
+
+### Response Caching
+
+**Cache responses**:
+```go
+type ResponseCache struct {
+ cache *lru.Cache
+ ttl time.Duration
+}
+
+func NewResponseCache(size int, ttl time.Duration) *ResponseCache {
+ return &ResponseCache{
+ cache: lru.New(size),
+ ttl: ttl,
+ }
+}
+
+func (c *ResponseCache) Get(key string) (*openai.ChatCompletionResponse, bool) {
+ item, ok := c.cache.Get(key)
+ if !ok {
+ return nil, false
+ }
+
+ cached := item.(*CacheEntry)
+ if time.Since(cached.Timestamp) > c.ttl {
+ c.cache.Remove(key)
+ return nil, false
+ }
+
+ return cached.Response, true
+}
+
+func (c *ResponseCache) Set(key string, resp *openai.ChatCompletionResponse) {
+ c.cache.Add(key, &CacheEntry{
+ Response: resp,
+ Timestamp: time.Now(),
+ })
+}
+```
+
+## Disaster Recovery
+
+### Backup and Restore
+
+**Backup configuration**:
+```bash
+#!/bin/bash
+# backup.sh
+
+BACKUP_DIR="/backups/cliproxy"
+TIMESTAMP=$(date +%Y%m%d_%H%M%S)
+
+# Backup config
+cp config.yaml "$BACKUP_DIR/config_$TIMESTAMP.yaml"
+
+# Backup auths
+tar -czf "$BACKUP_DIR/auths_$TIMESTAMP.tar.gz" auths/
+
+# Backup logs
+tar -czf "$BACKUP_DIR/logs_$TIMESTAMP.tar.gz" logs/
+
+echo "Backup complete: $BACKUP_DIR/cliproxy_$TIMESTAMP"
+```
+
+**Restore configuration**:
+```bash
+#!/bin/bash
+# restore.sh
+
+BACKUP_FILE="$1"
+
+# Extract config
+tar -xzf "$BACKUP_FILE" --wildcards "config_*.yaml"
+
+# Extract auths
+tar -xzf "$BACKUP_FILE" --wildcards "auths_*.tar.gz"
+
+# Restart service
+docker compose restart
+```
+
+### Failover
+
+**Active-passive failover**:
+```yaml
+server:
+ failover:
+ enabled: true
+ mode: "active_passive"
+ health_check_interval: "10s"
+ failover_timeout: "30s"
+ backup_url: "http://backup-proxy:8317"
+```
+
+**Active-active failover**:
+```yaml
+server:
+ failover:
+ enabled: true
+ mode: "active_active"
+ load_balancing: "consistent_hash"
+ health_check_interval: "10s"
+ peers:
+ - "http://proxy1:8317"
+ - "http://proxy2:8317"
+ - "http://proxy3:8317"
+```
+
+## API Reference
+
+### Operations Endpoints
+
+**Health Check**
+```http
+GET /health
+```
+
+**Metrics**
+```http
+GET /metrics
+```
+
+**Provider Status**
+```http
+GET /v0/operations/providers/status
+```
+
+Response:
+```json
+{
+ "providers": {
+ "claude": {
+ "status": "healthy",
+ "in_cooldown": false,
+ "last_check": "2026-02-19T23:00:00Z",
+ "requests_last_minute": 100,
+ "errors_last_minute": 2,
+ "average_latency_ms": 500
+ }
+ }
+}
+```
+
+**Cooldown Status**
+```http
+GET /v0/operations/cooldown/status
+```
+
+Response:
+```json
+{
+ "providers_in_cooldown": ["claude"],
+ "cooldown_periods": {
+ "claude": {
+ "started_at": "2026-02-19T22:50:00Z",
+ "ends_at": "2026-02-19T22:55:00Z",
+ "reason": "rate_limit"
+ }
+ }
+}
+```
+
+**Force Recovery**
+```http
+POST /v0/operations/providers/{provider}/recover
+```
+
+
+---
+
+## Source: features/operations/USER.md
+
+# User Guide: High-Scale Operations
+
+## Understanding Operations in cliproxyapi++
+
+cliproxyapi++ is built for production environments with intelligent operations that automatically handle rate limits, load balance requests, monitor health, and recover from failures. This guide explains how to configure and use these features.
+
+## Quick Start: Production Deployment
+
+### docker-compose.yml (Production)
+
+```yaml
+services:
+ cliproxy:
+ image: KooshaPari/cliproxyapi-plusplus:latest
+ container_name: cliproxyapi++
+
+ # Security
+ security_opt:
+ - no-new-privileges:true
+ read_only: true
+ user: "65534:65534"
+
+ # Resources
+ deploy:
+ resources:
+ limits:
+ cpus: '4'
+ memory: 2G
+ reservations:
+ cpus: '1'
+ memory: 512M
+
+ # Health check
+ healthcheck:
+ test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8317/health"]
+ interval: 30s
+ timeout: 10s
+ retries: 3
+ start_period: 40s
+
+ # Ports
+ ports:
+ - "8317:8317"
+ - "9090:9090" # Metrics
+
+ # Volumes
+ volumes:
+ - ./config.yaml:/config/config.yaml:ro
+ - ./auths:/auths:rw
+ - ./logs:/logs:rw
+
+ # Restart
+ restart: unless-stopped
+```
+
+## Intelligent Cooldown
+
+### What is Cooldown?
+
+When a provider returns rate limit errors (429), cliproxyapi++ automatically pauses requests to that provider for a configurable cooldown period. This prevents your IP from being flagged and allows the provider to recover.
+
+### Configure Cooldown
+
+**config.yaml**:
+```yaml
+server:
+ operations:
+ cooldown:
+ enabled: true
+ detection_window: "1m"
+ error_threshold: 5 # 5 errors in 1 minute triggers cooldown
+
+providers:
+ claude:
+ cooldown:
+ enabled: true
+ default_duration: "5m"
+ rate_limit_duration: "10m" # Longer cooldown for 429
+ error_duration: "2m" # Shorter for other errors
+
+ openai:
+ cooldown:
+ enabled: true
+ default_duration: "3m"
+ rate_limit_duration: "5m"
+ error_duration: "1m"
+```
+
+### Monitor Cooldown Status
+
+```bash
+# Check cooldown status
+curl http://localhost:8317/v0/operations/cooldown/status
+```
+
+Response:
+```json
+{
+ "providers_in_cooldown": ["claude"],
+ "cooldown_periods": {
+ "claude": {
+ "started_at": "2026-02-19T22:50:00Z",
+ "ends_at": "2026-02-19T23:00:00Z",
+ "remaining_seconds": 300,
+ "reason": "rate_limit"
+ }
+ }
+}
+```
+
+### Manual Cooldown Control
+
+**Force cooldown**:
+```bash
+curl -X POST http://localhost:8317/v0/operations/providers/claude/cooldown \
+ -H "Content-Type: application/json" \
+ -d '{
+ "duration": "10m",
+ "reason": "manual"
+ }'
+```
+
+**Force recovery**:
+```bash
+curl -X POST http://localhost:8317/v0/operations/providers/claude/recover
+```
+
+## Load Balancing
+
+### Choose a Strategy
+
+**config.yaml**:
+```yaml
+server:
+ operations:
+ load_balancing:
+ strategy: "round_robin" # Options: round_robin, quota_aware, latency, cost
+```
+
+**Strategies**:
+- `round_robin`: Rotate evenly through providers (default)
+- `quota_aware`: Use provider with most remaining quota
+- `latency`: Use provider with lowest recent latency
+- `cost`: Use provider with lowest average cost
+
+### Round-Robin (Default)
+
+```yaml
+server:
+ operations:
+ load_balancing:
+ strategy: "round_robin"
+```
+
+**Best for**: Simple deployments with similar providers.
+
+### Quota-Aware
+
+```yaml
+server:
+ operations:
+ load_balancing:
+ strategy: "quota_aware"
+
+providers:
+ claude:
+ quota:
+ limit: 1000000
+ reset: "monthly"
+
+ openai:
+ quota:
+ limit: 2000000
+ reset: "monthly"
+```
+
+**Best for**: Managing API quota limits across multiple providers.
+
+### Latency-Based
+
+```yaml
+server:
+ operations:
+ load_balancing:
+ strategy: "latency"
+ latency_window: "5m" # Average over last 5 minutes
+```
+
+**Best for**: Performance-critical applications.
+
+### Cost-Based
+
+```yaml
+server:
+ operations:
+ load_balancing:
+ strategy: "cost"
+
+providers:
+ claude:
+ cost_per_1k_tokens:
+ input: 0.003
+ output: 0.015
+
+ openai:
+ cost_per_1k_tokens:
+ input: 0.005
+ output: 0.015
+```
+
+**Best for**: Cost optimization.
+
+### Provider Priority
+
+```yaml
+providers:
+ claude:
+ priority: 1 # Higher priority
+ gemini:
+ priority: 2
+ openai:
+ priority: 3
+```
+
+Higher priority providers are preferred (lower number = higher priority).
+
+## Health Monitoring
+
+### Configure Health Checks
+
+**config.yaml**:
+```yaml
+server:
+ operations:
+ health_check:
+ enabled: true
+ interval: "30s"
+ timeout: "10s"
+ unhealthy_threshold: 3 # 3 failures = unhealthy
+ healthy_threshold: 2 # 2 successes = healthy
+
+providers:
+ claude:
+ health_check:
+ enabled: true
+ endpoint: "https://api.anthropic.com/v1/messages"
+ method: "GET"
+```
+
+### Monitor Provider Health
+
+```bash
+# Check all providers
+curl http://localhost:8317/v0/operations/providers/status
+```
+
+Response:
+```json
+{
+ "providers": {
+ "claude": {
+ "status": "healthy",
+ "in_cooldown": false,
+ "last_check": "2026-02-19T23:00:00Z",
+ "uptime_percent": 99.9,
+ "requests_last_minute": 100,
+ "errors_last_minute": 0,
+ "average_latency_ms": 450
+ },
+ "openai": {
+ "status": "unhealthy",
+ "in_cooldown": true,
+ "last_check": "2026-02-19T23:00:00Z",
+ "uptime_percent": 95.0,
+ "requests_last_minute": 0,
+ "errors_last_minute": 10,
+ "average_latency_ms": 0
+ }
+ }
+}
+```
+
+### Self-Healing
+
+Enable automatic recovery of unhealthy providers:
+
+```yaml
+server:
+ operations:
+ self_healing:
+ enabled: true
+ check_interval: "1m"
+ max_attempts: 3
+ backoff_duration: "30s"
+```
+
+## Observability
+
+### Enable Metrics
+
+**config.yaml**:
+```yaml
+metrics:
+ enabled: true
+ port: 9090
+ path: "/metrics"
+```
+
+**View metrics**:
+```bash
+curl http://localhost:9090/metrics
+```
+
+**Key metrics**:
+```
+# Request count
+cliproxy_requests_total{provider="claude",model="claude-3-5-sonnet",status="success"} 1000
+
+# Error count
+cliproxy_errors_total{provider="claude",error_type="rate_limit"} 5
+
+# Token usage
+cliproxy_tokens_total{provider="claude",model="claude-3-5-sonnet",type="input"} 50000
+cliproxy_tokens_total{provider="claude",model="claude-3-5-sonnet",type="output"} 25000
+
+# Request latency
+cliproxy_request_duration_seconds_bucket{provider="claude",le="0.5"} 800
+cliproxy_request_duration_seconds_bucket{provider="claude",le="1"} 950
+cliproxy_request_duration_seconds_bucket{provider="claude",le="+Inf"} 1000
+```
+
+### Prometheus Integration
+
+**prometheus.yml**:
+```yaml
+scrape_configs:
+ - job_name: 'cliproxyapi'
+ static_configs:
+ - targets: ['localhost:9090']
+ scrape_interval: 15s
+```
+
+### Grafana Dashboards
+
+Import the cliproxyapi++ dashboard for:
+- Request rate by provider
+- Error rate tracking
+- P95/P99 latency
+- Token usage over time
+- Cooldown events
+- Provider health status
+
+### Structured Logging
+
+**config.yaml**:
+```yaml
+logging:
+ level: "info" # debug, info, warn, error
+ format: "json"
+ output: "/logs/cliproxy.log"
+ rotation:
+ enabled: true
+ max_size: "100M"
+ max_age: "30d"
+ max_backups: 10
+```
+
+**View logs**:
+```bash
+# Follow logs
+tail -f logs/cliproxy.log
+
+# Filter for errors
+grep "level=error" logs/cliproxy.log
+
+# Pretty print JSON logs
+cat logs/cliproxy.log | jq '.'
+```
+
+**Log entry example**:
+```json
+{
+ "timestamp": "2026-02-19T23:00:00Z",
+ "level": "info",
+ "msg": "request_success",
+ "provider": "claude",
+ "model": "claude-3-5-sonnet",
+ "request_id": "req-123",
+ "latency_ms": 450,
+ "tokens": {
+ "input": 100,
+ "output": 50
+ }
+}
+```
+
+### Distributed Tracing (Optional)
+
+Enable OpenTelemetry tracing:
+
+```yaml
+tracing:
+ enabled: true
+ exporter: "jaeger" # Options: jaeger, zipkin, otlp
+ endpoint: "http://localhost:14268/api/traces"
+ service_name: "cliproxyapi++"
+ sample_rate: 0.1 # Sample 10% of traces
+```
+
+**View traces**:
+- Jaeger UI: http://localhost:1668
+- Zipkin UI: http://localhost:9411
+
+## Alerting
+
+### Configure Alerts
+
+**config.yaml**:
+```yaml
+alerts:
+ enabled: true
+ rules:
+ - name: High error rate
+ condition: error_rate > 0.05
+ duration: "5m"
+ severity: warning
+ notifications:
+ - slack
+ - email
+
+ - name: Provider down
+ condition: provider_health == "unhealthy"
+ duration: "2m"
+ severity: critical
+ notifications:
+ - pagerduty
+
+ - name: Rate limit hit
+ condition: rate_limit_count > 10
+ duration: "1m"
+ severity: warning
+ notifications:
+ - slack
+
+ - name: High latency
+ condition: p95_latency > 5s
+ duration: "10m"
+ severity: warning
+ notifications:
+ - email
+```
+
+### Notification Channels
+
+**Slack**:
+```yaml
+notifications:
+ slack:
+ enabled: true
+ webhook_url: "${SLACK_WEBHOOK_URL}"
+ channel: "#alerts"
+```
+
+**Email**:
+```yaml
+notifications:
+ email:
+ enabled: true
+ smtp_server: "smtp.example.com:587"
+ from: "alerts@example.com"
+ to: ["ops@example.com"]
+```
+
+**PagerDuty**:
+```yaml
+notifications:
+ pagerduty:
+ enabled: true
+ api_key: "${PAGERDUTY_API_KEY}"
+ service_key: "your-service-key"
+```
+
+## Performance Optimization
+
+### Connection Pooling
+
+Configure connection pools:
+
+```yaml
+server:
+ operations:
+ connection_pool:
+ max_idle_conns: 100
+ max_idle_conns_per_host: 10
+ idle_conn_timeout: "90s"
+```
+
+### Request Batching
+
+Enable batch processing:
+
+```yaml
+server:
+ operations:
+ batch_processing:
+ enabled: true
+ max_batch_size: 10
+ timeout: "100ms"
+```
+
+### Response Caching
+
+Cache responses for identical requests:
+
+```yaml
+server:
+ operations:
+ cache:
+ enabled: true
+ size: 1000 # Number of cached responses
+ ttl: "5m" # Time to live
+```
+
+## Disaster Recovery
+
+### Backup Configuration
+
+Automated backup script:
+
+```bash
+#!/bin/bash
+# backup.sh
+
+BACKUP_DIR="/backups/cliproxy"
+TIMESTAMP=$(date +%Y%m%d_%H%M%S)
+
+# Create backup directory
+mkdir -p "$BACKUP_DIR"
+
+# Backup config
+cp config.yaml "$BACKUP_DIR/config_$TIMESTAMP.yaml"
+
+# Backup auths
+tar -czf "$BACKUP_DIR/auths_$TIMESTAMP.tar.gz" auths/
+
+# Backup logs
+tar -czf "$BACKUP_DIR/logs_$TIMESTAMP.tar.gz" logs/
+
+# Remove old backups (keep last 30)
+find "$BACKUP_DIR" -name "*.tar.gz" -mtime +30 -delete
+
+echo "Backup complete: $BACKUP_DIR/cliproxy_$TIMESTAMP"
+```
+
+Schedule with cron:
+```bash
+# Run daily at 2 AM
+0 2 * * * /path/to/backup.sh
+```
+
+### Restore Configuration
+
+```bash
+#!/bin/bash
+# restore.sh
+
+BACKUP_FILE="$1"
+
+# Stop service
+docker compose down
+
+# Extract config
+tar -xzf "$BACKUP_FILE" --wildcards "config_*.yaml"
+
+# Extract auths
+tar -xzf "$BACKUP_FILE" --wildcards "auths_*.tar.gz"
+
+# Start service
+docker compose up -d
+```
+
+### Failover Configuration
+
+**Active-Passive**:
+```yaml
+server:
+ failover:
+ enabled: true
+ mode: "active_passive"
+ health_check_interval: "10s"
+ failover_timeout: "30s"
+ backup_url: "http://backup-proxy:8317"
+```
+
+**Active-Active**:
+```yaml
+server:
+ failover:
+ enabled: true
+ mode: "active_active"
+ load_balancing: "consistent_hash"
+ health_check_interval: "10s"
+ peers:
+ - "http://proxy1:8317"
+ - "http://proxy2:8317"
+ - "http://proxy3:8317"
+```
+
+## Troubleshooting
+
+### High Error Rate
+
+**Problem**: Error rate > 5%
+
+**Solutions**:
+1. Check provider status: `GET /v0/operations/providers/status`
+2. Review cooldown status: `GET /v0/operations/cooldown/status`
+3. Check logs for error patterns
+4. Verify credentials are valid
+5. Check provider status page for outages
+
+### Provider Always in Cooldown
+
+**Problem**: Provider stuck in cooldown
+
+**Solutions**:
+1. Manually recover: `POST /v0/operations/providers/{provider}/recover`
+2. Adjust cooldown thresholds
+3. Check rate limits from provider
+4. Reduce request rate
+5. Use multiple providers for load distribution
+
+### High Latency
+
+**Problem**: Requests taking > 5 seconds
+
+**Solutions**:
+1. Check connection pool settings
+2. Enable latency-based load balancing
+3. Check provider status for issues
+4. Review network connectivity
+5. Consider caching responses
+
+### Memory Usage High
+
+**Problem**: Container using > 2GB memory
+
+**Solutions**:
+1. Check connection pool size
+2. Limit cache size
+3. Reduce worker pool size
+4. Check for memory leaks in logs
+5. Restart container
+
+### Health Checks Failing
+
+**Problem**: Provider marked unhealthy
+
+**Solutions**:
+1. Check health check endpoint is correct
+2. Verify network connectivity to provider
+3. Check credentials are valid
+4. Review provider status page
+5. Adjust health check timeout
+
+## Best Practices
+
+### Deployment
+
+- [ ] Use docker-compose for easy management
+- [ ] Enable health checks
+- [ ] Set appropriate resource limits
+- [ ] Configure logging rotation
+- [ ] Enable metrics collection
+- [ ] Set up alerting
+
+### Monitoring
+
+- [ ] Monitor error rate (target < 1%)
+- [ ] Monitor P95 latency (target < 2s)
+- [ ] Monitor token usage
+- [ ] Track cooldown events
+- [ ] Review audit logs daily
+- [ ] Set up Grafana dashboards
+
+### Scaling
+
+- [ ] Use multiple providers for redundancy
+- [ ] Enable load balancing
+- [ ] Configure connection pooling
+- [ ] Set up active-active failover
+- [ ] Monitor resource usage
+- [ ] Scale horizontally as needed
+
+### Backup
+
+- [ ] Daily automated backups
+- [ ] Test restore procedure
+- [ ] Store backups off-site
+- [ ] Encrypt sensitive data
+- [ ] Document recovery process
+- [ ] Regular disaster recovery drills
+
+## API Reference
+
+### Operations Endpoints
+
+**Health Check**
+```http
+GET /health
+```
+
+**Metrics**
+```http
+GET /metrics
+```
+
+**Provider Status**
+```http
+GET /v0/operations/providers/status
+```
+
+**Cooldown Status**
+```http
+GET /v0/operations/cooldown/status
+```
+
+**Force Cooldown**
+```http
+POST /v0/operations/providers/{provider}/cooldown
+```
+
+**Force Recovery**
+```http
+POST /v0/operations/providers/{provider}/recover
+```
+
+**Load Balancing Status**
+```http
+GET /v0/operations/load_balancing/status
+```
+
+## Next Steps
+
+- See [SPEC.md](./SPEC.md) for technical operations details
+- See [../security/](../security/) for security operations
+- See [../../api/](../../api/) for API documentation
+
+
+---
diff --git a/docs/fragemented/features/providers/SPEC.md b/docs/fragemented/features/providers/SPEC.md
new file mode 100644
index 0000000000..ff76f068e5
--- /dev/null
+++ b/docs/fragemented/features/providers/SPEC.md
@@ -0,0 +1,910 @@
+# Technical Specification: Provider Registry & Support
+
+## Overview
+
+**cliproxyapi++** supports an extensive registry of LLM providers, from direct API integrations to multi-provider aggregators and proprietary protocols. This specification details the provider architecture, supported providers, and extension mechanisms.
+
+## Provider Architecture
+
+### Provider Types
+
+```
+Provider Registry
+├── Direct Providers
+│ ├── Claude (Anthropic)
+│ ├── Gemini (Google)
+│ ├── OpenAI
+│ ├── Mistral
+│ ├── Groq
+│ └── DeepSeek
+├── Aggregator Providers
+│ ├── OpenRouter
+│ ├── Together AI
+│ ├── Fireworks AI
+│ ├── Novita AI
+│ └── SiliconFlow
+└── Proprietary Providers
+ ├── Kiro (AWS CodeWhisperer)
+ ├── GitHub Copilot
+ ├── Roo Code
+ ├── Kilo AI
+ └── MiniMax
+```
+
+### Provider Interface
+
+```go
+type Provider interface {
+ // Provider metadata
+ Name() string
+ Type() ProviderType
+
+ // Model support
+ SupportsModel(model string) bool
+ ListModels() []Model
+
+ // Authentication
+ AuthType() AuthType
+ RequiresAuth() bool
+
+ // Execution
+ Execute(ctx context.Context, req *Request) (*Response, error)
+ ExecuteStream(ctx context.Context, req *Request) (<-chan *Chunk, error)
+
+ // Capabilities
+ SupportsStreaming() bool
+ SupportsFunctions() bool
+ MaxTokens() int
+
+ // Health
+ HealthCheck(ctx context.Context) error
+}
+```
+
+### Provider Configuration
+
+```go
+type ProviderConfig struct {
+ Name string `yaml:"name"`
+ Type string `yaml:"type"`
+ Enabled bool `yaml:"enabled"`
+ AuthType string `yaml:"auth_type"`
+ Endpoint string `yaml:"endpoint"`
+ Models []ModelConfig `yaml:"models"`
+ Features ProviderFeatures `yaml:"features"`
+ Limits ProviderLimits `yaml:"limits"`
+ Cooldown CooldownConfig `yaml:"cooldown"`
+ Priority int `yaml:"priority"`
+}
+
+type ModelConfig struct {
+ Name string `yaml:"name"`
+ Enabled bool `yaml:"enabled"`
+ MaxTokens int `yaml:"max_tokens"`
+ SupportsFunctions bool `yaml:"supports_functions"`
+ SupportsStreaming bool `yaml:"supports_streaming"`
+}
+
+type ProviderFeatures struct {
+ Streaming bool `yaml:"streaming"`
+ Functions bool `yaml:"functions"`
+ Vision bool `yaml:"vision"`
+ CodeGeneration bool `yaml:"code_generation"`
+ Multimodal bool `yaml:"multimodal"`
+}
+
+type ProviderLimits struct {
+ RequestsPerMinute int `yaml:"requests_per_minute"`
+ TokensPerMinute int `yaml:"tokens_per_minute"`
+ MaxTokensPerReq int `yaml:"max_tokens_per_request"`
+}
+```
+
+## Direct Providers
+
+### Claude (Anthropic)
+
+**Provider Type**: `claude`
+
+**Authentication**: API Key
+
+**Models**:
+- `claude-3-5-sonnet` (max: 200K tokens)
+- `claude-3-5-haiku` (max: 200K tokens)
+- `claude-3-opus` (max: 200K tokens)
+
+**Features**:
+- Streaming: ✅
+- Functions: ✅
+- Vision: ✅
+- Code generation: ✅
+
+**Configuration**:
+```yaml
+providers:
+ claude:
+ type: "claude"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.anthropic.com"
+ models:
+ - name: "claude-3-5-sonnet"
+ enabled: true
+ max_tokens: 200000
+ supports_functions: true
+ supports_streaming: true
+ features:
+ streaming: true
+ functions: true
+ vision: true
+ code_generation: true
+ limits:
+ requests_per_minute: 60
+ tokens_per_minute: 40000
+```
+
+**API Endpoint**: `https://api.anthropic.com/v1/messages`
+
+**Request Format**:
+```json
+{
+ "model": "claude-3-5-sonnet-20241022",
+ "max_tokens": 1024,
+ "messages": [
+ {"role": "user", "content": "Hello!"}
+ ],
+ "stream": true
+}
+```
+
+**Headers**:
+```
+x-api-key: sk-ant-xxxx
+anthropic-version: 2023-06-01
+content-type: application/json
+```
+
+### Gemini (Google)
+
+**Provider Type**: `gemini`
+
+**Authentication**: API Key
+
+**Models**:
+- `gemini-1.5-pro` (max: 1M tokens)
+- `gemini-1.5-flash` (max: 1M tokens)
+- `gemini-1.0-pro` (max: 32K tokens)
+
+**Features**:
+- Streaming: ✅
+- Functions: ✅
+- Vision: ✅
+- Multimodal: ✅
+
+**Configuration**:
+```yaml
+providers:
+ gemini:
+ type: "gemini"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://generativelanguage.googleapis.com"
+ models:
+ - name: "gemini-1.5-pro"
+ enabled: true
+ max_tokens: 1000000
+ features:
+ streaming: true
+ functions: true
+ vision: true
+ multimodal: true
+```
+
+### OpenAI
+
+**Provider Type**: `openai`
+
+**Authentication**: API Key
+
+**Models**:
+- `gpt-4-turbo` (max: 128K tokens)
+- `gpt-4` (max: 8K tokens)
+- `gpt-3.5-turbo` (max: 16K tokens)
+
+**Features**:
+- Streaming: ✅
+- Functions: ✅
+- Vision: ✅ (GPT-4 Vision)
+
+**Configuration**:
+```yaml
+providers:
+ openai:
+ type: "openai"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.openai.com"
+ models:
+ - name: "gpt-4-turbo"
+ enabled: true
+ max_tokens: 128000
+```
+
+## Aggregator Providers
+
+### OpenRouter
+
+**Provider Type**: `openrouter`
+
+**Authentication**: API Key
+
+**Purpose**: Access multiple models through a single API
+
+**Features**:
+- Access to 100+ models
+- Unified pricing
+- Model comparison
+
+**Configuration**:
+```yaml
+providers:
+ openrouter:
+ type: "openrouter"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://openrouter.ai/api"
+ models:
+ - name: "anthropic/claude-3.5-sonnet"
+ enabled: true
+```
+
+### Together AI
+
+**Provider Type**: `together`
+
+**Authentication**: API Key
+
+**Purpose**: Open-source models at scale
+
+**Features**:
+- Open-source models (Llama, Mistral, etc.)
+- Fast inference
+- Cost-effective
+
+**Configuration**:
+```yaml
+providers:
+ together:
+ type: "together"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.together.xyz"
+```
+
+### Fireworks AI
+
+**Provider Type**: `fireworks`
+
+**Authentication**: API Key
+
+**Purpose**: Fast, open-source models
+
+**Features**:
+- Sub-second latency
+- Open-source models
+- API-first
+
+**Configuration**:
+```yaml
+providers:
+ fireworks:
+ type: "fireworks"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.fireworks.ai"
+```
+
+## Proprietary Providers
+
+### Kiro (AWS CodeWhisperer)
+
+**Provider Type**: `kiro`
+
+**Authentication**: OAuth Device Flow (AWS Builder ID / Identity Center)
+
+**Purpose**: Code generation and completion
+
+**Features**:
+- Browser-based auth UI
+- AWS SSO integration
+- Token refresh
+
+**Authentication Flow**:
+1. User visits `/v0/oauth/kiro`
+2. Selects AWS Builder ID or Identity Center
+3. Completes browser-based login
+4. Token stored and auto-refreshed
+
+**Configuration**:
+```yaml
+providers:
+ kiro:
+ type: "kiro"
+ enabled: true
+ auth_type: "oauth_device_flow"
+ endpoint: "https://codeguru.amazonaws.com"
+ models:
+ - name: "codeguru-codegen"
+ enabled: true
+ features:
+ code_generation: true
+```
+
+**Web UI Implementation**:
+```go
+func HandleKiroAuth(c *gin.Context) {
+ // Request device code
+ dc, err := kiro.GetDeviceCode()
+ if err != nil {
+ c.JSON(500, gin.H{"error": err.Error()})
+ return
+ }
+
+ // Render HTML page
+ c.HTML(200, "kiro_auth.html", gin.H{
+ "UserCode": dc.UserCode,
+ "VerificationURL": dc.VerificationURL,
+ "VerificationURLComplete": dc.VerificationURLComplete,
+ })
+
+ // Start background polling
+ go kiro.PollForToken(dc.DeviceCode)
+}
+```
+
+### GitHub Copilot
+
+**Provider Type**: `copilot`
+
+**Authentication**: OAuth Device Flow
+
+**Purpose**: Code completion and generation
+
+**Features**:
+- Full OAuth device flow
+- Per-credential quota tracking
+- Multi-credential support
+- Auto token refresh
+
+**Authentication Flow**:
+1. Request device code from GitHub
+2. Display user code and verification URL
+3. User authorizes via browser
+4. Poll for access token
+5. Store token with refresh token
+6. Auto-refresh before expiration
+
+**Configuration**:
+```yaml
+providers:
+ copilot:
+ type: "copilot"
+ enabled: true
+ auth_type: "oauth_device_flow"
+ endpoint: "https://api.githubcopilot.com"
+ models:
+ - name: "copilot-codegen"
+ enabled: true
+ features:
+ code_generation: true
+```
+
+**Token Storage**:
+```json
+{
+ "type": "oauth_device_flow",
+ "access_token": "ghu_xxx",
+ "refresh_token": "ghr_xxx",
+ "expires_at": "2026-02-20T00:00:00Z",
+ "quota": {
+ "limit": 10000,
+ "used": 100,
+ "remaining": 9900
+ }
+}
+```
+
+### Roo Code
+
+**Provider Type**: "roocode"
+
+**Authentication**: API Key
+
+**Purpose**: AI coding assistant
+
+**Features**:
+- Code generation
+- Code explanation
+- Refactoring
+
+**Configuration**:
+```yaml
+providers:
+ roocode:
+ type: "roocode"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.roocode.ai"
+```
+
+### Kilo AI
+
+**Provider Type**: "kiloai"
+
+**Authentication**: API Key
+
+**Purpose**: Custom AI solutions
+
+**Features**:
+- Custom models
+- Enterprise deployments
+
+**Configuration**:
+```yaml
+providers:
+ kiloai:
+ type: "kiloai"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.kiloai.io"
+```
+
+### MiniMax
+
+**Provider Type**: "minimax"
+
+**Authentication**: API Key
+
+**Purpose**: Chinese LLM provider
+
+**Features**:
+- Bilingual support
+- Fast inference
+- Cost-effective
+
+**Configuration**:
+```yaml
+providers:
+ minimax:
+ type: "minimax"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.minimax.chat"
+```
+
+## Provider Registry
+
+### Registry Interface
+
+```go
+type ProviderRegistry struct {
+ mu sync.RWMutex
+ providers map[string]Provider
+ byType map[ProviderType][]Provider
+}
+
+func NewRegistry() *ProviderRegistry {
+ return &ProviderRegistry{
+ providers: make(map[string]Provider),
+ byType: make(map[ProviderType][]Provider),
+ }
+}
+
+func (r *ProviderRegistry) Register(provider Provider) error {
+ r.mu.Lock()
+ defer r.mu.Unlock()
+
+ if _, exists := r.providers[provider.Name()]; exists {
+ return fmt.Errorf("provider already registered: %s", provider.Name())
+ }
+
+ r.providers[provider.Name()] = provider
+ r.byType[provider.Type()] = append(r.byType[provider.Type()], provider)
+
+ return nil
+}
+
+func (r *ProviderRegistry) Get(name string) (Provider, error) {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ provider, ok := r.providers[name]
+ if !ok {
+ return nil, fmt.Errorf("provider not found: %s", name)
+ }
+
+ return provider, nil
+}
+
+func (r *ProviderRegistry) ListByType(t ProviderType) []Provider {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ return r.byType[t]
+}
+
+func (r *ProviderRegistry) ListAll() []Provider {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ providers := make([]Provider, 0, len(r.providers))
+ for _, p := range r.providers {
+ providers = append(providers, p)
+ }
+
+ return providers
+}
+```
+
+### Auto-Registration
+
+```go
+func RegisterBuiltinProviders(registry *ProviderRegistry) {
+ // Direct providers
+ registry.Register(NewClaudeProvider())
+ registry.Register(NewGeminiProvider())
+ registry.Register(NewOpenAIProvider())
+ registry.Register(NewMistralProvider())
+ registry.Register(NewGroqProvider())
+ registry.Register(NewDeepSeekProvider())
+
+ // Aggregators
+ registry.Register(NewOpenRouterProvider())
+ registry.Register(NewTogetherProvider())
+ registry.Register(NewFireworksProvider())
+ registry.Register(NewNovitaProvider())
+ registry.Register(NewSiliconFlowProvider())
+
+ // Proprietary
+ registry.Register(NewKiroProvider())
+ registry.Register(NewCopilotProvider())
+ registry.Register(NewRooCodeProvider())
+ registry.Register(NewKiloAIProvider())
+ registry.Register(NewMiniMaxProvider())
+}
+```
+
+## Model Mapping
+
+### OpenAI to Provider Model Mapping
+
+```go
+type ModelMapper struct {
+ mappings map[string]map[string]string // openai_model -> provider -> provider_model
+}
+
+var defaultMappings = map[string]map[string]string{
+ "claude-3-5-sonnet": {
+ "claude": "claude-3-5-sonnet-20241022",
+ "openrouter": "anthropic/claude-3.5-sonnet",
+ },
+ "gpt-4-turbo": {
+ "openai": "gpt-4-turbo-preview",
+ "openrouter": "openai/gpt-4-turbo",
+ },
+ "gemini-1.5-pro": {
+ "gemini": "gemini-1.5-pro-preview-0514",
+ "openrouter": "google/gemini-pro-1.5",
+ },
+}
+
+func (m *ModelMapper) MapModel(openaiModel, provider string) (string, error) {
+ if providerMapping, ok := m.mappings[openaiModel]; ok {
+ if providerModel, ok := providerMapping[provider]; ok {
+ return providerModel, nil
+ }
+ }
+
+ // Default: return original model name
+ return openaiModel, nil
+}
+```
+
+### Custom Model Mappings
+
+```yaml
+providers:
+ custom:
+ type: "custom"
+ model_mappings:
+ "gpt-4": "my-provider-v1-large"
+ "gpt-3.5-turbo": "my-provider-v1-medium"
+```
+
+## Provider Capabilities
+
+### Capability Detection
+
+```go
+type CapabilityDetector struct {
+ registry *ProviderRegistry
+}
+
+func (d *CapabilityDetector) DetectCapabilities(provider string) (*ProviderCapabilities, error) {
+ p, err := d.registry.Get(provider)
+ if err != nil {
+ return nil, err
+ }
+
+ caps := &ProviderCapabilities{
+ Streaming: p.SupportsStreaming(),
+ Functions: p.SupportsFunctions(),
+ Vision: p.SupportsVision(),
+ CodeGeneration: p.SupportsCodeGeneration(),
+ MaxTokens: p.MaxTokens(),
+ }
+
+ return caps, nil
+}
+
+type ProviderCapabilities struct {
+ Streaming bool `json:"streaming"`
+ Functions bool `json:"functions"`
+ Vision bool `json:"vision"`
+ CodeGeneration bool `json:"code_generation"`
+ MaxTokens int `json:"max_tokens"`
+}
+```
+
+### Capability Matrix
+
+| Provider | Streaming | Functions | Vision | Code | Max Tokens |
+|----------|-----------|-----------|--------|------|------------|
+| Claude | ✅ | ✅ | ✅ | ✅ | 200K |
+| Gemini | ✅ | ✅ | ✅ | ❌ | 1M |
+| OpenAI | ✅ | ✅ | ✅ | ❌ | 128K |
+| Kiro | ❌ | ❌ | ❌ | ✅ | N/A |
+| Copilot | ✅ | ❌ | ❌ | ✅ | N/A |
+
+## Provider Selection
+
+### Selection Strategies
+
+```go
+type ProviderSelector interface {
+ Select(request *Request, available []Provider) (Provider, error)
+}
+
+type RoundRobinSelector struct {
+ counter int
+}
+
+func (s *RoundRobinSelector) Select(request *Request, available []Provider) (Provider, error) {
+ if len(available) == 0 {
+ return nil, fmt.Errorf("no providers available")
+ }
+
+ selected := available[s.counter%len(available)]
+ s.counter++
+
+ return selected, nil
+}
+
+type CapabilityBasedSelector struct{}
+
+func (s *CapabilityBasedSelector) Select(request *Request, available []Provider) (Provider, error) {
+ // Filter providers that support required capabilities
+ var capable []Provider
+ for _, p := range available {
+ if request.RequiresStreaming && !p.SupportsStreaming() {
+ continue
+ }
+ if request.RequiresFunctions && !p.SupportsFunctions() {
+ continue
+ }
+ capable = append(capable, p)
+ }
+
+ if len(capable) == 0 {
+ return nil, fmt.Errorf("no providers support required capabilities")
+ }
+
+ // Select first capable provider
+ return capable[0], nil
+}
+```
+
+### Request Routing
+
+```go
+type RequestRouter struct {
+ registry *ProviderRegistry
+ selector ProviderSelector
+}
+
+func (r *RequestRouter) Route(request *Request) (Provider, error) {
+ // Get enabled providers
+ providers := r.registry.ListEnabled()
+
+ // Filter by model support
+ var capable []Provider
+ for _, p := range providers {
+ if p.SupportsModel(request.Model) {
+ capable = append(capable, p)
+ }
+ }
+
+ if len(capable) == 0 {
+ return nil, fmt.Errorf("no providers support model: %s", request.Model)
+ }
+
+ // Select provider
+ return r.selector.Select(request, capable)
+}
+```
+
+## Adding a New Provider
+
+### Step 1: Define Provider
+
+```go
+package provider
+
+type MyProvider struct {
+ config *ProviderConfig
+}
+
+func NewMyProvider(cfg *ProviderConfig) *MyProvider {
+ return &MyProvider{config: cfg}
+}
+
+func (p *MyProvider) Name() string {
+ return p.config.Name
+}
+
+func (p *MyProvider) Type() ProviderType {
+ return ProviderTypeDirect
+}
+
+func (p *MyProvider) SupportsModel(model string) bool {
+ for _, m := range p.config.Models {
+ if m.Name == model && m.Enabled {
+ return true
+ }
+ }
+ return false
+}
+
+func (p *MyProvider) Execute(ctx context.Context, req *Request) (*Response, error) {
+ // Implement execution
+ return nil, nil
+}
+
+func (p *MyProvider) ExecuteStream(ctx context.Context, req *Request) (<-chan *Chunk, error) {
+ // Implement streaming
+ return nil, nil
+}
+
+func (p *MyProvider) SupportsStreaming() bool {
+ for _, m := range p.config.Models {
+ if m.SupportsStreaming {
+ return true
+ }
+ }
+ return false
+}
+
+func (p *MyProvider) SupportsFunctions() bool {
+ for _, m := range p.config.Models {
+ if m.SupportsFunctions {
+ return true
+ }
+ }
+ return false
+}
+
+func (p *MyProvider) MaxTokens() int {
+ max := 0
+ for _, m := range p.config.Models {
+ if m.MaxTokens > max {
+ max = m.MaxTokens
+ }
+ }
+ return max
+}
+
+func (p *MyProvider) HealthCheck(ctx context.Context) error {
+ // Implement health check
+ return nil
+}
+```
+
+### Step 2: Register Provider
+
+```go
+func init() {
+ registry.Register(NewMyProvider(&ProviderConfig{
+ Name: "myprovider",
+ Type: "direct",
+ Enabled: false,
+ }))
+}
+```
+
+### Step 3: Add Configuration
+
+```yaml
+providers:
+ myprovider:
+ type: "myprovider"
+ enabled: false
+ auth_type: "api_key"
+ endpoint: "https://api.myprovider.com"
+ models:
+ - name: "my-model-v1"
+ enabled: true
+ max_tokens: 4096
+```
+
+## API Reference
+
+### Provider Management
+
+**List All Providers**
+```http
+GET /v1/providers
+```
+
+**Get Provider Details**
+```http
+GET /v1/providers/{name}
+```
+
+**Enable/Disable Provider**
+```http
+PUT /v1/providers/{name}/enabled
+```
+
+**Get Provider Models**
+```http
+GET /v1/providers/{name}/models
+```
+
+**Get Provider Capabilities**
+```http
+GET /v1/providers/{name}/capabilities
+```
+
+**Get Provider Status**
+```http
+GET /v1/providers/{name}/status
+```
+
+### Model Management
+
+**List Models**
+```http
+GET /v1/models
+```
+
+**List Models by Provider**
+```http
+GET /v1/models?provider=claude
+```
+
+**Get Model Details**
+```http
+GET /v1/models/{model}
+```
+
+### Capability Query
+
+**Check Model Support**
+```http
+GET /v1/capabilities?model=claude-3-5-sonnet&feature=streaming
+```
+
+**Get Provider Capabilities**
+```http
+GET /v1/providers/{name}/capabilities
+```
diff --git a/docs/fragemented/features/providers/USER.md b/docs/fragemented/features/providers/USER.md
new file mode 100644
index 0000000000..4691a42ee7
--- /dev/null
+++ b/docs/fragemented/features/providers/USER.md
@@ -0,0 +1,69 @@
+# User Guide: Providers
+
+This guide explains provider configuration using the current `cliproxyapi++` config schema.
+
+## Core Model
+
+- Client sends requests to OpenAI-compatible endpoints (`/v1/*`).
+- `cliproxyapi++` resolves model -> provider/credential based on prefix + aliases.
+- Provider blocks in `config.yaml` define auth, base URL, and model exposure.
+
+## Current Provider Configuration Patterns
+
+### Direct provider key
+
+```yaml
+claude-api-key:
+ - api-key: "sk-ant-..."
+ prefix: "claude-prod"
+```
+
+### Aggregator provider
+
+```yaml
+openrouter:
+ - api-key: "sk-or-v1-..."
+ base-url: "https://openrouter.ai/api/v1"
+ prefix: "or"
+```
+
+### OpenAI-compatible provider registry
+
+```yaml
+openai-compatibility:
+ - name: "openrouter"
+ prefix: "or"
+ base-url: "https://openrouter.ai/api/v1"
+ api-key-entries:
+ - api-key: "sk-or-v1-..."
+```
+
+### OAuth/session provider
+
+```yaml
+kiro:
+ - token-file: "~/.aws/sso/cache/kiro-auth-token.json"
+```
+
+## Operational Best Practices
+
+- Use `force-model-prefix: true` to enforce explicit routing boundaries.
+- Keep at least one fallback provider for each critical workload.
+- Use `models` + `alias` to keep client model names stable.
+- Use `excluded-models` to hide risky/high-cost models from consumers.
+
+## Validation Commands
+
+```bash
+curl -sS http://localhost:8317/v1/models \
+ -H "Authorization: Bearer " | jq '.data[:10]'
+
+curl -sS http://localhost:8317/v1/metrics/providers | jq
+```
+
+## Deep Dives
+
+- [Provider Usage](/provider-usage)
+- [Provider Catalog](/provider-catalog)
+- [Provider Operations](/provider-operations)
+- [Routing and Models Reference](/routing-reference)
diff --git a/docs/fragemented/features/providers/index.md b/docs/fragemented/features/providers/index.md
new file mode 100644
index 0000000000..bc0a5bc0be
--- /dev/null
+++ b/docs/fragemented/features/providers/index.md
@@ -0,0 +1,9 @@
+# Consolidated Index
+
+## Files
+
+* `SPEC.md`
+* `USER.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/features/providers/merged.md b/docs/fragemented/features/providers/merged.md
new file mode 100644
index 0000000000..d8d199fbce
--- /dev/null
+++ b/docs/fragemented/features/providers/merged.md
@@ -0,0 +1,992 @@
+# Merged Fragmented Markdown
+
+## Source: features/providers/SPEC.md
+
+# Technical Specification: Provider Registry & Support
+
+## Overview
+
+**cliproxyapi++** supports an extensive registry of LLM providers, from direct API integrations to multi-provider aggregators and proprietary protocols. This specification details the provider architecture, supported providers, and extension mechanisms.
+
+## Provider Architecture
+
+### Provider Types
+
+```
+Provider Registry
+├── Direct Providers
+│ ├── Claude (Anthropic)
+│ ├── Gemini (Google)
+│ ├── OpenAI
+│ ├── Mistral
+│ ├── Groq
+│ └── DeepSeek
+├── Aggregator Providers
+│ ├── OpenRouter
+│ ├── Together AI
+│ ├── Fireworks AI
+│ ├── Novita AI
+│ └── SiliconFlow
+└── Proprietary Providers
+ ├── Kiro (AWS CodeWhisperer)
+ ├── GitHub Copilot
+ ├── Roo Code
+ ├── Kilo AI
+ └── MiniMax
+```
+
+### Provider Interface
+
+```go
+type Provider interface {
+ // Provider metadata
+ Name() string
+ Type() ProviderType
+
+ // Model support
+ SupportsModel(model string) bool
+ ListModels() []Model
+
+ // Authentication
+ AuthType() AuthType
+ RequiresAuth() bool
+
+ // Execution
+ Execute(ctx context.Context, req *Request) (*Response, error)
+ ExecuteStream(ctx context.Context, req *Request) (<-chan *Chunk, error)
+
+ // Capabilities
+ SupportsStreaming() bool
+ SupportsFunctions() bool
+ MaxTokens() int
+
+ // Health
+ HealthCheck(ctx context.Context) error
+}
+```
+
+### Provider Configuration
+
+```go
+type ProviderConfig struct {
+ Name string `yaml:"name"`
+ Type string `yaml:"type"`
+ Enabled bool `yaml:"enabled"`
+ AuthType string `yaml:"auth_type"`
+ Endpoint string `yaml:"endpoint"`
+ Models []ModelConfig `yaml:"models"`
+ Features ProviderFeatures `yaml:"features"`
+ Limits ProviderLimits `yaml:"limits"`
+ Cooldown CooldownConfig `yaml:"cooldown"`
+ Priority int `yaml:"priority"`
+}
+
+type ModelConfig struct {
+ Name string `yaml:"name"`
+ Enabled bool `yaml:"enabled"`
+ MaxTokens int `yaml:"max_tokens"`
+ SupportsFunctions bool `yaml:"supports_functions"`
+ SupportsStreaming bool `yaml:"supports_streaming"`
+}
+
+type ProviderFeatures struct {
+ Streaming bool `yaml:"streaming"`
+ Functions bool `yaml:"functions"`
+ Vision bool `yaml:"vision"`
+ CodeGeneration bool `yaml:"code_generation"`
+ Multimodal bool `yaml:"multimodal"`
+}
+
+type ProviderLimits struct {
+ RequestsPerMinute int `yaml:"requests_per_minute"`
+ TokensPerMinute int `yaml:"tokens_per_minute"`
+ MaxTokensPerReq int `yaml:"max_tokens_per_request"`
+}
+```
+
+## Direct Providers
+
+### Claude (Anthropic)
+
+**Provider Type**: `claude`
+
+**Authentication**: API Key
+
+**Models**:
+- `claude-3-5-sonnet` (max: 200K tokens)
+- `claude-3-5-haiku` (max: 200K tokens)
+- `claude-3-opus` (max: 200K tokens)
+
+**Features**:
+- Streaming: ✅
+- Functions: ✅
+- Vision: ✅
+- Code generation: ✅
+
+**Configuration**:
+```yaml
+providers:
+ claude:
+ type: "claude"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.anthropic.com"
+ models:
+ - name: "claude-3-5-sonnet"
+ enabled: true
+ max_tokens: 200000
+ supports_functions: true
+ supports_streaming: true
+ features:
+ streaming: true
+ functions: true
+ vision: true
+ code_generation: true
+ limits:
+ requests_per_minute: 60
+ tokens_per_minute: 40000
+```
+
+**API Endpoint**: `https://api.anthropic.com/v1/messages`
+
+**Request Format**:
+```json
+{
+ "model": "claude-3-5-sonnet-20241022",
+ "max_tokens": 1024,
+ "messages": [
+ {"role": "user", "content": "Hello!"}
+ ],
+ "stream": true
+}
+```
+
+**Headers**:
+```
+x-api-key: sk-ant-xxxx
+anthropic-version: 2023-06-01
+content-type: application/json
+```
+
+### Gemini (Google)
+
+**Provider Type**: `gemini`
+
+**Authentication**: API Key
+
+**Models**:
+- `gemini-1.5-pro` (max: 1M tokens)
+- `gemini-1.5-flash` (max: 1M tokens)
+- `gemini-1.0-pro` (max: 32K tokens)
+
+**Features**:
+- Streaming: ✅
+- Functions: ✅
+- Vision: ✅
+- Multimodal: ✅
+
+**Configuration**:
+```yaml
+providers:
+ gemini:
+ type: "gemini"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://generativelanguage.googleapis.com"
+ models:
+ - name: "gemini-1.5-pro"
+ enabled: true
+ max_tokens: 1000000
+ features:
+ streaming: true
+ functions: true
+ vision: true
+ multimodal: true
+```
+
+### OpenAI
+
+**Provider Type**: `openai`
+
+**Authentication**: API Key
+
+**Models**:
+- `gpt-4-turbo` (max: 128K tokens)
+- `gpt-4` (max: 8K tokens)
+- `gpt-3.5-turbo` (max: 16K tokens)
+
+**Features**:
+- Streaming: ✅
+- Functions: ✅
+- Vision: ✅ (GPT-4 Vision)
+
+**Configuration**:
+```yaml
+providers:
+ openai:
+ type: "openai"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.openai.com"
+ models:
+ - name: "gpt-4-turbo"
+ enabled: true
+ max_tokens: 128000
+```
+
+## Aggregator Providers
+
+### OpenRouter
+
+**Provider Type**: `openrouter`
+
+**Authentication**: API Key
+
+**Purpose**: Access multiple models through a single API
+
+**Features**:
+- Access to 100+ models
+- Unified pricing
+- Model comparison
+
+**Configuration**:
+```yaml
+providers:
+ openrouter:
+ type: "openrouter"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://openrouter.ai/api"
+ models:
+ - name: "anthropic/claude-3.5-sonnet"
+ enabled: true
+```
+
+### Together AI
+
+**Provider Type**: `together`
+
+**Authentication**: API Key
+
+**Purpose**: Open-source models at scale
+
+**Features**:
+- Open-source models (Llama, Mistral, etc.)
+- Fast inference
+- Cost-effective
+
+**Configuration**:
+```yaml
+providers:
+ together:
+ type: "together"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.together.xyz"
+```
+
+### Fireworks AI
+
+**Provider Type**: `fireworks`
+
+**Authentication**: API Key
+
+**Purpose**: Fast, open-source models
+
+**Features**:
+- Sub-second latency
+- Open-source models
+- API-first
+
+**Configuration**:
+```yaml
+providers:
+ fireworks:
+ type: "fireworks"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.fireworks.ai"
+```
+
+## Proprietary Providers
+
+### Kiro (AWS CodeWhisperer)
+
+**Provider Type**: `kiro`
+
+**Authentication**: OAuth Device Flow (AWS Builder ID / Identity Center)
+
+**Purpose**: Code generation and completion
+
+**Features**:
+- Browser-based auth UI
+- AWS SSO integration
+- Token refresh
+
+**Authentication Flow**:
+1. User visits `/v0/oauth/kiro`
+2. Selects AWS Builder ID or Identity Center
+3. Completes browser-based login
+4. Token stored and auto-refreshed
+
+**Configuration**:
+```yaml
+providers:
+ kiro:
+ type: "kiro"
+ enabled: true
+ auth_type: "oauth_device_flow"
+ endpoint: "https://codeguru.amazonaws.com"
+ models:
+ - name: "codeguru-codegen"
+ enabled: true
+ features:
+ code_generation: true
+```
+
+**Web UI Implementation**:
+```go
+func HandleKiroAuth(c *gin.Context) {
+ // Request device code
+ dc, err := kiro.GetDeviceCode()
+ if err != nil {
+ c.JSON(500, gin.H{"error": err.Error()})
+ return
+ }
+
+ // Render HTML page
+ c.HTML(200, "kiro_auth.html", gin.H{
+ "UserCode": dc.UserCode,
+ "VerificationURL": dc.VerificationURL,
+ "VerificationURLComplete": dc.VerificationURLComplete,
+ })
+
+ // Start background polling
+ go kiro.PollForToken(dc.DeviceCode)
+}
+```
+
+### GitHub Copilot
+
+**Provider Type**: `copilot`
+
+**Authentication**: OAuth Device Flow
+
+**Purpose**: Code completion and generation
+
+**Features**:
+- Full OAuth device flow
+- Per-credential quota tracking
+- Multi-credential support
+- Auto token refresh
+
+**Authentication Flow**:
+1. Request device code from GitHub
+2. Display user code and verification URL
+3. User authorizes via browser
+4. Poll for access token
+5. Store token with refresh token
+6. Auto-refresh before expiration
+
+**Configuration**:
+```yaml
+providers:
+ copilot:
+ type: "copilot"
+ enabled: true
+ auth_type: "oauth_device_flow"
+ endpoint: "https://api.githubcopilot.com"
+ models:
+ - name: "copilot-codegen"
+ enabled: true
+ features:
+ code_generation: true
+```
+
+**Token Storage**:
+```json
+{
+ "type": "oauth_device_flow",
+ "access_token": "ghu_xxx",
+ "refresh_token": "ghr_xxx",
+ "expires_at": "2026-02-20T00:00:00Z",
+ "quota": {
+ "limit": 10000,
+ "used": 100,
+ "remaining": 9900
+ }
+}
+```
+
+### Roo Code
+
+**Provider Type**: "roocode"
+
+**Authentication**: API Key
+
+**Purpose**: AI coding assistant
+
+**Features**:
+- Code generation
+- Code explanation
+- Refactoring
+
+**Configuration**:
+```yaml
+providers:
+ roocode:
+ type: "roocode"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.roocode.ai"
+```
+
+### Kilo AI
+
+**Provider Type**: "kiloai"
+
+**Authentication**: API Key
+
+**Purpose**: Custom AI solutions
+
+**Features**:
+- Custom models
+- Enterprise deployments
+
+**Configuration**:
+```yaml
+providers:
+ kiloai:
+ type: "kiloai"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.kiloai.io"
+```
+
+### MiniMax
+
+**Provider Type**: "minimax"
+
+**Authentication**: API Key
+
+**Purpose**: Chinese LLM provider
+
+**Features**:
+- Bilingual support
+- Fast inference
+- Cost-effective
+
+**Configuration**:
+```yaml
+providers:
+ minimax:
+ type: "minimax"
+ enabled: true
+ auth_type: "api_key"
+ endpoint: "https://api.minimax.chat"
+```
+
+## Provider Registry
+
+### Registry Interface
+
+```go
+type ProviderRegistry struct {
+ mu sync.RWMutex
+ providers map[string]Provider
+ byType map[ProviderType][]Provider
+}
+
+func NewRegistry() *ProviderRegistry {
+ return &ProviderRegistry{
+ providers: make(map[string]Provider),
+ byType: make(map[ProviderType][]Provider),
+ }
+}
+
+func (r *ProviderRegistry) Register(provider Provider) error {
+ r.mu.Lock()
+ defer r.mu.Unlock()
+
+ if _, exists := r.providers[provider.Name()]; exists {
+ return fmt.Errorf("provider already registered: %s", provider.Name())
+ }
+
+ r.providers[provider.Name()] = provider
+ r.byType[provider.Type()] = append(r.byType[provider.Type()], provider)
+
+ return nil
+}
+
+func (r *ProviderRegistry) Get(name string) (Provider, error) {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ provider, ok := r.providers[name]
+ if !ok {
+ return nil, fmt.Errorf("provider not found: %s", name)
+ }
+
+ return provider, nil
+}
+
+func (r *ProviderRegistry) ListByType(t ProviderType) []Provider {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ return r.byType[t]
+}
+
+func (r *ProviderRegistry) ListAll() []Provider {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ providers := make([]Provider, 0, len(r.providers))
+ for _, p := range r.providers {
+ providers = append(providers, p)
+ }
+
+ return providers
+}
+```
+
+### Auto-Registration
+
+```go
+func RegisterBuiltinProviders(registry *ProviderRegistry) {
+ // Direct providers
+ registry.Register(NewClaudeProvider())
+ registry.Register(NewGeminiProvider())
+ registry.Register(NewOpenAIProvider())
+ registry.Register(NewMistralProvider())
+ registry.Register(NewGroqProvider())
+ registry.Register(NewDeepSeekProvider())
+
+ // Aggregators
+ registry.Register(NewOpenRouterProvider())
+ registry.Register(NewTogetherProvider())
+ registry.Register(NewFireworksProvider())
+ registry.Register(NewNovitaProvider())
+ registry.Register(NewSiliconFlowProvider())
+
+ // Proprietary
+ registry.Register(NewKiroProvider())
+ registry.Register(NewCopilotProvider())
+ registry.Register(NewRooCodeProvider())
+ registry.Register(NewKiloAIProvider())
+ registry.Register(NewMiniMaxProvider())
+}
+```
+
+## Model Mapping
+
+### OpenAI to Provider Model Mapping
+
+```go
+type ModelMapper struct {
+ mappings map[string]map[string]string // openai_model -> provider -> provider_model
+}
+
+var defaultMappings = map[string]map[string]string{
+ "claude-3-5-sonnet": {
+ "claude": "claude-3-5-sonnet-20241022",
+ "openrouter": "anthropic/claude-3.5-sonnet",
+ },
+ "gpt-4-turbo": {
+ "openai": "gpt-4-turbo-preview",
+ "openrouter": "openai/gpt-4-turbo",
+ },
+ "gemini-1.5-pro": {
+ "gemini": "gemini-1.5-pro-preview-0514",
+ "openrouter": "google/gemini-pro-1.5",
+ },
+}
+
+func (m *ModelMapper) MapModel(openaiModel, provider string) (string, error) {
+ if providerMapping, ok := m.mappings[openaiModel]; ok {
+ if providerModel, ok := providerMapping[provider]; ok {
+ return providerModel, nil
+ }
+ }
+
+ // Default: return original model name
+ return openaiModel, nil
+}
+```
+
+### Custom Model Mappings
+
+```yaml
+providers:
+ custom:
+ type: "custom"
+ model_mappings:
+ "gpt-4": "my-provider-v1-large"
+ "gpt-3.5-turbo": "my-provider-v1-medium"
+```
+
+## Provider Capabilities
+
+### Capability Detection
+
+```go
+type CapabilityDetector struct {
+ registry *ProviderRegistry
+}
+
+func (d *CapabilityDetector) DetectCapabilities(provider string) (*ProviderCapabilities, error) {
+ p, err := d.registry.Get(provider)
+ if err != nil {
+ return nil, err
+ }
+
+ caps := &ProviderCapabilities{
+ Streaming: p.SupportsStreaming(),
+ Functions: p.SupportsFunctions(),
+ Vision: p.SupportsVision(),
+ CodeGeneration: p.SupportsCodeGeneration(),
+ MaxTokens: p.MaxTokens(),
+ }
+
+ return caps, nil
+}
+
+type ProviderCapabilities struct {
+ Streaming bool `json:"streaming"`
+ Functions bool `json:"functions"`
+ Vision bool `json:"vision"`
+ CodeGeneration bool `json:"code_generation"`
+ MaxTokens int `json:"max_tokens"`
+}
+```
+
+### Capability Matrix
+
+| Provider | Streaming | Functions | Vision | Code | Max Tokens |
+|----------|-----------|-----------|--------|------|------------|
+| Claude | ✅ | ✅ | ✅ | ✅ | 200K |
+| Gemini | ✅ | ✅ | ✅ | ❌ | 1M |
+| OpenAI | ✅ | ✅ | ✅ | ❌ | 128K |
+| Kiro | ❌ | ❌ | ❌ | ✅ | N/A |
+| Copilot | ✅ | ❌ | ❌ | ✅ | N/A |
+
+## Provider Selection
+
+### Selection Strategies
+
+```go
+type ProviderSelector interface {
+ Select(request *Request, available []Provider) (Provider, error)
+}
+
+type RoundRobinSelector struct {
+ counter int
+}
+
+func (s *RoundRobinSelector) Select(request *Request, available []Provider) (Provider, error) {
+ if len(available) == 0 {
+ return nil, fmt.Errorf("no providers available")
+ }
+
+ selected := available[s.counter%len(available)]
+ s.counter++
+
+ return selected, nil
+}
+
+type CapabilityBasedSelector struct{}
+
+func (s *CapabilityBasedSelector) Select(request *Request, available []Provider) (Provider, error) {
+ // Filter providers that support required capabilities
+ var capable []Provider
+ for _, p := range available {
+ if request.RequiresStreaming && !p.SupportsStreaming() {
+ continue
+ }
+ if request.RequiresFunctions && !p.SupportsFunctions() {
+ continue
+ }
+ capable = append(capable, p)
+ }
+
+ if len(capable) == 0 {
+ return nil, fmt.Errorf("no providers support required capabilities")
+ }
+
+ // Select first capable provider
+ return capable[0], nil
+}
+```
+
+### Request Routing
+
+```go
+type RequestRouter struct {
+ registry *ProviderRegistry
+ selector ProviderSelector
+}
+
+func (r *RequestRouter) Route(request *Request) (Provider, error) {
+ // Get enabled providers
+ providers := r.registry.ListEnabled()
+
+ // Filter by model support
+ var capable []Provider
+ for _, p := range providers {
+ if p.SupportsModel(request.Model) {
+ capable = append(capable, p)
+ }
+ }
+
+ if len(capable) == 0 {
+ return nil, fmt.Errorf("no providers support model: %s", request.Model)
+ }
+
+ // Select provider
+ return r.selector.Select(request, capable)
+}
+```
+
+## Adding a New Provider
+
+### Step 1: Define Provider
+
+```go
+package provider
+
+type MyProvider struct {
+ config *ProviderConfig
+}
+
+func NewMyProvider(cfg *ProviderConfig) *MyProvider {
+ return &MyProvider{config: cfg}
+}
+
+func (p *MyProvider) Name() string {
+ return p.config.Name
+}
+
+func (p *MyProvider) Type() ProviderType {
+ return ProviderTypeDirect
+}
+
+func (p *MyProvider) SupportsModel(model string) bool {
+ for _, m := range p.config.Models {
+ if m.Name == model && m.Enabled {
+ return true
+ }
+ }
+ return false
+}
+
+func (p *MyProvider) Execute(ctx context.Context, req *Request) (*Response, error) {
+ // Implement execution
+ return nil, nil
+}
+
+func (p *MyProvider) ExecuteStream(ctx context.Context, req *Request) (<-chan *Chunk, error) {
+ // Implement streaming
+ return nil, nil
+}
+
+func (p *MyProvider) SupportsStreaming() bool {
+ for _, m := range p.config.Models {
+ if m.SupportsStreaming {
+ return true
+ }
+ }
+ return false
+}
+
+func (p *MyProvider) SupportsFunctions() bool {
+ for _, m := range p.config.Models {
+ if m.SupportsFunctions {
+ return true
+ }
+ }
+ return false
+}
+
+func (p *MyProvider) MaxTokens() int {
+ max := 0
+ for _, m := range p.config.Models {
+ if m.MaxTokens > max {
+ max = m.MaxTokens
+ }
+ }
+ return max
+}
+
+func (p *MyProvider) HealthCheck(ctx context.Context) error {
+ // Implement health check
+ return nil
+}
+```
+
+### Step 2: Register Provider
+
+```go
+func init() {
+ registry.Register(NewMyProvider(&ProviderConfig{
+ Name: "myprovider",
+ Type: "direct",
+ Enabled: false,
+ }))
+}
+```
+
+### Step 3: Add Configuration
+
+```yaml
+providers:
+ myprovider:
+ type: "myprovider"
+ enabled: false
+ auth_type: "api_key"
+ endpoint: "https://api.myprovider.com"
+ models:
+ - name: "my-model-v1"
+ enabled: true
+ max_tokens: 4096
+```
+
+## API Reference
+
+### Provider Management
+
+**List All Providers**
+```http
+GET /v1/providers
+```
+
+**Get Provider Details**
+```http
+GET /v1/providers/{name}
+```
+
+**Enable/Disable Provider**
+```http
+PUT /v1/providers/{name}/enabled
+```
+
+**Get Provider Models**
+```http
+GET /v1/providers/{name}/models
+```
+
+**Get Provider Capabilities**
+```http
+GET /v1/providers/{name}/capabilities
+```
+
+**Get Provider Status**
+```http
+GET /v1/providers/{name}/status
+```
+
+### Model Management
+
+**List Models**
+```http
+GET /v1/models
+```
+
+**List Models by Provider**
+```http
+GET /v1/models?provider=claude
+```
+
+**Get Model Details**
+```http
+GET /v1/models/{model}
+```
+
+### Capability Query
+
+**Check Model Support**
+```http
+GET /v1/capabilities?model=claude-3-5-sonnet&feature=streaming
+```
+
+**Get Provider Capabilities**
+```http
+GET /v1/providers/{name}/capabilities
+```
+
+
+---
+
+## Source: features/providers/USER.md
+
+# User Guide: Providers
+
+This guide explains provider configuration using the current `cliproxyapi++` config schema.
+
+## Core Model
+
+- Client sends requests to OpenAI-compatible endpoints (`/v1/*`).
+- `cliproxyapi++` resolves model -> provider/credential based on prefix + aliases.
+- Provider blocks in `config.yaml` define auth, base URL, and model exposure.
+
+## Current Provider Configuration Patterns
+
+### Direct provider key
+
+```yaml
+claude-api-key:
+ - api-key: "sk-ant-..."
+ prefix: "claude-prod"
+```
+
+### Aggregator provider
+
+```yaml
+openrouter:
+ - api-key: "sk-or-v1-..."
+ base-url: "https://openrouter.ai/api/v1"
+ prefix: "or"
+```
+
+### OpenAI-compatible provider registry
+
+```yaml
+openai-compatibility:
+ - name: "openrouter"
+ prefix: "or"
+ base-url: "https://openrouter.ai/api/v1"
+ api-key-entries:
+ - api-key: "sk-or-v1-..."
+```
+
+### OAuth/session provider
+
+```yaml
+kiro:
+ - token-file: "~/.aws/sso/cache/kiro-auth-token.json"
+```
+
+## Operational Best Practices
+
+- Use `force-model-prefix: true` to enforce explicit routing boundaries.
+- Keep at least one fallback provider for each critical workload.
+- Use `models` + `alias` to keep client model names stable.
+- Use `excluded-models` to hide risky/high-cost models from consumers.
+
+## Validation Commands
+
+```bash
+curl -sS http://localhost:8317/v1/models \
+ -H "Authorization: Bearer " | jq '.data[:10]'
+
+curl -sS http://localhost:8317/v1/metrics/providers | jq
+```
+
+## Deep Dives
+
+- [Provider Usage](/provider-usage)
+- [Provider Catalog](/provider-catalog)
+- [Provider Operations](/provider-operations)
+- [Routing and Models Reference](/routing-reference)
+
+
+---
diff --git a/docs/fragemented/features/security/SPEC.md b/docs/fragemented/features/security/SPEC.md
new file mode 100644
index 0000000000..1857192dce
--- /dev/null
+++ b/docs/fragemented/features/security/SPEC.md
@@ -0,0 +1,732 @@
+# Technical Specification: Security Hardening ("Defense in Depth")
+
+## Overview
+
+**cliproxyapi++** implements a comprehensive "Defense in Depth" security philosophy with multiple layers of protection: CI-enforced code integrity, hardened container images, device fingerprinting, and secure credential management.
+
+## Security Architecture
+
+### Defense Layers
+
+```
+Layer 1: Code Integrity
+├── Path Guard (CI enforcement)
+├── Signed releases
+└── Multi-arch builds
+
+Layer 2: Container Hardening
+├── Minimal base image (Alpine 3.22.0)
+├── Non-root user
+├── Read-only filesystem
+└── Seccomp profiles
+
+Layer 3: Credential Security
+├── Encrypted storage
+├── Secure file permissions
+├── Token refresh isolation
+└── Device fingerprinting
+
+Layer 4: Network Security
+├── TLS only
+├── Request validation
+├── Rate limiting
+└── IP allowlisting
+
+Layer 5: Operational Security
+├── Audit logging
+├── Secret scanning
+├── Dependency scanning
+└── Vulnerability management
+```
+
+## Layer 1: Code Integrity
+
+### Path Guard CI Enforcement
+
+**Purpose**: Prevent unauthorized changes to critical translation logic during pull requests.
+
+**Implementation** (`.github/workflows/pr-path-guard.yml`):
+```yaml
+name: Path Guard
+on:
+ pull_request:
+ paths:
+ - 'pkg/llmproxy/translator/**'
+ - 'pkg/llmproxy/auth/**'
+
+jobs:
+ guard:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Check path protection
+ run: |
+ # Only allow changes from trusted maintainers
+ if ! git log --format="%an" ${{ github.event.pull_request.base.sha }}..${{ github.sha }} | grep -q "KooshaPari"; then
+ echo "::error::Unauthorized changes to protected paths"
+ exit 1
+ fi
+
+ - name: Verify no translator logic changes
+ run: |
+ # Ensure core translation logic hasn't been tampered
+ if git diff ${{ github.event.pull_request.base.sha }}..${{ github.sha }} --name-only | grep -q "pkg/llmproxy/translator/.*\.go$"; then
+ echo "::warning::Translator logic changed - requires maintainer review"
+ fi
+```
+
+**Protected Paths**:
+- `pkg/llmproxy/translator/` - Core translation logic
+- `pkg/llmproxy/auth/` - Authentication flows
+- `pkg/llmproxy/provider/` - Provider execution
+
+**Authorization Rules**:
+- Only repository maintainers can modify
+- All changes require at least 2 maintainer approvals
+- Must pass security review
+
+### Signed Releases
+
+**Purpose**: Ensure released artifacts are authentic and tamper-proof.
+
+**Implementation** (`.goreleaser.yml`):
+```yaml
+signs:
+ - artifacts: checksum
+ args:
+ - "--batch"
+ - "--local-user"
+ - "${GPG_FINGERPRINT}"
+```
+
+**Verification**:
+```bash
+# Download release
+wget https://github.com/KooshaPari/cliproxyapi-plusplus/releases/download/v6.0.0/cliproxyapi-plusplus_6.0.0_checksums.txt
+
+# Download signature
+wget https://github.com/KooshaPari/cliproxyapi-plusplus/releases/download/v6.0.0/cliproxyapi-plusplus_6.0.0_checksums.txt.sig
+
+# Import GPG key
+gpg --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXX
+
+# Verify signature
+gpg --verify cliproxyapi-plusplus_6.0.0_checksums.txt.sig cliproxyapi-plusplus_6.0.0_checksums.txt
+
+# Verify checksum
+sha256sum -c cliproxyapi-plusplus_6.0.0_checksums.txt
+```
+
+### Multi-Arch Builds
+
+**Purpose**: Provide consistent security across architectures.
+
+**Platforms**:
+- `linux/amd64`
+- `linux/arm64`
+- `darwin/amd64`
+- `darwin/arm64`
+
+**CI Build Matrix**:
+```yaml
+strategy:
+ matrix:
+ goos: [linux, darwin]
+ goarch: [amd64, arm64]
+```
+
+## Layer 2: Container Hardening
+
+### Minimal Base Image
+
+**Base**: Alpine Linux 3.22.0
+
+**Dockerfile**:
+```dockerfile
+FROM alpine:3.22.0 AS builder
+
+# Install build dependencies
+RUN apk add --no-cache \
+ ca-certificates \
+ gcc \
+ musl-dev
+
+# Build application
+COPY . .
+RUN go build -o cliproxyapi cmd/server/main.go
+
+# Final stage - minimal runtime
+FROM scratch
+COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
+COPY --from=builder /cliproxyapi /cliproxyapi
+
+# Non-root user
+USER 65534:65534
+
+# Read-only filesystem
+VOLUME ["/config", "/auths", "/logs"]
+
+ENTRYPOINT ["/cliproxyapi"]
+```
+
+**Security Benefits**:
+- Minimal attack surface (no shell, no package manager)
+- No unnecessary packages
+- Static binary linking
+- Reproducible builds
+
+### Security Context
+
+**docker-compose.yml**:
+```yaml
+services:
+ cliproxy:
+ image: KooshaPari/cliproxyapi-plusplus:latest
+ security_opt:
+ - no-new-privileges:true
+ read_only: true
+ tmpfs:
+ - /tmp:noexec,nosuid,size=100m
+ cap_drop:
+ - ALL
+ cap_add:
+ - NET_BIND_SERVICE
+ user: "65534:65534"
+```
+
+**Explanation**:
+- `no-new-privileges`: Prevent privilege escalation
+- `read_only`: Immutable filesystem
+- `tmpfs`: Noexec on temporary files
+- `cap_drop:ALL`: Drop all capabilities
+- `cap_add:NET_BIND_SERVICE`: Only allow binding ports
+- `user:65534:65534`: Run as non-root (nobody)
+
+### Seccomp Profiles
+
+**Custom seccomp profile** (`seccomp-profile.json`):
+```json
+{
+ "defaultAction": "SCMP_ACT_ERRNO",
+ "architectures": ["SCMP_ARCH_X86_64", "SCMP_ARCH_AARCH64"],
+ "syscalls": [
+ {
+ "names": ["read", "write", "open", "close", "stat", "fstat", "lstat"],
+ "action": "SCMP_ACT_ALLOW"
+ },
+ {
+ "names": ["socket", "bind", "listen", "accept", "connect"],
+ "action": "SCMP_ACT_ALLOW"
+ },
+ {
+ "names": ["execve", "fork", "clone"],
+ "action": "SCMP_ACT_DENY"
+ }
+ ]
+}
+```
+
+**Usage**:
+```yaml
+security_opt:
+ - seccomp:/path/to/seccomp-profile.json
+```
+
+## Layer 3: Credential Security
+
+### Encrypted Storage
+
+**Purpose**: Protect credentials at rest.
+
+**Implementation**:
+```go
+type CredentialEncryptor struct {
+ key []byte
+}
+
+func NewCredentialEncryptor(key string) (*CredentialEncryptor, error) {
+ if len(key) != 32 {
+ return nil, fmt.Errorf("key must be 32 bytes")
+ }
+
+ return &CredentialEncryptor{
+ key: []byte(key),
+ }, nil
+}
+
+func (e *CredentialEncryptor) Encrypt(data []byte) ([]byte, error) {
+ block, err := aes.NewCipher(e.key)
+ if err != nil {
+ return nil, err
+ }
+
+ gcm, err := cipher.NewGCM(block)
+ if err != nil {
+ return nil, err
+ }
+
+ nonce := make([]byte, gcm.NonceSize())
+ if _, err := io.ReadFull(rand.Reader, nonce); err != nil {
+ return nil, err
+ }
+
+ return gcm.Seal(nonce, nonce, data, nil), nil
+}
+
+func (e *CredentialEncryptor) Decrypt(data []byte) ([]byte, error) {
+ block, err := aes.NewCipher(e.key)
+ if err != nil {
+ return nil, err
+ }
+
+ gcm, err := cipher.NewGCM(block)
+ if err != nil {
+ return nil, err
+ }
+
+ nonceSize := gcm.NonceSize()
+ if len(data) < nonceSize {
+ return nil, fmt.Errorf("ciphertext too short")
+ }
+
+ nonce, ciphertext := data[:nonceSize], data[nonceSize:]
+ return gcm.Open(nil, nonce, ciphertext, nil)
+}
+```
+
+**Configuration**:
+```yaml
+auth:
+ encryption:
+ enabled: true
+ key: "YOUR_32_BYTE_ENCRYPTION_KEY_HERE"
+```
+
+### Secure File Permissions
+
+**Automatic enforcement**:
+```go
+func SetSecurePermissions(path string) error {
+ // File: 0600 (rw-------)
+ // Directory: 0700 (rwx------)
+ if info, err := os.Stat(path); err == nil {
+ if info.IsDir() {
+ return os.Chmod(path, 0700)
+ }
+ return os.Chmod(path, 0600)
+ }
+ return fmt.Errorf("file not found: %s", path)
+}
+```
+
+**Verification**:
+```go
+func VerifySecurePermissions(path string) error {
+ info, err := os.Stat(path)
+ if err != nil {
+ return err
+ }
+
+ mode := info.Mode().Perm()
+ if info.IsDir() && mode != 0700 {
+ return fmt.Errorf("directory has insecure permissions: %o", mode)
+ }
+
+ if !info.IsDir() && mode != 0600 {
+ return fmt.Errorf("file has insecure permissions: %o", mode)
+ }
+
+ return nil
+}
+```
+
+### Token Refresh Isolation
+
+**Purpose**: Prevent credential leakage during refresh.
+
+**Implementation**:
+```go
+type RefreshWorker struct {
+ isolatedMemory bool
+}
+
+func (w *RefreshWorker) RefreshToken(auth *Auth) (*AuthToken, error) {
+ // Use isolated goroutine
+ result := make(chan *RefreshResult)
+ go w.isolatedRefresh(auth, result)
+
+ select {
+ case res := <-result:
+ if res.Error != nil {
+ return nil, res.Error
+ }
+ // Clear memory after use
+ defer w.scrubMemory(res.Token)
+ return res.Token, nil
+ case <-time.After(30 * time.Second):
+ return nil, fmt.Errorf("refresh timeout")
+ }
+}
+
+func (w *RefreshWorker) scrubMemory(token *AuthToken) {
+ // Zero out sensitive data
+ for i := range token.AccessToken {
+ token.AccessToken = ""
+ }
+ token.RefreshToken = ""
+}
+```
+
+### Device Fingerprinting
+
+**Purpose**: Generate unique, immutable device identifiers for provider security checks.
+
+**Implementation**:
+```go
+func GenerateDeviceFingerprint() (string, error) {
+ mac, err := getMACAddress()
+ if err != nil {
+ return "", err
+ }
+
+ hostname, err := os.Hostname()
+ if err != nil {
+ return "", err
+ }
+
+ // Create stable fingerprint
+ h := sha256.New()
+ h.Write([]byte(mac))
+ h.Write([]byte(hostname))
+ h.Write([]byte("cliproxyapi++")) // Salt
+
+ fingerprint := hex.EncodeToString(h.Sum(nil))
+
+ // Store for persistence
+ return fingerprint, nil
+}
+
+func getMACAddress() (string, error) {
+ interfaces, err := net.Interfaces()
+ if err != nil {
+ return "", err
+ }
+
+ for _, iface := range interfaces {
+ if iface.Flags&net.FlagUp == 0 {
+ continue
+ }
+ if len(iface.HardwareAddr) == 0 {
+ continue
+ }
+
+ return iface.HardwareAddr.String(), nil
+ }
+
+ return "", fmt.Errorf("no MAC address found")
+}
+```
+
+**Usage**:
+```go
+fingerprint, _ := GenerateDeviceFingerprint()
+
+// Send with requests
+headers["X-Device-Fingerprint"] = fingerprint
+```
+
+## Layer 4: Network Security
+
+### TLS Enforcement
+
+**Configuration**:
+```yaml
+server:
+ port: 8317
+ tls:
+ enabled: true
+ cert_file: "/config/tls.crt"
+ key_file: "/config/tls.key"
+ min_version: "1.2"
+ cipher_suites:
+ - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
+ - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
+```
+
+**HTTP Strict Transport Security (HSTS)**:
+```go
+func addSecurityHeaders(c *gin.Context) {
+ c.Header("Strict-Transport-Security", "max-age=31536000; includeSubDomains")
+ c.Header("X-Content-Type-Options", "nosniff")
+ c.Header("X-Frame-Options", "DENY")
+ c.Header("X-XSS-Protection", "1; mode=block")
+ c.Header("Content-Security-Policy", "default-src 'self'")
+}
+```
+
+### Request Validation
+
+**Schema validation**:
+```go
+type ChatRequestValidator struct {
+ validator *validator.Validate
+}
+
+func (v *ChatRequestValidator) Validate(req *openai.ChatCompletionRequest) error {
+ return v.validator.Struct(req)
+}
+
+// Max tokens limits
+func (v *ChatRequestValidator) ValidateMaxTokens(maxTokens int) error {
+ if maxTokens > 4096 {
+ return fmt.Errorf("max_tokens exceeds limit of 4096")
+ }
+ return nil
+}
+```
+
+### Rate Limiting
+
+**Token bucket implementation**:
+```go
+type RateLimiter struct {
+ limiters map[string]*rate.Limiter
+ mu sync.RWMutex
+}
+
+func NewRateLimiter() *RateLimiter {
+ return &RateLimiter{
+ limiters: make(map[string]*rate.Limiter),
+ }
+}
+
+func (r *RateLimiter) Allow(ip string) bool {
+ r.mu.Lock()
+ defer r.mu.Unlock()
+
+ limiter, exists := r.limiters[ip]
+ if !exists {
+ limiter = rate.NewLimiter(rate.Limit(10), 20) // 10 req/s, burst 20
+ r.limiters[ip] = limiter
+ }
+
+ return limiter.Allow()
+}
+```
+
+**Per-provider rate limiting**:
+```yaml
+providers:
+ claude:
+ rate_limit:
+ requests_per_minute: 100
+ tokens_per_minute: 100000
+```
+
+### IP Allowlisting
+
+**Configuration**:
+```yaml
+server:
+ security:
+ ip_allowlist:
+ enabled: true
+ allowed_ips:
+ - "10.0.0.0/8"
+ - "192.168.1.100"
+ ip_denylist:
+ - "0.0.0.0/0" # Block all except allowed
+```
+
+**Implementation**:
+```go
+type IPFilter struct {
+ allowed []*net.IPNet
+ denied []*net.IPNet
+}
+
+func (f *IPFilter) IsAllowed(ip net.IP) bool {
+ // Check denylist first
+ for _, deny := range f.denied {
+ if deny.Contains(ip) {
+ return false
+ }
+ }
+
+ // Check allowlist
+ if len(f.allowed) == 0 {
+ return true // No allowlist = allow all
+ }
+
+ for _, allow := range f.allowed {
+ if allow.Contains(ip) {
+ return true
+ }
+ }
+
+ return false
+}
+```
+
+## Layer 5: Operational Security
+
+### Audit Logging
+
+**Structured logging**:
+```go
+type AuditLogger struct {
+ logger *slog.Logger
+}
+
+func (a *AuditLogger) LogAuthEvent(event AuthEvent) {
+ a.logger.LogAttrs(
+ context.Background(),
+ slog.LevelInfo,
+ "auth_event",
+ slog.String("event_type", event.Type),
+ slog.String("provider", event.Provider),
+ slog.String("user_id", event.UserID),
+ slog.String("ip", event.IP),
+ slog.Time("timestamp", event.Timestamp),
+ slog.String("result", event.Result),
+ )
+}
+```
+
+**Audit events**:
+- Authentication attempts (success/failure)
+- Token refresh
+- Credential access
+- Configuration changes
+- Provider requests
+
+### Secret Scanning
+
+**Pre-commit hook** (`.git/hooks/pre-commit`):
+```bash
+#!/bin/bash
+
+# Scan for potential secrets
+if git diff --cached --name-only | xargs grep -lE "sk-[a-zA-Z0-9]{48}|AIza[a-zA-Z0-9_-]{35}"; then
+ echo "::error::Potential secrets detected in staged files"
+ exit 1
+fi
+```
+
+**CI secret scanning**:
+```yaml
+- name: Scan for secrets
+ run: |
+ pip install git-secrets
+ git secrets --register-aws
+ git secrets --scan
+```
+
+### Dependency Scanning
+
+**CI integration**:
+```yaml
+- name: Run Trivy vulnerability scanner
+ uses: aquasecurity/trivy-action@master
+ with:
+ scan-type: 'fs'
+ scan-ref: '.'
+ format: 'sarif'
+ output: 'trivy-results.sarif'
+```
+
+### Vulnerability Management
+
+**Weekly scan schedule**:
+```yaml
+name: Vulnerability Scan
+on:
+ schedule:
+ - cron: '0 0 * * 0' # Weekly
+
+jobs:
+ scan:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Run Trivy
+ run: |
+ trivy fs --severity HIGH,CRITICAL --exit-code 1 .
+```
+
+## Security Monitoring
+
+### Metrics
+
+**Security metrics exposed**:
+```go
+type SecurityMetrics struct {
+ AuthFailures int64
+ RateLimitViolations int64
+ SuspiciousActivity int64
+ BlockedIPs int64
+}
+```
+
+**Alerting**:
+```yaml
+alerts:
+ - name: High auth failure rate
+ condition: auth_failures > 100
+ duration: 5m
+ action: notify_admin
+
+ - name: Rate limit violations
+ condition: rate_limit_violations > 50
+ duration: 1m
+ action: block_ip
+```
+
+### Incident Response
+
+**Procedure**:
+1. Detect anomaly via metrics/logs
+2. Verify incident (false positive check)
+3. Contain (block IP, disable provider)
+4. Investigate (analyze logs)
+5. Remediate (patch, rotate credentials)
+6. Document (incident report)
+
+## Compliance
+
+### SOC 2 Readiness
+
+- **Access Control**: Role-based access, MFA support
+- **Change Management**: CI enforcement, audit trails
+- **Data Protection**: Encryption at rest/transit
+- **Monitoring**: 24/7 logging, alerting
+- **Incident Response**: Documented procedures
+
+### GDPR Compliance
+
+- **Data Minimization**: Only store necessary data
+- **Right to Erasure**: Credential deletion API
+- **Data Portability**: Export credentials API
+- **Audit Trails**: Complete logging
+
+## Security Checklist
+
+**Pre-Deployment**:
+- [ ] All dependencies scanned (no HIGH/CRITICAL)
+- [ ] Secrets scanned and removed
+- [ ] TLS enabled with strong ciphers
+- [ ] File permissions set (0600/0700)
+- [ ] Rate limiting enabled
+- [ ] IP allowlisting configured
+- [ ] Audit logging enabled
+- [ ] Container hardened (non-root, read-only)
+
+**Post-Deployment**:
+- [ ] Monitor security metrics
+- [ ] Review audit logs daily
+- [ ] Update dependencies monthly
+- [ ] Rotate credentials quarterly
+- [ ] Test incident response procedures
diff --git a/docs/fragemented/features/security/USER.md b/docs/fragemented/features/security/USER.md
new file mode 100644
index 0000000000..2b0090b001
--- /dev/null
+++ b/docs/fragemented/features/security/USER.md
@@ -0,0 +1,577 @@
+# User Guide: Security Hardening
+
+## Understanding Security in cliproxyapi++
+
+cliproxyapi++ is built with a "Defense in Depth" philosophy, meaning multiple layers of security protect your deployments. This guide explains how to configure and use these security features effectively.
+
+## Quick Security Checklist
+
+**Before deploying to production**:
+
+```bash
+# 1. Verify Docker image is signed
+docker pull KooshaPari/cliproxyapi-plusplus:latest
+docker trust verify KooshaPari/cliproxyapi-plusplus:latest
+
+# 2. Set secure file permissions
+chmod 600 auths/*.json
+chmod 700 auths/
+
+# 3. Enable TLS
+# Edit config.yaml to enable TLS (see below)
+
+# 4. Enable encryption
+# Generate encryption key and set in config.yaml
+
+# 5. Configure rate limiting
+# Set appropriate limits in config.yaml
+```
+
+## Container Security
+
+### Hardened Docker Deployment
+
+**docker-compose.yml**:
+```yaml
+services:
+ cliproxy:
+ image: KooshaPari/cliproxyapi-plusplus:latest
+ container_name: cliproxyapi++
+
+ # Security options
+ security_opt:
+ - no-new-privileges:true
+ read_only: true
+ tmpfs:
+ - /tmp:noexec,nosuid,size=100m
+ cap_drop:
+ - ALL
+ cap_add:
+ - NET_BIND_SERVICE
+
+ # Non-root user
+ user: "65534:65534"
+
+ # Volumes (writable only for these)
+ volumes:
+ - ./config.yaml:/config/config.yaml:ro
+ - ./auths:/auths:rw
+ - ./logs:/logs:rw
+ - ./tls:/tls:ro
+
+ # Network
+ ports:
+ - "8317:8317"
+
+ # Resource limits
+ deploy:
+ resources:
+ limits:
+ cpus: '2'
+ memory: 1G
+ reservations:
+ cpus: '0.5'
+ memory: 256M
+
+ restart: unless-stopped
+```
+
+**Explanation**:
+- `no-new-privileges`: Prevents processes from gaining more privileges
+- `read_only`: Makes container filesystem immutable (attackers can't modify binaries)
+- `tmpfs:noexec`: Prevents execution of files in `/tmp`
+- `cap_drop:ALL`: Drops all Linux capabilities
+- `cap_add:NET_BIND_SERVICE`: Only adds back the ability to bind ports
+- `user:65534:65534`: Runs as non-root "nobody" user
+
+### Seccomp Profiles (Advanced)
+
+**Custom seccomp profile**:
+```bash
+# Save seccomp profile
+cat > seccomp-profile.json << 'EOF'
+{
+ "defaultAction": "SCMP_ACT_ERRNO",
+ "syscalls": [
+ {
+ "names": ["read", "write", "open", "close", "socket", "bind", "listen"],
+ "action": "SCMP_ACT_ALLOW"
+ }
+ ]
+}
+EOF
+
+# Use in docker-compose
+security_opt:
+ - seccomp:./seccomp-profile.json
+```
+
+## TLS Configuration
+
+### Enable HTTPS
+
+**config.yaml**:
+```yaml
+server:
+ port: 8317
+ tls:
+ enabled: true
+ cert_file: "/tls/tls.crt"
+ key_file: "/tls/tls.key"
+ min_version: "1.2"
+ cipher_suites:
+ - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
+ - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
+```
+
+### Generate Self-Signed Certificate (Testing)
+
+```bash
+# Generate private key
+openssl genrsa -out tls.key 2048
+
+# Generate certificate
+openssl req -new -x509 -key tls.key -out tls.crt -days 365 \
+ -subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"
+
+# Set permissions
+chmod 600 tls.key
+chmod 644 tls.crt
+```
+
+### Use Let's Encrypt (Production)
+
+```bash
+# Install certbot
+sudo apt-get install certbot
+
+# Generate certificate
+sudo certbot certonly --standalone -d proxy.example.com
+
+# Copy to tls directory
+sudo cp /etc/letsencrypt/live/proxy.example.com/fullchain.pem tls/tls.crt
+sudo cp /etc/letsencrypt/live/proxy.example.com/privkey.pem tls/tls.key
+
+# Set permissions
+sudo chown $USER:$USER tls/tls.key tls/tls.crt
+chmod 600 tls/tls.key
+chmod 644 tls/tls.crt
+```
+
+## Credential Encryption
+
+### Enable Encryption
+
+**config.yaml**:
+```yaml
+auth:
+ encryption:
+ enabled: true
+ key: "YOUR_32_BYTE_ENCRYPTION_KEY_HERE"
+```
+
+### Generate Encryption Key
+
+```bash
+# Method 1: Using openssl
+openssl rand -base64 32
+
+# Method 2: Using Python
+python3 -c "import secrets; print(secrets.token_urlsafe(32))"
+
+# Method 3: Using /dev/urandom
+head -c 32 /dev/urandom | base64
+```
+
+### Environment Variable (Recommended)
+
+```yaml
+auth:
+ encryption:
+ enabled: true
+ key: "${CLIPROXY_ENCRYPTION_KEY}"
+```
+
+```bash
+# Set in environment
+export CLIPRO_ENCRYPTION_KEY="$(openssl rand -base64 32)"
+
+# Use in docker-compose
+environment:
+ - CLIPRO_ENCRYPTION_KEY=${CLIPRO_ENCRYPTION_KEY}
+```
+
+### Migrating Existing Credentials
+
+When enabling encryption, existing credentials remain unencrypted. To encrypt them:
+
+```bash
+# 1. Enable encryption in config.yaml
+# 2. Restart service
+# 3. Re-add credentials (they will be encrypted)
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-xxxxx"
+ }'
+```
+
+## Access Control
+
+### IP Allowlisting
+
+**config.yaml**:
+```yaml
+server:
+ security:
+ ip_allowlist:
+ enabled: true
+ allowed_ips:
+ - "10.0.0.0/8" # Private network
+ - "192.168.1.100" # Specific IP
+ - "203.0.113.0/24" # Public network
+```
+
+**Block all except allowed**:
+```yaml
+server:
+ security:
+ ip_allowlist:
+ enabled: true
+ allowed_ips:
+ - "10.0.0.0/8"
+ deny_all: true # Block all except allowed_ips
+```
+
+### IP Denylisting
+
+```yaml
+server:
+ security:
+ ip_denylist:
+ enabled: true
+ denied_ips:
+ - "192.0.2.0/24" # Test network
+ - "198.51.100.100" # Specific IP
+```
+
+### IP-Based Rate Limiting
+
+```yaml
+server:
+ security:
+ rate_limiting:
+ enabled: true
+ requests_per_second: 10
+ burst: 20
+ per_ip: true
+```
+
+## Rate Limiting
+
+### Global Rate Limiting
+
+```yaml
+server:
+ rate_limit:
+ enabled: true
+ requests_per_second: 100
+ burst: 200
+```
+
+### Per-Provider Rate Limiting
+
+```yaml
+providers:
+ claude:
+ rate_limit:
+ requests_per_minute: 100
+ tokens_per_minute: 100000
+ openai:
+ rate_limit:
+ requests_per_minute: 500
+ tokens_per_minute: 200000
+```
+
+### Quota-Based Rate Limiting
+
+```yaml
+providers:
+ claude:
+ quota:
+ limit: 1000000 # Tokens per month
+ reset: "monthly"
+```
+
+## Security Headers
+
+### Enable Security Headers
+
+**config.yaml**:
+```yaml
+server:
+ security:
+ headers:
+ enabled: true
+ strict_transport_security: "max-age=31536000; includeSubDomains"
+ content_type_options: "nosniff"
+ frame_options: "DENY"
+ xss_protection: "1; mode=block"
+ content_security_policy: "default-src 'self'"
+```
+
+**Headers added to all responses**:
+```
+Strict-Transport-Security: max-age=31536000; includeSubDomains
+X-Content-Type-Options: nosniff
+X-Frame-Options: DENY
+X-XSS-Protection: 1; mode=block
+Content-Security-Policy: default-src 'self'
+```
+
+## Audit Logging
+
+### Enable Audit Logging
+
+**config.yaml**:
+```yaml
+logging:
+ audit:
+ enabled: true
+ file: "/logs/audit.log"
+ format: "json"
+ events:
+ - "auth_success"
+ - "auth_failure"
+ - "token_refresh"
+ - "config_change"
+ - "provider_request"
+ - "security_violation"
+```
+
+### View Audit Logs
+
+```bash
+# View all audit events
+tail -f logs/audit.log
+
+# Filter for auth failures
+grep "auth_failure" logs/audit.log
+
+# Filter for security violations
+grep "security_violation" logs/audit.log
+
+# Pretty print JSON logs
+cat logs/audit.log | jq '.'
+```
+
+### Audit Log Format
+
+```json
+{
+ "timestamp": "2026-02-19T23:00:00Z",
+ "event_type": "auth_failure",
+ "provider": "claude",
+ "user_id": "user@example.com",
+ "ip": "192.168.1.100",
+ "result": "invalid_token",
+ "details": {
+ "reason": "Token expired"
+ }
+}
+```
+
+## Security Monitoring
+
+### Enable Metrics
+
+**config.yaml**:
+```yaml
+metrics:
+ enabled: true
+ port: 9090
+ path: "/metrics"
+```
+
+**Security metrics exposed**:
+```
+# HELP cliproxy_auth_failures_total Total authentication failures
+# TYPE cliproxy_auth_failures_total counter
+cliproxy_auth_failures_total{provider="claude"} 5
+
+# HELP cliproxy_rate_limit_violations_total Total rate limit violations
+# TYPE cliproxy_rate_limit_violations_total counter
+cliproxy_rate_limit_violations_total{ip="192.168.1.100"} 10
+
+# HELP cliproxy_security_events_total Total security events
+# TYPE cliproxy_security_events_total counter
+cliproxy_security_events_total{event_type="suspicious_activity"} 1
+```
+
+### Query Metrics
+
+```bash
+# Get auth failure rate
+curl http://localhost:9090/metrics | grep auth_failures
+
+# Get rate limit violations
+curl http://localhost:9090/metrics | grep rate_limit_violations
+
+# Get all security events
+curl http://localhost:9090/metrics | grep security_events
+```
+
+## Incident Response
+
+### Block Suspicious IP
+
+```bash
+# Add to denylist
+curl -X POST http://localhost:8317/v0/management/security/ip-denylist \
+ -H "Content-Type: application/json" \
+ -d '{
+ "ip": "192.168.1.100",
+ "reason": "Suspicious activity"
+ }'
+```
+
+### Revoke Credentials
+
+```bash
+# Delete credential
+curl -X DELETE http://localhost:8317/v0/management/auths/claude
+```
+
+### Enable Maintenance Mode
+
+```yaml
+server:
+ maintenance_mode: true
+ message: "Scheduled maintenance in progress"
+```
+
+## Security Best Practices
+
+### Development
+
+- [ ] Never commit credentials to version control
+- [ ] Use pre-commit hooks to scan for secrets
+- [ ] Enable security headers in development
+- [ ] Test with different user permissions
+- [ ] Review audit logs regularly
+
+### Staging
+
+- [ ] Use staging-specific credentials
+- [ ] Enable all security features
+- [ ] Test rate limiting
+- [ ] Verify TLS configuration
+- [ ] Monitor security metrics
+
+### Production
+
+- [ ] Use production TLS certificates (not self-signed)
+- [ ] Enable encryption for credentials
+- [ ] Configure IP allowlisting
+- [ ] Set appropriate rate limits
+- [ ] Enable comprehensive audit logging
+- [ ] Set up security alerts
+- [ ] Regular security audits
+- [ ] Rotate credentials quarterly
+- [ ] Keep dependencies updated
+
+## Troubleshooting
+
+### TLS Certificate Issues
+
+**Problem**: `certificate verify failed`
+
+**Solutions**:
+1. Verify certificate file exists: `ls -la tls/tls.crt`
+2. Check certificate is valid: `openssl x509 -in tls/tls.crt -text -noout`
+3. Verify key matches cert: `openssl x509 -noout -modulus -in tls/tls.crt | openssl md5`
+4. Check file permissions: `chmod 600 tls/tls.key`
+
+### Encryption Key Issues
+
+**Problem**: `decryption failed`
+
+**Solutions**:
+1. Verify encryption key is 32 bytes
+2. Check key is set in config/environment
+3. Ensure key hasn't changed
+4. If key changed, re-add credentials
+
+### Rate Limiting Too Strict
+
+**Problem**: Legitimate requests blocked
+
+**Solutions**:
+1. Increase rate limit in config
+2. Increase burst size
+3. Whitelist trusted IPs
+4. Use per-user rate limiting instead of per-IP
+
+### IP Allowlisting Issues
+
+**Problem**: Can't access from allowed IP
+
+**Solutions**:
+1. Verify IP address: `curl ifconfig.me`
+2. Check CIDR notation
+3. Verify allowlist is enabled
+4. Check denylist doesn't block
+
+### Audit Logs Not Working
+
+**Problem**: No events in audit log
+
+**Solutions**:
+1. Verify audit logging is enabled
+2. Check file permissions on log directory
+3. Verify events are enabled in config
+4. Check disk space
+
+## Security Audits
+
+### Pre-Deployment Checklist
+
+```bash
+#!/bin/bash
+# security-check.sh
+
+echo "Running security checks..."
+
+# Check file permissions
+echo "Checking file permissions..."
+find auths/ -type f ! -perm 600
+find auths/ -type d ! -perm 700
+
+# Check for secrets
+echo "Scanning for secrets..."
+git secrets --scan
+
+# Check TLS
+echo "Verifying TLS..."
+openssl x509 -in tls/tls.crt -checkend 86400
+
+# Check dependencies
+echo "Scanning dependencies..."
+trivy fs .
+
+echo "Security checks complete!"
+```
+
+Run before deployment:
+```bash
+./security-check.sh
+```
+
+## Next Steps
+
+- See [SPEC.md](./SPEC.md) for technical security details
+- See [../auth/](../auth/) for authentication security
+- See [../operations/](../operations/) for operational security
+- See [../../api/](../../api/) for API security
diff --git a/docs/fragemented/features/security/index.md b/docs/fragemented/features/security/index.md
new file mode 100644
index 0000000000..bc0a5bc0be
--- /dev/null
+++ b/docs/fragemented/features/security/index.md
@@ -0,0 +1,9 @@
+# Consolidated Index
+
+## Files
+
+* `SPEC.md`
+* `USER.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/features/security/merged.md b/docs/fragemented/features/security/merged.md
new file mode 100644
index 0000000000..1d48ed3327
--- /dev/null
+++ b/docs/fragemented/features/security/merged.md
@@ -0,0 +1,1322 @@
+# Merged Fragmented Markdown
+
+## Source: features/security/SPEC.md
+
+# Technical Specification: Security Hardening ("Defense in Depth")
+
+## Overview
+
+**cliproxyapi++** implements a comprehensive "Defense in Depth" security philosophy with multiple layers of protection: CI-enforced code integrity, hardened container images, device fingerprinting, and secure credential management.
+
+## Security Architecture
+
+### Defense Layers
+
+```
+Layer 1: Code Integrity
+├── Path Guard (CI enforcement)
+├── Signed releases
+└── Multi-arch builds
+
+Layer 2: Container Hardening
+├── Minimal base image (Alpine 3.22.0)
+├── Non-root user
+├── Read-only filesystem
+└── Seccomp profiles
+
+Layer 3: Credential Security
+├── Encrypted storage
+├── Secure file permissions
+├── Token refresh isolation
+└── Device fingerprinting
+
+Layer 4: Network Security
+├── TLS only
+├── Request validation
+├── Rate limiting
+└── IP allowlisting
+
+Layer 5: Operational Security
+├── Audit logging
+├── Secret scanning
+├── Dependency scanning
+└── Vulnerability management
+```
+
+## Layer 1: Code Integrity
+
+### Path Guard CI Enforcement
+
+**Purpose**: Prevent unauthorized changes to critical translation logic during pull requests.
+
+**Implementation** (`.github/workflows/pr-path-guard.yml`):
+```yaml
+name: Path Guard
+on:
+ pull_request:
+ paths:
+ - 'pkg/llmproxy/translator/**'
+ - 'pkg/llmproxy/auth/**'
+
+jobs:
+ guard:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Check path protection
+ run: |
+ # Only allow changes from trusted maintainers
+ if ! git log --format="%an" ${{ github.event.pull_request.base.sha }}..${{ github.sha }} | grep -q "KooshaPari"; then
+ echo "::error::Unauthorized changes to protected paths"
+ exit 1
+ fi
+
+ - name: Verify no translator logic changes
+ run: |
+ # Ensure core translation logic hasn't been tampered
+ if git diff ${{ github.event.pull_request.base.sha }}..${{ github.sha }} --name-only | grep -q "pkg/llmproxy/translator/.*\.go$"; then
+ echo "::warning::Translator logic changed - requires maintainer review"
+ fi
+```
+
+**Protected Paths**:
+- `pkg/llmproxy/translator/` - Core translation logic
+- `pkg/llmproxy/auth/` - Authentication flows
+- `pkg/llmproxy/provider/` - Provider execution
+
+**Authorization Rules**:
+- Only repository maintainers can modify
+- All changes require at least 2 maintainer approvals
+- Must pass security review
+
+### Signed Releases
+
+**Purpose**: Ensure released artifacts are authentic and tamper-proof.
+
+**Implementation** (`.goreleaser.yml`):
+```yaml
+signs:
+ - artifacts: checksum
+ args:
+ - "--batch"
+ - "--local-user"
+ - "${GPG_FINGERPRINT}"
+```
+
+**Verification**:
+```bash
+# Download release
+wget https://github.com/KooshaPari/cliproxyapi-plusplus/releases/download/v6.0.0/cliproxyapi-plusplus_6.0.0_checksums.txt
+
+# Download signature
+wget https://github.com/KooshaPari/cliproxyapi-plusplus/releases/download/v6.0.0/cliproxyapi-plusplus_6.0.0_checksums.txt.sig
+
+# Import GPG key
+gpg --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXX
+
+# Verify signature
+gpg --verify cliproxyapi-plusplus_6.0.0_checksums.txt.sig cliproxyapi-plusplus_6.0.0_checksums.txt
+
+# Verify checksum
+sha256sum -c cliproxyapi-plusplus_6.0.0_checksums.txt
+```
+
+### Multi-Arch Builds
+
+**Purpose**: Provide consistent security across architectures.
+
+**Platforms**:
+- `linux/amd64`
+- `linux/arm64`
+- `darwin/amd64`
+- `darwin/arm64`
+
+**CI Build Matrix**:
+```yaml
+strategy:
+ matrix:
+ goos: [linux, darwin]
+ goarch: [amd64, arm64]
+```
+
+## Layer 2: Container Hardening
+
+### Minimal Base Image
+
+**Base**: Alpine Linux 3.22.0
+
+**Dockerfile**:
+```dockerfile
+FROM alpine:3.22.0 AS builder
+
+# Install build dependencies
+RUN apk add --no-cache \
+ ca-certificates \
+ gcc \
+ musl-dev
+
+# Build application
+COPY . .
+RUN go build -o cliproxyapi cmd/server/main.go
+
+# Final stage - minimal runtime
+FROM scratch
+COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
+COPY --from=builder /cliproxyapi /cliproxyapi
+
+# Non-root user
+USER 65534:65534
+
+# Read-only filesystem
+VOLUME ["/config", "/auths", "/logs"]
+
+ENTRYPOINT ["/cliproxyapi"]
+```
+
+**Security Benefits**:
+- Minimal attack surface (no shell, no package manager)
+- No unnecessary packages
+- Static binary linking
+- Reproducible builds
+
+### Security Context
+
+**docker-compose.yml**:
+```yaml
+services:
+ cliproxy:
+ image: KooshaPari/cliproxyapi-plusplus:latest
+ security_opt:
+ - no-new-privileges:true
+ read_only: true
+ tmpfs:
+ - /tmp:noexec,nosuid,size=100m
+ cap_drop:
+ - ALL
+ cap_add:
+ - NET_BIND_SERVICE
+ user: "65534:65534"
+```
+
+**Explanation**:
+- `no-new-privileges`: Prevent privilege escalation
+- `read_only`: Immutable filesystem
+- `tmpfs`: Noexec on temporary files
+- `cap_drop:ALL`: Drop all capabilities
+- `cap_add:NET_BIND_SERVICE`: Only allow binding ports
+- `user:65534:65534`: Run as non-root (nobody)
+
+### Seccomp Profiles
+
+**Custom seccomp profile** (`seccomp-profile.json`):
+```json
+{
+ "defaultAction": "SCMP_ACT_ERRNO",
+ "architectures": ["SCMP_ARCH_X86_64", "SCMP_ARCH_AARCH64"],
+ "syscalls": [
+ {
+ "names": ["read", "write", "open", "close", "stat", "fstat", "lstat"],
+ "action": "SCMP_ACT_ALLOW"
+ },
+ {
+ "names": ["socket", "bind", "listen", "accept", "connect"],
+ "action": "SCMP_ACT_ALLOW"
+ },
+ {
+ "names": ["execve", "fork", "clone"],
+ "action": "SCMP_ACT_DENY"
+ }
+ ]
+}
+```
+
+**Usage**:
+```yaml
+security_opt:
+ - seccomp:/path/to/seccomp-profile.json
+```
+
+## Layer 3: Credential Security
+
+### Encrypted Storage
+
+**Purpose**: Protect credentials at rest.
+
+**Implementation**:
+```go
+type CredentialEncryptor struct {
+ key []byte
+}
+
+func NewCredentialEncryptor(key string) (*CredentialEncryptor, error) {
+ if len(key) != 32 {
+ return nil, fmt.Errorf("key must be 32 bytes")
+ }
+
+ return &CredentialEncryptor{
+ key: []byte(key),
+ }, nil
+}
+
+func (e *CredentialEncryptor) Encrypt(data []byte) ([]byte, error) {
+ block, err := aes.NewCipher(e.key)
+ if err != nil {
+ return nil, err
+ }
+
+ gcm, err := cipher.NewGCM(block)
+ if err != nil {
+ return nil, err
+ }
+
+ nonce := make([]byte, gcm.NonceSize())
+ if _, err := io.ReadFull(rand.Reader, nonce); err != nil {
+ return nil, err
+ }
+
+ return gcm.Seal(nonce, nonce, data, nil), nil
+}
+
+func (e *CredentialEncryptor) Decrypt(data []byte) ([]byte, error) {
+ block, err := aes.NewCipher(e.key)
+ if err != nil {
+ return nil, err
+ }
+
+ gcm, err := cipher.NewGCM(block)
+ if err != nil {
+ return nil, err
+ }
+
+ nonceSize := gcm.NonceSize()
+ if len(data) < nonceSize {
+ return nil, fmt.Errorf("ciphertext too short")
+ }
+
+ nonce, ciphertext := data[:nonceSize], data[nonceSize:]
+ return gcm.Open(nil, nonce, ciphertext, nil)
+}
+```
+
+**Configuration**:
+```yaml
+auth:
+ encryption:
+ enabled: true
+ key: "YOUR_32_BYTE_ENCRYPTION_KEY_HERE"
+```
+
+### Secure File Permissions
+
+**Automatic enforcement**:
+```go
+func SetSecurePermissions(path string) error {
+ // File: 0600 (rw-------)
+ // Directory: 0700 (rwx------)
+ if info, err := os.Stat(path); err == nil {
+ if info.IsDir() {
+ return os.Chmod(path, 0700)
+ }
+ return os.Chmod(path, 0600)
+ }
+ return fmt.Errorf("file not found: %s", path)
+}
+```
+
+**Verification**:
+```go
+func VerifySecurePermissions(path string) error {
+ info, err := os.Stat(path)
+ if err != nil {
+ return err
+ }
+
+ mode := info.Mode().Perm()
+ if info.IsDir() && mode != 0700 {
+ return fmt.Errorf("directory has insecure permissions: %o", mode)
+ }
+
+ if !info.IsDir() && mode != 0600 {
+ return fmt.Errorf("file has insecure permissions: %o", mode)
+ }
+
+ return nil
+}
+```
+
+### Token Refresh Isolation
+
+**Purpose**: Prevent credential leakage during refresh.
+
+**Implementation**:
+```go
+type RefreshWorker struct {
+ isolatedMemory bool
+}
+
+func (w *RefreshWorker) RefreshToken(auth *Auth) (*AuthToken, error) {
+ // Use isolated goroutine
+ result := make(chan *RefreshResult)
+ go w.isolatedRefresh(auth, result)
+
+ select {
+ case res := <-result:
+ if res.Error != nil {
+ return nil, res.Error
+ }
+ // Clear memory after use
+ defer w.scrubMemory(res.Token)
+ return res.Token, nil
+ case <-time.After(30 * time.Second):
+ return nil, fmt.Errorf("refresh timeout")
+ }
+}
+
+func (w *RefreshWorker) scrubMemory(token *AuthToken) {
+ // Zero out sensitive data
+ for i := range token.AccessToken {
+ token.AccessToken = ""
+ }
+ token.RefreshToken = ""
+}
+```
+
+### Device Fingerprinting
+
+**Purpose**: Generate unique, immutable device identifiers for provider security checks.
+
+**Implementation**:
+```go
+func GenerateDeviceFingerprint() (string, error) {
+ mac, err := getMACAddress()
+ if err != nil {
+ return "", err
+ }
+
+ hostname, err := os.Hostname()
+ if err != nil {
+ return "", err
+ }
+
+ // Create stable fingerprint
+ h := sha256.New()
+ h.Write([]byte(mac))
+ h.Write([]byte(hostname))
+ h.Write([]byte("cliproxyapi++")) // Salt
+
+ fingerprint := hex.EncodeToString(h.Sum(nil))
+
+ // Store for persistence
+ return fingerprint, nil
+}
+
+func getMACAddress() (string, error) {
+ interfaces, err := net.Interfaces()
+ if err != nil {
+ return "", err
+ }
+
+ for _, iface := range interfaces {
+ if iface.Flags&net.FlagUp == 0 {
+ continue
+ }
+ if len(iface.HardwareAddr) == 0 {
+ continue
+ }
+
+ return iface.HardwareAddr.String(), nil
+ }
+
+ return "", fmt.Errorf("no MAC address found")
+}
+```
+
+**Usage**:
+```go
+fingerprint, _ := GenerateDeviceFingerprint()
+
+// Send with requests
+headers["X-Device-Fingerprint"] = fingerprint
+```
+
+## Layer 4: Network Security
+
+### TLS Enforcement
+
+**Configuration**:
+```yaml
+server:
+ port: 8317
+ tls:
+ enabled: true
+ cert_file: "/config/tls.crt"
+ key_file: "/config/tls.key"
+ min_version: "1.2"
+ cipher_suites:
+ - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
+ - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
+```
+
+**HTTP Strict Transport Security (HSTS)**:
+```go
+func addSecurityHeaders(c *gin.Context) {
+ c.Header("Strict-Transport-Security", "max-age=31536000; includeSubDomains")
+ c.Header("X-Content-Type-Options", "nosniff")
+ c.Header("X-Frame-Options", "DENY")
+ c.Header("X-XSS-Protection", "1; mode=block")
+ c.Header("Content-Security-Policy", "default-src 'self'")
+}
+```
+
+### Request Validation
+
+**Schema validation**:
+```go
+type ChatRequestValidator struct {
+ validator *validator.Validate
+}
+
+func (v *ChatRequestValidator) Validate(req *openai.ChatCompletionRequest) error {
+ return v.validator.Struct(req)
+}
+
+// Max tokens limits
+func (v *ChatRequestValidator) ValidateMaxTokens(maxTokens int) error {
+ if maxTokens > 4096 {
+ return fmt.Errorf("max_tokens exceeds limit of 4096")
+ }
+ return nil
+}
+```
+
+### Rate Limiting
+
+**Token bucket implementation**:
+```go
+type RateLimiter struct {
+ limiters map[string]*rate.Limiter
+ mu sync.RWMutex
+}
+
+func NewRateLimiter() *RateLimiter {
+ return &RateLimiter{
+ limiters: make(map[string]*rate.Limiter),
+ }
+}
+
+func (r *RateLimiter) Allow(ip string) bool {
+ r.mu.Lock()
+ defer r.mu.Unlock()
+
+ limiter, exists := r.limiters[ip]
+ if !exists {
+ limiter = rate.NewLimiter(rate.Limit(10), 20) // 10 req/s, burst 20
+ r.limiters[ip] = limiter
+ }
+
+ return limiter.Allow()
+}
+```
+
+**Per-provider rate limiting**:
+```yaml
+providers:
+ claude:
+ rate_limit:
+ requests_per_minute: 100
+ tokens_per_minute: 100000
+```
+
+### IP Allowlisting
+
+**Configuration**:
+```yaml
+server:
+ security:
+ ip_allowlist:
+ enabled: true
+ allowed_ips:
+ - "10.0.0.0/8"
+ - "192.168.1.100"
+ ip_denylist:
+ - "0.0.0.0/0" # Block all except allowed
+```
+
+**Implementation**:
+```go
+type IPFilter struct {
+ allowed []*net.IPNet
+ denied []*net.IPNet
+}
+
+func (f *IPFilter) IsAllowed(ip net.IP) bool {
+ // Check denylist first
+ for _, deny := range f.denied {
+ if deny.Contains(ip) {
+ return false
+ }
+ }
+
+ // Check allowlist
+ if len(f.allowed) == 0 {
+ return true // No allowlist = allow all
+ }
+
+ for _, allow := range f.allowed {
+ if allow.Contains(ip) {
+ return true
+ }
+ }
+
+ return false
+}
+```
+
+## Layer 5: Operational Security
+
+### Audit Logging
+
+**Structured logging**:
+```go
+type AuditLogger struct {
+ logger *slog.Logger
+}
+
+func (a *AuditLogger) LogAuthEvent(event AuthEvent) {
+ a.logger.LogAttrs(
+ context.Background(),
+ slog.LevelInfo,
+ "auth_event",
+ slog.String("event_type", event.Type),
+ slog.String("provider", event.Provider),
+ slog.String("user_id", event.UserID),
+ slog.String("ip", event.IP),
+ slog.Time("timestamp", event.Timestamp),
+ slog.String("result", event.Result),
+ )
+}
+```
+
+**Audit events**:
+- Authentication attempts (success/failure)
+- Token refresh
+- Credential access
+- Configuration changes
+- Provider requests
+
+### Secret Scanning
+
+**Pre-commit hook** (`.git/hooks/pre-commit`):
+```bash
+#!/bin/bash
+
+# Scan for potential secrets
+if git diff --cached --name-only | xargs grep -lE "sk-[a-zA-Z0-9]{48}|AIza[a-zA-Z0-9_-]{35}"; then
+ echo "::error::Potential secrets detected in staged files"
+ exit 1
+fi
+```
+
+**CI secret scanning**:
+```yaml
+- name: Scan for secrets
+ run: |
+ pip install git-secrets
+ git secrets --register-aws
+ git secrets --scan
+```
+
+### Dependency Scanning
+
+**CI integration**:
+```yaml
+- name: Run Trivy vulnerability scanner
+ uses: aquasecurity/trivy-action@master
+ with:
+ scan-type: 'fs'
+ scan-ref: '.'
+ format: 'sarif'
+ output: 'trivy-results.sarif'
+```
+
+### Vulnerability Management
+
+**Weekly scan schedule**:
+```yaml
+name: Vulnerability Scan
+on:
+ schedule:
+ - cron: '0 0 * * 0' # Weekly
+
+jobs:
+ scan:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - name: Run Trivy
+ run: |
+ trivy fs --severity HIGH,CRITICAL --exit-code 1 .
+```
+
+## Security Monitoring
+
+### Metrics
+
+**Security metrics exposed**:
+```go
+type SecurityMetrics struct {
+ AuthFailures int64
+ RateLimitViolations int64
+ SuspiciousActivity int64
+ BlockedIPs int64
+}
+```
+
+**Alerting**:
+```yaml
+alerts:
+ - name: High auth failure rate
+ condition: auth_failures > 100
+ duration: 5m
+ action: notify_admin
+
+ - name: Rate limit violations
+ condition: rate_limit_violations > 50
+ duration: 1m
+ action: block_ip
+```
+
+### Incident Response
+
+**Procedure**:
+1. Detect anomaly via metrics/logs
+2. Verify incident (false positive check)
+3. Contain (block IP, disable provider)
+4. Investigate (analyze logs)
+5. Remediate (patch, rotate credentials)
+6. Document (incident report)
+
+## Compliance
+
+### SOC 2 Readiness
+
+- **Access Control**: Role-based access, MFA support
+- **Change Management**: CI enforcement, audit trails
+- **Data Protection**: Encryption at rest/transit
+- **Monitoring**: 24/7 logging, alerting
+- **Incident Response**: Documented procedures
+
+### GDPR Compliance
+
+- **Data Minimization**: Only store necessary data
+- **Right to Erasure**: Credential deletion API
+- **Data Portability**: Export credentials API
+- **Audit Trails**: Complete logging
+
+## Security Checklist
+
+**Pre-Deployment**:
+- [ ] All dependencies scanned (no HIGH/CRITICAL)
+- [ ] Secrets scanned and removed
+- [ ] TLS enabled with strong ciphers
+- [ ] File permissions set (0600/0700)
+- [ ] Rate limiting enabled
+- [ ] IP allowlisting configured
+- [ ] Audit logging enabled
+- [ ] Container hardened (non-root, read-only)
+
+**Post-Deployment**:
+- [ ] Monitor security metrics
+- [ ] Review audit logs daily
+- [ ] Update dependencies monthly
+- [ ] Rotate credentials quarterly
+- [ ] Test incident response procedures
+
+
+---
+
+## Source: features/security/USER.md
+
+# User Guide: Security Hardening
+
+## Understanding Security in cliproxyapi++
+
+cliproxyapi++ is built with a "Defense in Depth" philosophy, meaning multiple layers of security protect your deployments. This guide explains how to configure and use these security features effectively.
+
+## Quick Security Checklist
+
+**Before deploying to production**:
+
+```bash
+# 1. Verify Docker image is signed
+docker pull KooshaPari/cliproxyapi-plusplus:latest
+docker trust verify KooshaPari/cliproxyapi-plusplus:latest
+
+# 2. Set secure file permissions
+chmod 600 auths/*.json
+chmod 700 auths/
+
+# 3. Enable TLS
+# Edit config.yaml to enable TLS (see below)
+
+# 4. Enable encryption
+# Generate encryption key and set in config.yaml
+
+# 5. Configure rate limiting
+# Set appropriate limits in config.yaml
+```
+
+## Container Security
+
+### Hardened Docker Deployment
+
+**docker-compose.yml**:
+```yaml
+services:
+ cliproxy:
+ image: KooshaPari/cliproxyapi-plusplus:latest
+ container_name: cliproxyapi++
+
+ # Security options
+ security_opt:
+ - no-new-privileges:true
+ read_only: true
+ tmpfs:
+ - /tmp:noexec,nosuid,size=100m
+ cap_drop:
+ - ALL
+ cap_add:
+ - NET_BIND_SERVICE
+
+ # Non-root user
+ user: "65534:65534"
+
+ # Volumes (writable only for these)
+ volumes:
+ - ./config.yaml:/config/config.yaml:ro
+ - ./auths:/auths:rw
+ - ./logs:/logs:rw
+ - ./tls:/tls:ro
+
+ # Network
+ ports:
+ - "8317:8317"
+
+ # Resource limits
+ deploy:
+ resources:
+ limits:
+ cpus: '2'
+ memory: 1G
+ reservations:
+ cpus: '0.5'
+ memory: 256M
+
+ restart: unless-stopped
+```
+
+**Explanation**:
+- `no-new-privileges`: Prevents processes from gaining more privileges
+- `read_only`: Makes container filesystem immutable (attackers can't modify binaries)
+- `tmpfs:noexec`: Prevents execution of files in `/tmp`
+- `cap_drop:ALL`: Drops all Linux capabilities
+- `cap_add:NET_BIND_SERVICE`: Only adds back the ability to bind ports
+- `user:65534:65534`: Runs as non-root "nobody" user
+
+### Seccomp Profiles (Advanced)
+
+**Custom seccomp profile**:
+```bash
+# Save seccomp profile
+cat > seccomp-profile.json << 'EOF'
+{
+ "defaultAction": "SCMP_ACT_ERRNO",
+ "syscalls": [
+ {
+ "names": ["read", "write", "open", "close", "socket", "bind", "listen"],
+ "action": "SCMP_ACT_ALLOW"
+ }
+ ]
+}
+EOF
+
+# Use in docker-compose
+security_opt:
+ - seccomp:./seccomp-profile.json
+```
+
+## TLS Configuration
+
+### Enable HTTPS
+
+**config.yaml**:
+```yaml
+server:
+ port: 8317
+ tls:
+ enabled: true
+ cert_file: "/tls/tls.crt"
+ key_file: "/tls/tls.key"
+ min_version: "1.2"
+ cipher_suites:
+ - "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
+ - "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
+```
+
+### Generate Self-Signed Certificate (Testing)
+
+```bash
+# Generate private key
+openssl genrsa -out tls.key 2048
+
+# Generate certificate
+openssl req -new -x509 -key tls.key -out tls.crt -days 365 \
+ -subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"
+
+# Set permissions
+chmod 600 tls.key
+chmod 644 tls.crt
+```
+
+### Use Let's Encrypt (Production)
+
+```bash
+# Install certbot
+sudo apt-get install certbot
+
+# Generate certificate
+sudo certbot certonly --standalone -d proxy.example.com
+
+# Copy to tls directory
+sudo cp /etc/letsencrypt/live/proxy.example.com/fullchain.pem tls/tls.crt
+sudo cp /etc/letsencrypt/live/proxy.example.com/privkey.pem tls/tls.key
+
+# Set permissions
+sudo chown $USER:$USER tls/tls.key tls/tls.crt
+chmod 600 tls/tls.key
+chmod 644 tls/tls.crt
+```
+
+## Credential Encryption
+
+### Enable Encryption
+
+**config.yaml**:
+```yaml
+auth:
+ encryption:
+ enabled: true
+ key: "YOUR_32_BYTE_ENCRYPTION_KEY_HERE"
+```
+
+### Generate Encryption Key
+
+```bash
+# Method 1: Using openssl
+openssl rand -base64 32
+
+# Method 2: Using Python
+python3 -c "import secrets; print(secrets.token_urlsafe(32))"
+
+# Method 3: Using /dev/urandom
+head -c 32 /dev/urandom | base64
+```
+
+### Environment Variable (Recommended)
+
+```yaml
+auth:
+ encryption:
+ enabled: true
+ key: "${CLIPROXY_ENCRYPTION_KEY}"
+```
+
+```bash
+# Set in environment
+export CLIPRO_ENCRYPTION_KEY="$(openssl rand -base64 32)"
+
+# Use in docker-compose
+environment:
+ - CLIPRO_ENCRYPTION_KEY=${CLIPRO_ENCRYPTION_KEY}
+```
+
+### Migrating Existing Credentials
+
+When enabling encryption, existing credentials remain unencrypted. To encrypt them:
+
+```bash
+# 1. Enable encryption in config.yaml
+# 2. Restart service
+# 3. Re-add credentials (they will be encrypted)
+curl -X POST http://localhost:8317/v0/management/auths \
+ -H "Content-Type: application/json" \
+ -d '{
+ "provider": "claude",
+ "type": "api_key",
+ "token": "sk-ant-xxxxx"
+ }'
+```
+
+## Access Control
+
+### IP Allowlisting
+
+**config.yaml**:
+```yaml
+server:
+ security:
+ ip_allowlist:
+ enabled: true
+ allowed_ips:
+ - "10.0.0.0/8" # Private network
+ - "192.168.1.100" # Specific IP
+ - "203.0.113.0/24" # Public network
+```
+
+**Block all except allowed**:
+```yaml
+server:
+ security:
+ ip_allowlist:
+ enabled: true
+ allowed_ips:
+ - "10.0.0.0/8"
+ deny_all: true # Block all except allowed_ips
+```
+
+### IP Denylisting
+
+```yaml
+server:
+ security:
+ ip_denylist:
+ enabled: true
+ denied_ips:
+ - "192.0.2.0/24" # Test network
+ - "198.51.100.100" # Specific IP
+```
+
+### IP-Based Rate Limiting
+
+```yaml
+server:
+ security:
+ rate_limiting:
+ enabled: true
+ requests_per_second: 10
+ burst: 20
+ per_ip: true
+```
+
+## Rate Limiting
+
+### Global Rate Limiting
+
+```yaml
+server:
+ rate_limit:
+ enabled: true
+ requests_per_second: 100
+ burst: 200
+```
+
+### Per-Provider Rate Limiting
+
+```yaml
+providers:
+ claude:
+ rate_limit:
+ requests_per_minute: 100
+ tokens_per_minute: 100000
+ openai:
+ rate_limit:
+ requests_per_minute: 500
+ tokens_per_minute: 200000
+```
+
+### Quota-Based Rate Limiting
+
+```yaml
+providers:
+ claude:
+ quota:
+ limit: 1000000 # Tokens per month
+ reset: "monthly"
+```
+
+## Security Headers
+
+### Enable Security Headers
+
+**config.yaml**:
+```yaml
+server:
+ security:
+ headers:
+ enabled: true
+ strict_transport_security: "max-age=31536000; includeSubDomains"
+ content_type_options: "nosniff"
+ frame_options: "DENY"
+ xss_protection: "1; mode=block"
+ content_security_policy: "default-src 'self'"
+```
+
+**Headers added to all responses**:
+```
+Strict-Transport-Security: max-age=31536000; includeSubDomains
+X-Content-Type-Options: nosniff
+X-Frame-Options: DENY
+X-XSS-Protection: 1; mode=block
+Content-Security-Policy: default-src 'self'
+```
+
+## Audit Logging
+
+### Enable Audit Logging
+
+**config.yaml**:
+```yaml
+logging:
+ audit:
+ enabled: true
+ file: "/logs/audit.log"
+ format: "json"
+ events:
+ - "auth_success"
+ - "auth_failure"
+ - "token_refresh"
+ - "config_change"
+ - "provider_request"
+ - "security_violation"
+```
+
+### View Audit Logs
+
+```bash
+# View all audit events
+tail -f logs/audit.log
+
+# Filter for auth failures
+grep "auth_failure" logs/audit.log
+
+# Filter for security violations
+grep "security_violation" logs/audit.log
+
+# Pretty print JSON logs
+cat logs/audit.log | jq '.'
+```
+
+### Audit Log Format
+
+```json
+{
+ "timestamp": "2026-02-19T23:00:00Z",
+ "event_type": "auth_failure",
+ "provider": "claude",
+ "user_id": "user@example.com",
+ "ip": "192.168.1.100",
+ "result": "invalid_token",
+ "details": {
+ "reason": "Token expired"
+ }
+}
+```
+
+## Security Monitoring
+
+### Enable Metrics
+
+**config.yaml**:
+```yaml
+metrics:
+ enabled: true
+ port: 9090
+ path: "/metrics"
+```
+
+**Security metrics exposed**:
+```
+# HELP cliproxy_auth_failures_total Total authentication failures
+# TYPE cliproxy_auth_failures_total counter
+cliproxy_auth_failures_total{provider="claude"} 5
+
+# HELP cliproxy_rate_limit_violations_total Total rate limit violations
+# TYPE cliproxy_rate_limit_violations_total counter
+cliproxy_rate_limit_violations_total{ip="192.168.1.100"} 10
+
+# HELP cliproxy_security_events_total Total security events
+# TYPE cliproxy_security_events_total counter
+cliproxy_security_events_total{event_type="suspicious_activity"} 1
+```
+
+### Query Metrics
+
+```bash
+# Get auth failure rate
+curl http://localhost:9090/metrics | grep auth_failures
+
+# Get rate limit violations
+curl http://localhost:9090/metrics | grep rate_limit_violations
+
+# Get all security events
+curl http://localhost:9090/metrics | grep security_events
+```
+
+## Incident Response
+
+### Block Suspicious IP
+
+```bash
+# Add to denylist
+curl -X POST http://localhost:8317/v0/management/security/ip-denylist \
+ -H "Content-Type: application/json" \
+ -d '{
+ "ip": "192.168.1.100",
+ "reason": "Suspicious activity"
+ }'
+```
+
+### Revoke Credentials
+
+```bash
+# Delete credential
+curl -X DELETE http://localhost:8317/v0/management/auths/claude
+```
+
+### Enable Maintenance Mode
+
+```yaml
+server:
+ maintenance_mode: true
+ message: "Scheduled maintenance in progress"
+```
+
+## Security Best Practices
+
+### Development
+
+- [ ] Never commit credentials to version control
+- [ ] Use pre-commit hooks to scan for secrets
+- [ ] Enable security headers in development
+- [ ] Test with different user permissions
+- [ ] Review audit logs regularly
+
+### Staging
+
+- [ ] Use staging-specific credentials
+- [ ] Enable all security features
+- [ ] Test rate limiting
+- [ ] Verify TLS configuration
+- [ ] Monitor security metrics
+
+### Production
+
+- [ ] Use production TLS certificates (not self-signed)
+- [ ] Enable encryption for credentials
+- [ ] Configure IP allowlisting
+- [ ] Set appropriate rate limits
+- [ ] Enable comprehensive audit logging
+- [ ] Set up security alerts
+- [ ] Regular security audits
+- [ ] Rotate credentials quarterly
+- [ ] Keep dependencies updated
+
+## Troubleshooting
+
+### TLS Certificate Issues
+
+**Problem**: `certificate verify failed`
+
+**Solutions**:
+1. Verify certificate file exists: `ls -la tls/tls.crt`
+2. Check certificate is valid: `openssl x509 -in tls/tls.crt -text -noout`
+3. Verify key matches cert: `openssl x509 -noout -modulus -in tls/tls.crt | openssl md5`
+4. Check file permissions: `chmod 600 tls/tls.key`
+
+### Encryption Key Issues
+
+**Problem**: `decryption failed`
+
+**Solutions**:
+1. Verify encryption key is 32 bytes
+2. Check key is set in config/environment
+3. Ensure key hasn't changed
+4. If key changed, re-add credentials
+
+### Rate Limiting Too Strict
+
+**Problem**: Legitimate requests blocked
+
+**Solutions**:
+1. Increase rate limit in config
+2. Increase burst size
+3. Whitelist trusted IPs
+4. Use per-user rate limiting instead of per-IP
+
+### IP Allowlisting Issues
+
+**Problem**: Can't access from allowed IP
+
+**Solutions**:
+1. Verify IP address: `curl ifconfig.me`
+2. Check CIDR notation
+3. Verify allowlist is enabled
+4. Check denylist doesn't block
+
+### Audit Logs Not Working
+
+**Problem**: No events in audit log
+
+**Solutions**:
+1. Verify audit logging is enabled
+2. Check file permissions on log directory
+3. Verify events are enabled in config
+4. Check disk space
+
+## Security Audits
+
+### Pre-Deployment Checklist
+
+```bash
+#!/bin/bash
+# security-check.sh
+
+echo "Running security checks..."
+
+# Check file permissions
+echo "Checking file permissions..."
+find auths/ -type f ! -perm 600
+find auths/ -type d ! -perm 700
+
+# Check for secrets
+echo "Scanning for secrets..."
+git secrets --scan
+
+# Check TLS
+echo "Verifying TLS..."
+openssl x509 -in tls/tls.crt -checkend 86400
+
+# Check dependencies
+echo "Scanning dependencies..."
+trivy fs .
+
+echo "Security checks complete!"
+```
+
+Run before deployment:
+```bash
+./security-check.sh
+```
+
+## Next Steps
+
+- See [SPEC.md](./SPEC.md) for technical security details
+- See [../auth/](../auth/) for authentication security
+- See [../operations/](../operations/) for operational security
+- See [../../api/](../../api/) for API security
+
+
+---
diff --git a/docs/fragemented/getting-started.md b/docs/fragemented/getting-started.md
new file mode 100644
index 0000000000..02d607748f
--- /dev/null
+++ b/docs/fragemented/getting-started.md
@@ -0,0 +1,129 @@
+# Getting Started
+
+This guide gets a local `cliproxyapi++` instance running and verifies end-to-end request flow.
+
+## Audience
+
+- Use this if you need a quick local or dev-server setup.
+- If you need deployment hardening, continue to [Install](/install) and [Troubleshooting](/troubleshooting).
+
+## Prerequisites
+
+- Docker + Docker Compose, or Go 1.26+ for local builds.
+- `curl` for API checks.
+- `jq` (optional, for readable JSON output).
+
+## 1. Prepare Working Directory
+
+```bash
+mkdir -p ~/cliproxy && cd ~/cliproxy
+curl -fsSL -o config.yaml \
+ https://raw.githubusercontent.com/KooshaPari/cliproxyapi-plusplus/main/config.example.yaml
+mkdir -p auths logs
+```
+
+## 2. Configure the Minimum Required Settings
+
+In `config.yaml`, set at least:
+
+```yaml
+port: 8317
+auth-dir: "./auths"
+api-keys:
+ - "dev-local-key"
+routing:
+ strategy: "round-robin"
+```
+
+Notes:
+
+- `api-keys` protects `/v1/*` endpoints (client-facing auth).
+- `auth-dir` is where provider credentials are loaded from.
+
+## 3. Add One Provider Credential
+
+Example (`claude-api-key`) in `config.yaml`:
+
+```yaml
+claude-api-key:
+ - api-key: "sk-ant-your-key"
+```
+
+You can also configure other provider blocks from `config.example.yaml`.
+
+## 4. Start With Docker
+
+```bash
+cat > docker-compose.yml << 'EOF_COMPOSE'
+services:
+ cliproxy:
+ image: KooshaPari/cliproxyapi-plusplus:latest
+ container_name: cliproxyapi-plusplus
+ ports:
+ - "8317:8317"
+ volumes:
+ - ./config.yaml:/CLIProxyAPI/config.yaml
+ - ./auths:/root/.cli-proxy-api
+ - ./logs:/CLIProxyAPI/logs
+ restart: unless-stopped
+EOF_COMPOSE
+
+docker compose up -d
+```
+
+## 5. Verify the Service
+
+```bash
+# Health
+curl -sS http://localhost:8317/health
+
+# Public model list (requires API key)
+curl -sS http://localhost:8317/v1/models \
+ -H "Authorization: Bearer dev-local-key" | jq '.data[:5]'
+```
+
+## 6. Send a Chat Request
+
+```bash
+curl -sS -X POST http://localhost:8317/v1/chat/completions \
+ -H "Authorization: Bearer dev-local-key" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "model": "claude-3-5-sonnet",
+ "messages": [
+ {"role": "user", "content": "Say hello from cliproxyapi++"}
+ ],
+ "stream": false
+ }'
+```
+
+Example response shape:
+
+```json
+{
+ "id": "chatcmpl-...",
+ "object": "chat.completion",
+ "model": "claude-3-5-sonnet",
+ "choices": [
+ {
+ "index": 0,
+ "message": { "role": "assistant", "content": "Hello..." },
+ "finish_reason": "stop"
+ }
+ ]
+}
+```
+
+## Common First-Run Failures
+
+- `401 Unauthorized`: missing/invalid `Authorization` header for `/v1/*`.
+- `404` on management routes: `remote-management.secret-key` is empty (management disabled).
+- `429` upstream: credential is throttled; rotate credentials or add provider capacity.
+- Model not listed in `/v1/models`: provider/auth not configured or filtered by prefix rules.
+
+## Next Steps
+
+- [Install](/install)
+- [Provider Usage](/provider-usage)
+- [Routing and Models Reference](/routing-reference)
+- [API Index](/api/)
diff --git a/docs/fragemented/index.md b/docs/fragemented/index.md
new file mode 100644
index 0000000000..0a44c100e9
--- /dev/null
+++ b/docs/fragemented/index.md
@@ -0,0 +1,161 @@
+# Fragmented Markdown Consolidation
+
+This folder contains a deterministic backup of fragmented Markdown artifacts (mtime in 2026) and consolidation helpers.
+
+## Snapshot
+* Candidate files retained: 202
+* Total source markdown copied: 202
+
+## Directory map
+
+* .
+* api
+* docsets
+* docsets/agent
+* docsets/developer
+* docsets/developer/external
+* docsets/developer/internal
+* docsets/user
+* features
+* features/architecture
+* features/auth
+* features/operations
+* features/providers
+* features/security
+* node_modules
+* node_modules/@algolia
+* node_modules/@algolia/abtesting
+* node_modules/@algolia/autocomplete-core
+* node_modules/@algolia/autocomplete-plugin-algolia-insights
+* node_modules/@algolia/autocomplete-preset-algolia
+* node_modules/@algolia/client-abtesting
+* node_modules/@algolia/client-analytics
+* node_modules/@algolia/client-insights
+* node_modules/@algolia/client-personalization
+* node_modules/@algolia/client-query-suggestions
+* node_modules/@algolia/client-search
+* node_modules/@algolia/ingestion
+* node_modules/@algolia/monitoring
+* node_modules/@algolia/recommend
+* node_modules/@babel
+* node_modules/@babel/helper-string-parser
+* node_modules/@babel/helper-validator-identifier
+* node_modules/@babel/parser
+* node_modules/@babel/types
+* node_modules/@docsearch
+* node_modules/@docsearch/css
+* node_modules/@docsearch/js
+* node_modules/@docsearch/react
+* node_modules/@esbuild
+* node_modules/@esbuild/darwin-arm64
+* node_modules/@iconify
+* node_modules/@iconify-json
+* node_modules/@iconify-json/simple-icons
+* node_modules/@iconify/types
+* node_modules/@jridgewell
+* node_modules/@jridgewell/sourcemap-codec
+* node_modules/@rollup
+* node_modules/@rollup/rollup-darwin-arm64
+* node_modules/@shikijs
+* node_modules/@shikijs/core
+* node_modules/@shikijs/engine-javascript
+* node_modules/@shikijs/engine-oniguruma
+* node_modules/@shikijs/langs
+* node_modules/@shikijs/themes
+* node_modules/@shikijs/transformers
+* node_modules/@shikijs/types
+* node_modules/@shikijs/vscode-textmate
+* node_modules/@types
+* node_modules/@types/estree
+* node_modules/@types/hast
+* node_modules/@types/linkify-it
+* node_modules/@types/markdown-it
+* node_modules/@types/mdast
+* node_modules/@types/mdurl
+* node_modules/@types/unist
+* node_modules/@types/web-bluetooth
+* node_modules/@ungap
+* node_modules/@ungap/structured-clone
+* node_modules/@vitejs
+* node_modules/@vitejs/plugin-vue
+* node_modules/@vue
+* node_modules/@vue/compiler-core
+* node_modules/@vue/compiler-dom
+* node_modules/@vue/compiler-sfc
+* node_modules/@vue/compiler-ssr
+* node_modules/@vue/devtools-api
+* node_modules/@vue/devtools-kit
+* node_modules/@vue/devtools-shared
+* node_modules/@vue/reactivity
+* node_modules/@vue/runtime-core
+* node_modules/@vue/runtime-dom
+* node_modules/@vue/server-renderer
+* node_modules/@vue/shared
+* node_modules/@vueuse
+* node_modules/@vueuse/integrations
+* node_modules/algoliasearch
+* node_modules/birpc
+* node_modules/ccount
+* node_modules/character-entities-html4
+* node_modules/character-entities-legacy
+* node_modules/comma-separated-tokens
+* node_modules/copy-anything
+* node_modules/csstype
+* node_modules/dequal
+* node_modules/devlop
+* node_modules/emoji-regex-xs
+* node_modules/entities
+* node_modules/esbuild
+* node_modules/estree-walker
+* node_modules/focus-trap
+* node_modules/fsevents
+* node_modules/hast-util-to-html
+* node_modules/hast-util-whitespace
+* node_modules/hookable
+* node_modules/html-void-elements
+* node_modules/is-what
+* node_modules/magic-string
+* node_modules/mark.js
+* node_modules/mdast-util-to-hast
+* node_modules/micromark-util-character
+* node_modules/micromark-util-encode
+* node_modules/micromark-util-sanitize-uri
+* node_modules/micromark-util-symbol
+* node_modules/micromark-util-types
+* node_modules/minisearch
+* node_modules/mitt
+* node_modules/nanoid
+* node_modules/oniguruma-to-es
+* node_modules/perfect-debounce
+* node_modules/picocolors
+* node_modules/postcss
+* node_modules/preact
+* node_modules/property-information
+* node_modules/regex
+* node_modules/regex-recursion
+* node_modules/regex-utilities
+* node_modules/rfdc
+* node_modules/rollup
+* node_modules/search-insights
+* node_modules/shiki
+* node_modules/source-map-js
+* node_modules/space-separated-tokens
+* node_modules/speakingurl
+* node_modules/stringify-entities
+* node_modules/superjson
+* node_modules/tabbable
+* node_modules/trim-lines
+* node_modules/unist-util-is
+* node_modules/unist-util-position
+* node_modules/unist-util-stringify-position
+* node_modules/unist-util-visit
+* node_modules/unist-util-visit-parents
+* node_modules/vfile
+* node_modules/vfile-message
+* node_modules/vite
+* node_modules/vitepress
+* node_modules/vitepress/template
+* node_modules/vue
+* node_modules/zwitch
+* operations
+* planning
diff --git a/docs/fragemented/install.md b/docs/fragemented/install.md
new file mode 100644
index 0000000000..ad651244ec
--- /dev/null
+++ b/docs/fragemented/install.md
@@ -0,0 +1,83 @@
+# Install
+
+`cliproxyapi++` can run as a container, standalone binary, or embedded SDK.
+
+## Audience Guidance
+
+- Choose Docker for most production and shared-team use.
+- Choose binary for lightweight host installs.
+- Choose SDK embedding when you need in-process integration in Go.
+
+## Option A: Docker (Recommended)
+
+```bash
+docker pull KooshaPari/cliproxyapi-plusplus:latest
+```
+
+Minimal run command:
+
+```bash
+docker run -d --name cliproxyapi-plusplus \
+ -p 8317:8317 \
+ -v "$PWD/config.yaml:/CLIProxyAPI/config.yaml" \
+ -v "$PWD/auths:/root/.cli-proxy-api" \
+ -v "$PWD/logs:/CLIProxyAPI/logs" \
+ KooshaPari/cliproxyapi-plusplus:latest
+```
+
+Validate:
+
+```bash
+curl -sS http://localhost:8317/health
+```
+
+## Option B: Standalone Binary
+
+Releases:
+
+- https://github.com/KooshaPari/cliproxyapi-plusplus/releases
+
+Example download and run (adjust artifact name for your OS/arch):
+
+```bash
+curl -fL \
+ https://github.com/KooshaPari/cliproxyapi-plusplus/releases/latest/download/cliproxyapi++-darwin-amd64 \
+ -o cliproxyapi++
+chmod +x cliproxyapi++
+./cliproxyapi++ --config ./config.yaml
+```
+
+## Option C: Build From Source
+
+```bash
+git clone https://github.com/KooshaPari/cliproxyapi-plusplus.git
+cd cliproxyapi-plusplus
+go build ./cmd/cliproxyapi
+./cliproxyapi --config ./config.example.yaml
+```
+
+## Option D: Go SDK / Embedding
+
+```bash
+go get github.com/KooshaPari/cliproxyapi-plusplus/sdk/cliproxy
+```
+
+Related SDK docs:
+
+- [SDK usage](./sdk-usage.md)
+- [SDK advanced](./sdk-advanced.md)
+- [SDK watcher](./sdk-watcher.md)
+
+## Install-Time Checklist
+
+- Confirm `config.yaml` is readable by the process/container user.
+- Confirm `auth-dir` is writable if tokens refresh at runtime.
+- Confirm port `8317` is reachable from intended clients only.
+- Confirm at least one provider credential is configured.
+
+## Common Install Failures
+
+- Container starts then exits: invalid config path or parse error.
+- `bind: address already in use`: port conflict; change host port mapping.
+- Requests always `401`: missing or incorrect `api-keys` for client auth.
+- Management API unavailable: `remote-management.secret-key` unset.
diff --git a/docs/fragemented/node_modules/@algolia/abtesting/README.md b/docs/fragemented/node_modules/@algolia/abtesting/README.md
new file mode 100644
index 0000000000..f63d5620ee
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/abtesting/README.md
@@ -0,0 +1,76 @@
+
+
+
+
+
+
The perfect starting point to integrate Algolia within your JavaScript project
+
+
+
+
+
+
+
+
+
+
+ Documentation •
+ InstantSearch •
+ Community Forum •
+ Stack Overflow •
+ Report a bug •
+ Support
+
+
+## ✨ Features
+
+- Thin & **minimal low-level HTTP client** to interact with Algolia's API
+- Works both on the **browser** and **node.js**
+- **UMD and ESM compatible**, you can use it with any module loader
+- Built with TypeScript
+
+## 💡 Getting Started
+
+> [!TIP]
+> This API client is already a dependency of [the algoliasearch client](https://www.npmjs.com/package/algoliasearch), you don't need to manually install `@algolia/abtesting` if you already have `algoliasearch` installed.
+
+To get started, you first need to install @algolia/abtesting (or any other available API client package).
+All of our clients comes with type definition, and are available for both browser and node environments.
+
+### With a package manager
+
+```bash
+yarn add @algolia/abtesting@1.15.0
+# or
+npm install @algolia/abtesting@1.15.0
+# or
+pnpm add @algolia/abtesting@1.15.0
+```
+
+### Without a package manager
+
+Add the following JavaScript snippet to the of your website:
+
+```html
+
+```
+
+### Usage
+
+You can now import the Algolia API client in your project and play with it.
+
+```js
+import { abtestingV3Client } from '@algolia/abtesting';
+
+const client = abtestingV3Client('YOUR_APP_ID', 'YOUR_API_KEY');
+```
+
+For full documentation, visit the **[Algolia JavaScript API Client](https://www.algolia.com/doc/libraries/sdk/methods/abtesting-v3/)**.
+
+## ❓ Troubleshooting
+
+Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://support.algolia.com/hc/en-us/sections/15061037630609-API-Client-FAQs) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
+
+## 📄 License
+
+The Algolia JavaScript API Client is an open-sourced software licensed under the [MIT license](LICENSE).
diff --git a/docs/fragemented/node_modules/@algolia/autocomplete-core/README.md b/docs/fragemented/node_modules/@algolia/autocomplete-core/README.md
new file mode 100644
index 0000000000..c3e83bb914
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/autocomplete-core/README.md
@@ -0,0 +1,17 @@
+# @algolia/autocomplete-core
+
+The [`autocomplete-core`](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-core/createAutocomplete) package is the foundation of Autocomplete. It exposes primitives to build an autocomplete experience.
+
+You likely don’t need to use this package directly unless you’re building a [renderer](https://www.algolia.com/doc/ui-libraries/autocomplete/guides/creating-a-renderer).
+
+## Installation
+
+```sh
+yarn add @algolia/autocomplete-core
+# or
+npm install @algolia/autocomplete-core
+```
+
+## Documentation
+
+See [**Documentation**](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-core).
diff --git a/docs/fragemented/node_modules/@algolia/autocomplete-plugin-algolia-insights/README.md b/docs/fragemented/node_modules/@algolia/autocomplete-plugin-algolia-insights/README.md
new file mode 100644
index 0000000000..00b667a76f
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/autocomplete-plugin-algolia-insights/README.md
@@ -0,0 +1,15 @@
+# @algolia/autocomplete-plugin-algolia-insights
+
+The Algolia Insights plugin automatically sends click and conversion events to the [Algolia Insights API](https://www.algolia.com/doc/rest-api/insights]) whenever a user interacts with the autocomplete.
+
+## Installation
+
+```sh
+yarn add @algolia/autocomplete-plugin-algolia-insights
+# or
+npm install @algolia/autocomplete-plugin-algolia-insights
+```
+
+## Documentation
+
+See [**Documentation**](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights).
diff --git a/docs/fragemented/node_modules/@algolia/autocomplete-preset-algolia/README.md b/docs/fragemented/node_modules/@algolia/autocomplete-preset-algolia/README.md
new file mode 100644
index 0000000000..da4d3c1b6a
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/autocomplete-preset-algolia/README.md
@@ -0,0 +1,15 @@
+# @algolia/autocomplete-preset-algolia
+
+The Algolia preset provides fetching and highlighting utilities for usage with Algolia.
+
+## Installation
+
+```sh
+yarn add @algolia/autocomplete-preset-algolia
+# or
+npm install @algolia/autocomplete-preset-algolia
+```
+
+## Documentation
+
+See [**Documentation**](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-preset-algolia).
diff --git a/docs/fragemented/node_modules/@algolia/client-abtesting/README.md b/docs/fragemented/node_modules/@algolia/client-abtesting/README.md
new file mode 100644
index 0000000000..ddce7cac2a
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/client-abtesting/README.md
@@ -0,0 +1,76 @@
+
+
+
+
+
+
The perfect starting point to integrate Algolia within your JavaScript project
+
+
+
+
+
+
+
+
+
+
+ Documentation •
+ InstantSearch •
+ Community Forum •
+ Stack Overflow •
+ Report a bug •
+ Support
+
+
+## ✨ Features
+
+- Thin & **minimal low-level HTTP client** to interact with Algolia's API
+- Works both on the **browser** and **node.js**
+- **UMD and ESM compatible**, you can use it with any module loader
+- Built with TypeScript
+
+## 💡 Getting Started
+
+> [!TIP]
+> This API client is already a dependency of [the algoliasearch client](https://www.npmjs.com/package/algoliasearch), you don't need to manually install `@algolia/client-abtesting` if you already have `algoliasearch` installed.
+
+To get started, you first need to install @algolia/client-abtesting (or any other available API client package).
+All of our clients comes with type definition, and are available for both browser and node environments.
+
+### With a package manager
+
+```bash
+yarn add @algolia/client-abtesting@5.49.0
+# or
+npm install @algolia/client-abtesting@5.49.0
+# or
+pnpm add @algolia/client-abtesting@5.49.0
+```
+
+### Without a package manager
+
+Add the following JavaScript snippet to the of your website:
+
+```html
+
+```
+
+### Usage
+
+You can now import the Algolia API client in your project and play with it.
+
+```js
+import { abtestingClient } from '@algolia/client-abtesting';
+
+const client = abtestingClient('YOUR_APP_ID', 'YOUR_API_KEY');
+```
+
+For full documentation, visit the **[Algolia JavaScript API Client](https://www.algolia.com/doc/libraries/sdk/methods/abtesting/)**.
+
+## ❓ Troubleshooting
+
+Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://support.algolia.com/hc/en-us/sections/15061037630609-API-Client-FAQs) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
+
+## 📄 License
+
+The Algolia JavaScript API Client is an open-sourced software licensed under the [MIT license](LICENSE).
diff --git a/docs/fragemented/node_modules/@algolia/client-analytics/README.md b/docs/fragemented/node_modules/@algolia/client-analytics/README.md
new file mode 100644
index 0000000000..31a20729d3
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/client-analytics/README.md
@@ -0,0 +1,76 @@
+
+
+
+
+
+
The perfect starting point to integrate Algolia within your JavaScript project
+
+
+
+
+
+
+
+
+
+
+ Documentation •
+ InstantSearch •
+ Community Forum •
+ Stack Overflow •
+ Report a bug •
+ Support
+
+
+## ✨ Features
+
+- Thin & **minimal low-level HTTP client** to interact with Algolia's API
+- Works both on the **browser** and **node.js**
+- **UMD and ESM compatible**, you can use it with any module loader
+- Built with TypeScript
+
+## 💡 Getting Started
+
+> [!TIP]
+> This API client is already a dependency of [the algoliasearch client](https://www.npmjs.com/package/algoliasearch), you don't need to manually install `@algolia/client-analytics` if you already have `algoliasearch` installed.
+
+To get started, you first need to install @algolia/client-analytics (or any other available API client package).
+All of our clients comes with type definition, and are available for both browser and node environments.
+
+### With a package manager
+
+```bash
+yarn add @algolia/client-analytics@5.49.0
+# or
+npm install @algolia/client-analytics@5.49.0
+# or
+pnpm add @algolia/client-analytics@5.49.0
+```
+
+### Without a package manager
+
+Add the following JavaScript snippet to the of your website:
+
+```html
+
+```
+
+### Usage
+
+You can now import the Algolia API client in your project and play with it.
+
+```js
+import { analyticsClient } from '@algolia/client-analytics';
+
+const client = analyticsClient('YOUR_APP_ID', 'YOUR_API_KEY');
+```
+
+For full documentation, visit the **[Algolia JavaScript API Client](https://www.algolia.com/doc/libraries/sdk/methods/analytics/)**.
+
+## ❓ Troubleshooting
+
+Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://support.algolia.com/hc/en-us/sections/15061037630609-API-Client-FAQs) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
+
+## 📄 License
+
+The Algolia JavaScript API Client is an open-sourced software licensed under the [MIT license](LICENSE).
diff --git a/docs/fragemented/node_modules/@algolia/client-insights/README.md b/docs/fragemented/node_modules/@algolia/client-insights/README.md
new file mode 100644
index 0000000000..2020044a56
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/client-insights/README.md
@@ -0,0 +1,76 @@
+
+
+
+
+
+
The perfect starting point to integrate Algolia within your JavaScript project
+
+
+
+
+
+
+
+
+
+
+ Documentation •
+ InstantSearch •
+ Community Forum •
+ Stack Overflow •
+ Report a bug •
+ Support
+
+
+## ✨ Features
+
+- Thin & **minimal low-level HTTP client** to interact with Algolia's API
+- Works both on the **browser** and **node.js**
+- **UMD and ESM compatible**, you can use it with any module loader
+- Built with TypeScript
+
+## 💡 Getting Started
+
+> [!TIP]
+> This API client is already a dependency of [the algoliasearch client](https://www.npmjs.com/package/algoliasearch), you don't need to manually install `@algolia/client-insights` if you already have `algoliasearch` installed.
+
+To get started, you first need to install @algolia/client-insights (or any other available API client package).
+All of our clients comes with type definition, and are available for both browser and node environments.
+
+### With a package manager
+
+```bash
+yarn add @algolia/client-insights@5.49.0
+# or
+npm install @algolia/client-insights@5.49.0
+# or
+pnpm add @algolia/client-insights@5.49.0
+```
+
+### Without a package manager
+
+Add the following JavaScript snippet to the of your website:
+
+```html
+
+```
+
+### Usage
+
+You can now import the Algolia API client in your project and play with it.
+
+```js
+import { insightsClient } from '@algolia/client-insights';
+
+const client = insightsClient('YOUR_APP_ID', 'YOUR_API_KEY');
+```
+
+For full documentation, visit the **[Algolia JavaScript API Client](https://www.algolia.com/doc/libraries/sdk/methods/insights/)**.
+
+## ❓ Troubleshooting
+
+Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://support.algolia.com/hc/en-us/sections/15061037630609-API-Client-FAQs) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
+
+## 📄 License
+
+The Algolia JavaScript API Client is an open-sourced software licensed under the [MIT license](LICENSE).
diff --git a/docs/fragemented/node_modules/@algolia/client-personalization/README.md b/docs/fragemented/node_modules/@algolia/client-personalization/README.md
new file mode 100644
index 0000000000..16e8f793a4
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/client-personalization/README.md
@@ -0,0 +1,76 @@
+
+
+
+
+
+
The perfect starting point to integrate Algolia within your JavaScript project
+
+
+
+
+
+
+
+
+
+
+ Documentation •
+ InstantSearch •
+ Community Forum •
+ Stack Overflow •
+ Report a bug •
+ Support
+
+
+## ✨ Features
+
+- Thin & **minimal low-level HTTP client** to interact with Algolia's API
+- Works both on the **browser** and **node.js**
+- **UMD and ESM compatible**, you can use it with any module loader
+- Built with TypeScript
+
+## 💡 Getting Started
+
+> [!TIP]
+> This API client is already a dependency of [the algoliasearch client](https://www.npmjs.com/package/algoliasearch), you don't need to manually install `@algolia/client-personalization` if you already have `algoliasearch` installed.
+
+To get started, you first need to install @algolia/client-personalization (or any other available API client package).
+All of our clients comes with type definition, and are available for both browser and node environments.
+
+### With a package manager
+
+```bash
+yarn add @algolia/client-personalization@5.49.0
+# or
+npm install @algolia/client-personalization@5.49.0
+# or
+pnpm add @algolia/client-personalization@5.49.0
+```
+
+### Without a package manager
+
+Add the following JavaScript snippet to the of your website:
+
+```html
+
+```
+
+### Usage
+
+You can now import the Algolia API client in your project and play with it.
+
+```js
+import { personalizationClient } from '@algolia/client-personalization';
+
+const client = personalizationClient('YOUR_APP_ID', 'YOUR_API_KEY');
+```
+
+For full documentation, visit the **[Algolia JavaScript API Client](https://www.algolia.com/doc/libraries/sdk/methods/personalization/)**.
+
+## ❓ Troubleshooting
+
+Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://support.algolia.com/hc/en-us/sections/15061037630609-API-Client-FAQs) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
+
+## 📄 License
+
+The Algolia JavaScript API Client is an open-sourced software licensed under the [MIT license](LICENSE).
diff --git a/docs/fragemented/node_modules/@algolia/client-query-suggestions/README.md b/docs/fragemented/node_modules/@algolia/client-query-suggestions/README.md
new file mode 100644
index 0000000000..4b82b47cd0
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/client-query-suggestions/README.md
@@ -0,0 +1,76 @@
+
+
+
+
+
+
The perfect starting point to integrate Algolia within your JavaScript project
+
+
+
+
+
+
+
+
+
+
+ Documentation •
+ InstantSearch •
+ Community Forum •
+ Stack Overflow •
+ Report a bug •
+ Support
+
+
+## ✨ Features
+
+- Thin & **minimal low-level HTTP client** to interact with Algolia's API
+- Works both on the **browser** and **node.js**
+- **UMD and ESM compatible**, you can use it with any module loader
+- Built with TypeScript
+
+## 💡 Getting Started
+
+> [!TIP]
+> This API client is already a dependency of [the algoliasearch client](https://www.npmjs.com/package/algoliasearch), you don't need to manually install `@algolia/client-query-suggestions` if you already have `algoliasearch` installed.
+
+To get started, you first need to install @algolia/client-query-suggestions (or any other available API client package).
+All of our clients comes with type definition, and are available for both browser and node environments.
+
+### With a package manager
+
+```bash
+yarn add @algolia/client-query-suggestions@5.49.0
+# or
+npm install @algolia/client-query-suggestions@5.49.0
+# or
+pnpm add @algolia/client-query-suggestions@5.49.0
+```
+
+### Without a package manager
+
+Add the following JavaScript snippet to the of your website:
+
+```html
+
+```
+
+### Usage
+
+You can now import the Algolia API client in your project and play with it.
+
+```js
+import { querySuggestionsClient } from '@algolia/client-query-suggestions';
+
+const client = querySuggestionsClient('YOUR_APP_ID', 'YOUR_API_KEY');
+```
+
+For full documentation, visit the **[Algolia JavaScript API Client](https://www.algolia.com/doc/libraries/sdk/methods/query-suggestions/)**.
+
+## ❓ Troubleshooting
+
+Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://support.algolia.com/hc/en-us/sections/15061037630609-API-Client-FAQs) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
+
+## 📄 License
+
+The Algolia JavaScript API Client is an open-sourced software licensed under the [MIT license](LICENSE).
diff --git a/docs/fragemented/node_modules/@algolia/client-search/README.md b/docs/fragemented/node_modules/@algolia/client-search/README.md
new file mode 100644
index 0000000000..17abcdce28
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/client-search/README.md
@@ -0,0 +1,76 @@
+
+
+
+
+
+
The perfect starting point to integrate Algolia within your JavaScript project
+
+
+
+
+
+
+
+
+
+
+ Documentation •
+ InstantSearch •
+ Community Forum •
+ Stack Overflow •
+ Report a bug •
+ Support
+
+
+## ✨ Features
+
+- Thin & **minimal low-level HTTP client** to interact with Algolia's API
+- Works both on the **browser** and **node.js**
+- **UMD and ESM compatible**, you can use it with any module loader
+- Built with TypeScript
+
+## 💡 Getting Started
+
+> [!TIP]
+> This API client is already a dependency of [the algoliasearch client](https://www.npmjs.com/package/algoliasearch), you don't need to manually install `@algolia/client-search` if you already have `algoliasearch` installed.
+
+To get started, you first need to install @algolia/client-search (or any other available API client package).
+All of our clients comes with type definition, and are available for both browser and node environments.
+
+### With a package manager
+
+```bash
+yarn add @algolia/client-search@5.49.0
+# or
+npm install @algolia/client-search@5.49.0
+# or
+pnpm add @algolia/client-search@5.49.0
+```
+
+### Without a package manager
+
+Add the following JavaScript snippet to the of your website:
+
+```html
+
+```
+
+### Usage
+
+You can now import the Algolia API client in your project and play with it.
+
+```js
+import { searchClient } from '@algolia/client-search';
+
+const client = searchClient('YOUR_APP_ID', 'YOUR_API_KEY');
+```
+
+For full documentation, visit the **[Algolia JavaScript API Client](https://www.algolia.com/doc/libraries/sdk/methods/search/)**.
+
+## ❓ Troubleshooting
+
+Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://support.algolia.com/hc/en-us/sections/15061037630609-API-Client-FAQs) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
+
+## 📄 License
+
+The Algolia JavaScript API Client is an open-sourced software licensed under the [MIT license](LICENSE).
diff --git a/docs/fragemented/node_modules/@algolia/ingestion/README.md b/docs/fragemented/node_modules/@algolia/ingestion/README.md
new file mode 100644
index 0000000000..e9c60e149e
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/ingestion/README.md
@@ -0,0 +1,76 @@
+
+
+
+
+
+
The perfect starting point to integrate Algolia within your JavaScript project
+
+
+
+
+
+
+
+
+
+
+ Documentation •
+ InstantSearch •
+ Community Forum •
+ Stack Overflow •
+ Report a bug •
+ Support
+
+
+## ✨ Features
+
+- Thin & **minimal low-level HTTP client** to interact with Algolia's API
+- Works both on the **browser** and **node.js**
+- **UMD and ESM compatible**, you can use it with any module loader
+- Built with TypeScript
+
+## 💡 Getting Started
+
+> [!TIP]
+> This API client is already a dependency of [the algoliasearch client](https://www.npmjs.com/package/algoliasearch), you don't need to manually install `@algolia/ingestion` if you already have `algoliasearch` installed.
+
+To get started, you first need to install @algolia/ingestion (or any other available API client package).
+All of our clients comes with type definition, and are available for both browser and node environments.
+
+### With a package manager
+
+```bash
+yarn add @algolia/ingestion@1.49.0
+# or
+npm install @algolia/ingestion@1.49.0
+# or
+pnpm add @algolia/ingestion@1.49.0
+```
+
+### Without a package manager
+
+Add the following JavaScript snippet to the of your website:
+
+```html
+
+```
+
+### Usage
+
+You can now import the Algolia API client in your project and play with it.
+
+```js
+import { ingestionClient } from '@algolia/ingestion';
+
+const client = ingestionClient('YOUR_APP_ID', 'YOUR_API_KEY');
+```
+
+For full documentation, visit the **[Algolia JavaScript API Client](https://www.algolia.com/doc/libraries/sdk/methods/ingestion/)**.
+
+## ❓ Troubleshooting
+
+Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://support.algolia.com/hc/en-us/sections/15061037630609-API-Client-FAQs) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
+
+## 📄 License
+
+The Algolia JavaScript API Client is an open-sourced software licensed under the [MIT license](LICENSE).
diff --git a/docs/fragemented/node_modules/@algolia/monitoring/README.md b/docs/fragemented/node_modules/@algolia/monitoring/README.md
new file mode 100644
index 0000000000..3982c2d78d
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/monitoring/README.md
@@ -0,0 +1,76 @@
+
+
+
+
+
+
The perfect starting point to integrate Algolia within your JavaScript project
+
+
+
+
+
+
+
+
+
+
+ Documentation •
+ InstantSearch •
+ Community Forum •
+ Stack Overflow •
+ Report a bug •
+ Support
+
+
+## ✨ Features
+
+- Thin & **minimal low-level HTTP client** to interact with Algolia's API
+- Works both on the **browser** and **node.js**
+- **UMD and ESM compatible**, you can use it with any module loader
+- Built with TypeScript
+
+## 💡 Getting Started
+
+> [!TIP]
+> This API client is already a dependency of [the algoliasearch client](https://www.npmjs.com/package/algoliasearch), you don't need to manually install `@algolia/monitoring` if you already have `algoliasearch` installed.
+
+To get started, you first need to install @algolia/monitoring (or any other available API client package).
+All of our clients comes with type definition, and are available for both browser and node environments.
+
+### With a package manager
+
+```bash
+yarn add @algolia/monitoring@1.49.0
+# or
+npm install @algolia/monitoring@1.49.0
+# or
+pnpm add @algolia/monitoring@1.49.0
+```
+
+### Without a package manager
+
+Add the following JavaScript snippet to the of your website:
+
+```html
+
+```
+
+### Usage
+
+You can now import the Algolia API client in your project and play with it.
+
+```js
+import { monitoringClient } from '@algolia/monitoring';
+
+const client = monitoringClient('YOUR_APP_ID', 'YOUR_API_KEY');
+```
+
+For full documentation, visit the **[Algolia JavaScript API Client](https://www.algolia.com/doc/libraries/sdk/methods/monitoring/)**.
+
+## ❓ Troubleshooting
+
+Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://support.algolia.com/hc/en-us/sections/15061037630609-API-Client-FAQs) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
+
+## 📄 License
+
+The Algolia JavaScript API Client is an open-sourced software licensed under the [MIT license](LICENSE).
diff --git a/docs/fragemented/node_modules/@algolia/recommend/README.md b/docs/fragemented/node_modules/@algolia/recommend/README.md
new file mode 100644
index 0000000000..9645db4bd2
--- /dev/null
+++ b/docs/fragemented/node_modules/@algolia/recommend/README.md
@@ -0,0 +1,76 @@
+
+
+
+
+
+
The perfect starting point to integrate Algolia within your JavaScript project
+
+
+
+
+
+
+
+
+
+
+ Documentation •
+ InstantSearch •
+ Community Forum •
+ Stack Overflow •
+ Report a bug •
+ Support
+
+
+## ✨ Features
+
+- Thin & **minimal low-level HTTP client** to interact with Algolia's API
+- Works both on the **browser** and **node.js**
+- **UMD and ESM compatible**, you can use it with any module loader
+- Built with TypeScript
+
+## 💡 Getting Started
+
+> [!TIP]
+> This API client is already a dependency of [the algoliasearch client](https://www.npmjs.com/package/algoliasearch), you don't need to manually install `@algolia/recommend` if you already have `algoliasearch` installed.
+
+To get started, you first need to install @algolia/recommend (or any other available API client package).
+All of our clients comes with type definition, and are available for both browser and node environments.
+
+### With a package manager
+
+```bash
+yarn add @algolia/recommend@5.49.0
+# or
+npm install @algolia/recommend@5.49.0
+# or
+pnpm add @algolia/recommend@5.49.0
+```
+
+### Without a package manager
+
+Add the following JavaScript snippet to the of your website:
+
+```html
+
+```
+
+### Usage
+
+You can now import the Algolia API client in your project and play with it.
+
+```js
+import { recommendClient } from '@algolia/recommend';
+
+const client = recommendClient('YOUR_APP_ID', 'YOUR_API_KEY');
+```
+
+For full documentation, visit the **[Algolia JavaScript API Client](https://www.algolia.com/doc/libraries/sdk/methods/recommend/)**.
+
+## ❓ Troubleshooting
+
+Encountering an issue? Before reaching out to support, we recommend heading to our [FAQ](https://support.algolia.com/hc/en-us/sections/15061037630609-API-Client-FAQs) where you will find answers for the most common issues and gotchas with the client. You can also open [a GitHub issue](https://github.com/algolia/api-clients-automation/issues/new?assignees=&labels=&projects=&template=Bug_report.md)
+
+## 📄 License
+
+The Algolia JavaScript API Client is an open-sourced software licensed under the [MIT license](LICENSE).
diff --git a/docs/fragemented/node_modules/@babel/helper-string-parser/README.md b/docs/fragemented/node_modules/@babel/helper-string-parser/README.md
new file mode 100644
index 0000000000..771b470036
--- /dev/null
+++ b/docs/fragemented/node_modules/@babel/helper-string-parser/README.md
@@ -0,0 +1,19 @@
+# @babel/helper-string-parser
+
+> A utility package to parse strings
+
+See our website [@babel/helper-string-parser](https://babeljs.io/docs/babel-helper-string-parser) for more information.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save @babel/helper-string-parser
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/helper-string-parser
+```
diff --git a/docs/fragemented/node_modules/@babel/helper-validator-identifier/README.md b/docs/fragemented/node_modules/@babel/helper-validator-identifier/README.md
new file mode 100644
index 0000000000..05c19e64a1
--- /dev/null
+++ b/docs/fragemented/node_modules/@babel/helper-validator-identifier/README.md
@@ -0,0 +1,19 @@
+# @babel/helper-validator-identifier
+
+> Validate identifier/keywords name
+
+See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/babel-helper-validator-identifier) for more information.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save @babel/helper-validator-identifier
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/helper-validator-identifier
+```
diff --git a/docs/fragemented/node_modules/@babel/parser/CHANGELOG.md b/docs/fragemented/node_modules/@babel/parser/CHANGELOG.md
new file mode 100644
index 0000000000..b3840ac8d0
--- /dev/null
+++ b/docs/fragemented/node_modules/@babel/parser/CHANGELOG.md
@@ -0,0 +1,1073 @@
+# Changelog
+
+> **Tags:**
+> - :boom: [Breaking Change]
+> - :eyeglasses: [Spec Compliance]
+> - :rocket: [New Feature]
+> - :bug: [Bug Fix]
+> - :memo: [Documentation]
+> - :house: [Internal]
+> - :nail_care: [Polish]
+
+> Semver Policy: https://github.com/babel/babel/tree/main/packages/babel-parser#semver
+
+_Note: Gaps between patch versions are faulty, broken or test releases._
+
+See the [Babel Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) for the pre-6.8.0 version Changelog.
+
+## 6.17.1 (2017-05-10)
+
+### :bug: Bug Fix
+ * Fix typo in flow spread operator error (Brian Ng)
+ * Fixed invalid number literal parsing ([#473](https://github.com/babel/babylon/pull/473)) (Alex Kuzmenko)
+ * Fix number parser ([#433](https://github.com/babel/babylon/pull/433)) (Alex Kuzmenko)
+ * Ensure non pattern shorthand props are checked for reserved words ([#479](https://github.com/babel/babylon/pull/479)) (Brian Ng)
+ * Remove jsx context when parsing arrow functions ([#475](https://github.com/babel/babylon/pull/475)) (Brian Ng)
+ * Allow super in class properties ([#499](https://github.com/babel/babylon/pull/499)) (Brian Ng)
+ * Allow flow class field to be named constructor ([#510](https://github.com/babel/babylon/pull/510)) (Brian Ng)
+
+## 6.17.0 (2017-04-20)
+
+### :bug: Bug Fix
+ * Cherry-pick #418 to 6.x ([#476](https://github.com/babel/babylon/pull/476)) (Sebastian McKenzie)
+ * Add support for invalid escapes in tagged templates ([#274](https://github.com/babel/babylon/pull/274)) (Kevin Gibbons)
+ * Throw error if new.target is used outside of a function ([#402](https://github.com/babel/babylon/pull/402)) (Brian Ng)
+ * Fix parsing of class properties ([#351](https://github.com/babel/babylon/pull/351)) (Kevin Gibbons)
+ * Fix parsing yield with dynamicImport ([#383](https://github.com/babel/babylon/pull/383)) (Brian Ng)
+ * Ensure consistent start args for parseParenItem ([#386](https://github.com/babel/babylon/pull/386)) (Brian Ng)
+
+## 7.0.0-beta.8 (2017-04-04)
+
+### New Feature
+* Add support for flow type spread (#418) (Conrad Buck)
+* Allow statics in flow interfaces (#427) (Brian Ng)
+
+### Bug Fix
+* Fix predicate attachment to match flow parser (#428) (Brian Ng)
+* Add extra.raw back to JSXText and JSXAttribute (#344) (Alex Rattray)
+* Fix rest parameters with array and objects (#424) (Brian Ng)
+* Fix number parser (#433) (Alex Kuzmenko)
+
+### Docs
+* Fix CONTRIBUTING.md [skip ci] (#432) (Alex Kuzmenko)
+
+### Internal
+* Use babel-register script when running babel smoke tests (#442) (Brian Ng)
+
+## 7.0.0-beta.7 (2017-03-22)
+
+### Spec Compliance
+* Remove babylon plugin for template revision since it's stage-4 (#426) (Henry Zhu)
+
+### Bug Fix
+
+* Fix push-pop logic in flow (#405) (Daniel Tschinder)
+
+## 7.0.0-beta.6 (2017-03-21)
+
+### New Feature
+* Add support for invalid escapes in tagged templates (#274) (Kevin Gibbons)
+
+### Polish
+* Improves error message when super is called outside of constructor (#408) (Arshabh Kumar Agarwal)
+
+### Docs
+
+* [7.0] Moved value field in spec from ObjectMember to ObjectProperty as ObjectMethod's don't have it (#415) [skip ci] (James Browning)
+
+## 7.0.0-beta.5 (2017-03-21)
+
+### Bug Fix
+* Throw error if new.target is used outside of a function (#402) (Brian Ng)
+* Fix parsing of class properties (#351) (Kevin Gibbons)
+
+### Other
+ * Test runner: Detect extra property in 'actual' but not in 'expected'. (#407) (Andy)
+ * Optimize travis builds (#419) (Daniel Tschinder)
+ * Update codecov to 2.0 (#412) (Daniel Tschinder)
+ * Fix spec for ClassMethod: It doesn't have a function, it *is* a function. (#406) [skip ci] (Andy)
+ * Changed Non-existent RestPattern to RestElement which is what is actually parsed (#409) [skip ci] (James Browning)
+ * Upgrade flow to 0.41 (Daniel Tschinder)
+ * Fix watch command (#403) (Brian Ng)
+ * Update yarn lock (Daniel Tschinder)
+ * Fix watch command (#403) (Brian Ng)
+ * chore(package): update flow-bin to version 0.41.0 (#395) (greenkeeper[bot])
+ * Add estree test for correct order of directives (Daniel Tschinder)
+ * Add DoExpression to spec (#364) (Alex Kuzmenko)
+ * Mention cloning of repository in CONTRIBUTING.md (#391) [skip ci] (Sumedh Nimkarde)
+ * Explain how to run only one test (#389) [skip ci] (Aaron Ang)
+
+ ## 7.0.0-beta.4 (2017-03-01)
+
+* Don't consume async when checking for async func decl (#377) (Brian Ng)
+* add `ranges` option [skip ci] (Henry Zhu)
+* Don't parse class properties without initializers when classProperties is disabled and Flow is enabled (#300) (Andrew Levine)
+
+## 7.0.0-beta.3 (2017-02-28)
+
+- [7.0] Change RestProperty/SpreadProperty to RestElement/SpreadElement (#384)
+- Merge changes from 6.x
+
+## 7.0.0-beta.2 (2017-02-20)
+
+- estree: correctly change literals in all cases (#368) (Daniel Tschinder)
+
+## 7.0.0-beta.1 (2017-02-20)
+
+- Fix negative number literal typeannotations (#366) (Daniel Tschinder)
+- Update contributing with more test info [skip ci] (#355) (Brian Ng)
+
+## 7.0.0-beta.0 (2017-02-15)
+
+- Reintroduce Variance node (#333) (Daniel Tschinder)
+- Rename NumericLiteralTypeAnnotation to NumberLiteralTypeAnnotation (#332) (Charles Pick)
+- [7.0] Remove ForAwaitStatement, add await flag to ForOfStatement (#349) (Brandon Dail)
+- chore(package): update ava to version 0.18.0 (#345) (greenkeeper[bot])
+- chore(package): update babel-plugin-istanbul to version 4.0.0 (#350) (greenkeeper[bot])
+- Change location of ObjectTypeIndexer to match flow (#228) (Daniel Tschinder)
+- Rename flow AST Type ExistentialTypeParam to ExistsTypeAnnotation (#322) (Toru Kobayashi)
+- Revert "Temporary rollback for erroring on trailing comma with spread (#154)" (#290) (Daniel Tschinder)
+- Remove classConstructorCall plugin (#291) (Brian Ng)
+- Update yarn.lock (Daniel Tschinder)
+- Update cross-env to 3.x (Daniel Tschinder)
+- [7.0] Remove node 0.10, 0.12 and 5 from Travis (#284) (Sergey Rubanov)
+- Remove `String.fromCodePoint` shim (#279) (Mathias Bynens)
+
+## 6.16.1 (2017-02-23)
+
+### :bug: Regression
+
+- Revert "Fix export default async function to be FunctionDeclaration" ([#375](https://github.com/babel/babylon/pull/375))
+
+Need to modify Babel for this AST node change, so moving to 7.0.
+
+- Revert "Don't parse class properties without initializers when classProperties plugin is disabled, and Flow is enabled" ([#376](https://github.com/babel/babylon/pull/376))
+
+[react-native](https://github.com/facebook/react-native/issues/12542) broke with this so we reverted.
+
+## 6.16.0 (2017-02-23)
+
+### :rocket: New Feature
+
+***ESTree*** compatibility as plugin ([#277](https://github.com/babel/babylon/pull/277)) (Daniel Tschinder)
+
+We finally introduce a new compatibility layer for ESTree. To put babylon into ESTree-compatible mode the new plugin `estree` can be enabled. In this mode the parser will output an AST that is compliant to the specs of [ESTree](https://github.com/estree/estree/)
+
+We highly recommend everyone who uses babylon outside of babel to use this plugin. This will make it much easier for users to switch between different ESTree-compatible parsers. We so far tested several projects with different parsers and exchanged their parser to babylon and in nearly all cases it worked out of the box. Some other estree-compatible parsers include `acorn`, `esprima`, `espree`, `flow-parser`, etc.
+
+To enable `estree` mode simply add the plugin in the config:
+```json
+{
+ "plugins": [ "estree" ]
+}
+```
+
+If you want to migrate your project from non-ESTree mode to ESTree, have a look at our [Readme](https://github.com/babel/babylon/#output), where all deviations are mentioned.
+
+Add a parseExpression public method ([#213](https://github.com/babel/babylon/pull/213)) (jeromew)
+
+Babylon exports a new function to parse a single expression
+
+```js
+import { parseExpression } from 'babylon';
+
+const ast = parseExpression('x || y && z', options);
+```
+
+The returned AST will only consist of the expression. The options are the same as for `parse()`
+
+Add startLine option ([#346](https://github.com/babel/babylon/pull/346)) (Raphael Mu)
+
+A new option was added to babylon allowing to change the initial linenumber for the first line which is usually `1`.
+Changing this for example to `100` will make line `1` of the input source to be marked as line `100`, line `2` as `101`, line `3` as `102`, ...
+
+Function predicate declaration ([#103](https://github.com/babel/babylon/pull/103)) (Panagiotis Vekris)
+
+Added support for function predicates which flow introduced in version 0.33.0
+
+```js
+declare function is_number(x: mixed): boolean %checks(typeof x === "number");
+```
+
+Allow imports in declare module ([#315](https://github.com/babel/babylon/pull/315)) (Daniel Tschinder)
+
+Added support for imports within module declarations which flow introduced in version 0.37.0
+
+```js
+declare module "C" {
+ import type { DT } from "D";
+ declare export type CT = { D: DT };
+}
+```
+
+### :eyeglasses: Spec Compliance
+
+Forbid semicolons after decorators in classes ([#352](https://github.com/babel/babylon/pull/352)) (Kevin Gibbons)
+
+This example now correctly throws an error when there is a semicolon after the decorator:
+
+```js
+class A {
+@a;
+foo(){}
+}
+```
+
+Keywords are not allowed as local specifier ([#307](https://github.com/babel/babylon/pull/307)) (Daniel Tschinder)
+
+Using keywords in imports is not allowed anymore:
+
+```js
+import { default } from "foo";
+import { a as debugger } from "foo";
+```
+
+Do not allow overwritting of primitive types ([#314](https://github.com/babel/babylon/pull/314)) (Daniel Tschinder)
+
+In flow it is now forbidden to overwrite the primitive types `"any"`, `"mixed"`, `"empty"`, `"bool"`, `"boolean"`, `"number"`, `"string"`, `"void"` and `"null"` with your own type declaration.
+
+Disallow import type { type a } from … ([#305](https://github.com/babel/babylon/pull/305)) (Daniel Tschinder)
+
+The following code now correctly throws an error
+
+```js
+import type { type a } from "foo";
+```
+
+Don't parse class properties without initializers when classProperties is disabled and Flow is enabled ([#300](https://github.com/babel/babylon/pull/300)) (Andrew Levine)
+
+Ensure that you enable the `classProperties` plugin in order to enable correct parsing of class properties. Prior to this version it was possible to parse them by enabling the `flow` plugin but this was not intended the behaviour.
+
+If you enable the flow plugin you can only define the type of the class properties, but not initialize them.
+
+Fix export default async function to be FunctionDeclaration ([#324](https://github.com/babel/babylon/pull/324)) (Daniel Tschinder)
+
+Parsing the following code now returns a `FunctionDeclaration` AST node instead of `FunctionExpression`.
+
+```js
+export default async function bar() {};
+```
+
+### :nail_care: Polish
+
+Improve error message on attempt to destructure named import ([#288](https://github.com/babel/babylon/pull/288)) (Brian Ng)
+
+### :bug: Bug Fix
+
+Fix negative number literal typeannotations ([#366](https://github.com/babel/babylon/pull/366)) (Daniel Tschinder)
+
+Ensure takeDecorators is called on exported class ([#358](https://github.com/babel/babylon/pull/358)) (Brian Ng)
+
+ESTree: correctly change literals in all cases ([#368](https://github.com/babel/babylon/pull/368)) (Daniel Tschinder)
+
+Correctly convert RestProperty to Assignable ([#339](https://github.com/babel/babylon/pull/339)) (Daniel Tschinder)
+
+Fix #321 by allowing question marks in type params ([#338](https://github.com/babel/babylon/pull/338)) (Daniel Tschinder)
+
+Fix #336 by correctly setting arrow-param ([#337](https://github.com/babel/babylon/pull/337)) (Daniel Tschinder)
+
+Fix parse error when destructuring `set` with default value ([#317](https://github.com/babel/babylon/pull/317)) (Brian Ng)
+
+Fix ObjectTypeCallProperty static ([#298](https://github.com/babel/babylon/pull/298)) (Dan Harper)
+
+
+### :house: Internal
+
+Fix generator-method-with-computed-name spec ([#360](https://github.com/babel/babylon/pull/360)) (Alex Rattray)
+
+Fix flow type-parameter-declaration test with unintended semantic ([#361](https://github.com/babel/babylon/pull/361)) (Alex Rattray)
+
+Cleanup and splitup parser functions ([#295](https://github.com/babel/babylon/pull/295)) (Daniel Tschinder)
+
+chore(package): update flow-bin to version 0.38.0 ([#313](https://github.com/babel/babylon/pull/313)) (greenkeeper[bot])
+
+Call inner function instead of 1:1 copy to plugin ([#294](https://github.com/babel/babylon/pull/294)) (Daniel Tschinder)
+
+Update eslint-config-babel to the latest version 🚀 ([#299](https://github.com/babel/babylon/pull/299)) (greenkeeper[bot])
+
+Update eslint-config-babel to the latest version 🚀 ([#293](https://github.com/babel/babylon/pull/293)) (greenkeeper[bot])
+
+devDeps: remove eslint-plugin-babel ([#292](https://github.com/babel/babylon/pull/292)) (Kai Cataldo)
+
+Correct indent eslint rule config ([#276](https://github.com/babel/babylon/pull/276)) (Daniel Tschinder)
+
+Fail tests that have expected.json and throws-option ([#285](https://github.com/babel/babylon/pull/285)) (Daniel Tschinder)
+
+### :memo: Documentation
+
+Update contributing with more test info [skip ci] ([#355](https://github.com/babel/babylon/pull/355)) (Brian Ng)
+
+Update API documentation ([#330](https://github.com/babel/babylon/pull/330)) (Timothy Gu)
+
+Added keywords to package.json ([#323](https://github.com/babel/babylon/pull/323)) (Dmytro)
+
+AST spec: fix casing of `RegExpLiteral` ([#318](https://github.com/babel/babylon/pull/318)) (Mathias Bynens)
+
+## 6.15.0 (2017-01-10)
+
+### :eyeglasses: Spec Compliance
+
+Add support for Flow shorthand import type ([#267](https://github.com/babel/babylon/pull/267)) (Jeff Morrison)
+
+This change implements flows new shorthand import syntax
+and where previously you had to write this code:
+
+```js
+import {someValue} from "blah";
+import type {someType} from "blah";
+import typeof {someOtherValue} from "blah";
+```
+
+you can now write it like this:
+
+```js
+import {
+ someValue,
+ type someType,
+ typeof someOtherValue,
+} from "blah";
+```
+
+For more information look at [this](https://github.com/facebook/flow/pull/2890) pull request.
+
+flow: allow leading pipes in all positions ([#256](https://github.com/babel/babylon/pull/256)) (Vladimir Kurchatkin)
+
+This change now allows a leading pipe everywhere types can be used:
+```js
+var f = (x): | 1 | 2 => 1;
+```
+
+Throw error when exporting non-declaration ([#241](https://github.com/babel/babylon/pull/241)) (Kai Cataldo)
+
+Previously babylon parsed the following exports, although they are not valid:
+```js
+export typeof foo;
+export new Foo();
+export function() {};
+export for (;;);
+export while(foo);
+```
+
+### :bug: Bug Fix
+
+Don't set inType flag when parsing property names ([#266](https://github.com/babel/babylon/pull/266)) (Vladimir Kurchatkin)
+
+This fixes parsing of this case:
+
+```js
+const map = {
+ [age <= 17] : 'Too young'
+};
+```
+
+Fix source location for JSXEmptyExpression nodes (fixes #248) ([#249](https://github.com/babel/babylon/pull/249)) (James Long)
+
+The following case produced an invalid AST
+```js
+{/* foo */}
+```
+
+Use fromCodePoint to convert high value unicode entities ([#243](https://github.com/babel/babylon/pull/243)) (Ryan Duffy)
+
+When high value unicode entities (e.g. 💩) were used in the input source code they are now correctly encoded in the resulting AST.
+
+Rename folder to avoid Windows-illegal characters ([#281](https://github.com/babel/babylon/pull/281)) (Ryan Plant)
+
+Allow this.state.clone() when parsing decorators ([#262](https://github.com/babel/babylon/pull/262)) (Alex Rattray)
+
+### :house: Internal
+
+User external-helpers ([#254](https://github.com/babel/babylon/pull/254)) (Daniel Tschinder)
+
+Add watch script for dev ([#234](https://github.com/babel/babylon/pull/234)) (Kai Cataldo)
+
+Freeze current plugins list for "*" option, and remove from README.md ([#245](https://github.com/babel/babylon/pull/245)) (Andrew Levine)
+
+Prepare tests for multiple fixture runners. ([#240](https://github.com/babel/babylon/pull/240)) (Daniel Tschinder)
+
+Add some test coverage for decorators stage-0 plugin ([#250](https://github.com/babel/babylon/pull/250)) (Andrew Levine)
+
+Refactor tokenizer types file ([#263](https://github.com/babel/babylon/pull/263)) (Sven SAULEAU)
+
+Update eslint-config-babel to the latest version 🚀 ([#273](https://github.com/babel/babylon/pull/273)) (greenkeeper[bot])
+
+chore(package): update rollup to version 0.41.0 ([#272](https://github.com/babel/babylon/pull/272)) (greenkeeper[bot])
+
+chore(package): update flow-bin to version 0.37.0 ([#255](https://github.com/babel/babylon/pull/255)) (greenkeeper[bot])
+
+## 6.14.1 (2016-11-17)
+
+### :bug: Bug Fix
+
+Allow `"plugins": ["*"]` ([#229](https://github.com/babel/babylon/pull/229)) (Daniel Tschinder)
+
+```js
+{
+ "plugins": ["*"]
+}
+```
+
+Will include all parser plugins instead of specifying each one individually. Useful for tools like babel-eslint, jscodeshift, and ast-explorer.
+
+## 6.14.0 (2016-11-16)
+
+### :eyeglasses: Spec Compliance
+
+Throw error for reserved words `enum` and `await` ([#195](https://github.com/babel/babylon/pull/195)) (Kai Cataldo)
+
+[11.6.2.2 Future Reserved Words](http://www.ecma-international.org/ecma-262/6.0/#sec-future-reserved-words)
+
+Babylon will throw for more reserved words such as `enum` or `await` (in strict mode).
+
+```
+class enum {} // throws
+class await {} // throws in strict mode (module)
+```
+
+Optional names for function types and object type indexers ([#197](https://github.com/babel/babylon/pull/197)) (Gabe Levi)
+
+So where you used to have to write
+
+```js
+type A = (x: string, y: boolean) => number;
+type B = (z: string) => number;
+type C = { [key: string]: number };
+```
+
+you can now write (with flow 0.34.0)
+
+```js
+type A = (string, boolean) => number;
+type B = string => number;
+type C = { [string]: number };
+```
+
+Parse flow nested array type annotations like `number[][]` ([#219](https://github.com/babel/babylon/pull/219)) (Bernhard Häussner)
+
+Supports these form now of specifying array types:
+
+```js
+var a: number[][][][];
+var b: string[][];
+```
+
+### :bug: Bug Fix
+
+Correctly eat semicolon at the end of `DelcareModuleExports` ([#223](https://github.com/babel/babylon/pull/223)) (Daniel Tschinder)
+
+```
+declare module "foo" { declare module.exports: number }
+declare module "foo" { declare module.exports: number; } // also allowed now
+```
+
+### :house: Internal
+
+ * Count Babel tests towards Babylon code coverage ([#182](https://github.com/babel/babylon/pull/182)) (Moti Zilberman)
+ * Fix strange line endings ([#214](https://github.com/babel/babylon/pull/214)) (Thomas Grainger)
+ * Add node 7 (Daniel Tschinder)
+ * chore(package): update flow-bin to version 0.34.0 ([#204](https://github.com/babel/babylon/pull/204)) (Greenkeeper)
+
+## v6.13.1 (2016-10-26)
+
+### :nail_care: Polish
+
+- Use rollup for bundling to speed up startup time ([#190](https://github.com/babel/babylon/pull/190)) ([@drewml](https://github.com/DrewML))
+
+```js
+const babylon = require('babylon');
+const ast = babylon.parse('var foo = "lol";');
+```
+
+With that test case, there was a ~95ms savings by removing the need for node to build/traverse the dependency graph.
+
+**Without bundling**
+
+
+**With bundling**
+
+
+- add clean command [skip ci] ([#201](https://github.com/babel/babylon/pull/201)) (Henry Zhu)
+- add ForAwaitStatement (async generator already added) [skip ci] ([#196](https://github.com/babel/babylon/pull/196)) (Henry Zhu)
+
+## v6.13.0 (2016-10-21)
+
+### :eyeglasses: Spec Compliance
+
+Property variance type annotations for Flow plugin ([#161](https://github.com/babel/babylon/pull/161)) (Sam Goldman)
+
+> See https://flowtype.org/docs/variance.html for more information
+
+```js
+type T = { +p: T };
+interface T { -p: T };
+declare class T { +[k:K]: V };
+class T { -[k:K]: V };
+class C2 { +p: T = e };
+```
+
+Raise error on duplicate definition of __proto__ ([#183](https://github.com/babel/babylon/pull/183)) (Moti Zilberman)
+
+```js
+({ __proto__: 1, __proto__: 2 }) // Throws an error now
+```
+
+### :bug: Bug Fix
+
+Flow: Allow class properties to be named `static` ([#184](https://github.com/babel/babylon/pull/184)) (Moti Zilberman)
+
+```js
+declare class A {
+ static: T;
+}
+```
+
+Allow "async" as identifier for object literal property shorthand ([#187](https://github.com/babel/babylon/pull/187)) (Andrew Levine)
+
+```js
+var foo = { async, bar };
+```
+
+### :nail_care: Polish
+
+Fix flowtype and add inType to state ([#189](https://github.com/babel/babylon/pull/189)) (Daniel Tschinder)
+
+> This improves the performance slightly (because of hidden classes)
+
+### :house: Internal
+
+Fix .gitattributes line ending setting ([#191](https://github.com/babel/babylon/pull/191)) (Moti Zilberman)
+
+Increase test coverage ([#175](https://github.com/babel/babylon/pull/175) (Moti Zilberman)
+
+Readd missin .eslinignore for IDEs (Daniel Tschinder)
+
+Error on missing expected.json fixture in CI ([#188](https://github.com/babel/babylon/pull/188)) (Moti Zilberman)
+
+Add .gitattributes and .editorconfig for LF line endings ([#179](https://github.com/babel/babylon/pull/179)) (Moti Zilberman)
+
+Fixes two tests that are failing after the merge of #172 ([#177](https://github.com/babel/babylon/pull/177)) (Moti Zilberman)
+
+## v6.12.0 (2016-10-14)
+
+### :eyeglasses: Spec Compliance
+
+Implement import() syntax ([#163](https://github.com/babel/babylon/pull/163)) (Jordan Gensler)
+
+#### Dynamic Import
+
+- Proposal Repo: https://github.com/domenic/proposal-dynamic-import
+- Championed by [@domenic](https://github.com/domenic)
+- stage-2
+- [sept-28 tc39 notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-09/sept-28.md#113a-import)
+
+> This repository contains a proposal for adding a "function-like" import() module loading syntactic form to JavaScript
+
+```js
+import(`./section-modules/${link.dataset.entryModule}.js`)
+.then(module => {
+ module.loadPageInto(main);
+})
+```
+
+Add EmptyTypeAnnotation ([#171](https://github.com/babel/babylon/pull/171)) (Sam Goldman)
+
+#### EmptyTypeAnnotation
+
+Just wasn't covered before.
+
+```js
+type T = empty;
+```
+
+### :bug: Bug Fix
+
+Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels)
+
+```js
+// was failing due to sparse array
+export const { foo: [ ,, qux7 ] } = bar;
+```
+
+Allow keyword in Flow object declaration property names with type parameters ([#146](https://github.com/babel/babylon/pull/146)) (Dan Harper)
+
+```js
+declare class X {
+ foobar(): void;
+ static foobar(): void;
+}
+```
+
+Allow keyword in object/class property names with Flow type parameters ([#145](https://github.com/babel/babylon/pull/145)) (Dan Harper)
+
+```js
+class Foo {
+ delete(item: T): T {
+ return item;
+ }
+}
+```
+
+Allow typeAnnotations for yield expressions ([#174](https://github.com/babel/babylon/pull/174))) (Daniel Tschinder)
+
+```js
+function *foo() {
+ const x = (yield 5: any);
+}
+```
+
+### :nail_care: Polish
+
+Annotate more errors with expected token ([#172](https://github.com/babel/babylon/pull/172))) (Moti Zilberman)
+
+```js
+// Unexpected token, expected ; (1:6)
+{ set 1 }
+```
+
+### :house: Internal
+
+Remove kcheck ([#173](https://github.com/babel/babylon/pull/173))) (Daniel Tschinder)
+
+Also run flow, linting, babel tests on separate instances (add back node 0.10)
+
+## v6.11.6 (2016-10-12)
+
+### :bug: Bug Fix/Regression
+
+Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels)
+
+```js
+// was failing with `Cannot read property 'type' of null` because of null identifiers
+export const { foo: [ ,, qux7 ] } = bar;
+```
+
+## v6.11.5 (2016-10-12)
+
+### :eyeglasses: Spec Compliance
+
+Fix: Check for duplicate named exports in exported destructuring assignments ([#144](https://github.com/babel/babylon/pull/144)) (Kai Cataldo)
+
+```js
+// `foo` has already been exported. Exported identifiers must be unique. (2:20)
+export function foo() {};
+export const { a: [{foo}] } = bar;
+```
+
+Fix: Check for duplicate named exports in exported rest elements/properties ([#164](https://github.com/babel/babylon/pull/164)) (Kai Cataldo)
+
+```js
+// `foo` has already been exported. Exported identifiers must be unique. (2:22)
+export const foo = 1;
+export const [bar, ...foo] = baz;
+```
+
+### :bug: Bug Fix
+
+Fix: Allow identifier `async` for default param in arrow expression ([#165](https://github.com/babel/babylon/pull/165)) (Kai Cataldo)
+
+```js
+// this is ok now
+const test = ({async = true}) => {};
+```
+
+### :nail_care: Polish
+
+Babylon will now print out the token it's expecting if there's a `SyntaxError` ([#150](https://github.com/babel/babylon/pull/150)) (Daniel Tschinder)
+
+```bash
+# So in the case of a missing ending curly (`}`)
+Module build failed: SyntaxError: Unexpected token, expected } (30:0)
+ 28 | }
+ 29 |
+> 30 |
+ | ^
+```
+
+## v6.11.4 (2016-10-03)
+
+Temporary rollback for erroring on trailing comma with spread (#154) (Henry Zhu)
+
+## v6.11.3 (2016-10-01)
+
+### :eyeglasses: Spec Compliance
+
+Add static errors for object rest (#149) ([@danez](https://github.com/danez))
+
+> https://github.com/sebmarkbage/ecmascript-rest-spread
+
+Object rest copies the *rest* of properties from the right hand side `obj` starting from the left to right.
+
+```js
+let { x, y, ...z } = { x: 1, y: 2, z: 3 };
+// x = 1
+// y = 2
+// z = { z: 3 }
+```
+
+#### New Syntax Errors:
+
+**SyntaxError**: The rest element has to be the last element when destructuring (1:10)
+```bash
+> 1 | let { ...x, y, z } = { x: 1, y: 2, z: 3};
+ | ^
+# Previous behavior:
+# x = { x: 1, y: 2, z: 3 }
+# y = 2
+# z = 3
+```
+
+Before, this was just a more verbose way of shallow copying `obj` since it doesn't actually do what you think.
+
+**SyntaxError**: Cannot have multiple rest elements when destructuring (1:13)
+
+```bash
+> 1 | let { x, ...y, ...z } = { x: 1, y: 2, z: 3};
+ | ^
+# Previous behavior:
+# x = 1
+# y = { y: 2, z: 3 }
+# z = { y: 2, z: 3 }
+```
+
+Before y and z would just be the same value anyway so there is no reason to need to have both.
+
+**SyntaxError**: A trailing comma is not permitted after the rest element (1:16)
+
+```js
+let { x, y, ...z, } = obj;
+```
+
+The rationale for this is that the use case for trailing comma is that you can add something at the end without affecting the line above. Since a RestProperty always has to be the last property it doesn't make sense.
+
+---
+
+get / set are valid property names in default assignment (#142) ([@jezell](https://github.com/jezell))
+
+```js
+// valid
+function something({ set = null, get = null }) {}
+```
+
+## v6.11.2 (2016-09-23)
+
+### Bug Fix
+
+- [#139](https://github.com/babel/babylon/issues/139) Don't do the duplicate check if not an identifier (#140) @hzoo
+
+```js
+// regression with duplicate export check
+SyntaxError: ./typography.js: `undefined` has already been exported. Exported identifiers must be unique. (22:13)
+ 20 |
+ 21 | export const { rhythm } = typography;
+> 22 | export const { TypographyStyle } = typography
+```
+
+Bail out for now, and make a change to account for destructuring in the next release.
+
+## 6.11.1 (2016-09-22)
+
+### Bug Fix
+- [#137](https://github.com/babel/babylon/pull/137) - Fix a regression with duplicate exports - it was erroring on all keys in `Object.prototype`. @danez
+
+```javascript
+export toString from './toString';
+```
+
+```bash
+`toString` has already been exported. Exported identifiers must be unique. (1:7)
+> 1 | export toString from './toString';
+ | ^
+ 2 |
+```
+
+## 6.11.0 (2016-09-22)
+
+### Spec Compliance (will break CI)
+
+- Disallow duplicate named exports ([#107](https://github.com/babel/babylon/pull/107)) @kaicataldo
+
+```js
+// Only one default export allowed per module. (2:9)
+export default function() {};
+export { foo as default };
+
+// Only one default export allowed per module. (2:0)
+export default {};
+export default function() {};
+
+// `Foo` has already been exported. Exported identifiers must be unique. (2:0)
+export { Foo };
+export class Foo {};
+```
+
+### New Feature (Syntax)
+
+- Add support for computed class property names ([#121](https://github.com/babel/babylon/pull/121)) @motiz88
+
+```js
+// AST
+interface ClassProperty <: Node {
+ type: "ClassProperty";
+ key: Identifier;
+ value: Expression;
+ computed: boolean; // added
+}
+```
+
+```js
+// with "plugins": ["classProperties"]
+class Foo {
+ [x]
+ ['y']
+}
+
+class Bar {
+ [p]
+ [m] () {}
+}
+ ```
+
+### Bug Fix
+
+- Fix `static` property falling through in the declare class Flow AST ([#135](https://github.com/babel/babylon/pull/135)) @danharper
+
+```js
+declare class X {
+ a: number;
+ static b: number; // static
+ c: number; // this was being marked as static in the AST as well
+}
+```
+
+### Polish
+
+- Rephrase "assigning/binding to rvalue" errors to include context ([#119](https://github.com/babel/babylon/pull/119)) @motiz88
+
+```js
+// Used to error with:
+// SyntaxError: Assigning to rvalue (1:0)
+
+// Now:
+// Invalid left-hand side in assignment expression (1:0)
+3 = 4
+
+// Invalid left-hand side in for-in statement (1:5)
+for (+i in {});
+```
+
+### Internal
+
+- Fix call to `this.parseMaybeAssign` with correct arguments ([#133](https://github.com/babel/babylon/pull/133)) @danez
+- Add semver note to changelog ([#131](https://github.com/babel/babylon/pull/131)) @hzoo
+
+## 6.10.0 (2016-09-19)
+
+> We plan to include some spec compliance bugs in patch versions. An example was the multiple default exports issue.
+
+### Spec Compliance
+
+* Implement ES2016 check for simple parameter list in strict mode ([#106](https://github.com/babel/babylon/pull/106)) (Timothy Gu)
+
+> It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false. https://tc39.github.io/ecma262/2016/#sec-function-definitions-static-semantics-early-errors
+
+More Context: [tc39-notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2015-07/july-29.md#611-the-scope-of-use-strict-with-respect-to-destructuring-in-parameter-lists)
+
+For example:
+
+```js
+// this errors because it uses destructuring and default parameters
+// in a function with a "use strict" directive
+function a([ option1, option2 ] = []) {
+ "use strict";
+}
+ ```
+
+The solution would be to use a top level "use strict" or to remove the destructuring or default parameters when using a function + "use strict" or to.
+
+### New Feature
+
+* Exact object type annotations for Flow plugin ([#104](https://github.com/babel/babylon/pull/104)) (Basil Hosmer)
+
+Added to flow in https://github.com/facebook/flow/commit/c710c40aa2a115435098d6c0dfeaadb023cd39b8
+
+Looks like:
+
+```js
+var a : {| x: number, y: string |} = { x: 0, y: 'foo' };
+```
+
+### Bug Fixes
+
+* Include `typeParameter` location in `ArrowFunctionExpression` ([#126](https://github.com/babel/babylon/pull/126)) (Daniel Tschinder)
+* Error on invalid flow type annotation with default assignment ([#122](https://github.com/babel/babylon/pull/122)) (Dan Harper)
+* Fix Flow return types on arrow functions ([#124](https://github.com/babel/babylon/pull/124)) (Dan Harper)
+
+### Misc
+
+* Add tests for export extensions ([#127](https://github.com/babel/babylon/pull/127)) (Daniel Tschinder)
+* Fix Contributing guidelines [skip ci] (Daniel Tschinder)
+
+## 6.9.2 (2016-09-09)
+
+The only change is to remove the `babel-runtime` dependency by compiling with Babel's ES2015 loose mode. So using babylon standalone should be smaller.
+
+## 6.9.1 (2016-08-23)
+
+This release contains mainly small bugfixes but also updates babylons default mode to es2017. The features for `exponentiationOperator`, `asyncFunctions` and `trailingFunctionCommas` which previously needed to be activated via plugin are now enabled by default and the plugins are now no-ops.
+
+### Bug Fixes
+
+- Fix issues with default object params in async functions ([#96](https://github.com/babel/babylon/pull/96)) @danez
+- Fix issues with flow-types and async function ([#95](https://github.com/babel/babylon/pull/95)) @danez
+- Fix arrow functions with destructuring, types & default value ([#94](https://github.com/babel/babylon/pull/94)) @danharper
+- Fix declare class with qualified type identifier ([#97](https://github.com/babel/babylon/pull/97)) @danez
+- Remove exponentiationOperator, asyncFunctions, trailingFunctionCommas plugins and enable them by default ([#98](https://github.com/babel/babylon/pull/98)) @danez
+
+## 6.9.0 (2016-08-16)
+
+### New syntax support
+
+- Add JSX spread children ([#42](https://github.com/babel/babylon/pull/42)) @calebmer
+
+(Be aware that React is not going to support this syntax)
+
+```js
+
+ {...todos.map(todo => )}
+
+```
+
+- Add support for declare module.exports ([#72](https://github.com/babel/babylon/pull/72)) @danez
+
+```js
+declare module "foo" {
+ declare module.exports: {}
+}
+```
+
+### New Features
+
+- If supplied, attach filename property to comment node loc. ([#80](https://github.com/babel/babylon/pull/80)) @divmain
+- Add identifier name to node loc field ([#90](https://github.com/babel/babylon/pull/90)) @kittens
+
+### Bug Fixes
+
+- Fix exponential operator to behave according to spec ([#75](https://github.com/babel/babylon/pull/75)) @danez
+- Fix lookahead to not add comments to arrays which are not cloned ([#76](https://github.com/babel/babylon/pull/76)) @danez
+- Fix accidental fall-through in Flow type parsing. ([#82](https://github.com/babel/babylon/pull/82)) @xiemaisi
+- Only allow declares inside declare module ([#73](https://github.com/babel/babylon/pull/73)) @danez
+- Small fix for parsing type parameter declarations ([#83](https://github.com/babel/babylon/pull/83)) @gabelevi
+- Fix arrow param locations with flow types ([#57](https://github.com/babel/babylon/pull/57)) @danez
+- Fixes SyntaxError position with flow optional type ([#65](https://github.com/babel/babylon/pull/65)) @danez
+
+### Internal
+
+- Add codecoverage to tests @danez
+- Fix tests to not save expected output if we expect the test to fail @danez
+- Make a shallow clone of babel for testing @danez
+- chore(package): update cross-env to version 2.0.0 ([#77](https://github.com/babel/babylon/pull/77)) @greenkeeperio-bot
+- chore(package): update ava to version 0.16.0 ([#86](https://github.com/babel/babylon/pull/86)) @greenkeeperio-bot
+- chore(package): update babel-plugin-istanbul to version 2.0.0 ([#89](https://github.com/babel/babylon/pull/89)) @greenkeeperio-bot
+- chore(package): update nyc to version 8.0.0 ([#88](https://github.com/babel/babylon/pull/88)) @greenkeeperio-bot
+
+## 6.8.4 (2016-07-06)
+
+### Bug Fixes
+
+- Fix the location of params, when flow and default value used ([#68](https://github.com/babel/babylon/pull/68)) @danez
+
+## 6.8.3 (2016-07-02)
+
+### Bug Fixes
+
+- Fix performance regression introduced in 6.8.2 with conditionals ([#63](https://github.com/babel/babylon/pull/63)) @danez
+
+## 6.8.2 (2016-06-24)
+
+### Bug Fixes
+
+- Fix parse error with yielding jsx elements in generators `function* it() { yield ; }` ([#31](https://github.com/babel/babylon/pull/31)) @eldereal
+- When cloning nodes do not clone its comments ([#24](https://github.com/babel/babylon/pull/24)) @danez
+- Fix parse errors when using arrow functions with an spread element and return type `(...props): void => {}` ([#10](https://github.com/babel/babylon/pull/10)) @danez
+- Fix leading comments added from previous node ([#23](https://github.com/babel/babylon/pull/23)) @danez
+- Fix parse errors with flow's optional arguments `(arg?) => {}` ([#19](https://github.com/babel/babylon/pull/19)) @danez
+- Support negative numeric type literals @kittens
+- Remove line terminator restriction after await keyword @kittens
+- Remove grouped type arrow restriction as it seems flow no longer has it @kittens
+- Fix parse error with generic methods that have the name `get` or `set` `class foo { get() {} }` ([#55](https://github.com/babel/babylon/pull/55)) @vkurchatkin
+- Fix parse error with arrow functions that have flow type parameter declarations `(x: T): T => x;` ([#54](https://github.com/babel/babylon/pull/54)) @gabelevi
+
+### Documentation
+
+- Document AST differences from ESTree ([#41](https://github.com/babel/babylon/pull/41)) @nene
+- Move ast spec from babel/babel ([#46](https://github.com/babel/babylon/pull/46)) @hzoo
+
+### Internal
+
+- Enable skipped tests ([#16](https://github.com/babel/babylon/pull/16)) @danez
+- Add script to test latest version of babylon with babel ([#21](https://github.com/babel/babylon/pull/21)) @danez
+- Upgrade test runner ava @kittens
+- Add missing generate-identifier-regex script @kittens
+- Rename parser context types @kittens
+- Add node v6 to travis testing @hzoo
+- Update to Unicode v9 ([#45](https://github.com/babel/babylon/pull/45)) @mathiasbynens
+
+## 6.8.1 (2016-06-06)
+
+### New Feature
+
+- Parse type parameter declarations with defaults like `type Foo = T`
+
+### Bug Fixes
+- Type parameter declarations need 1 or more type parameters.
+- The existential type `*` is not a valid type parameter.
+- The existential type `*` is a primary type
+
+### Spec Compliance
+- The param list for type parameter declarations now consists of `TypeParameter` nodes
+- New `TypeParameter` AST Node (replaces using the `Identifier` node before)
+
+```
+interface TypeParameter <: Node {
+ bound: TypeAnnotation;
+ default: TypeAnnotation;
+ name: string;
+ variance: "plus" | "minus";
+}
+```
+
+## 6.8.0 (2016-05-02)
+
+#### New Feature
+
+##### Parse Method Parameter Decorators ([#12](https://github.com/babel/babylon/pull/12))
+
+> [Method Parameter Decorators](https://goo.gl/8MmCMG) is now a TC39 [stage 0 proposal](https://github.com/tc39/ecma262/blob/master/stage0.md).
+
+Examples:
+
+```js
+class Foo {
+ constructor(@foo() x, @bar({ a: 123 }) @baz() y) {}
+}
+
+export default function func(@foo() x, @bar({ a: 123 }) @baz() y) {}
+
+var obj = {
+ method(@foo() x, @bar({ a: 123 }) @baz() y) {}
+};
+```
+
+##### Parse for-await statements (w/ `asyncGenerators` plugin) ([#17](https://github.com/babel/babylon/pull/17))
+
+There is also a new node type, `ForAwaitStatement`.
+
+> [Async generators and for-await](https://github.com/tc39/proposal-async-iteration) are now a [stage 2 proposal](https://github.com/tc39/ecma262#current-proposals).
+
+Example:
+
+```js
+async function f() {
+ for await (let x of y);
+}
+```
diff --git a/docs/fragemented/node_modules/@babel/parser/README.md b/docs/fragemented/node_modules/@babel/parser/README.md
new file mode 100644
index 0000000000..a9463e813b
--- /dev/null
+++ b/docs/fragemented/node_modules/@babel/parser/README.md
@@ -0,0 +1,19 @@
+# @babel/parser
+
+> A JavaScript parser
+
+See our website [@babel/parser](https://babeljs.io/docs/babel-parser) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20parser%22+is%3Aopen) associated with this package.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save-dev @babel/parser
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/parser --dev
+```
diff --git a/docs/fragemented/node_modules/@babel/parser/index.md b/docs/fragemented/node_modules/@babel/parser/index.md
new file mode 100644
index 0000000000..847cbcf126
--- /dev/null
+++ b/docs/fragemented/node_modules/@babel/parser/index.md
@@ -0,0 +1,8 @@
+# Consolidated Index
+
+## Files
+
+* `CHANGELOG.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/node_modules/@babel/parser/merged.md b/docs/fragemented/node_modules/@babel/parser/merged.md
new file mode 100644
index 0000000000..b7609444ad
--- /dev/null
+++ b/docs/fragemented/node_modules/@babel/parser/merged.md
@@ -0,0 +1,1080 @@
+# Merged Fragmented Markdown
+
+## Source: node_modules/@babel/parser/CHANGELOG.md
+
+# Changelog
+
+> **Tags:**
+> - :boom: [Breaking Change]
+> - :eyeglasses: [Spec Compliance]
+> - :rocket: [New Feature]
+> - :bug: [Bug Fix]
+> - :memo: [Documentation]
+> - :house: [Internal]
+> - :nail_care: [Polish]
+
+> Semver Policy: https://github.com/babel/babel/tree/main/packages/babel-parser#semver
+
+_Note: Gaps between patch versions are faulty, broken or test releases._
+
+See the [Babel Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) for the pre-6.8.0 version Changelog.
+
+## 6.17.1 (2017-05-10)
+
+### :bug: Bug Fix
+ * Fix typo in flow spread operator error (Brian Ng)
+ * Fixed invalid number literal parsing ([#473](https://github.com/babel/babylon/pull/473)) (Alex Kuzmenko)
+ * Fix number parser ([#433](https://github.com/babel/babylon/pull/433)) (Alex Kuzmenko)
+ * Ensure non pattern shorthand props are checked for reserved words ([#479](https://github.com/babel/babylon/pull/479)) (Brian Ng)
+ * Remove jsx context when parsing arrow functions ([#475](https://github.com/babel/babylon/pull/475)) (Brian Ng)
+ * Allow super in class properties ([#499](https://github.com/babel/babylon/pull/499)) (Brian Ng)
+ * Allow flow class field to be named constructor ([#510](https://github.com/babel/babylon/pull/510)) (Brian Ng)
+
+## 6.17.0 (2017-04-20)
+
+### :bug: Bug Fix
+ * Cherry-pick #418 to 6.x ([#476](https://github.com/babel/babylon/pull/476)) (Sebastian McKenzie)
+ * Add support for invalid escapes in tagged templates ([#274](https://github.com/babel/babylon/pull/274)) (Kevin Gibbons)
+ * Throw error if new.target is used outside of a function ([#402](https://github.com/babel/babylon/pull/402)) (Brian Ng)
+ * Fix parsing of class properties ([#351](https://github.com/babel/babylon/pull/351)) (Kevin Gibbons)
+ * Fix parsing yield with dynamicImport ([#383](https://github.com/babel/babylon/pull/383)) (Brian Ng)
+ * Ensure consistent start args for parseParenItem ([#386](https://github.com/babel/babylon/pull/386)) (Brian Ng)
+
+## 7.0.0-beta.8 (2017-04-04)
+
+### New Feature
+* Add support for flow type spread (#418) (Conrad Buck)
+* Allow statics in flow interfaces (#427) (Brian Ng)
+
+### Bug Fix
+* Fix predicate attachment to match flow parser (#428) (Brian Ng)
+* Add extra.raw back to JSXText and JSXAttribute (#344) (Alex Rattray)
+* Fix rest parameters with array and objects (#424) (Brian Ng)
+* Fix number parser (#433) (Alex Kuzmenko)
+
+### Docs
+* Fix CONTRIBUTING.md [skip ci] (#432) (Alex Kuzmenko)
+
+### Internal
+* Use babel-register script when running babel smoke tests (#442) (Brian Ng)
+
+## 7.0.0-beta.7 (2017-03-22)
+
+### Spec Compliance
+* Remove babylon plugin for template revision since it's stage-4 (#426) (Henry Zhu)
+
+### Bug Fix
+
+* Fix push-pop logic in flow (#405) (Daniel Tschinder)
+
+## 7.0.0-beta.6 (2017-03-21)
+
+### New Feature
+* Add support for invalid escapes in tagged templates (#274) (Kevin Gibbons)
+
+### Polish
+* Improves error message when super is called outside of constructor (#408) (Arshabh Kumar Agarwal)
+
+### Docs
+
+* [7.0] Moved value field in spec from ObjectMember to ObjectProperty as ObjectMethod's don't have it (#415) [skip ci] (James Browning)
+
+## 7.0.0-beta.5 (2017-03-21)
+
+### Bug Fix
+* Throw error if new.target is used outside of a function (#402) (Brian Ng)
+* Fix parsing of class properties (#351) (Kevin Gibbons)
+
+### Other
+ * Test runner: Detect extra property in 'actual' but not in 'expected'. (#407) (Andy)
+ * Optimize travis builds (#419) (Daniel Tschinder)
+ * Update codecov to 2.0 (#412) (Daniel Tschinder)
+ * Fix spec for ClassMethod: It doesn't have a function, it *is* a function. (#406) [skip ci] (Andy)
+ * Changed Non-existent RestPattern to RestElement which is what is actually parsed (#409) [skip ci] (James Browning)
+ * Upgrade flow to 0.41 (Daniel Tschinder)
+ * Fix watch command (#403) (Brian Ng)
+ * Update yarn lock (Daniel Tschinder)
+ * Fix watch command (#403) (Brian Ng)
+ * chore(package): update flow-bin to version 0.41.0 (#395) (greenkeeper[bot])
+ * Add estree test for correct order of directives (Daniel Tschinder)
+ * Add DoExpression to spec (#364) (Alex Kuzmenko)
+ * Mention cloning of repository in CONTRIBUTING.md (#391) [skip ci] (Sumedh Nimkarde)
+ * Explain how to run only one test (#389) [skip ci] (Aaron Ang)
+
+ ## 7.0.0-beta.4 (2017-03-01)
+
+* Don't consume async when checking for async func decl (#377) (Brian Ng)
+* add `ranges` option [skip ci] (Henry Zhu)
+* Don't parse class properties without initializers when classProperties is disabled and Flow is enabled (#300) (Andrew Levine)
+
+## 7.0.0-beta.3 (2017-02-28)
+
+- [7.0] Change RestProperty/SpreadProperty to RestElement/SpreadElement (#384)
+- Merge changes from 6.x
+
+## 7.0.0-beta.2 (2017-02-20)
+
+- estree: correctly change literals in all cases (#368) (Daniel Tschinder)
+
+## 7.0.0-beta.1 (2017-02-20)
+
+- Fix negative number literal typeannotations (#366) (Daniel Tschinder)
+- Update contributing with more test info [skip ci] (#355) (Brian Ng)
+
+## 7.0.0-beta.0 (2017-02-15)
+
+- Reintroduce Variance node (#333) (Daniel Tschinder)
+- Rename NumericLiteralTypeAnnotation to NumberLiteralTypeAnnotation (#332) (Charles Pick)
+- [7.0] Remove ForAwaitStatement, add await flag to ForOfStatement (#349) (Brandon Dail)
+- chore(package): update ava to version 0.18.0 (#345) (greenkeeper[bot])
+- chore(package): update babel-plugin-istanbul to version 4.0.0 (#350) (greenkeeper[bot])
+- Change location of ObjectTypeIndexer to match flow (#228) (Daniel Tschinder)
+- Rename flow AST Type ExistentialTypeParam to ExistsTypeAnnotation (#322) (Toru Kobayashi)
+- Revert "Temporary rollback for erroring on trailing comma with spread (#154)" (#290) (Daniel Tschinder)
+- Remove classConstructorCall plugin (#291) (Brian Ng)
+- Update yarn.lock (Daniel Tschinder)
+- Update cross-env to 3.x (Daniel Tschinder)
+- [7.0] Remove node 0.10, 0.12 and 5 from Travis (#284) (Sergey Rubanov)
+- Remove `String.fromCodePoint` shim (#279) (Mathias Bynens)
+
+## 6.16.1 (2017-02-23)
+
+### :bug: Regression
+
+- Revert "Fix export default async function to be FunctionDeclaration" ([#375](https://github.com/babel/babylon/pull/375))
+
+Need to modify Babel for this AST node change, so moving to 7.0.
+
+- Revert "Don't parse class properties without initializers when classProperties plugin is disabled, and Flow is enabled" ([#376](https://github.com/babel/babylon/pull/376))
+
+[react-native](https://github.com/facebook/react-native/issues/12542) broke with this so we reverted.
+
+## 6.16.0 (2017-02-23)
+
+### :rocket: New Feature
+
+***ESTree*** compatibility as plugin ([#277](https://github.com/babel/babylon/pull/277)) (Daniel Tschinder)
+
+We finally introduce a new compatibility layer for ESTree. To put babylon into ESTree-compatible mode the new plugin `estree` can be enabled. In this mode the parser will output an AST that is compliant to the specs of [ESTree](https://github.com/estree/estree/)
+
+We highly recommend everyone who uses babylon outside of babel to use this plugin. This will make it much easier for users to switch between different ESTree-compatible parsers. We so far tested several projects with different parsers and exchanged their parser to babylon and in nearly all cases it worked out of the box. Some other estree-compatible parsers include `acorn`, `esprima`, `espree`, `flow-parser`, etc.
+
+To enable `estree` mode simply add the plugin in the config:
+```json
+{
+ "plugins": [ "estree" ]
+}
+```
+
+If you want to migrate your project from non-ESTree mode to ESTree, have a look at our [Readme](https://github.com/babel/babylon/#output), where all deviations are mentioned.
+
+Add a parseExpression public method ([#213](https://github.com/babel/babylon/pull/213)) (jeromew)
+
+Babylon exports a new function to parse a single expression
+
+```js
+import { parseExpression } from 'babylon';
+
+const ast = parseExpression('x || y && z', options);
+```
+
+The returned AST will only consist of the expression. The options are the same as for `parse()`
+
+Add startLine option ([#346](https://github.com/babel/babylon/pull/346)) (Raphael Mu)
+
+A new option was added to babylon allowing to change the initial linenumber for the first line which is usually `1`.
+Changing this for example to `100` will make line `1` of the input source to be marked as line `100`, line `2` as `101`, line `3` as `102`, ...
+
+Function predicate declaration ([#103](https://github.com/babel/babylon/pull/103)) (Panagiotis Vekris)
+
+Added support for function predicates which flow introduced in version 0.33.0
+
+```js
+declare function is_number(x: mixed): boolean %checks(typeof x === "number");
+```
+
+Allow imports in declare module ([#315](https://github.com/babel/babylon/pull/315)) (Daniel Tschinder)
+
+Added support for imports within module declarations which flow introduced in version 0.37.0
+
+```js
+declare module "C" {
+ import type { DT } from "D";
+ declare export type CT = { D: DT };
+}
+```
+
+### :eyeglasses: Spec Compliance
+
+Forbid semicolons after decorators in classes ([#352](https://github.com/babel/babylon/pull/352)) (Kevin Gibbons)
+
+This example now correctly throws an error when there is a semicolon after the decorator:
+
+```js
+class A {
+@a;
+foo(){}
+}
+```
+
+Keywords are not allowed as local specifier ([#307](https://github.com/babel/babylon/pull/307)) (Daniel Tschinder)
+
+Using keywords in imports is not allowed anymore:
+
+```js
+import { default } from "foo";
+import { a as debugger } from "foo";
+```
+
+Do not allow overwritting of primitive types ([#314](https://github.com/babel/babylon/pull/314)) (Daniel Tschinder)
+
+In flow it is now forbidden to overwrite the primitive types `"any"`, `"mixed"`, `"empty"`, `"bool"`, `"boolean"`, `"number"`, `"string"`, `"void"` and `"null"` with your own type declaration.
+
+Disallow import type { type a } from … ([#305](https://github.com/babel/babylon/pull/305)) (Daniel Tschinder)
+
+The following code now correctly throws an error
+
+```js
+import type { type a } from "foo";
+```
+
+Don't parse class properties without initializers when classProperties is disabled and Flow is enabled ([#300](https://github.com/babel/babylon/pull/300)) (Andrew Levine)
+
+Ensure that you enable the `classProperties` plugin in order to enable correct parsing of class properties. Prior to this version it was possible to parse them by enabling the `flow` plugin but this was not intended the behaviour.
+
+If you enable the flow plugin you can only define the type of the class properties, but not initialize them.
+
+Fix export default async function to be FunctionDeclaration ([#324](https://github.com/babel/babylon/pull/324)) (Daniel Tschinder)
+
+Parsing the following code now returns a `FunctionDeclaration` AST node instead of `FunctionExpression`.
+
+```js
+export default async function bar() {};
+```
+
+### :nail_care: Polish
+
+Improve error message on attempt to destructure named import ([#288](https://github.com/babel/babylon/pull/288)) (Brian Ng)
+
+### :bug: Bug Fix
+
+Fix negative number literal typeannotations ([#366](https://github.com/babel/babylon/pull/366)) (Daniel Tschinder)
+
+Ensure takeDecorators is called on exported class ([#358](https://github.com/babel/babylon/pull/358)) (Brian Ng)
+
+ESTree: correctly change literals in all cases ([#368](https://github.com/babel/babylon/pull/368)) (Daniel Tschinder)
+
+Correctly convert RestProperty to Assignable ([#339](https://github.com/babel/babylon/pull/339)) (Daniel Tschinder)
+
+Fix #321 by allowing question marks in type params ([#338](https://github.com/babel/babylon/pull/338)) (Daniel Tschinder)
+
+Fix #336 by correctly setting arrow-param ([#337](https://github.com/babel/babylon/pull/337)) (Daniel Tschinder)
+
+Fix parse error when destructuring `set` with default value ([#317](https://github.com/babel/babylon/pull/317)) (Brian Ng)
+
+Fix ObjectTypeCallProperty static ([#298](https://github.com/babel/babylon/pull/298)) (Dan Harper)
+
+
+### :house: Internal
+
+Fix generator-method-with-computed-name spec ([#360](https://github.com/babel/babylon/pull/360)) (Alex Rattray)
+
+Fix flow type-parameter-declaration test with unintended semantic ([#361](https://github.com/babel/babylon/pull/361)) (Alex Rattray)
+
+Cleanup and splitup parser functions ([#295](https://github.com/babel/babylon/pull/295)) (Daniel Tschinder)
+
+chore(package): update flow-bin to version 0.38.0 ([#313](https://github.com/babel/babylon/pull/313)) (greenkeeper[bot])
+
+Call inner function instead of 1:1 copy to plugin ([#294](https://github.com/babel/babylon/pull/294)) (Daniel Tschinder)
+
+Update eslint-config-babel to the latest version 🚀 ([#299](https://github.com/babel/babylon/pull/299)) (greenkeeper[bot])
+
+Update eslint-config-babel to the latest version 🚀 ([#293](https://github.com/babel/babylon/pull/293)) (greenkeeper[bot])
+
+devDeps: remove eslint-plugin-babel ([#292](https://github.com/babel/babylon/pull/292)) (Kai Cataldo)
+
+Correct indent eslint rule config ([#276](https://github.com/babel/babylon/pull/276)) (Daniel Tschinder)
+
+Fail tests that have expected.json and throws-option ([#285](https://github.com/babel/babylon/pull/285)) (Daniel Tschinder)
+
+### :memo: Documentation
+
+Update contributing with more test info [skip ci] ([#355](https://github.com/babel/babylon/pull/355)) (Brian Ng)
+
+Update API documentation ([#330](https://github.com/babel/babylon/pull/330)) (Timothy Gu)
+
+Added keywords to package.json ([#323](https://github.com/babel/babylon/pull/323)) (Dmytro)
+
+AST spec: fix casing of `RegExpLiteral` ([#318](https://github.com/babel/babylon/pull/318)) (Mathias Bynens)
+
+## 6.15.0 (2017-01-10)
+
+### :eyeglasses: Spec Compliance
+
+Add support for Flow shorthand import type ([#267](https://github.com/babel/babylon/pull/267)) (Jeff Morrison)
+
+This change implements flows new shorthand import syntax
+and where previously you had to write this code:
+
+```js
+import {someValue} from "blah";
+import type {someType} from "blah";
+import typeof {someOtherValue} from "blah";
+```
+
+you can now write it like this:
+
+```js
+import {
+ someValue,
+ type someType,
+ typeof someOtherValue,
+} from "blah";
+```
+
+For more information look at [this](https://github.com/facebook/flow/pull/2890) pull request.
+
+flow: allow leading pipes in all positions ([#256](https://github.com/babel/babylon/pull/256)) (Vladimir Kurchatkin)
+
+This change now allows a leading pipe everywhere types can be used:
+```js
+var f = (x): | 1 | 2 => 1;
+```
+
+Throw error when exporting non-declaration ([#241](https://github.com/babel/babylon/pull/241)) (Kai Cataldo)
+
+Previously babylon parsed the following exports, although they are not valid:
+```js
+export typeof foo;
+export new Foo();
+export function() {};
+export for (;;);
+export while(foo);
+```
+
+### :bug: Bug Fix
+
+Don't set inType flag when parsing property names ([#266](https://github.com/babel/babylon/pull/266)) (Vladimir Kurchatkin)
+
+This fixes parsing of this case:
+
+```js
+const map = {
+ [age <= 17] : 'Too young'
+};
+```
+
+Fix source location for JSXEmptyExpression nodes (fixes #248) ([#249](https://github.com/babel/babylon/pull/249)) (James Long)
+
+The following case produced an invalid AST
+```js
+{/* foo */}
+```
+
+Use fromCodePoint to convert high value unicode entities ([#243](https://github.com/babel/babylon/pull/243)) (Ryan Duffy)
+
+When high value unicode entities (e.g. 💩) were used in the input source code they are now correctly encoded in the resulting AST.
+
+Rename folder to avoid Windows-illegal characters ([#281](https://github.com/babel/babylon/pull/281)) (Ryan Plant)
+
+Allow this.state.clone() when parsing decorators ([#262](https://github.com/babel/babylon/pull/262)) (Alex Rattray)
+
+### :house: Internal
+
+User external-helpers ([#254](https://github.com/babel/babylon/pull/254)) (Daniel Tschinder)
+
+Add watch script for dev ([#234](https://github.com/babel/babylon/pull/234)) (Kai Cataldo)
+
+Freeze current plugins list for "*" option, and remove from README.md ([#245](https://github.com/babel/babylon/pull/245)) (Andrew Levine)
+
+Prepare tests for multiple fixture runners. ([#240](https://github.com/babel/babylon/pull/240)) (Daniel Tschinder)
+
+Add some test coverage for decorators stage-0 plugin ([#250](https://github.com/babel/babylon/pull/250)) (Andrew Levine)
+
+Refactor tokenizer types file ([#263](https://github.com/babel/babylon/pull/263)) (Sven SAULEAU)
+
+Update eslint-config-babel to the latest version 🚀 ([#273](https://github.com/babel/babylon/pull/273)) (greenkeeper[bot])
+
+chore(package): update rollup to version 0.41.0 ([#272](https://github.com/babel/babylon/pull/272)) (greenkeeper[bot])
+
+chore(package): update flow-bin to version 0.37.0 ([#255](https://github.com/babel/babylon/pull/255)) (greenkeeper[bot])
+
+## 6.14.1 (2016-11-17)
+
+### :bug: Bug Fix
+
+Allow `"plugins": ["*"]` ([#229](https://github.com/babel/babylon/pull/229)) (Daniel Tschinder)
+
+```js
+{
+ "plugins": ["*"]
+}
+```
+
+Will include all parser plugins instead of specifying each one individually. Useful for tools like babel-eslint, jscodeshift, and ast-explorer.
+
+## 6.14.0 (2016-11-16)
+
+### :eyeglasses: Spec Compliance
+
+Throw error for reserved words `enum` and `await` ([#195](https://github.com/babel/babylon/pull/195)) (Kai Cataldo)
+
+[11.6.2.2 Future Reserved Words](http://www.ecma-international.org/ecma-262/6.0/#sec-future-reserved-words)
+
+Babylon will throw for more reserved words such as `enum` or `await` (in strict mode).
+
+```
+class enum {} // throws
+class await {} // throws in strict mode (module)
+```
+
+Optional names for function types and object type indexers ([#197](https://github.com/babel/babylon/pull/197)) (Gabe Levi)
+
+So where you used to have to write
+
+```js
+type A = (x: string, y: boolean) => number;
+type B = (z: string) => number;
+type C = { [key: string]: number };
+```
+
+you can now write (with flow 0.34.0)
+
+```js
+type A = (string, boolean) => number;
+type B = string => number;
+type C = { [string]: number };
+```
+
+Parse flow nested array type annotations like `number[][]` ([#219](https://github.com/babel/babylon/pull/219)) (Bernhard Häussner)
+
+Supports these form now of specifying array types:
+
+```js
+var a: number[][][][];
+var b: string[][];
+```
+
+### :bug: Bug Fix
+
+Correctly eat semicolon at the end of `DelcareModuleExports` ([#223](https://github.com/babel/babylon/pull/223)) (Daniel Tschinder)
+
+```
+declare module "foo" { declare module.exports: number }
+declare module "foo" { declare module.exports: number; } // also allowed now
+```
+
+### :house: Internal
+
+ * Count Babel tests towards Babylon code coverage ([#182](https://github.com/babel/babylon/pull/182)) (Moti Zilberman)
+ * Fix strange line endings ([#214](https://github.com/babel/babylon/pull/214)) (Thomas Grainger)
+ * Add node 7 (Daniel Tschinder)
+ * chore(package): update flow-bin to version 0.34.0 ([#204](https://github.com/babel/babylon/pull/204)) (Greenkeeper)
+
+## v6.13.1 (2016-10-26)
+
+### :nail_care: Polish
+
+- Use rollup for bundling to speed up startup time ([#190](https://github.com/babel/babylon/pull/190)) ([@drewml](https://github.com/DrewML))
+
+```js
+const babylon = require('babylon');
+const ast = babylon.parse('var foo = "lol";');
+```
+
+With that test case, there was a ~95ms savings by removing the need for node to build/traverse the dependency graph.
+
+**Without bundling**
+
+
+**With bundling**
+
+
+- add clean command [skip ci] ([#201](https://github.com/babel/babylon/pull/201)) (Henry Zhu)
+- add ForAwaitStatement (async generator already added) [skip ci] ([#196](https://github.com/babel/babylon/pull/196)) (Henry Zhu)
+
+## v6.13.0 (2016-10-21)
+
+### :eyeglasses: Spec Compliance
+
+Property variance type annotations for Flow plugin ([#161](https://github.com/babel/babylon/pull/161)) (Sam Goldman)
+
+> See https://flowtype.org/docs/variance.html for more information
+
+```js
+type T = { +p: T };
+interface T { -p: T };
+declare class T { +[k:K]: V };
+class T { -[k:K]: V };
+class C2 { +p: T = e };
+```
+
+Raise error on duplicate definition of __proto__ ([#183](https://github.com/babel/babylon/pull/183)) (Moti Zilberman)
+
+```js
+({ __proto__: 1, __proto__: 2 }) // Throws an error now
+```
+
+### :bug: Bug Fix
+
+Flow: Allow class properties to be named `static` ([#184](https://github.com/babel/babylon/pull/184)) (Moti Zilberman)
+
+```js
+declare class A {
+ static: T;
+}
+```
+
+Allow "async" as identifier for object literal property shorthand ([#187](https://github.com/babel/babylon/pull/187)) (Andrew Levine)
+
+```js
+var foo = { async, bar };
+```
+
+### :nail_care: Polish
+
+Fix flowtype and add inType to state ([#189](https://github.com/babel/babylon/pull/189)) (Daniel Tschinder)
+
+> This improves the performance slightly (because of hidden classes)
+
+### :house: Internal
+
+Fix .gitattributes line ending setting ([#191](https://github.com/babel/babylon/pull/191)) (Moti Zilberman)
+
+Increase test coverage ([#175](https://github.com/babel/babylon/pull/175) (Moti Zilberman)
+
+Readd missin .eslinignore for IDEs (Daniel Tschinder)
+
+Error on missing expected.json fixture in CI ([#188](https://github.com/babel/babylon/pull/188)) (Moti Zilberman)
+
+Add .gitattributes and .editorconfig for LF line endings ([#179](https://github.com/babel/babylon/pull/179)) (Moti Zilberman)
+
+Fixes two tests that are failing after the merge of #172 ([#177](https://github.com/babel/babylon/pull/177)) (Moti Zilberman)
+
+## v6.12.0 (2016-10-14)
+
+### :eyeglasses: Spec Compliance
+
+Implement import() syntax ([#163](https://github.com/babel/babylon/pull/163)) (Jordan Gensler)
+
+#### Dynamic Import
+
+- Proposal Repo: https://github.com/domenic/proposal-dynamic-import
+- Championed by [@domenic](https://github.com/domenic)
+- stage-2
+- [sept-28 tc39 notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-09/sept-28.md#113a-import)
+
+> This repository contains a proposal for adding a "function-like" import() module loading syntactic form to JavaScript
+
+```js
+import(`./section-modules/${link.dataset.entryModule}.js`)
+.then(module => {
+ module.loadPageInto(main);
+})
+```
+
+Add EmptyTypeAnnotation ([#171](https://github.com/babel/babylon/pull/171)) (Sam Goldman)
+
+#### EmptyTypeAnnotation
+
+Just wasn't covered before.
+
+```js
+type T = empty;
+```
+
+### :bug: Bug Fix
+
+Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels)
+
+```js
+// was failing due to sparse array
+export const { foo: [ ,, qux7 ] } = bar;
+```
+
+Allow keyword in Flow object declaration property names with type parameters ([#146](https://github.com/babel/babylon/pull/146)) (Dan Harper)
+
+```js
+declare class X {
+ foobar(): void;
+ static foobar(): void;
+}
+```
+
+Allow keyword in object/class property names with Flow type parameters ([#145](https://github.com/babel/babylon/pull/145)) (Dan Harper)
+
+```js
+class Foo {
+ delete(item: T): T {
+ return item;
+ }
+}
+```
+
+Allow typeAnnotations for yield expressions ([#174](https://github.com/babel/babylon/pull/174))) (Daniel Tschinder)
+
+```js
+function *foo() {
+ const x = (yield 5: any);
+}
+```
+
+### :nail_care: Polish
+
+Annotate more errors with expected token ([#172](https://github.com/babel/babylon/pull/172))) (Moti Zilberman)
+
+```js
+// Unexpected token, expected ; (1:6)
+{ set 1 }
+```
+
+### :house: Internal
+
+Remove kcheck ([#173](https://github.com/babel/babylon/pull/173))) (Daniel Tschinder)
+
+Also run flow, linting, babel tests on separate instances (add back node 0.10)
+
+## v6.11.6 (2016-10-12)
+
+### :bug: Bug Fix/Regression
+
+Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels)
+
+```js
+// was failing with `Cannot read property 'type' of null` because of null identifiers
+export const { foo: [ ,, qux7 ] } = bar;
+```
+
+## v6.11.5 (2016-10-12)
+
+### :eyeglasses: Spec Compliance
+
+Fix: Check for duplicate named exports in exported destructuring assignments ([#144](https://github.com/babel/babylon/pull/144)) (Kai Cataldo)
+
+```js
+// `foo` has already been exported. Exported identifiers must be unique. (2:20)
+export function foo() {};
+export const { a: [{foo}] } = bar;
+```
+
+Fix: Check for duplicate named exports in exported rest elements/properties ([#164](https://github.com/babel/babylon/pull/164)) (Kai Cataldo)
+
+```js
+// `foo` has already been exported. Exported identifiers must be unique. (2:22)
+export const foo = 1;
+export const [bar, ...foo] = baz;
+```
+
+### :bug: Bug Fix
+
+Fix: Allow identifier `async` for default param in arrow expression ([#165](https://github.com/babel/babylon/pull/165)) (Kai Cataldo)
+
+```js
+// this is ok now
+const test = ({async = true}) => {};
+```
+
+### :nail_care: Polish
+
+Babylon will now print out the token it's expecting if there's a `SyntaxError` ([#150](https://github.com/babel/babylon/pull/150)) (Daniel Tschinder)
+
+```bash
+# So in the case of a missing ending curly (`}`)
+Module build failed: SyntaxError: Unexpected token, expected } (30:0)
+ 28 | }
+ 29 |
+> 30 |
+ | ^
+```
+
+## v6.11.4 (2016-10-03)
+
+Temporary rollback for erroring on trailing comma with spread (#154) (Henry Zhu)
+
+## v6.11.3 (2016-10-01)
+
+### :eyeglasses: Spec Compliance
+
+Add static errors for object rest (#149) ([@danez](https://github.com/danez))
+
+> https://github.com/sebmarkbage/ecmascript-rest-spread
+
+Object rest copies the *rest* of properties from the right hand side `obj` starting from the left to right.
+
+```js
+let { x, y, ...z } = { x: 1, y: 2, z: 3 };
+// x = 1
+// y = 2
+// z = { z: 3 }
+```
+
+#### New Syntax Errors:
+
+**SyntaxError**: The rest element has to be the last element when destructuring (1:10)
+```bash
+> 1 | let { ...x, y, z } = { x: 1, y: 2, z: 3};
+ | ^
+# Previous behavior:
+# x = { x: 1, y: 2, z: 3 }
+# y = 2
+# z = 3
+```
+
+Before, this was just a more verbose way of shallow copying `obj` since it doesn't actually do what you think.
+
+**SyntaxError**: Cannot have multiple rest elements when destructuring (1:13)
+
+```bash
+> 1 | let { x, ...y, ...z } = { x: 1, y: 2, z: 3};
+ | ^
+# Previous behavior:
+# x = 1
+# y = { y: 2, z: 3 }
+# z = { y: 2, z: 3 }
+```
+
+Before y and z would just be the same value anyway so there is no reason to need to have both.
+
+**SyntaxError**: A trailing comma is not permitted after the rest element (1:16)
+
+```js
+let { x, y, ...z, } = obj;
+```
+
+The rationale for this is that the use case for trailing comma is that you can add something at the end without affecting the line above. Since a RestProperty always has to be the last property it doesn't make sense.
+
+---
+
+get / set are valid property names in default assignment (#142) ([@jezell](https://github.com/jezell))
+
+```js
+// valid
+function something({ set = null, get = null }) {}
+```
+
+## v6.11.2 (2016-09-23)
+
+### Bug Fix
+
+- [#139](https://github.com/babel/babylon/issues/139) Don't do the duplicate check if not an identifier (#140) @hzoo
+
+```js
+// regression with duplicate export check
+SyntaxError: ./typography.js: `undefined` has already been exported. Exported identifiers must be unique. (22:13)
+ 20 |
+ 21 | export const { rhythm } = typography;
+> 22 | export const { TypographyStyle } = typography
+```
+
+Bail out for now, and make a change to account for destructuring in the next release.
+
+## 6.11.1 (2016-09-22)
+
+### Bug Fix
+- [#137](https://github.com/babel/babylon/pull/137) - Fix a regression with duplicate exports - it was erroring on all keys in `Object.prototype`. @danez
+
+```javascript
+export toString from './toString';
+```
+
+```bash
+`toString` has already been exported. Exported identifiers must be unique. (1:7)
+> 1 | export toString from './toString';
+ | ^
+ 2 |
+```
+
+## 6.11.0 (2016-09-22)
+
+### Spec Compliance (will break CI)
+
+- Disallow duplicate named exports ([#107](https://github.com/babel/babylon/pull/107)) @kaicataldo
+
+```js
+// Only one default export allowed per module. (2:9)
+export default function() {};
+export { foo as default };
+
+// Only one default export allowed per module. (2:0)
+export default {};
+export default function() {};
+
+// `Foo` has already been exported. Exported identifiers must be unique. (2:0)
+export { Foo };
+export class Foo {};
+```
+
+### New Feature (Syntax)
+
+- Add support for computed class property names ([#121](https://github.com/babel/babylon/pull/121)) @motiz88
+
+```js
+// AST
+interface ClassProperty <: Node {
+ type: "ClassProperty";
+ key: Identifier;
+ value: Expression;
+ computed: boolean; // added
+}
+```
+
+```js
+// with "plugins": ["classProperties"]
+class Foo {
+ [x]
+ ['y']
+}
+
+class Bar {
+ [p]
+ [m] () {}
+}
+ ```
+
+### Bug Fix
+
+- Fix `static` property falling through in the declare class Flow AST ([#135](https://github.com/babel/babylon/pull/135)) @danharper
+
+```js
+declare class X {
+ a: number;
+ static b: number; // static
+ c: number; // this was being marked as static in the AST as well
+}
+```
+
+### Polish
+
+- Rephrase "assigning/binding to rvalue" errors to include context ([#119](https://github.com/babel/babylon/pull/119)) @motiz88
+
+```js
+// Used to error with:
+// SyntaxError: Assigning to rvalue (1:0)
+
+// Now:
+// Invalid left-hand side in assignment expression (1:0)
+3 = 4
+
+// Invalid left-hand side in for-in statement (1:5)
+for (+i in {});
+```
+
+### Internal
+
+- Fix call to `this.parseMaybeAssign` with correct arguments ([#133](https://github.com/babel/babylon/pull/133)) @danez
+- Add semver note to changelog ([#131](https://github.com/babel/babylon/pull/131)) @hzoo
+
+## 6.10.0 (2016-09-19)
+
+> We plan to include some spec compliance bugs in patch versions. An example was the multiple default exports issue.
+
+### Spec Compliance
+
+* Implement ES2016 check for simple parameter list in strict mode ([#106](https://github.com/babel/babylon/pull/106)) (Timothy Gu)
+
+> It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false. https://tc39.github.io/ecma262/2016/#sec-function-definitions-static-semantics-early-errors
+
+More Context: [tc39-notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2015-07/july-29.md#611-the-scope-of-use-strict-with-respect-to-destructuring-in-parameter-lists)
+
+For example:
+
+```js
+// this errors because it uses destructuring and default parameters
+// in a function with a "use strict" directive
+function a([ option1, option2 ] = []) {
+ "use strict";
+}
+ ```
+
+The solution would be to use a top level "use strict" or to remove the destructuring or default parameters when using a function + "use strict" or to.
+
+### New Feature
+
+* Exact object type annotations for Flow plugin ([#104](https://github.com/babel/babylon/pull/104)) (Basil Hosmer)
+
+Added to flow in https://github.com/facebook/flow/commit/c710c40aa2a115435098d6c0dfeaadb023cd39b8
+
+Looks like:
+
+```js
+var a : {| x: number, y: string |} = { x: 0, y: 'foo' };
+```
+
+### Bug Fixes
+
+* Include `typeParameter` location in `ArrowFunctionExpression` ([#126](https://github.com/babel/babylon/pull/126)) (Daniel Tschinder)
+* Error on invalid flow type annotation with default assignment ([#122](https://github.com/babel/babylon/pull/122)) (Dan Harper)
+* Fix Flow return types on arrow functions ([#124](https://github.com/babel/babylon/pull/124)) (Dan Harper)
+
+### Misc
+
+* Add tests for export extensions ([#127](https://github.com/babel/babylon/pull/127)) (Daniel Tschinder)
+* Fix Contributing guidelines [skip ci] (Daniel Tschinder)
+
+## 6.9.2 (2016-09-09)
+
+The only change is to remove the `babel-runtime` dependency by compiling with Babel's ES2015 loose mode. So using babylon standalone should be smaller.
+
+## 6.9.1 (2016-08-23)
+
+This release contains mainly small bugfixes but also updates babylons default mode to es2017. The features for `exponentiationOperator`, `asyncFunctions` and `trailingFunctionCommas` which previously needed to be activated via plugin are now enabled by default and the plugins are now no-ops.
+
+### Bug Fixes
+
+- Fix issues with default object params in async functions ([#96](https://github.com/babel/babylon/pull/96)) @danez
+- Fix issues with flow-types and async function ([#95](https://github.com/babel/babylon/pull/95)) @danez
+- Fix arrow functions with destructuring, types & default value ([#94](https://github.com/babel/babylon/pull/94)) @danharper
+- Fix declare class with qualified type identifier ([#97](https://github.com/babel/babylon/pull/97)) @danez
+- Remove exponentiationOperator, asyncFunctions, trailingFunctionCommas plugins and enable them by default ([#98](https://github.com/babel/babylon/pull/98)) @danez
+
+## 6.9.0 (2016-08-16)
+
+### New syntax support
+
+- Add JSX spread children ([#42](https://github.com/babel/babylon/pull/42)) @calebmer
+
+(Be aware that React is not going to support this syntax)
+
+```js
+
+ {...todos.map(todo => )}
+
+```
+
+- Add support for declare module.exports ([#72](https://github.com/babel/babylon/pull/72)) @danez
+
+```js
+declare module "foo" {
+ declare module.exports: {}
+}
+```
+
+### New Features
+
+- If supplied, attach filename property to comment node loc. ([#80](https://github.com/babel/babylon/pull/80)) @divmain
+- Add identifier name to node loc field ([#90](https://github.com/babel/babylon/pull/90)) @kittens
+
+### Bug Fixes
+
+- Fix exponential operator to behave according to spec ([#75](https://github.com/babel/babylon/pull/75)) @danez
+- Fix lookahead to not add comments to arrays which are not cloned ([#76](https://github.com/babel/babylon/pull/76)) @danez
+- Fix accidental fall-through in Flow type parsing. ([#82](https://github.com/babel/babylon/pull/82)) @xiemaisi
+- Only allow declares inside declare module ([#73](https://github.com/babel/babylon/pull/73)) @danez
+- Small fix for parsing type parameter declarations ([#83](https://github.com/babel/babylon/pull/83)) @gabelevi
+- Fix arrow param locations with flow types ([#57](https://github.com/babel/babylon/pull/57)) @danez
+- Fixes SyntaxError position with flow optional type ([#65](https://github.com/babel/babylon/pull/65)) @danez
+
+### Internal
+
+- Add codecoverage to tests @danez
+- Fix tests to not save expected output if we expect the test to fail @danez
+- Make a shallow clone of babel for testing @danez
+- chore(package): update cross-env to version 2.0.0 ([#77](https://github.com/babel/babylon/pull/77)) @greenkeeperio-bot
+- chore(package): update ava to version 0.16.0 ([#86](https://github.com/babel/babylon/pull/86)) @greenkeeperio-bot
+- chore(package): update babel-plugin-istanbul to version 2.0.0 ([#89](https://github.com/babel/babylon/pull/89)) @greenkeeperio-bot
+- chore(package): update nyc to version 8.0.0 ([#88](https://github.com/babel/babylon/pull/88)) @greenkeeperio-bot
+
+## 6.8.4 (2016-07-06)
+
+### Bug Fixes
+
+- Fix the location of params, when flow and default value used ([#68](https://github.com/babel/babylon/pull/68)) @danez
+
+## 6.8.3 (2016-07-02)
+
+### Bug Fixes
+
+- Fix performance regression introduced in 6.8.2 with conditionals ([#63](https://github.com/babel/babylon/pull/63)) @danez
+
+## 6.8.2 (2016-06-24)
+
+### Bug Fixes
+
+- Fix parse error with yielding jsx elements in generators `function* it() { yield ; }` ([#31](https://github.com/babel/babylon/pull/31)) @eldereal
+- When cloning nodes do not clone its comments ([#24](https://github.com/babel/babylon/pull/24)) @danez
+- Fix parse errors when using arrow functions with an spread element and return type `(...props): void => {}` ([#10](https://github.com/babel/babylon/pull/10)) @danez
+- Fix leading comments added from previous node ([#23](https://github.com/babel/babylon/pull/23)) @danez
+- Fix parse errors with flow's optional arguments `(arg?) => {}` ([#19](https://github.com/babel/babylon/pull/19)) @danez
+- Support negative numeric type literals @kittens
+- Remove line terminator restriction after await keyword @kittens
+- Remove grouped type arrow restriction as it seems flow no longer has it @kittens
+- Fix parse error with generic methods that have the name `get` or `set` `class foo { get() {} }` ([#55](https://github.com/babel/babylon/pull/55)) @vkurchatkin
+- Fix parse error with arrow functions that have flow type parameter declarations `(x: T): T => x;` ([#54](https://github.com/babel/babylon/pull/54)) @gabelevi
+
+### Documentation
+
+- Document AST differences from ESTree ([#41](https://github.com/babel/babylon/pull/41)) @nene
+- Move ast spec from babel/babel ([#46](https://github.com/babel/babylon/pull/46)) @hzoo
+
+### Internal
+
+- Enable skipped tests ([#16](https://github.com/babel/babylon/pull/16)) @danez
+- Add script to test latest version of babylon with babel ([#21](https://github.com/babel/babylon/pull/21)) @danez
+- Upgrade test runner ava @kittens
+- Add missing generate-identifier-regex script @kittens
+- Rename parser context types @kittens
+- Add node v6 to travis testing @hzoo
+- Update to Unicode v9 ([#45](https://github.com/babel/babylon/pull/45)) @mathiasbynens
+
+## 6.8.1 (2016-06-06)
+
+### New Feature
+
+- Parse type parameter declarations with defaults like `type Foo = T`
+
+### Bug Fixes
+- Type parameter declarations need 1 or more type parameters.
+- The existential type `*` is not a valid type parameter.
+- The existential type `*` is a primary type
+
+### Spec Compliance
+- The param list for type parameter declarations now consists of `TypeParameter` nodes
+- New `TypeParameter` AST Node (replaces using the `Identifier` node before)
+
+```
+interface TypeParameter <: Node {
+ bound: TypeAnnotation;
+ default: TypeAnnotation;
+ name: string;
+ variance: "plus" | "minus";
+}
+```
+
+## 6.8.0 (2016-05-02)
+
+#### New Feature
+
+##### Parse Method Parameter Decorators ([#12](https://github.com/babel/babylon/pull/12))
+
+> [Method Parameter Decorators](https://goo.gl/8MmCMG) is now a TC39 [stage 0 proposal](https://github.com/tc39/ecma262/blob/master/stage0.md).
+
+Examples:
+
+```js
+class Foo {
+ constructor(@foo() x, @bar({ a: 123 }) @baz() y) {}
+}
+
+export default function func(@foo() x, @bar({ a: 123 }) @baz() y) {}
+
+var obj = {
+ method(@foo() x, @bar({ a: 123 }) @baz() y) {}
+};
+```
+
+##### Parse for-await statements (w/ `asyncGenerators` plugin) ([#17](https://github.com/babel/babylon/pull/17))
+
+There is also a new node type, `ForAwaitStatement`.
+
+> [Async generators and for-await](https://github.com/tc39/proposal-async-iteration) are now a [stage 2 proposal](https://github.com/tc39/ecma262#current-proposals).
+
+Example:
+
+```js
+async function f() {
+ for await (let x of y);
+}
+```
+
+
+---
diff --git a/docs/fragemented/node_modules/@babel/types/README.md b/docs/fragemented/node_modules/@babel/types/README.md
new file mode 100644
index 0000000000..54c9f81948
--- /dev/null
+++ b/docs/fragemented/node_modules/@babel/types/README.md
@@ -0,0 +1,19 @@
+# @babel/types
+
+> Babel Types is a Lodash-esque utility library for AST nodes
+
+See our website [@babel/types](https://babeljs.io/docs/babel-types) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20types%22+is%3Aopen) associated with this package.
+
+## Install
+
+Using npm:
+
+```sh
+npm install --save-dev @babel/types
+```
+
+or using yarn:
+
+```sh
+yarn add @babel/types --dev
+```
diff --git a/docs/fragemented/node_modules/@docsearch/css/README.md b/docs/fragemented/node_modules/@docsearch/css/README.md
new file mode 100644
index 0000000000..f33c758604
--- /dev/null
+++ b/docs/fragemented/node_modules/@docsearch/css/README.md
@@ -0,0 +1,27 @@
+# @docsearch/css
+
+Style package for [DocSearch](http://docsearch.algolia.com/), the best search experience for docs.
+
+## Installation
+
+```bash
+yarn add @docsearch/css@3
+# or
+npm install @docsearch/css@3
+```
+
+If you don’t want to use a package manager, you can use a standalone endpoint:
+
+```html
+
+```
+
+## Get started
+
+```js
+import '@docsearch/css';
+```
+
+## Documentation
+
+[Read documentation →](https://docsearch.algolia.com/docs/styling)
diff --git a/docs/fragemented/node_modules/@docsearch/js/README.md b/docs/fragemented/node_modules/@docsearch/js/README.md
new file mode 100644
index 0000000000..8cde507c01
--- /dev/null
+++ b/docs/fragemented/node_modules/@docsearch/js/README.md
@@ -0,0 +1,46 @@
+# @docsearch/js
+
+JavaScript package for [DocSearch](http://docsearch.algolia.com/), the best search experience for docs.
+
+## Installation
+
+```sh
+yarn add @docsearch/js@3
+# or
+npm install @docsearch/js@3
+```
+
+## Get started
+
+If you don’t want to use a package manager, you can use a standalone endpoint:
+
+```html
+
+```
+
+To get started, you need a [`container`](https://docsearch.algolia.com/docs/api#container) for your DocSearch component to go in. If you don’t have one already, you can insert one into your markup:
+
+```html
+
+```
+
+Then, insert DocSearch into it by calling the [`docsearch`](https://docsearch.algolia.com/docs/api) function and providing the container. It can be a [CSS selector](https://developer.mozilla.org/en-us/docs/web/css/css_selectors) or an [Element](https://developer.mozilla.org/en-us/docs/web/api/htmlelement).
+
+Make sure to provide a [`container`](https://docsearch.algolia.com/docs/api#container) (for example, a `div`), not an `input`. DocSearch generates a fully accessible search box for you.
+
+```js app.js
+import docsearch from '@docsearch/js';
+
+import '@docsearch/css';
+
+docsearch({
+ container: '#docsearch',
+ appId: 'YOUR_APP_ID',
+ indexName: 'YOUR_INDEX_NAME',
+ apiKey: 'YOUR_SEARCH_API_KEY',
+});
+```
+
+## Documentation
+
+[Read documentation →](https://docsearch.algolia.com/docs/docsearch-v3)
diff --git a/docs/fragemented/node_modules/@docsearch/react/README.md b/docs/fragemented/node_modules/@docsearch/react/README.md
new file mode 100644
index 0000000000..85069ac37e
--- /dev/null
+++ b/docs/fragemented/node_modules/@docsearch/react/README.md
@@ -0,0 +1,43 @@
+# @docsearch/react
+
+React package for [DocSearch](http://docsearch.algolia.com/), the best search experience for docs.
+
+## Installation
+
+```bash
+yarn add @docsearch/react@3
+# or
+npm install @docsearch/react@3
+```
+
+If you don’t want to use a package manager, you can use a standalone endpoint:
+
+```html
+
+```
+
+## Get started
+
+DocSearch generates a fully accessible search box for you.
+
+```jsx App.js
+import { DocSearch } from '@docsearch/react';
+
+import '@docsearch/css';
+
+function App() {
+ return (
+
+ );
+}
+
+export default App;
+```
+
+## Documentation
+
+[Read documentation →](https://docsearch.algolia.com/docs/docsearch-v3)
diff --git a/docs/fragemented/node_modules/@esbuild/darwin-arm64/README.md b/docs/fragemented/node_modules/@esbuild/darwin-arm64/README.md
new file mode 100644
index 0000000000..c2c0398db0
--- /dev/null
+++ b/docs/fragemented/node_modules/@esbuild/darwin-arm64/README.md
@@ -0,0 +1,3 @@
+# esbuild
+
+This is the macOS ARM 64-bit binary for esbuild, a JavaScript bundler and minifier. See https://github.com/evanw/esbuild for details.
diff --git a/docs/fragemented/node_modules/@iconify-json/simple-icons/README.md b/docs/fragemented/node_modules/@iconify-json/simple-icons/README.md
new file mode 100644
index 0000000000..2732f91842
--- /dev/null
+++ b/docs/fragemented/node_modules/@iconify-json/simple-icons/README.md
@@ -0,0 +1,20 @@
+# Simple Icons
+
+This package contains icon data for Simple Icons icon set.
+
+Files:
+
+- Icon data is stored in `icons.json` in `IconifyJSON` format. See [IconifyJSON documentation](https://iconify.design/docs/types/iconify-json.html).
+- Icon set information is stored in `info.json` in `IconifyInfo` format. See [IconifyInfo documentation](https://iconify.design/docs/types/iconify-info.html).
+
+## Installation
+
+```bash
+npm install @iconify-json/simple-icons --save-dev
+```
+
+## Usage
+
+Icon data can be used with many tools and components, see [Iconify documentation](https://iconify.design/docs/usage/).
+
+To convert to SVG, you can use [Iconify Utils](https://iconify.design/docs/libraries/utils/examples/export-svgs-from-icon-set.html) for basic usage or [Iconify Tools](https://iconify.design/docs/libraries/tools/).
diff --git a/docs/fragemented/node_modules/@iconify/types/README.md b/docs/fragemented/node_modules/@iconify/types/README.md
new file mode 100644
index 0000000000..7480c511c1
--- /dev/null
+++ b/docs/fragemented/node_modules/@iconify/types/README.md
@@ -0,0 +1,459 @@
+# Iconify Types
+
+Type definitions for using Iconify icon sets with TypeScript.
+
+## Files structure
+
+Iconify icon sets are available in several formats:
+
+- Big JSON files that combine many icons in one file
+- Node.js packages split into individual icons
+
+### Icon format
+
+Each icon is represented by the `IconifyIcon` type. It is a simple object with multiple string, number or boolean attributes.
+
+The only required attribute is:
+
+- `body`: string. Value contains inner HTML of an icon as a string, for example ``.
+
+Optional attributes are represented by type `IconifyOptional`. They are split into several types: dimensions (`IconifyDimenisons` type) and transformations (`IconifyTransformations` type).
+
+Dimensions attributes:
+
+- `width`: number. viewBox width, number. If missing, value is set to 16.
+- `height`: number. viewBox height, number. If missing, value is set to 16.
+- `left`: number. viewBox left, number. If missing, the value is set to 0.
+- `top`: number. viewBox top, number. If missing, the value is set to 0.
+
+Transformations:
+
+- `rotate`: number. Icon rotation. Iconify icons can be rotated in 90 degrees increments, allowing to reuse the same source icon for multiple icons, such as arrow-up being a copy of arrow-left rotated by 90 degrees. Values are 0 for 0 degrees, 1 for 90 degrees, 2 for 180 degrees, 3 for 270 degrees. The default value is 0.
+- `hFlip`: boolean. Horizontal flip. Similar to the rotation transformation, an icon can be flipped horizontally and vertically. It can be used to quickly create aliases, such as arrow-left being an alias of arrow-right, but with hFlip set to true. The default value is false.
+- `vFlip`: boolean. Vertical flip. The default value is false.
+
+Example of icon object:
+
+```js
+const mdiHandIcon = {
+ body: '',
+ width: 24,
+ height: 24,
+};
+```
+
+### Icon sets format
+
+Iconify icon sets format is available from multiple sources:
+
+- NPM package `@iconify/json` that includes all icon sets
+- API responses used by SVG framework
+
+Icon set format structure is available as the `IconifyJSON` type. It is an object with several fields:
+
+- `prefix`: string. Icon set prefix.
+- `icons`: object. Icons data. Value is an object that represents a set of icons, where the key is an icon name and value is `IconifyIcon` object (see "Icon format" above).
+- `aliases`: object. Icon aliases, similar to the `icons` object (see "Aliases" section below).
+
+Example:
+
+```json
+{
+ "prefix": "mdi",
+ "icons": {
+ "home": {
+ "body": "",
+ "width": 24,
+ "height": 24
+ },
+ "arrow-left": {
+ "body": "",
+ "width": 24,
+ "height": 24
+ }
+ }
+}
+```
+
+All icon properties except for `body` are optional and are represented by type `IconifyOptional`. Type `IconifyJSON` also extends type `IconifyOptional`, allowing all optional properties to be placed in the root object.
+
+If an icon is missing a property, look in the root object for the default value. If the root object does not have the default value, use Iconify default value for that property (see list of properties and default values in the "Icon format" section above).
+
+Default values in the root object make it possible to reduce duplication.
+
+Example:
+
+```json
+{
+ "prefix": "mdi",
+ "icons": {
+ "home": {
+ "body": ""
+ },
+ "arrow-left": {
+ "body": ""
+ }
+ },
+ "width": 24,
+ "height": 24
+}
+```
+
+In this example, both icons are 24x24, so width and height have been moved to the root object.
+
+Another example:
+
+```json
+{
+ "prefix": "fa-solid",
+ "icons": {
+ "arrow-left": {
+ "body": "",
+ "width": 448
+ },
+ "arrow-circle-left": {
+ "body": ""
+ },
+ "barcode": {
+ "body": ""
+ }
+ },
+ "width": 512,
+ "height": 512
+}
+```
+
+In this example `arrow-circle-left` and `barcode` have width of 512, `arrow-left` has width of 448. All icons have a height of 512.
+
+#### Aliases
+
+In addition to `icons`, another important field in icon set object is `aliases`.
+
+Aliases object is similar to icons object, except that instead of icon body icons reference another icon.
+
+Each entry has the same attributes as an icon, except for `body` and has required attribute `parent` that contains the name of the parent icon. The parent icon must be present in the icon set file.
+
+Example:
+
+```json
+{
+ "prefix": "fa",
+ "icons": {
+ "automobile": {
+ "body": "",
+ "width": 2048,
+ "height": 1600
+ }
+ },
+ "aliases": {
+ "car": {
+ "parent": "automobile"
+ }
+ }
+}
+```
+
+In this example `car` is an alias of `automobile`, allowing to use the same icon by multiple names.
+
+Another example:
+
+```json
+{
+ "prefix": "fa",
+ "icons": {
+ "caret-left": {
+ "body": "",
+ "width": 576,
+ "height": 1280
+ }
+ },
+ "aliases": {
+ "caret-right": {
+ "parent": "caret-left",
+ "hFlip": true
+ }
+ }
+}
+```
+
+In this example `caret-right` is alias of `caret-left`, but with additional `hFlip` attribute. It is identical to this:
+
+```json
+{
+ "prefix": "fa",
+ "icons": {
+ "caret-left": {
+ "body": ""
+ },
+ "caret-right": {
+ "body": "",
+ "hFlip": true
+ }
+ },
+ "width": 576,
+ "height": 1280
+}
+```
+
+##### Merging alias attributes
+
+If both icon and alias have same attribute, following rules apply:
+
+- `rotate`: attributes are combined. For example, icon has rotate = 1, alias has rotate = 1. Result will have rotate = 2. To prevent overflow, if rotate > 3, rotate = rotate - 4.
+- `hFlip` and `vFlip`: attributes are combined. For example, icon has hFlip = true, alias also has hFlip = true (icon.hFlip !== alias.hFlip). Result is false. false + false = false, false + true = true, true + true = false.
+- other attributes are overwritten.
+
+Example:
+
+```json
+{
+ "prefix": "fa",
+ "icons": {
+ "caret-left": {
+ "body": "",
+ "hFlip": true,
+ "width": 576,
+ "height": 1280
+ }
+ },
+ "aliases": {
+ "caret-left-compact": {
+ "parent": "caret-left",
+ "left": 64,
+ "width": 448
+ },
+ "caret-right": {
+ "parent": "caret-left",
+ "hFlip": true
+ }
+ }
+}
+```
+
+is identical to:
+
+```json
+{
+ "prefix": "fa",
+ "icons": {
+ "caret-left": {
+ "body": "",
+ "hFlip": true
+ },
+ "caret-left-compact": {
+ "body": "",
+ "hFlip": true, // from caret-left
+ "left": 64, // overwritten
+ "width": 448 // overwritten
+ },
+ "caret-right": {
+ "body": ""
+ // hFlip = false, which is default value, so it was removed
+ }
+ },
+ "width": 576,
+ "height": 1280
+}
+```
+
+#### Metadata
+
+Icon set files might also contain the metadata. That data is used for browsing icons, searching icons, exporting icon sets as fonts.
+
+Metadata is a combination of several types, represented as type `IconifyMetaData`.
+
+##### Icon set information
+
+Icon set information is part of the metadata, it includes information about an author and license.
+
+Example:
+
+```json
+{
+ "prefix": "dashicons",
+ "info": {
+ "name": "Dashicons",
+ "total": 304,
+ "author": {
+ "name": "WordPress",
+ "url": "https://github.com/WordPress/dashicons"
+ },
+ "license": {
+ "title": "GPL 2.0",
+ "spdx": "GPL-2.0-only",
+ "url": "http://www.gnu.org/licenses/gpl-2.0.html"
+ },
+ "version": "0.9.0",
+ "samples": ["shortcode", "businessperson", "editor-expand"],
+ "height": 20,
+ "category": "General",
+ "palette": false
+ },
+ "icons": {
+ // Icons here
+ }
+}
+```
+
+##### Info
+
+Information block is part of the metadata, it is used for browsing or searching icon sets. It also contains the license for icons in the icon set and information about the author.
+
+Info block is represented by the type `IconifyInfo`. You can see an example above in "info" property.
+
+IconifyInfo type has the following properties, most of them are optional:
+
+- `name`: string. Icon set name. This field is always set.
+- `total`: number. The total number of icons, optional.
+- `version`: string. The current version, optional.
+- `author`: object. Information about the author, always set. Author information has the following properties:
+ - `name`: string. Author name. This field is always set.
+ - `url`: string. Link to icon set, optional. Usually links to GitHub repository.
+- `license`: object. Information about the license, always set. License information has the following properties:
+ - `title`: string. License title. This field is always set.
+ - `spdx`: string. SPDX license identifier, optional.
+ - `url`: string. Link to the license, optional.
+- `samples`: string[]. Value is an array of icon names that should be used as samples when showing the icon set in an icon sets list.
+- `height`: number | number[]. Value is a number or array of numbers, values are pixel grids used in the icon set. If any icons in an icon set do not match the grid, this attribute should not be set.
+- `displayHeight`: number. The height value that should be used for displaying samples. Value is a number between 16 and 30 (inclusive).
+
+##### Characters map
+
+Characters map is part of the metadata, it is used for icon sets that are either imported from icon fonts or intended to be exported to icon font.
+
+Characters map allows storing characters for export as well as searching icons by character used in an icon font.
+
+It is a simple object, where the key is character code in hexadecimal form, value is an icon name.
+
+Important: each icon can have multiple characters!
+
+Example:
+
+```json
+{
+ "prefix": "fa",
+ "icons": {
+ // Icons here
+ },
+ "chars": {
+ "f000": "glass",
+ "f001": "music",
+ "f002": "search",
+ "f003": "envelope-o",
+ "f004": "heart",
+ "f005": "star"
+ // and so on...
+ }
+}
+```
+
+##### Categories
+
+Categories are part of the metadata, used to allow filtering icons when showing the entire icons set.
+
+Categories list is a simple object, where the key is category name, value is the list of icons.
+
+Important: each icon can belong to multiple categories!
+
+```json
+{
+ "prefix": "fa-solid",
+ "icons": {
+ // Icons here
+ },
+ "categories": {
+ "Accessibility": [
+ "american-sign-language-interpreting",
+ "assistive-listening-systems",
+ "audio-description",
+ "blind",
+ "braille",
+ "closed-captioning",
+ "deaf",
+ "low-vision",
+ "phone-volume",
+ "question-circle",
+ "sign-language",
+ "tty",
+ "universal-access",
+ "wheelchair"
+ ],
+ "Alert": [
+ "bell",
+ "bell-slash",
+ "exclamation",
+ "exclamation-circle",
+ "exclamation-triangle",
+ "radiation",
+ "radiation-alt",
+ "skull-crossbones"
+ ]
+ // and so on...
+ }
+}
+```
+
+##### Themes
+
+Themes are part of the metadata, similar to categories, but using prefixes or suffixes to identify icons that belong to a theme.
+
+This is useful when icon set has variations of icons, such as "baseline-_", "outline-_".
+
+Example:
+
+```json
+{
+ "prefix": "ic",
+ "icons": {
+ // Icons here
+ },
+ "themes": {
+ "baseline": {
+ "title": "Baseline",
+ "prefix": "baseline-"
+ },
+ "outline": {
+ "title": "Outline",
+ "prefix": "outline-"
+ },
+ "round": {
+ "title": "Round",
+ "prefix": "round-"
+ },
+ "sharp": {
+ "title": "Sharp",
+ "prefix": "sharp-"
+ },
+ "twotone": {
+ "title": "Two-Tone",
+ "prefix": "twotone-"
+ }
+ }
+}
+```
+
+Each theme can have one of the attributes: `prefix` or `suffix`. The prefix must end with `-`, suffix must start with `-`.
+
+In an example above, all icons that start with "baseline-", such as "baseline-home", are considered part of the "Baseline" theme.
+
+#### All attributes
+
+For an example of full icon set files that include metadata, look in icon set files in `@iconify/json` package or browse it at GitHub: [https://github.com/iconify/collections-json](https://github.com/iconify/collections-json)
+
+For an example of individual icons, look in JavaScript files in NPM packages such as `@iconify/icons-mdi`.
+
+## Usage
+
+This repository is intended to be used with any Iconify packages.
+
+At the moment of writing, multiple Iconify packages are written without TypeScript. At the beginning of the year 2020 plan is to rewrite all of them with TypeScript to make sure data is consistent and avoid duplication, this package will be used for sharing types between Iconify packages.
+
+## License
+
+This package is licensed under MIT license.
+
+`SPDX-License-Identifier: MIT`
+
+Previous versions of this package were dual-licensed under Apache 2.0 and GPL 2.0 licence, which was messy and confusing. This was later changed to MIT for simplicity.
+
+© 2021 - 2022 Vjacheslav Trushkin / Iconify OÜ
diff --git a/docs/fragemented/node_modules/@jridgewell/sourcemap-codec/README.md b/docs/fragemented/node_modules/@jridgewell/sourcemap-codec/README.md
new file mode 100644
index 0000000000..b3e0708bf9
--- /dev/null
+++ b/docs/fragemented/node_modules/@jridgewell/sourcemap-codec/README.md
@@ -0,0 +1,264 @@
+# @jridgewell/sourcemap-codec
+
+Encode/decode the `mappings` property of a [sourcemap](https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit).
+
+
+## Why?
+
+Sourcemaps are difficult to generate and manipulate, because the `mappings` property – the part that actually links the generated code back to the original source – is encoded using an obscure method called [Variable-length quantity](https://en.wikipedia.org/wiki/Variable-length_quantity). On top of that, each segment in the mapping contains offsets rather than absolute indices, which means that you can't look at a segment in isolation – you have to understand the whole sourcemap.
+
+This package makes the process slightly easier.
+
+
+## Installation
+
+```bash
+npm install @jridgewell/sourcemap-codec
+```
+
+
+## Usage
+
+```js
+import { encode, decode } from '@jridgewell/sourcemap-codec';
+
+var decoded = decode( ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' );
+
+assert.deepEqual( decoded, [
+ // the first line (of the generated code) has no mappings,
+ // as shown by the starting semi-colon (which separates lines)
+ [],
+
+ // the second line contains four (comma-separated) segments
+ [
+ // segments are encoded as you'd expect:
+ // [ generatedCodeColumn, sourceIndex, sourceCodeLine, sourceCodeColumn, nameIndex ]
+
+ // i.e. the first segment begins at column 2, and maps back to the second column
+ // of the second line (both zero-based) of the 0th source, and uses the 0th
+ // name in the `map.names` array
+ [ 2, 0, 2, 2, 0 ],
+
+ // the remaining segments are 4-length rather than 5-length,
+ // because they don't map a name
+ [ 4, 0, 2, 4 ],
+ [ 6, 0, 2, 5 ],
+ [ 7, 0, 2, 7 ]
+ ],
+
+ // the final line contains two segments
+ [
+ [ 2, 1, 10, 19 ],
+ [ 12, 1, 11, 20 ]
+ ]
+]);
+
+var encoded = encode( decoded );
+assert.equal( encoded, ';EAEEA,EAAE,EAAC,CAAE;ECQY,UACC' );
+```
+
+## Benchmarks
+
+```
+node v20.10.0
+
+amp.js.map - 45120 segments
+
+Decode Memory Usage:
+local code 5815135 bytes
+@jridgewell/sourcemap-codec 1.4.15 5868160 bytes
+sourcemap-codec 5492584 bytes
+source-map-0.6.1 13569984 bytes
+source-map-0.8.0 6390584 bytes
+chrome dev tools 8011136 bytes
+Smallest memory usage is sourcemap-codec
+
+Decode speed:
+decode: local code x 492 ops/sec ±1.22% (90 runs sampled)
+decode: @jridgewell/sourcemap-codec 1.4.15 x 499 ops/sec ±1.16% (89 runs sampled)
+decode: sourcemap-codec x 376 ops/sec ±1.66% (89 runs sampled)
+decode: source-map-0.6.1 x 34.99 ops/sec ±0.94% (48 runs sampled)
+decode: source-map-0.8.0 x 351 ops/sec ±0.07% (95 runs sampled)
+chrome dev tools x 165 ops/sec ±0.91% (86 runs sampled)
+Fastest is decode: @jridgewell/sourcemap-codec 1.4.15
+
+Encode Memory Usage:
+local code 444248 bytes
+@jridgewell/sourcemap-codec 1.4.15 623024 bytes
+sourcemap-codec 8696280 bytes
+source-map-0.6.1 8745176 bytes
+source-map-0.8.0 8736624 bytes
+Smallest memory usage is local code
+
+Encode speed:
+encode: local code x 796 ops/sec ±0.11% (97 runs sampled)
+encode: @jridgewell/sourcemap-codec 1.4.15 x 795 ops/sec ±0.25% (98 runs sampled)
+encode: sourcemap-codec x 231 ops/sec ±0.83% (86 runs sampled)
+encode: source-map-0.6.1 x 166 ops/sec ±0.57% (86 runs sampled)
+encode: source-map-0.8.0 x 203 ops/sec ±0.45% (88 runs sampled)
+Fastest is encode: local code,encode: @jridgewell/sourcemap-codec 1.4.15
+
+
+***
+
+
+babel.min.js.map - 347793 segments
+
+Decode Memory Usage:
+local code 35424960 bytes
+@jridgewell/sourcemap-codec 1.4.15 35424696 bytes
+sourcemap-codec 36033464 bytes
+source-map-0.6.1 62253704 bytes
+source-map-0.8.0 43843920 bytes
+chrome dev tools 45111400 bytes
+Smallest memory usage is @jridgewell/sourcemap-codec 1.4.15
+
+Decode speed:
+decode: local code x 38.18 ops/sec ±5.44% (52 runs sampled)
+decode: @jridgewell/sourcemap-codec 1.4.15 x 38.36 ops/sec ±5.02% (52 runs sampled)
+decode: sourcemap-codec x 34.05 ops/sec ±4.45% (47 runs sampled)
+decode: source-map-0.6.1 x 4.31 ops/sec ±2.76% (15 runs sampled)
+decode: source-map-0.8.0 x 55.60 ops/sec ±0.13% (73 runs sampled)
+chrome dev tools x 16.94 ops/sec ±3.78% (46 runs sampled)
+Fastest is decode: source-map-0.8.0
+
+Encode Memory Usage:
+local code 2606016 bytes
+@jridgewell/sourcemap-codec 1.4.15 2626440 bytes
+sourcemap-codec 21152576 bytes
+source-map-0.6.1 25023928 bytes
+source-map-0.8.0 25256448 bytes
+Smallest memory usage is local code
+
+Encode speed:
+encode: local code x 127 ops/sec ±0.18% (83 runs sampled)
+encode: @jridgewell/sourcemap-codec 1.4.15 x 128 ops/sec ±0.26% (83 runs sampled)
+encode: sourcemap-codec x 29.31 ops/sec ±2.55% (53 runs sampled)
+encode: source-map-0.6.1 x 18.85 ops/sec ±3.19% (36 runs sampled)
+encode: source-map-0.8.0 x 19.34 ops/sec ±1.97% (36 runs sampled)
+Fastest is encode: @jridgewell/sourcemap-codec 1.4.15
+
+
+***
+
+
+preact.js.map - 1992 segments
+
+Decode Memory Usage:
+local code 261696 bytes
+@jridgewell/sourcemap-codec 1.4.15 244296 bytes
+sourcemap-codec 302816 bytes
+source-map-0.6.1 939176 bytes
+source-map-0.8.0 336 bytes
+chrome dev tools 587368 bytes
+Smallest memory usage is source-map-0.8.0
+
+Decode speed:
+decode: local code x 17,782 ops/sec ±0.32% (97 runs sampled)
+decode: @jridgewell/sourcemap-codec 1.4.15 x 17,863 ops/sec ±0.40% (100 runs sampled)
+decode: sourcemap-codec x 12,453 ops/sec ±0.27% (101 runs sampled)
+decode: source-map-0.6.1 x 1,288 ops/sec ±1.05% (96 runs sampled)
+decode: source-map-0.8.0 x 9,289 ops/sec ±0.27% (101 runs sampled)
+chrome dev tools x 4,769 ops/sec ±0.18% (100 runs sampled)
+Fastest is decode: @jridgewell/sourcemap-codec 1.4.15
+
+Encode Memory Usage:
+local code 262944 bytes
+@jridgewell/sourcemap-codec 1.4.15 25544 bytes
+sourcemap-codec 323048 bytes
+source-map-0.6.1 507808 bytes
+source-map-0.8.0 507480 bytes
+Smallest memory usage is @jridgewell/sourcemap-codec 1.4.15
+
+Encode speed:
+encode: local code x 24,207 ops/sec ±0.79% (95 runs sampled)
+encode: @jridgewell/sourcemap-codec 1.4.15 x 24,288 ops/sec ±0.48% (96 runs sampled)
+encode: sourcemap-codec x 6,761 ops/sec ±0.21% (100 runs sampled)
+encode: source-map-0.6.1 x 5,374 ops/sec ±0.17% (99 runs sampled)
+encode: source-map-0.8.0 x 5,633 ops/sec ±0.32% (99 runs sampled)
+Fastest is encode: @jridgewell/sourcemap-codec 1.4.15,encode: local code
+
+
+***
+
+
+react.js.map - 5726 segments
+
+Decode Memory Usage:
+local code 678816 bytes
+@jridgewell/sourcemap-codec 1.4.15 678816 bytes
+sourcemap-codec 816400 bytes
+source-map-0.6.1 2288864 bytes
+source-map-0.8.0 721360 bytes
+chrome dev tools 1012512 bytes
+Smallest memory usage is local code
+
+Decode speed:
+decode: local code x 6,178 ops/sec ±0.19% (98 runs sampled)
+decode: @jridgewell/sourcemap-codec 1.4.15 x 6,261 ops/sec ±0.22% (100 runs sampled)
+decode: sourcemap-codec x 4,472 ops/sec ±0.90% (99 runs sampled)
+decode: source-map-0.6.1 x 449 ops/sec ±0.31% (95 runs sampled)
+decode: source-map-0.8.0 x 3,219 ops/sec ±0.13% (100 runs sampled)
+chrome dev tools x 1,743 ops/sec ±0.20% (99 runs sampled)
+Fastest is decode: @jridgewell/sourcemap-codec 1.4.15
+
+Encode Memory Usage:
+local code 140960 bytes
+@jridgewell/sourcemap-codec 1.4.15 159808 bytes
+sourcemap-codec 969304 bytes
+source-map-0.6.1 930520 bytes
+source-map-0.8.0 930248 bytes
+Smallest memory usage is local code
+
+Encode speed:
+encode: local code x 8,013 ops/sec ±0.19% (100 runs sampled)
+encode: @jridgewell/sourcemap-codec 1.4.15 x 7,989 ops/sec ±0.20% (101 runs sampled)
+encode: sourcemap-codec x 2,472 ops/sec ±0.21% (99 runs sampled)
+encode: source-map-0.6.1 x 2,200 ops/sec ±0.17% (99 runs sampled)
+encode: source-map-0.8.0 x 2,220 ops/sec ±0.37% (99 runs sampled)
+Fastest is encode: local code
+
+
+***
+
+
+vscode.map - 2141001 segments
+
+Decode Memory Usage:
+local code 198955264 bytes
+@jridgewell/sourcemap-codec 1.4.15 199175352 bytes
+sourcemap-codec 199102688 bytes
+source-map-0.6.1 386323432 bytes
+source-map-0.8.0 244116432 bytes
+chrome dev tools 293734280 bytes
+Smallest memory usage is local code
+
+Decode speed:
+decode: local code x 3.90 ops/sec ±22.21% (15 runs sampled)
+decode: @jridgewell/sourcemap-codec 1.4.15 x 3.95 ops/sec ±23.53% (15 runs sampled)
+decode: sourcemap-codec x 3.82 ops/sec ±17.94% (14 runs sampled)
+decode: source-map-0.6.1 x 0.61 ops/sec ±7.81% (6 runs sampled)
+decode: source-map-0.8.0 x 9.54 ops/sec ±0.28% (28 runs sampled)
+chrome dev tools x 2.18 ops/sec ±10.58% (10 runs sampled)
+Fastest is decode: source-map-0.8.0
+
+Encode Memory Usage:
+local code 13509880 bytes
+@jridgewell/sourcemap-codec 1.4.15 13537648 bytes
+sourcemap-codec 32540104 bytes
+source-map-0.6.1 127531040 bytes
+source-map-0.8.0 127535312 bytes
+Smallest memory usage is local code
+
+Encode speed:
+encode: local code x 20.10 ops/sec ±0.19% (38 runs sampled)
+encode: @jridgewell/sourcemap-codec 1.4.15 x 20.26 ops/sec ±0.32% (38 runs sampled)
+encode: sourcemap-codec x 5.44 ops/sec ±1.64% (18 runs sampled)
+encode: source-map-0.6.1 x 2.30 ops/sec ±4.79% (10 runs sampled)
+encode: source-map-0.8.0 x 2.46 ops/sec ±6.53% (10 runs sampled)
+Fastest is encode: @jridgewell/sourcemap-codec 1.4.15
+```
+
+# License
+
+MIT
diff --git a/docs/fragemented/node_modules/@rollup/rollup-darwin-arm64/README.md b/docs/fragemented/node_modules/@rollup/rollup-darwin-arm64/README.md
new file mode 100644
index 0000000000..c29619c309
--- /dev/null
+++ b/docs/fragemented/node_modules/@rollup/rollup-darwin-arm64/README.md
@@ -0,0 +1,3 @@
+# `@rollup/rollup-darwin-arm64`
+
+This is the **aarch64-apple-darwin** binary for `rollup`
diff --git a/docs/fragemented/node_modules/@shikijs/core/README.md b/docs/fragemented/node_modules/@shikijs/core/README.md
new file mode 100644
index 0000000000..4c90ca2dc6
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/core/README.md
@@ -0,0 +1,5 @@
+# @shikijs/core
+
+The core functionality of [Shiki](https://github.com/shikijs/shiki), without any grammar of themes bundled.
+
+It's the same as importing `shiki/core`.
diff --git a/docs/fragemented/node_modules/@shikijs/engine-javascript/README.md b/docs/fragemented/node_modules/@shikijs/engine-javascript/README.md
new file mode 100644
index 0000000000..141aa0a4e2
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/engine-javascript/README.md
@@ -0,0 +1,9 @@
+# @shikijs/engine-javascript
+
+Engine for Shiki using JavaScript's native RegExp. Uses [Oniguruma-To-ES](https://github.com/slevithan/oniguruma-to-es) to transpile regex syntax and behavior.
+
+[Documentation](https://shiki.style/guide/regex-engines)
+
+## License
+
+MIT
diff --git a/docs/fragemented/node_modules/@shikijs/engine-oniguruma/README.md b/docs/fragemented/node_modules/@shikijs/engine-oniguruma/README.md
new file mode 100644
index 0000000000..7955dea0f9
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/engine-oniguruma/README.md
@@ -0,0 +1,9 @@
+# @shikijs/engine-oniguruma
+
+Engine for Shiki using Oniguruma RegExp engine in WebAssembly.
+
+[Documentation](https://shiki.style/guide/regex-engines)
+
+## License
+
+MIT
diff --git a/docs/fragemented/node_modules/@shikijs/langs/README.md b/docs/fragemented/node_modules/@shikijs/langs/README.md
new file mode 100644
index 0000000000..40b2f3f188
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/langs/README.md
@@ -0,0 +1,7 @@
+# @shikijs/langs
+
+TextMate grammars for Shiki.
+
+## License
+
+MIT
diff --git a/docs/fragemented/node_modules/@shikijs/themes/README.md b/docs/fragemented/node_modules/@shikijs/themes/README.md
new file mode 100644
index 0000000000..24ceca16f9
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/themes/README.md
@@ -0,0 +1,7 @@
+# @shikijs/themes
+
+TextMate themes for Shiki.
+
+## License
+
+MIT
diff --git a/docs/fragemented/node_modules/@shikijs/transformers/README.md b/docs/fragemented/node_modules/@shikijs/transformers/README.md
new file mode 100644
index 0000000000..866300b085
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/transformers/README.md
@@ -0,0 +1,9 @@
+# @shikijs/transformers
+
+Common transformers for [shiki](https://github.com/shikijs/shiki), inspired by [shiki-processor](https://github.com/innocenzi/shiki-processor).
+
+[Documentation](https://shiki.style/packages/transformers)
+
+## License
+
+MIT
diff --git a/docs/fragemented/node_modules/@shikijs/types/README.md b/docs/fragemented/node_modules/@shikijs/types/README.md
new file mode 100644
index 0000000000..371182c894
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/types/README.md
@@ -0,0 +1,7 @@
+# @shikijs/types
+
+Types for Shiki.
+
+## License
+
+MIT
diff --git a/docs/fragemented/node_modules/@shikijs/vscode-textmate/LICENSE.md b/docs/fragemented/node_modules/@shikijs/vscode-textmate/LICENSE.md
new file mode 100644
index 0000000000..5ae193c94d
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/vscode-textmate/LICENSE.md
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/docs/fragemented/node_modules/@shikijs/vscode-textmate/README.md b/docs/fragemented/node_modules/@shikijs/vscode-textmate/README.md
new file mode 100644
index 0000000000..28d9f6bed4
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/vscode-textmate/README.md
@@ -0,0 +1,9 @@
+## Fork of [`microsoft/vscode-textmate`](https://github.com/microsoft/vscode-textmate)
+
+Changes make in this fork:
+
+- Change all `async` operations to `sync`; `onigLib` option now required to be resolved instead of a promise.
+- Use `tsup` to bundle the lib, ship as a single file ES module.
+- Remove debug flags and some other unnecessary exports.
+- Convert `EncodedTokenAttributes` from namespace to class, rename to `EncodedTokenMetadata`
+- Support RegExp literals in grammar object ([#3](https://github.com/shikijs/vscode-textmate/pull/3))
diff --git a/docs/fragemented/node_modules/@shikijs/vscode-textmate/index.md b/docs/fragemented/node_modules/@shikijs/vscode-textmate/index.md
new file mode 100644
index 0000000000..980b21035f
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/vscode-textmate/index.md
@@ -0,0 +1,8 @@
+# Consolidated Index
+
+## Files
+
+* `LICENSE.md`
+
+## Subdirectories
+
diff --git a/docs/fragemented/node_modules/@shikijs/vscode-textmate/merged.md b/docs/fragemented/node_modules/@shikijs/vscode-textmate/merged.md
new file mode 100644
index 0000000000..83cbd5d672
--- /dev/null
+++ b/docs/fragemented/node_modules/@shikijs/vscode-textmate/merged.md
@@ -0,0 +1,28 @@
+# Merged Fragmented Markdown
+
+## Source: node_modules/@shikijs/vscode-textmate/LICENSE.md
+
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+---
diff --git a/docs/fragemented/node_modules/@types/estree/README.md b/docs/fragemented/node_modules/@types/estree/README.md
new file mode 100644
index 0000000000..2af760b2bd
--- /dev/null
+++ b/docs/fragemented/node_modules/@types/estree/README.md
@@ -0,0 +1,15 @@
+# Installation
+> `npm install --save @types/estree`
+
+# Summary
+This package contains type definitions for estree (https://github.com/estree/estree).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree.
+
+### Additional Details
+ * Last updated: Fri, 06 Jun 2025 00:04:33 GMT
+ * Dependencies: none
+
+# Credits
+These definitions were written by [RReverser](https://github.com/RReverser).
diff --git a/docs/fragemented/node_modules/@types/hast/README.md b/docs/fragemented/node_modules/@types/hast/README.md
new file mode 100644
index 0000000000..7c1e49931c
--- /dev/null
+++ b/docs/fragemented/node_modules/@types/hast/README.md
@@ -0,0 +1,15 @@
+# Installation
+> `npm install --save @types/hast`
+
+# Summary
+This package contains type definitions for hast (https://github.com/syntax-tree/hast).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/hast.
+
+### Additional Details
+ * Last updated: Tue, 30 Jan 2024 21:35:45 GMT
+ * Dependencies: [@types/unist](https://npmjs.com/package/@types/unist)
+
+# Credits
+These definitions were written by [lukeggchapman](https://github.com/lukeggchapman), [Junyoung Choi](https://github.com/rokt33r), [Christian Murphy](https://github.com/ChristianMurphy), and [Remco Haszing](https://github.com/remcohaszing).
diff --git a/docs/fragemented/node_modules/@types/linkify-it/README.md b/docs/fragemented/node_modules/@types/linkify-it/README.md
new file mode 100644
index 0000000000..057d81f1e5
--- /dev/null
+++ b/docs/fragemented/node_modules/@types/linkify-it/README.md
@@ -0,0 +1,15 @@
+# Installation
+> `npm install --save @types/linkify-it`
+
+# Summary
+This package contains type definitions for linkify-it (https://github.com/markdown-it/linkify-it).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/linkify-it.
+
+### Additional Details
+ * Last updated: Wed, 01 May 2024 18:07:45 GMT
+ * Dependencies: none
+
+# Credits
+These definitions were written by [Lindsey Smith](https://github.com/praxxis), [Robert Coie](https://github.com/rapropos/typed-linkify-it), [Alex Plumb](https://github.com/alexplumb), and [Rafa Gares](https://github.com/ragafus).
diff --git a/docs/fragemented/node_modules/@types/markdown-it/README.md b/docs/fragemented/node_modules/@types/markdown-it/README.md
new file mode 100644
index 0000000000..57f2f88bfb
--- /dev/null
+++ b/docs/fragemented/node_modules/@types/markdown-it/README.md
@@ -0,0 +1,15 @@
+# Installation
+> `npm install --save @types/markdown-it`
+
+# Summary
+This package contains type definitions for markdown-it (https://github.com/markdown-it/markdown-it).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/markdown-it.
+
+### Additional Details
+ * Last updated: Thu, 25 Jul 2024 05:07:29 GMT
+ * Dependencies: [@types/linkify-it](https://npmjs.com/package/@types/linkify-it), [@types/mdurl](https://npmjs.com/package/@types/mdurl)
+
+# Credits
+These definitions were written by [York Yao](https://github.com/plantain-00), [Robert Coie](https://github.com/rapropos), [duduluu](https://github.com/duduluu), and [Piotr Błażejewicz](https://github.com/peterblazejewicz).
diff --git a/docs/fragemented/node_modules/@types/mdast/README.md b/docs/fragemented/node_modules/@types/mdast/README.md
new file mode 100644
index 0000000000..957d631eef
--- /dev/null
+++ b/docs/fragemented/node_modules/@types/mdast/README.md
@@ -0,0 +1,15 @@
+# Installation
+> `npm install --save @types/mdast`
+
+# Summary
+This package contains type definitions for mdast (https://github.com/syntax-tree/mdast).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mdast.
+
+### Additional Details
+ * Last updated: Tue, 14 May 2024 07:35:36 GMT
+ * Dependencies: [@types/unist](https://npmjs.com/package/@types/unist)
+
+# Credits
+These definitions were written by [Christian Murphy](https://github.com/ChristianMurphy), [Jun Lu](https://github.com/lujun2), [Remco Haszing](https://github.com/remcohaszing), [Titus Wormer](https://github.com/wooorm), and [Remco Haszing](https://github.com/remcohaszing).
diff --git a/docs/fragemented/node_modules/@types/mdurl/README.md b/docs/fragemented/node_modules/@types/mdurl/README.md
new file mode 100644
index 0000000000..731238152c
--- /dev/null
+++ b/docs/fragemented/node_modules/@types/mdurl/README.md
@@ -0,0 +1,15 @@
+# Installation
+> `npm install --save @types/mdurl`
+
+# Summary
+This package contains type definitions for mdurl (https://github.com/markdown-it/mdurl#readme).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mdurl.
+
+### Additional Details
+ * Last updated: Wed, 01 May 2024 18:07:45 GMT
+ * Dependencies: none
+
+# Credits
+These definitions were written by [Junyoung Choi](https://github.com/rokt33r).
diff --git a/docs/fragemented/node_modules/@types/unist/README.md b/docs/fragemented/node_modules/@types/unist/README.md
new file mode 100644
index 0000000000..b84e51bfb8
--- /dev/null
+++ b/docs/fragemented/node_modules/@types/unist/README.md
@@ -0,0 +1,15 @@
+# Installation
+> `npm install --save @types/unist`
+
+# Summary
+This package contains type definitions for unist (https://github.com/syntax-tree/unist).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/unist.
+
+### Additional Details
+ * Last updated: Thu, 15 Aug 2024 02:18:53 GMT
+ * Dependencies: none
+
+# Credits
+These definitions were written by [bizen241](https://github.com/bizen241), [Jun Lu](https://github.com/lujun2), [Hernan Rajchert](https://github.com/hrajchert), [Titus Wormer](https://github.com/wooorm), [Junyoung Choi](https://github.com/rokt33r), [Ben Moon](https://github.com/GuiltyDolphin), [JounQin](https://github.com/JounQin), and [Remco Haszing](https://github.com/remcohaszing).
diff --git a/docs/fragemented/node_modules/@types/web-bluetooth/README.md b/docs/fragemented/node_modules/@types/web-bluetooth/README.md
new file mode 100644
index 0000000000..1784cadbdb
--- /dev/null
+++ b/docs/fragemented/node_modules/@types/web-bluetooth/README.md
@@ -0,0 +1,15 @@
+# Installation
+> `npm install --save @types/web-bluetooth`
+
+# Summary
+This package contains type definitions for web-bluetooth (https://webbluetoothcg.github.io/web-bluetooth/).
+
+# Details
+Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/web-bluetooth.
+
+### Additional Details
+ * Last updated: Fri, 28 Feb 2025 23:32:04 GMT
+ * Dependencies: none
+
+# Credits
+These definitions were written by [Uri Shaked](https://github.com/urish), [Xavier Lozinguez](https://github.com/xlozinguez), [Rob Moran](https://github.com/thegecko), [David Bjerremose](https://github.com/DaBs), and [Nathan Rajlich](https://github.com/TooTallNate).
diff --git a/docs/fragemented/node_modules/@ungap/structured-clone/README.md b/docs/fragemented/node_modules/@ungap/structured-clone/README.md
new file mode 100644
index 0000000000..07d15a25f4
--- /dev/null
+++ b/docs/fragemented/node_modules/@ungap/structured-clone/README.md
@@ -0,0 +1,95 @@
+# structuredClone polyfill
+
+[](https://www.npmjs.com/package/@ungap/structured-clone) [](https://github.com/ungap/structured-clone/actions) [](https://coveralls.io/github/ungap/structured-clone?branch=main)
+
+An env agnostic serializer and deserializer with recursion ability and types beyond *JSON* from the *HTML* standard itself.
+
+ * [Supported Types](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm#supported_types)
+ * *not supported yet*: Blob, File, FileList, ImageBitmap, ImageData or others non *JS* types but typed arrays are supported without major issues, but u/int8, u/int16, and u/int32 are the only safely suppored (right now).
+ * *not possible to implement*: the `{transfer: []}` option can be passed but it's completely ignored.
+ * [MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone)
+ * [Serializer](https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal)
+ * [Deserializer](https://html.spec.whatwg.org/multipage/structured-data.html#structureddeserialize)
+
+Serialized values can be safely stringified as *JSON* too, and deserialization resurrect all values, even recursive, or more complex than what *JSON* allows.
+
+
+### Examples
+
+Check the [100% test coverage](./test/index.js) to know even more.
+
+```js
+// as default export
+import structuredClone from '@ungap/structured-clone';
+const cloned = structuredClone({any: 'serializable'});
+
+// as independent serializer/deserializer
+import {serialize, deserialize} from '@ungap/structured-clone';
+
+// the result can be stringified as JSON without issues
+// even if there is recursive data, bigint values,
+// typed arrays, and so on
+const serialized = serialize({any: 'serializable'});
+
+// the result will be a replica of the original object
+const deserialized = deserialize(serialized);
+```
+
+#### Global Polyfill
+Note: Only monkey patch the global if needed. This polyfill works just fine as an explicit import: `import structuredClone from "@ungap/structured-clone"`
+```js
+// Attach the polyfill as a Global function
+import structuredClone from "@ungap/structured-clone";
+if (!("structuredClone" in globalThis)) {
+ globalThis.structuredClone = structuredClone;
+}
+
+// Or don't monkey patch
+import structuredClone from "@ungap/structured-clone"
+// Just use it in the file
+structuredClone()
+```
+
+**Note**: Do not attach this module's default export directly to the global scope, whithout a conditional guard to detect a native implementation. In environments where there is a native global implementation of `structuredClone()` already, assignment to the global object will result in an infinite loop when `globalThis.structuredClone()` is called. See the example above for a safe way to provide the polyfill globally in your project.
+
+### Extra Features
+
+There is no middle-ground between the structured clone algorithm and JSON:
+
+ * JSON is more relaxed about incompatible values: it just ignores these
+ * Structured clone is inflexible regarding incompatible values, yet it makes specialized instances impossible to reconstruct, plus it doesn't offer any helper, such as `toJSON()`, to make serialization possible, or better, with specific cases
+
+This module specialized `serialize` export offers, within the optional extra argument, a **lossy** property to avoid throwing when incompatible types are found down the road (function, symbol, ...), so that it is possible to send with less worrying about thrown errors.
+
+```js
+// as default export
+import structuredClone from '@ungap/structured-clone';
+const cloned = structuredClone(
+ {
+ method() {
+ // ignored, won't be cloned
+ },
+ special: Symbol('also ignored')
+ },
+ {
+ // avoid throwing
+ lossy: true,
+ // avoid throwing *and* looks for toJSON
+ json: true
+ }
+);
+```
+
+The behavior is the same found in *JSON* when it comes to *Array*, so that unsupported values will result as `null` placeholders instead.
+
+#### toJSON
+
+If `lossy` option is not enough, `json` will actually enforce `lossy` and also check for `toJSON` method when objects are parsed.
+
+Alternative, the `json` exports combines all features:
+
+```js
+import {stringify, parse} from '@ungap/structured-clone/json';
+
+parse(stringify({any: 'serializable'}));
+```
diff --git a/docs/fragemented/node_modules/@vitejs/plugin-vue/README.md b/docs/fragemented/node_modules/@vitejs/plugin-vue/README.md
new file mode 100644
index 0000000000..b8289c9484
--- /dev/null
+++ b/docs/fragemented/node_modules/@vitejs/plugin-vue/README.md
@@ -0,0 +1,278 @@
+# @vitejs/plugin-vue [](https://npmjs.com/package/@vitejs/plugin-vue)
+
+> Note: as of `vue` 3.2.13+ and `@vitejs/plugin-vue` 1.9.0+, `@vue/compiler-sfc` is no longer required as a peer dependency.
+
+```js
+// vite.config.js
+import vue from '@vitejs/plugin-vue'
+
+export default {
+ plugins: [vue()],
+}
+```
+
+For JSX / TSX support, [`@vitejs/plugin-vue-jsx`](https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue-jsx) is also needed.
+
+## Options
+
+```ts
+export interface Options {
+ include?: string | RegExp | (string | RegExp)[]
+ exclude?: string | RegExp | (string | RegExp)[]
+
+ isProduction?: boolean
+
+ /**
+ * Requires @vitejs/plugin-vue@^5.1.0
+ */
+ features?: {
+ /**
+ * Enable reactive destructure for `defineProps`.
+ * - Available in Vue 3.4 and later.
+ * - **default:** `false` in Vue 3.4 (**experimental**), `true` in Vue 3.5+
+ */
+ propsDestructure?: boolean
+ /**
+ * Transform Vue SFCs into custom elements.
+ * - `true`: all `*.vue` imports are converted into custom elements
+ * - `string | RegExp`: matched files are converted into custom elements
+ * - **default:** /\.ce\.vue$/
+ */
+ customElement?: boolean | string | RegExp | (string | RegExp)[]
+ /**
+ * Set to `false` to disable Options API support and allow related code in
+ * Vue core to be dropped via dead-code elimination in production builds,
+ * resulting in smaller bundles.
+ * - **default:** `true`
+ */
+ optionsAPI?: boolean
+ /**
+ * Set to `true` to enable devtools support in production builds.
+ * Results in slightly larger bundles.
+ * - **default:** `false`
+ */
+ prodDevtools?: boolean
+ /**
+ * Set to `true` to enable detailed information for hydration mismatch
+ * errors in production builds. Results in slightly larger bundles.
+ * - **default:** `false`
+ */
+ prodHydrationMismatchDetails?: boolean
+ /**
+ * Customize the component ID generation strategy.
+ * - `'filepath'`: hash the file path (relative to the project root)
+ * - `'filepath-source'`: hash the file path and the source code
+ * - `function`: custom function that takes the file path, source code,
+ * whether in production mode, and the default hash function as arguments
+ * - **default:** `'filepath'` in development, `'filepath-source'` in production
+ */
+ componentIdGenerator?:
+ | 'filepath'
+ | 'filepath-source'
+ | ((
+ filepath: string,
+ source: string,
+ isProduction: boolean | undefined,
+ getHash: (text: string) => string,
+ ) => string)
+ }
+
+ // `script`, `template` and `style` are lower-level compiler options
+ // to pass on to respective APIs of `vue/compiler-sfc`
+
+ script?: Partial<
+ Omit<
+ SFCScriptCompileOptions,
+ | 'id'
+ | 'isProd'
+ | 'inlineTemplate'
+ | 'templateOptions'
+ | 'sourceMap'
+ | 'genDefaultAs'
+ | 'customElement'
+ >
+ >
+
+ template?: Partial<
+ Omit<
+ SFCTemplateCompileOptions,
+ | 'id'
+ | 'source'
+ | 'ast'
+ | 'filename'
+ | 'scoped'
+ | 'slotted'
+ | 'isProd'
+ | 'inMap'
+ | 'ssr'
+ | 'ssrCssVars'
+ | 'preprocessLang'
+ >
+ >
+
+ style?: Partial<
+ Omit<
+ SFCStyleCompileOptions,
+ | 'filename'
+ | 'id'
+ | 'isProd'
+ | 'source'
+ | 'scoped'
+ | 'cssDevSourcemap'
+ | 'postcssOptions'
+ | 'map'
+ | 'postcssPlugins'
+ | 'preprocessCustomRequire'
+ | 'preprocessLang'
+ | 'preprocessOptions'
+ >
+ >
+
+ /**
+ * Use custom compiler-sfc instance. Can be used to force a specific version.
+ */
+ compiler?: typeof _compiler
+
+ /**
+ * @deprecated moved to `features.customElement`.
+ */
+ customElements?: boolean | string | RegExp | (string | RegExp)[]
+}
+```
+
+## Asset URL handling
+
+When `@vitejs/plugin-vue` compiles the `` blocks in SFCs, it also converts any encountered asset URLs into ESM imports.
+
+For example, the following template snippet:
+
+```vue
+
+```
+
+Is the same as:
+
+```vue
+
+
+
+```
+
+By default the following tag/attribute combinations are transformed, and can be configured using the `template.transformAssetUrls` option.
+
+```js
+{
+ video: ['src', 'poster'],
+ source: ['src'],
+ img: ['src'],
+ image: ['xlink:href', 'href'],
+ use: ['xlink:href', 'href']
+}
+```
+
+Note that only attribute values that are static strings are transformed. Otherwise, you'd need to import the asset manually, e.g. `import imgUrl from '../image.png'`.
+
+## Example for passing options to `vue/compiler-sfc`:
+
+```ts
+import vue from '@vitejs/plugin-vue'
+
+export default {
+ plugins: [
+ vue({
+ template: {
+ compilerOptions: {
+ // ...
+ },
+ transformAssetUrls: {
+ // ...
+ },
+ },
+ }),
+ ],
+}
+```
+
+## Example for transforming custom blocks
+
+```ts
+import vue from '@vitejs/plugin-vue'
+import yaml from 'js-yaml'
+
+const vueI18nPlugin = {
+ name: 'vue-i18n',
+ transform(code, id) {
+ // if .vue file don't have block, just return
+ if (!/vue&type=i18n/.test(id)) {
+ return
+ }
+ // parse yaml
+ if (/\.ya?ml$/.test(id)) {
+ code = JSON.stringify(yaml.load(code.trim()))
+ }
+ // mount the value on the i18n property of the component instance
+ return `export default Comp => {
+ Comp.i18n = ${code}
+ }`
+ },
+}
+
+export default {
+ plugins: [vue(), vueI18nPlugin],
+}
+```
+
+Create a file named `Demo.vue`, add `lang="yaml"` to the `` blocks, then you can use the syntax of `YAML`:
+
+```vue
+Hello
+
+
+message: 'world'
+fullWord: 'hello world'
+
+```
+
+`message` is mounted on the i18n property of the component instance, you can use like this:
+
+```vue
+
+
+
+ {{ Demo.i18n.message }}
+ {{ Demo.i18n.fullWord }}
+
+```
+
+## Using Vue SFCs as Custom Elements
+
+> Requires `vue@^3.2.0` & `@vitejs/plugin-vue@^1.4.0`
+
+Vue 3.2 introduces the `defineCustomElement` method, which works with SFCs. By default, `