Rebasing onto current main landed both the coding-agent and catalog
vLLM entries under the released [15.12.6] section. Per AGENTS.md, new
entries go under [Unreleased] and released sections are immutable, so
the release tooling would otherwise miss them.
Addresses review feedback on #2451.
Read vLLM max_model_len and OpenAI-compatible context_length metadata during model discovery, route providers.vllm.baseUrl into built-in discovery before cached models exist, and avoid sending local placeholder bearer tokens.
Scope the vLLM model cache to the discovery base URL so endpoint changes refetch immediately, and add focused regression coverage for configured and built-in vLLM discovery.
Rebasing onto main replayed the branch's changelog history across main's
diverged changelog, duplicating the RPC prompt-completion note and
injecting stray entries/headers into the released [15.12.4] section.
Reset the changelog to main's content with exactly one entry under
[Unreleased] -> Added, per AGENTS.md (released sections are immutable).
Addresses review feedback on #2432.
The rebase landed the changelog entry inside the already-released
[15.12.4] section because its #2429 anchor was moved there when that
release was cut. Relocate it to [Unreleased] -> Fixed per changelog
convention.
Addresses review feedback on #2456.
Add a proxy-discovery regression: a `context_length: 0` upstream value
must be rejected by `toPositiveNumberOrUndefined` and fall back to the
default window. Raw `??` would have pinned it at 0 (nullish coalescing
does not skip 0), so this guards the should-fix the helper was added for.
Also apply biome formatting to the discovery change (collapse the
multiline `contextWindow:` expression, drop a trailing space) and the new
tests so `biome check` passes — the PR as submitted failed the formatter.
Addresses review feedback on #2466.
The PR added its `### Fixed` entry to packages/agent/CHANGELOG.md
(@oh-my-pi/pi-agent-core), but the change lives in the coding-agent
package (packages/coding-agent/src/config/model-discovery.ts). Per
AGENTS.md the changelog entry belongs in the touched package under
`## [Unreleased]`; the rebase also wedged the misplaced entry inside the
already-released `## [15.12.6]` section. Move it to
packages/coding-agent/CHANGELOG.md and restore packages/agent unchanged.
Addresses review feedback on #2466.
Updated model discovery to use `context_length` reported by the API when available, falling back to bundled reference data and default. Added `context_length` field to parsed model response and modified context window assignment logic.
The rebase replayed the entry against its old context anchor, which has
since shipped in the released [15.11.7] section, so the new line landed
inside published release history. Relocate it under [Unreleased] / Fixed
per the changelog convention.
Addresses review feedback on #2377.
Deferred MCP discovery wrote 'Connecting to MCP servers: …' straight to process.stderr while the TUI owned the terminal, overdrawing the chat input box border. onMCPConnecting now emits McpConnectingEvent on the mcp:connecting channel; InteractiveMode subscribes and renders it via showStatus (status container), mirroring the LSP-startup pattern. New mcp/startup-events.ts holds the channel, type, and formatMCPConnectingMessage.
- model-resolver: removed three resolveAgentModelPatterns cases that pinned exact
priority.json model names (gpt-5.4 / gemini-3 designer list); priority.json now
leads slow with gpt-5.5 and includes gemini-3.5-flash, so the hardcoded lists
were stale. The remaining cases still cover cross-role alias inheritance and
configured-override precedence.
- settings-selector: removed the condition-hidden group-title assertion that
depended on the pre-autolearn memory-tab group layout.
Hardcoding device index `:0` grabbed whatever avfoundation enumerated first
(often a camera or the wrong input), so recording could capture silence or the
wrong source. Both the single-shot and streaming ffmpeg recorder paths now
request the system default input device.
Treated SearXNG HTTP 200 responses with no usable sources and upstream engine failures as transient provider errors. Added a generic renderable-content guard so provider fallback continues instead of returning an invisible success.\n\nFixes #2571
- Tracked snapshot-safe boundaries to retain commit-stable streamed rows in scrollback.
- Computed durableBoundary from commit and snapshot ends to prevent row drop regressions.
- Updated audit-row handling so drifting durable rows were excluded from resync checks.
- Added regression tests for commit-stable and commit-unstable relayout streaming cases.
- Remove the stale pre-refinement LaTeX entry left behind when the refined
#2550 changelog line was applied over the original.
- Add [Unreleased] entries for the two merged farm fixes that shipped without
one: mnemopi legacy-bank recall isolation (#2412) and slash-command alias
dedup in the prompt-template autocomplete picker.