@oh-my-pi/pi-ai
Fixed
- Fixed GitHub Copilot long-context model requests to use the upstream
requestModelIdwhen calling Anthropic, OpenAI Responses, and OpenAI Completions APIs - Fixed GitHub Copilot model enablement to deduplicate catalog variants by upstream model ID when enabling all models
@oh-my-pi/pi-catalog
Added
- Added
requestModelIdonModelto represent the upstream model id used when a catalog entry is a local variant - Added synthetic GitHub Copilot long-context model variants with
-1msuffixes when tiered token pricing is advertised
Changed
- Changed GitHub Copilot discovery to request
X-GitHub-Api-Version: 2026-06-01fromapi.githubcopilot.com - Changed GitHub Copilot discovery to cap base model
contextWindowto the default token tier and keep long-context access as the separate-1mmodel entry - Changed Copilot model mapping to omit non-chat
/modelsentries and enable image input for models whose capabilities indicate vision support
Fixed
- Fixed long-context variant pricing to use
billing.token_prices.long_contextrates instead of default model pricing - Fixed
mapModelhandling in OpenAI-compatible discovery so returningnullnow skips a model entry rather than falling back to defaults - Fixed model ID precedence so a real upstream Copilot model id is kept when it conflicts with a synthesized
-1mvariant
@oh-my-pi/pi-coding-agent
Fixed
- Fixed stale
Working…loader rows being committed to native scrollback above the live loader: the interactive status container now reports a live-region seam while it has mounted content (#2328 by @35844493). - Fixed Mnemopi memory consolidation never running on session shutdown:
MnemopiSessionState.dispose()now drains pending fact extractions and runssleepAllSessionson every owned bank before closing handles (andAgentSession.dispose()awaits the result), matching the/memory enqueueslash command.mnemopiBackend.clearopts out viadispose({ consolidate: false })so the destructive/memory clearpath does not spend tokens consolidating memories that are wiped on the next line.consolidate()deliberately keeps noaliasOfshort-circuit so/memory enqueuefrom a subagent still flushes and sleeps the parent's shared banks (the alias guard lives indisposefor lifecycle, not inconsolidatefor content). Without this,episodic_memory,gists,consolidation_log,graph_edges, andtriplesstayed empty for every deployment because the SHMR/beam pipeline only ran when a user typed/memory enqueue|rebuild(#2320). - Fixed multi-path
searchcollapsing distinct scopes into one walk rooted at their unrequested common ancestor:paths: [".", "~/.gitconfig"]scanned the entire home directory (typically until the 30s grep timeout), and explicit file entries inside walker-pruned directories (e.g..git/config, gitignored files) silently never matched because they were folded into the directory walk's glob union. Multi-path scopes now fan out into per-target scans when the common ancestor is not itself a requested path, plain-file entries are read directly as their own targets, and matches from overlapping targets are deduplicated. - Fixed
lsp.formatOnWritesending a hardcodedtabSize: 3, insertSpaces: trueon everytextDocument/formattingrequest, which silently re-indented 2-space YAML (and any LSP-formatted file) to 3-space on every write/edit through formatter-aware servers likeyaml-language-server. Format options are now resolved per-file from.editorconfig(indent_size,indent_style,tab_width), falling back to the indent sniffed from the in-memory content the agent is about to write, then to a 2-space default. The duplicateDEFAULT_FORMAT_OPTIONSconstant inlsp/index.tsandlsp/clients/lsp-linter-client.tsis replaced with a single sharedresolveFormatOptionshelper (#2329).
@oh-my-pi/pi-tui
Fixed
- Fixed the root compose letting a lower child's native-scrollback live seam overwrite a higher one: the topmost seam (and its commit-safe extension) now defines the commit boundary, so a status loader below a streaming transcript can no longer cause still-mutable transcript rows to be committed as stale history (#2328).
@oh-my-pi/pi-utils
Added
- Added
getEditorConfigFormatting(file): returns the.editorconfig-pinnedtabSize/insertSpaces(both optional, no fallback) so LSP-format callers can layer per-file defaults under it without paving over silence with the renderer's display tab width (#2329).
What's Changed
- fix(mnemopi): consolidate working memory on session shutdown by @roboomp in #2327
- Fix working loader scrollback duplication by @35844493 in #2328
New Contributors
Full Changelog: v15.11.2...v15.11.3