singularity-forge/packages/pi-coding-agent/src/core
Derek Pearson 5ecf047553 fix(pi-ai): correct Copilot context window and output token limits (#2118)
* fix(gsd extension): detect initialized projects in health widget

Use .gsd presence plus project-state detection for the health widget so bootstrapped projects no longer appear as unloaded before metrics exist.

* fix(gsd extension): detect initialized projects in health widget

Use .gsd presence plus project-state detection for the health widget so bootstrapped projects no longer appear as unloaded before metrics exist.

* fix(pi-ai): correct Copilot context window and output token limits

- Remove github-copilot from 1M contextWindow override in generate-models.ts
- Add runtime fetching of model limits from Copilot /models API
- Apply fetched limits in modifyModels and refreshToken flows
- Regenerate models.generated.ts with corrected values
- Fix models.ts type constraints for providers not in MODELS

Fixes #2115

* fix(pi-ai): address QA round 1

- Use strict type/bounds checks for API limit values (QA-R1-001/005)
- Add caller-level try/catch in refreshToken for defense-in-depth (QA-R1-009)

* fix(pi-coding-agent): refresh model registry after OAuth token refresh

ModelRegistry.modifyModels() only ran at load time, so model limits
fetched during token refresh were persisted to auth.json but never
applied to the in-memory model objects. Users saw stale contextWindow
values (e.g., 144K from models.dev instead of 200K from the Copilot API).

Add credential change notification to AuthStorage: after a successful
OAuth token refresh, listeners are notified via queueMicrotask. The
ModelRegistry now registers a listener at construction that triggers
a full model reload, picking up the new limits from modifyModels().
2026-03-22 17:04:16 -06:00
..
compaction refactor: extract shared helpers in compaction module 2026-03-19 14:56:00 -03:00
export-html refactor: remove dead code (unused exports) (#1486) 2026-03-19 15:33:32 -06:00
extensions fix: silence spurious extension load error for non-extension libraries (#1709) (#1747) 2026-03-21 08:54:19 -06:00
lsp fix: restore lsp single-server selector export 2026-03-19 15:46:20 -06:00
tools refactor: centralize magic numbers into constants.ts (#1044) 2026-03-17 18:45:43 -06:00
agent-session.ts feat(web): browser-based web interface (#1717) 2026-03-21 12:16:54 -06:00
artifact-manager.ts feat: TTSR + blob/artifact storage (ported from oh-my-pi) 2026-03-13 08:43:56 -06:00
auth-storage.test.ts fix: prevent credential backoff on transport errors and handle quota exhaustion gracefully (#353) 2026-03-14 07:15:00 -06:00
auth-storage.ts fix(pi-ai): correct Copilot context window and output token limits (#2118) 2026-03-22 17:04:16 -06:00
bash-executor.ts fix: failure recovery & resume safeguards (all 4 waves) (#956) 2026-03-17 16:03:49 -06:00
blob-store.ts fix: failure recovery & resume safeguards (all 4 waves) (#956) 2026-03-17 16:03:49 -06:00
compaction-orchestrator.ts refactor: extract retry handler and compaction orchestrator from agent-session 2026-03-19 16:46:14 -03:00
constants.ts refactor: centralize magic numbers into constants.ts (#1044) 2026-03-17 18:45:43 -06:00
defaults.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00
diagnostics.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00
discovery-cache.test.ts test: replace shape-only assertions with value checks (#1875) 2026-03-21 15:25:10 -06:00
discovery-cache.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
event-bus.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00
exec.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00
fallback-resolver.test.ts feat: add cross-provider fallback when rate/quota limits are hit (#125) 2026-03-14 15:45:44 -05:00
fallback-resolver.ts feat: add cross-provider fallback when rate/quota limits are hit (#125) 2026-03-14 15:45:44 -05:00
footer-data-provider.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00
fs-utils.test.ts fix: failure recovery & resume safeguards (all 4 waves) (#956) 2026-03-17 16:03:49 -06:00
fs-utils.ts fix: failure recovery & resume safeguards (all 4 waves) (#956) 2026-03-17 16:03:49 -06:00
index.ts feat: add cross-provider fallback when rate/quota limits are hit (#125) 2026-03-14 15:45:44 -05:00
keybindings.ts refactor: remove dead code (unused exports) (#1486) 2026-03-19 15:33:32 -06:00
lock-utils.ts refactor: extract shared file lock utilities 2026-03-19 15:16:56 -03:00
messages.ts refactor: remove dead code (unused exports) (#1486) 2026-03-19 15:33:32 -06:00
model-discovery.test.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
model-discovery.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
model-registry-discovery.test.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
model-registry.ts fix(pi-ai): correct Copilot context window and output token limits (#2118) 2026-03-22 17:04:16 -06:00
model-resolver.ts feat: add anthropic-vertex provider for Claude on Vertex AI (#1533) 2026-03-19 23:14:13 -06:00
models-json-writer.test.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
models-json-writer.ts feat: dynamic model discovery & provider management UX (#581) 2026-03-16 06:23:18 -06:00
package-manager.ts fix: apply pi manifest opt-out to extension-discovery.ts (#1545) 2026-03-20 08:11:51 -06:00
prompt-templates.ts refactor: remove dead code (unused exports) (#1486) 2026-03-19 15:33:32 -06:00
resolve-config-value.test.ts fix(security): use execFileSync in resolve-config-value to prevent shell operator bypass (#1025) 2026-03-17 18:29:12 -06:00
resolve-config-value.ts refactor: centralize magic numbers into constants.ts (#1044) 2026-03-17 18:45:43 -06:00
resource-loader.ts fix: prevent ensureGitignore from adding .gsd when tracked in git (#1364) (#1367) 2026-03-19 17:06:01 -06:00
retry-handler.ts refactor: extract retry handler and compaction orchestrator from agent-session 2026-03-19 16:46:14 -03:00
sdk.ts feat: integrate hashline edit mode into active workflow (#870) (#872) 2026-03-17 08:23:53 -06:00
session-manager.test.ts perf: optimize discovery and interactive hot paths 2026-03-14 16:03:44 -05:00
session-manager.ts Merge pull request #1459 from frizynn/refactor/shared-lock-utils 2026-03-19 15:51:47 -06:00
settings-manager.ts refactor: simplify settings manager with generic setter helpers (#1461) 2026-03-19 15:37:24 -06:00
skill-tool.test.ts feat(pi): add Skill tool resolution (#1661) 2026-03-20 15:42:28 -06:00
skills.ts feat(pi): add Skill tool resolution (#1661) 2026-03-20 15:42:28 -06:00
slash-commands.ts feat: integrate hashline edit mode into active workflow (#870) (#872) 2026-03-17 08:23:53 -06:00
system-prompt.ts fix: include promptGuidelines in customPrompt path of buildSystemPrompt (#1187) 2026-03-18 10:55:16 -06:00
timings.ts feat: vendor Pi source into workspace monorepo 2026-03-12 21:55:17 -06:00