-
-
Notifications
You must be signed in to change notification settings - Fork 607
Comparing changes
Open a pull request
base repository: ericc-ch/copilot-api
base: master
head repository: godlockin/copilot-api
compare: master
- 17 commits
- 35 files changed
- 2 contributors
Commits on Apr 25, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 4b0dc74 - Browse repository at this point
Copy the full SHA 4b0dc74View commit details -
Configuration menu - View commit details
-
Copy full SHA for eda5a6a - Browse repository at this point
Copy the full SHA eda5a6aView commit details -
feat: add model resolution, claude settings, and Responses API support
- src/lib/models.ts: resolveModel/resolveModelId with snapshot suffix stripping (e.g. claude-opus-4-7-{snapshot} -> claude-opus-4.7) and family alias matching - src/lib/claude-settings.ts: read env from ~/.claude/settings*.json for COPILOT_REASONING_EFFORT overrides - src/services/copilot/responses.ts: GitHub Copilot /responses endpoint adapter for gpt-5.3-codex / gpt-5.4-mini (uses reasoning.effort, not budget_tokens) - routes: thread resolveModel through chat-completions and count-tokens handlers - anthropic-types: extend thinking.type with "adaptive" and add reasoning_effortConfiguration menu - View commit details
-
Copy full SHA for ce0f0cb - Browse repository at this point
Copy the full SHA ce0f0cbView commit details -
fix: extend network timeouts to survive long subagent workloads
- main.ts: install global undici Agent with 10min headers/body timeout, 2min keep-alive, 30s connect — default 300s headersTimeout was killing >5min Copilot upstream responses (DOMException TIMEOUT_ERR) - start.ts: pass bun idleTimeout=255 (Bun max) to srvx + reusePort=true so keep-alive connections aren't closed under 10s default, which surfaces as "socket connection was closed unexpectedly" on the Claude Code side
Configuration menu - View commit details
-
Copy full SHA for 29dfb09 - Browse repository at this point
Copy the full SHA 29dfb09View commit details -
fix(opus-4.7): pass thinking.enabled verbatim and cap effort at medium
Upstream Copilot opus-4.7 only accepts {type: "enabled"} (no "adaptive", no "disabled"), and rejects effort levels above "medium". Coerce both "enabled" and "adaptive" to "enabled" with optional budget_tokens, and downgrade higher efforts to "medium" with a warning so legacy clients keep working. Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>Configuration menu - View commit details
-
Copy full SHA for 03862da - Browse repository at this point
Copy the full SHA 03862daView commit details -
docs: add CLAUDE.md project guide and claude-copilot.sh launcher
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for e6b8ed2 - Browse repository at this point
Copy the full SHA e6b8ed2View commit details
Commits on Apr 26, 2026
-
feat(opus-4.7): open effort cap to low/medium/high/xhigh/max
Probed upstream Copilot directly: opus-4.7 now accepts all effort levels (low/medium/high/xhigh/max) without 400, and reasoning_effort shows real gradient in completion tokens (low~214 → max~374) on a fixed prompt with thinking enabled. Lift the medium cap so high-effort requests reach the model instead of being silently downgraded. Tests updated to reflect the new pass-through behavior. Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 818ca37 - Browse repository at this point
Copy the full SHA 818ca37View commit details -
feat(usage): add local HTML viewer with auto-refresh
- New /usage/view route serving a self-contained dark-mode dashboard rendering quota_snapshots (chat/completions/premium_interactions) with progress bars, plan/SKU/reset metadata, and refresh controls. - /usage now content-negotiates: text/html → viewer, JSON otherwise, preserving API compatibility. - Auto-refresh defaults to 30s, with on/off toggle and 10s/30s/60s/5m selector; pauses on tab hidden, persists prefs to localStorage, honors ?endpoint, ?auto, ?refresh URL params. - claude-copilot.sh: add --daemon-start/--daemon-stop subcommands and print log path + usage URL after server is ready. Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for d543f86 - Browse repository at this point
Copy the full SHA d543f86View commit details -
feat: add setup.sh installer, claude-copilot.sh daemon fix, and docs
- setup.sh: 5-step installer (deps, build, auth, shell config, launchd plist) - claude-copilot.sh: --daemon shows local dashboard URL (usage/view) - README: quick start section with model tier table and effort support docs - .gitignore: add copilot-data/ docker volume exclusion - non-stream-translation.ts: use upstream thinking/effort translation with resolveModelId Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for aa4bdaf - Browse repository at this point
Copy the full SHA aa4bdafView commit details -
feat: cherry-pick setup.sh installer + claude-copilot.sh daemon impro…
…vements Brings in the installer/docs/launcher work from godlockin/master (aa4bdaf) while keeping main's adaptive→enabled thinking translation and opened-up opus-4.7 effort cap (low/medium/high/xhigh/max) — master had reverted non-stream-translation.ts which silently drops the thinking field and caused upstream 400s for clients sending thinking.adaptive. - setup.sh: 5-step installer (deps, build, auth, shell config, launchd plist) - claude-copilot.sh: --daemon shows local dashboard URL (usage/view) - README: quick start, model tier table, effort support docs - .gitignore: add copilot-data/ docker volume exclusion - bun.lock: dependency updates from master Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 8a6b551 - Browse repository at this point
Copy the full SHA 8a6b551View commit details -
merge main into master: include thinking/effort fixes + usage viewer
main has all the same setup.sh / claude-copilot.sh / README / .gitignore / bun.lock improvements as master's aa4bdaf, plus: - adaptive→enabled thinking translation (avoids upstream 400 on opus-4.7) - opus-4.7 effort cap opened to low/medium/high/xhigh/max - /usage/view local HTML dashboard with auto-refresh
Configuration menu - View commit details
-
Copy full SHA for 20a3fbe - Browse repository at this point
Copy the full SHA 20a3fbeView commit details
Commits on Apr 27, 2026
-
fix(opus-4.7): drop thinking field entirely; rely on output_config.ef…
…fort Even after coercing thinking.adaptive→enabled, upstream Copilot still returned 400 "Input tag 'adaptive' found using 'type'" — likely because the validator scans the overall request body (including conversation content) for thinking-shaped strings, which is fragile when chat history mentions the word "adaptive". Effort already conveys reasoning intent (low→max); thinking is redundant for this provider. Stop forwarding thinking unconditionally. Tests: 3 thinking-translation cases updated to expect undefined. Probe: thinking.{adaptive,enabled+budget=31999} + reasoning_effort {low,medium,high,xhigh,max} all → 200.Configuration menu - View commit details
-
Copy full SHA for 29837a3 - Browse repository at this point
Copy the full SHA 29837a3View commit details -
fix(opus-4.7): drop thinking field entirely; rely on output_config.ef…
…fort Even after coercing thinking.adaptive→enabled, upstream Copilot still returned 400 "Input tag 'adaptive' found using 'type'" — likely because the validator scans the overall request body (including conversation content) for thinking-shaped strings, which is fragile when chat history mentions the word "adaptive". Effort already conveys reasoning intent (low→max); thinking is redundant for this provider. Stop forwarding thinking unconditionally. Tests: 3 thinking-translation cases updated to expect undefined. Probe: thinking.{adaptive,enabled+budget=31999} + reasoning_effort {low,medium,high,xhigh,max} all → 200.Configuration menu - View commit details
-
Copy full SHA for 51d072c - Browse repository at this point
Copy the full SHA 51d072cView commit details
Commits on May 1, 2026
-
feat: log model name in request lines + add log-watchdog script
- Add model identifier to request log lines for observability e.g. "<-- POST (claude-opus-4.6) /v1/messages" - Add log-watchdog.sh for launchd-based runtime log truncation - Fix package.json start script to include "start" subcommand Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 41e38f3 - Browse repository at this point
Copy the full SHA 41e38f3View commit details -
Configuration menu - View commit details
-
Copy full SHA for ad97c13 - Browse repository at this point
Copy the full SHA ad97c13View commit details -
fix: use launchctl for service start, dynamic log path in watchdog
- _ensure_service_running + daemon: replace nohup/node fork with launchctl start Prevents EADDRINUSE from multiple node processes competing on port 1234 - log-watchdog.sh: replace hardcoded path with $(cd dirname $0 && pwd)/server.log Works from any clone location without modification Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for f4fadb1 - Browse repository at this point
Copy the full SHA f4fadb1View commit details
Commits on May 4, 2026
-
chore: remove unused files, add INDEX.md and EKET framework
- Delete: CLAUDE.md.local-backup, SETUP_COMPLETE.md, package-lock.json, .eslintcache, auth.sh, build.sh, test-api.sh, opencode.json, copilot-data/ - Add: INDEX.md (project index: file tree, API endpoints, functions, models) - Add: EKET jira/confluence scaffold (EPIC-001, TASK-1/2/3) Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for b3f5927 - Browse repository at this point
Copy the full SHA b3f5927View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master...master