Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
b61169f
feat(ai): add provider and OAuth parity for /login
islee23520 Jul 12, 2026
03c07df
feat(devenv): wire new provider API keys into devcontainer and env setup
islee23520 Jul 12, 2026
b6d7614
fix(ai): parse CRLF-delimited SSE and pin GLM ZCode endpoints to z.ai
islee23520 Jul 13, 2026
33a5a92
fix(ai): parse CRLF-delimited SSE and pin GLM ZCode endpoints to z.ai
islee23520 Jul 14, 2026
e09af30
Merge upstream/main into feat/auth-provider-parity
islee23520 Jul 14, 2026
70b27aa
Merge upstream/main into feat/auth-provider-parity
islee23520 Jul 16, 2026
eda7aba
fix(ai): address PR #193 review — re-port OAuth, protocol P1s, drop G…
islee23520 Jul 18, 2026
edc5b21
merge: resolve origin/main conflicts into feat/auth-provider-parity
islee23520 Jul 18, 2026
a95af69
merge: resolve upstream code-yeongyu/senpi main into feat/auth-provid…
islee23520 Jul 18, 2026
fe28165
merge: resolve origin/main into feat/auth-provider-parity
islee23520 Jul 19, 2026
a00dc64
fix(ai): restore main xAI device OAuth and Google OAuth-only login
islee23520 Jul 19, 2026
5639d89
fix(ai): remove duplicate googleProvider registration
islee23520 Jul 19, 2026
8b2559e
fix(coding-agent): add Gajae provider display names for /login
islee23520 Jul 19, 2026
02f9060
test(coding-agent): tolerate wrapped paths in tool-execution compact …
islee23520 Jul 19, 2026
a48f7d5
test(coding-agent): stabilize app-server idle-unload fake timers
islee23520 Jul 19, 2026
5a55d91
fix(ai): unify Kimi login to single kimi-coding entry
islee23520 Jul 19, 2026
6bc11ef
Merge remote-tracking branch 'upstream/main' into feat/auth-provider-…
islee23520 Jul 20, 2026
686a290
Merge remote-tracking branch 'upstream/main' into feat/auth-provider-…
islee23520 Jul 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .agents/skills/senpi-qa/references/env-vars.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,13 @@ The first present key wins; `devenv-setup.mjs` seeds `.env.local` from it.
`MISTRAL_API_KEY`, `MINIMAX_API_KEY`, `MOONSHOT_API_KEY`, `KIMI_API_KEY`,
`OPENCODE_API_KEY`, `CLOUDFLARE_API_KEY` (+ `CLOUDFLARE_ACCOUNT_ID` /
`CLOUDFLARE_GATEWAY_ID`), `XIAOMI_API_KEY` (+ regional token-plan keys),
`HF_TOKEN`, and the AWS Bedrock / Google Vertex variable sets.
`HF_TOKEN`, `ALIBABA_CODING_PLAN_API_KEY`, `DEEPINFRA_API_KEY`,
`FIREPASS_API_KEY`, `FUGU_API_KEY`, `LITELLM_API_KEY`,
`LM_STUDIO_API_KEY`, `NANO_GPT_API_KEY`, `OLLAMA_API_KEY`,
`OLLAMA_CLOUD_API_KEY`, `QIANFAN_API_KEY`,
`QWEN_OAUTH_TOKEN`, `QWEN_PORTAL_API_KEY`, `SYNTHETIC_API_KEY`,
`VENICE_API_KEY`, `VLLM_API_KEY`, `ZENMUX_API_KEY`, and the
AWS Bedrock / Google Vertex variable sets.

When you add a provider, add its key here AND to the `.devcontainer`
`secrets` block AND keep `env-api-keys.ts` as the source of truth.
Expand Down
48 changes: 48 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,54 @@
},
"GEMINI_API_KEY": {
"description": "(Optional) Google Gemini API key (senpi's default provider is google)."
},
"ALIBABA_CODING_PLAN_API_KEY": {
"description": "(Optional) Alibaba Coding Plan API key."
},
"DEEPINFRA_API_KEY": {
"description": "(Optional) DeepInfra API key."
},
"FIREPASS_API_KEY": {
"description": "(Optional) Fire Pass API key."
},
"FUGU_API_KEY": {
"description": "(Optional) Sakana Fugu API key."
},
"LITELLM_API_KEY": {
"description": "(Optional) LiteLLM proxy API key."
},
"LM_STUDIO_API_KEY": {
"description": "(Optional) LM Studio API key."
},
"NANO_GPT_API_KEY": {
"description": "(Optional) NanoGPT API key."
},
"OLLAMA_API_KEY": {
"description": "(Optional) Ollama API key."
},
"OLLAMA_CLOUD_API_KEY": {
"description": "(Optional) Ollama Cloud API key."
},
"QIANFAN_API_KEY": {
"description": "(Optional) Qianfan API key."
},
"QWEN_OAUTH_TOKEN": {
"description": "(Optional) Qwen Portal OAuth token."
},
"QWEN_PORTAL_API_KEY": {
"description": "(Optional) Qwen Portal API key."
},
"SYNTHETIC_API_KEY": {
"description": "(Optional) Synthetic API key."
},
"VENICE_API_KEY": {
"description": "(Optional) Venice API key."
},
"VLLM_API_KEY": {
"description": "(Optional) vLLM API key."
},
"ZENMUX_API_KEY": {
"description": "(Optional) ZenMux API key."
}
},
"customizations": {
Expand Down
Loading
Loading