7e2fc88260
gui: Codex's panel says when the Codex app's model menu can't reach every model: the app asks for 100 and never the next page, so with more the last ones can't be picked there; it points to Pick and Order (#1262)
yetone2026-10-08 15:53:26 +08:00
52ad2d9845
gui: a ZCode account with nothing left to spend says so, and says what to do (#1245)
如是2026-10-08 15:39:50 +08:00
01e66e0f4a
gateway: a reply a Claude subscription account answered carries its anthropic-ratelimit-unified-5h/7d headers, so a Claude Code signed in to claude.ai shows the 5-hour and weekly limits in its status line (claude-hud, #1257)
yetone2026-10-08 15:28:49 +08:00
b2432754e5
usage, gateway: Antigravity's gemini-3.8-flash answered as gemini-3.8-flash-n is no longer marked as another model (dumplings on Discord)
yetone2026-10-08 15:15:31 +08:00
9fcd332b6c
proc: a .cmd or .bat is run through cmd.exe with each argument quoted for it, so npm.cmd under C:\Program Files\nodejs (nvm-windows) no longer runs "C:\Program" when magpie updates Claude Code (wztlink1013 on Discord)
yetone2026-10-08 14:57:01 +08:00
811681bc72
agent: on a Claude model that is no Fable, Claude Code's fable tier is left unset instead of following the main model, so Opus is no longer taken for Fable (Zhenzhen on Discord)
yetone2026-10-08 14:55:52 +08:00
10f7b4aa3f
davsync, gui: a WebDAV server whose HEAD says Content-Length: 0 no longer fails every shared usage day as "kept 0 of 6869 bytes", and a usage share that failed is its own red line under the sync status (#1259, mzcinf on 坚果云)
yetone2026-10-08 14:52:05 +08:00
e90f30d99c
provider: a built-in account signed in again is read afresh, not answered by the reading kept from the refused sign-in (8c0ffcc6's siblings)
yetone2026-10-08 14:11:16 +08:00
db0feb3615
library, gui: a remote MCP server's headers and a command's env can name ${NAME}: the library keeps the placeholder and each agent gets its own syntax, so the token is never written into an agent's settings (#1250)
yetone2026-10-08 14:04:18 +08:00
173ab71e8b
gateway: a Gemini client's thinkingConfig no longer reaches a quiet group member as reasoning_effort (#1253)
yetone2026-10-08 13:58:54 +08:00
8c0ffcc640
provider: a plugin account signed in again is read afresh, not answered by the reading kept from the refused sign-in (TestPluginLoginTakesTheLapseOff red after its first run in a process)
yetone2026-10-08 13:52:50 +08:00
1b8c33b5e2
provider: a routing group reasons when any member does, not only when all of them do (#950)
如是2026-10-08 13:47:13 +08:00
6a8095421e
sessions tests: TestCursor expects the resume command Windows gives it (red on Windows in main since 585f7f7d) (#1248)
wizzy-yangandwizzy-yang2026-10-08 13:34:23 +08:00
1ab6228b22
provider: moved Factory users get plugin 0.1.20, whose Claude Code compaction context quotes summaries like tool output and no longer lets a hook notification stop it early (plugins #42)
yetone2026-10-08 12:54:55 +08:00
52e27881ac
gui tests: panel-arrange's Usage window reads the saved order from its fixture, not set into state by hand, where the page's own load could answer after and put the first order back (red on Chromium en, zh, de)
yetone2026-10-08 12:53:17 +08:00
5318231938
gui tests: usage-ledger expects the Usage page's Context tab (red since 586f2bce added it)
yetone2026-10-08 12:53:16 +08:00
fd29653d4e
context: a window opened on the Context tab loads it at once, not at the refresh's first tick five seconds on
yetone2026-10-08 12:53:16 +08:00
b5a7d3999b
gui: the requests table's width, details and scrollbar are fitted on the next frame, not in its ResizeObserver's own call, so WebKit no longer reports a ResizeObserver loop as a page error (number-units, red on main under load)
yetone2026-10-08 12:53:08 +08:00
5d0c1dcad7
agent, library, sessions: a Claude Desktop installed as an MSIX package on Windows is found, wired, given MCP servers and skills, and its Cowork calls read, in the package's folders (Kilig on Discord, Windows 10 LTSC 21H2)
yetone2026-10-08 12:42:16 +08:00
69b6772794
provider: Qoder check-ins follow the campaign window, so a campaign open past Beijing midnight is claimed and the next one isn't missed (#1173)
Strelizia2026-10-08 12:46:41 +08:00
3aeb7d1bf8
gateway: a model a key's plan doesn't serve rests that model alone, not the key (#1235)
yetone2026-10-08 12:26:53 +08:00
e4c292f655
provider: moved ZCode users get plugin 0.1.13, whose claim line has one fixed name the GUI can translate (plugins #43)
yetone2026-10-08 11:57:15 +08:00
814dca9390
gateway: the ChatGPT backend's 502 "response protection is unavailable" is the request's, not the account's: asked once, no account rests, and a magpie-model compaction refused so is asked again as text (vs on Discord)
yetone2026-10-08 11:32:14 +08:00
3f39883204
provider: the codex provider lists every ChatGPT account's models, not only the one Codex is signed in to: a Pro 5x account beside a Free sign-in showed only the Free plan's three (Raven on Discord)
yetone2026-10-08 11:24:44 +08:00
ad3b7fe5c2
agents: keep Air provider fields on sync and model picks (#1239)
Kenoia2026-10-08 11:20:35 +08:00
70ec514872
provider: a Copilot editor token GitHub refuses gives way to the Copilot CLI's sign-in of the same account, and a sign-in from magpie of that account is kept (#1238, eightHundreds)
yetone2026-10-08 11:14:10 +08:00
1efa4c642f
gateway: a Codex lead's turn carrying its subagent's sealed reply goes back to the Responses provider that answered the lead, instead of being refused as a subagent task "sealed by the ChatGPT backend" (#1237)
yetone2026-10-08 11:12:34 +08:00
6d7b574b5a
agents: a Codex another app ships and runs as its app-server is named by that app, so the row says to reopen Agents Anywhere, not a terminal (miaopasi on Discord: the copy left was Agents Anywhere's connector's codex app-server)
yetone2026-10-08 11:09:37 +08:00
2f74a963d7
agents: a Codex left on the old list is named, with how to reopen it — the Codex app (⌘Q: closing its window keeps it running on macOS), an editor's Codex, the CLI's background app-server, a terminal's codex (miaopasi on Discord: "已接入 · 重开 Codex 后生效" stayed after restarting Codex)
yetone2026-10-08 10:38:48 +08:00
40c5b92a93
gateway: structured output crosses every translation: a Responses text.format or a Chat response_format reaches a Chat, Responses, Messages or Gemini upstream in its own words (frostming on Discord: responses.parse through magpie to OpenRouter came back as plain text)
yetone2026-10-08 10:36:07 +08:00
6d51214094
gui: a custom provider's Base URL takes a URL for each API in turn: a URL typed for OpenAI and carried to Anthropic when it was picked goes back to OpenAI once Anthropic's own URL is typed, so both are saved (#1231)
yetone2026-10-08 10:29:05 +08:00
80a4f21940
gui: an agent's current model stays listed under its provider in the picker's rail: with OpenAI picked in the rail, Codex on gpt-6.1-sol showed every OpenAI model but gpt-6.1-sol, as if magpie had dropped it (#1229)
yetone2026-10-08 10:29:05 +08:00
8412a5d1a0
gateway tests: the keepalive tests count only the idle time a client waits through — the keepalive after the vendor's first words, and nothing after the reply's last event (#1163)
forever2026-10-07 19:28:06 -07:00
63247d4feb
gui: the Routing page's stage says By weight for a provider routed by weight, not Smart — MODES, the table header() reads the chip's word and the mode paragraph from, had no weight entry. A trace over a provider routed By weight (#841) carries routing "weight" on its keys, and MODES[routing] || MODES[""] fell back to Smart's, so the request's chip read Smart and the mode line under it told of Smart's weighing, while the requests themselves had gone by weight all along — only the display was wrong. The entry takes both its strings from the provider editor's routing options (app.js ROUTINGS), whose "By weight" label and hint are already spoken in Chinese, Japanese and German, so no new keys to translate. The Accounts and keys heading reads the same table, so a weight-routed provider says By weight there too. routing-weight-chip.test.cjs opens a trace over two weighted keys in Chromium and WebKit, in English, Chinese, Japanese and German: the chip reads By weight, the mode paragraph the provider editor's words, the story whose share went first; keys under Smart keep Smart's chip and the keys' own mode line. Without the routing.js change that test fails 4 of 8 (the chip never says By weight); with it 8 of 8, and routing-key-windows (22) and i18n-keys hold on Chromium. No Go change (the assets are embedded; no Go test reads their content), so build and vet are CI's to say. (#1064)
july_lu2026-10-08 10:28:00 +08:00
6d830a3c95
plugin: Bun on Windows is given an ASCII way to the system's roots, so a user folder with a Chinese name no longer fails bun add with UNABLE_TO_VERIFY_LEAF_SIGNATURE (#1232)
yetone2026-10-08 10:16:49 +08:00
eeee883f11
agent, wslrun: an agent in a WSL distro under consomme networking is pointed at 127.0.0.1, not the distro's default route (#1230: Codex in WSL 3.0.2 consomme written with 198.18.0.2)
yetone2026-10-08 09:52:37 +08:00
65d8c418b6
provider: moved Factory users get plugin 0.1.19, which adapts Claude Code's compaction summaries and quoted session summaries (#1132, plugins#37) (#1182)
yetoneandSadWood2026-10-08 09:53:55 +08:00
47e571ad51
gateway: a write to a Claude Code magpie has ended says so at once, not only after the pipe fails: until Wait reaps it, its input still takes a write that no one reads
yetone2026-10-08 09:49:04 +08:00
ca387c3ce3
agent: a Claude Code tier's _MODEL_NAME, _DESCRIPTION and _SUPPORTED_CAPABILITIES go with its model: the user's own, written for the model before magpie, are kept and given back when magpie steps out, and one written for a model of magpie's stays while the tier is on it (#1227: every tier on opencode-go/deepseek-flash, shown in /model as grok-4.5)
yetone2026-10-08 09:11:41 +08:00
522da8f2e7
provider: Grok and Devin install in the Docker image again: a vendor's shell one-liner needs curl, which the image (bash and busybox wget since 7bfe3137) doesn't have, so the native installer runs there
yetone2026-10-08 09:01:23 +08:00
ac142bb1d2
agent, gateway: Claude Code through magpie can keep its claude.ai sign-in (#1218)
forever2026-10-07 17:58:21 -07:00
247a9857df
gui: Claude Code tier pickers keep one width in narrow windows (#1135) (#1162)
Eugene2026-10-08 08:50:05 +08:00
fae8b8b965
gateway: a write to a Claude Code that has ended says how it ended and what it said on stderr (#1185)
forever2026-10-07 17:23:27 -07:00
202031642a
provider: an account refused while its allowance is being read has it read again once that reading is back, and keeps the share it had meanwhile (#1142)
forever2026-10-07 17:23:20 -07:00
d5cf133b47
agent tests: a fake omp a Windows PATH lookup answers to, and the distro probe is skipped where a Windows shell calls the temp folder a drive (#1180)
TryWorld2026-10-08 07:31:15 +08:00
84f37ac977
provider: a Copilot account renamed with its host keeps its proxy, models, cap and concurrency, moved from its bare login before the new name is written (#1220)
yetone2026-10-08 07:26:33 +08:00
74a809dcdf
provider, cli: a Copilot account is told apart by its host as well as its login, so one GitHub login on github.com and on enterprises' *.ghe.com is kept as separate accounts, none written over or dropped as the editors' own (#1220)
yetone2026-10-08 07:15:43 +08:00
b6f33753ce
gateway: a gzip or zstd request body is read on every route, so Codex with a custom provider on /v1/responses no longer gets "expected a JSON object" (#1223)
yetone2026-10-08 07:12:04 +08:00
e4882f91de
go: 1.26.8, whose race detector leaves a forked child alone before exec on macOS (#1184)
forever2026-10-07 15:48:55 -07:00
d151c10839
gateway: a whole reply after keepalives reaches the agent as its stream, not as an "OK" error (#1175)
forever2026-10-07 15:48:48 -07:00
470d1e71a5
provider: a plugin account's usage reading begun before a request was answered no longer overrules the answer, so a 401's lapse mark isn't taken off by a clean reading already out (TestPluginFailover, about 1 run in 90) (waitingsnow) (#1176)
forever2026-10-07 15:48:41 -07:00
62bee03287
gui tests: a Settings option is measured after the last save's answer has redrawn the page, so lightweight's Off is still attached when it is clicked ("Cannot read properties of null (reading 'x')", webkit zh, about 1 run in 4 under load) (#1177)
forever2026-10-07 15:48:35 -07:00
a2c3905368
provider, gateway: a usage window whose reset has passed is renewed on every path, and an account resting out of it is back once a reading finds it renewed (#1200)
30a8ce2915
davsync tests: TestSlowTransferIsNotCutShort's watchdog is a second, not 300 ms, over ~24 MB each way
yetoneandClaude Opus 5.52026-10-08 06:21:48 +08:00
700315dff5
gui: a click made while the page is drawn again is kept: a Settings option pressed through a redraw is still picked, and a menu still loading opens at the redrawn button (#1211)
forever2026-10-07 15:20:10 -07:00
dfde3acafc
provider, gateway: a Claude /usage reset with no year is read within its window, so a reading a few days old no longer benches an account for a year (#1212)
forever2026-10-07 15:20:03 -07:00
e24b332051
plugin: a failed write to the plugin host ends the host before its caller hears of it, so a call freed by the failure finds the host already gone (TestHostWriterFailureWakesWaiters, red on macOS CI) (#1214)
forever2026-10-07 15:19:50 -07:00
e22d5eef81
davsync tests: the slow transfer's line is narrow both ways, so a download on macOS doesn't burst through the tuned-up buffers past the 300ms watchdog (TestSlowTransferIsNotCutShort red on macos-latest in main's run 37693090857: "took nothing for 300ms (GET)"; b1cba654 narrowed only the upload's way)
yetone2026-10-08 06:17:28 +08:00
7b121eabc3
library tests: skillnew_test.go's imports are gofmt'd (Gofmt red on main since bb8a3e30, run 37693090857)
yetoneandClaude Opus 5.52026-10-08 06:08:05 +08:00
a2bdb7f8ba
ci: the GTK and WebKitGTK install on Linux gives up after 15 minutes, where a stuck apt held main's Test run for 2.5 hours (b0d456c3) and every later push queued and was replaced behind it
yetoneandClaude Opus 5.52026-10-08 06:02:22 +08:00
b69b0e8100
usage: a GLM Coding Plan key's card on bigmodel.cn or Z.ai shows its reset cards, five-hour and weekly, counted from customer-package-reset/list (targetType=PERSONAL) as the vendor's usage page counts them: only those still available; a list that can't be read shows none, never 0. Read only, never spent from magpie (#1191)
yetone2026-10-08 05:57:48 +08:00
7855efc7fd
gui tests: api-key-theme finds where Settings' sharing On is in one read, so a #lanList drawn again in between doesn't read as no box
yetone2026-10-08 05:13:16 +08:00
2d0482a201
gui tests: fold-show-grip measures Show and the picker once the fold's rows have slid in, in one read, and reads the grips from the page as drawn now
yetone2026-10-08 05:13:16 +08:00
d1bbc5b65b
provider: Volcengine plans use their preset models instead of /models (xyenon) (#1216)
XYenonandAmp2026-10-08 05:37:56 +08:00
586f2bce8f
context: magpie inspects the context window of every request, session and agent
yetone2026-10-08 05:10:45 +08:00
569ca6f005
gui: the subscription windows' fit (stacked under the name or beside it) is decided on the next frame, not in its ResizeObserver's own call, so WebKit no longer reports a ResizeObserver loop as a page error (account-mask)
yetone2026-10-08 05:10:45 +08:00
5c78e232a4
gateway: the built-in Devin sends a tool whose parameters have a root anyOf, oneOf or allOf as a plain object, as the plugin's 0.1.9 does, so Devin's Claude models no longer answer 502 to Codex desktop's automation_update for users still on the built-in (#1196); provider.ObjectRoot keeps the root's and allOf's own required fields beside anyOf/oneOf branches, which only add the fields every branch requires (it used to intersect them away)
yetone2026-10-08 05:35:01 +08:00
b916f1b547
provider: moved Devin users get the plugin's 0.1.9, which sends a tool whose parameters have a root anyOf, oneOf or allOf as a plain object, so Devin's Claude models no longer answer 502 to Codex desktop's automation_update (#1196)
yetone2026-10-08 05:26:34 +08:00
b1e795e518
gui: zh-TW gets the four strings added beside it — Route by what it asks for, its hint, and the skill install's already-in-the-library and skipped notes
yetone2026-10-08 05:10:23 +08:00
aff4f9f22c
gui, tray, alerts, settings: magpie speaks Traditional Chinese (繁體中文) with Taiwan wording, picked on its own for a zh-TW, zh-HK or zh-Hant system
yetone2026-10-08 05:00:22 +08:00
84d45e6b8e
agent tests: Claude Code's haiku tier follows Claude Haiku 5.5 where a provider serves it beside Haiku 4.5 (Discord: using Haiku 5.5)
yetone2026-10-08 03:13:38 +08:00
9dc0121f90
library: installing a set of skills skips the ones in the way and installs the rest; the toast names the ones already in the library and the ones skipped (lc on Discord: 安装skills的时候,没有跳过已经安装的)
yetone2026-10-08 04:57:08 +08:00
bb8a3e3025
library: a skill or server switched off for every agent is saved with "agents": [] not null, a check's finds beside skills on no agent come with [] too, and the Library page draws a find without its agents and says why when it can't draw a check's reply, where it threw on n.agents and went blank after Check for updates (#1217)
yetone2026-10-08 04:52:41 +08:00
c2020e0bb3
proc tests: TestAskShellOwnSession reads magpie's session with x/sys/unix, so the package's tests build on Linux (#1219)
forever2026-10-07 13:44:10 -07:00
bc7c62dc11
library: the skills market offers magpie's own magpie-quota skill first, marked official, so an agent can read what is left of every subscription, plan and key (magpie quota --json) and wait for allowance (magpie quota wait); it lives in magpie-community/plugins, and its card shows no installs or skills.sh link until skills.sh lists it (ttmouse on X: magpie quota works, suggested an official skill to go with it)
yetone2026-10-08 04:25:12 +08:00
bbf9914307
proc: the login shell magpie asks for its PATH runs in a session of its own, so it can't take the terminal from magpie (DD on Discord: magpie web → zsh: suspended (tty input))
yetone2026-10-08 03:44:49 +08:00
b7f1c7d2aa
docs: Intent routing's setup names Route by what it asks for, Jev as the classifier with a TypeSafe provider, and the offer under a group whose effort Jev picks (en, zh, ja)
yetone2026-10-08 03:42:22 +08:00
685fa5dc61
gui: a routing group's rule by intent has its own entry, "Route by what it asks for" beside Add a rule, and a group whose effort Jev picks offers it under the classifier (CherryL1quor on X: 模型路由能不能用 jev,现在只有思考强度能用 jev)
yetone2026-10-08 03:42:22 +08:00
b0d456c3b2
providers: an OpenCode Go or Zen provider saved with its chat URL alone sends GPT, Grok, Muse Spark and MiniMax on the API OpenCode serves them on, not chat, and "Model does not support this protocol" says which URL was asked (#1215)
yetone2026-10-08 03:17:29 +08:00
75aa03e1a2
gui tests: purpose-filter doesn't count WebKit's "ResizeObserver loop completed with undelivered notifications" as a page error
yetone2026-10-07 19:25:33 +08:00
796221279f
usage: in a narrow window the Requests table's account column keeps room for both source badges, where it cut off "Subscription" (since fdcdb5af, #860)
yetone2026-10-07 19:24:38 +08:00
d1433be2a8
gui tests: profile-confirm finds and measures the home chip in one call, so a list drawn again in between doesn't read as a chip at 0
yetone2026-10-07 19:10:42 +08:00
8317d38383
gui tests: routing-failed-open measures the 400's row once the live page has followed the newest request and drawn its story
yetone2026-10-07 18:16:04 +08:00
6d1d202b7f
providers: a SiliconFlow key's card says SiliconFlow retired its balance query and has no API in its place yet, and that the balance and vouchers are on its console, instead of "410 Gone: {...}" (#1094)
yetone2026-10-07 18:49:14 +08:00
a8290d2772
agent: a catalog sync or a model pick keeps the keys a user or another tool added to magpie's provider block (Pi's providers.magpie.compat.sendSessionAffinityHeaders from pi-cache-optimizer) instead of writing the block whole (#1103)
yetone2026-10-07 18:51:04 +08:00
d637a3cf5e
gateway: a DeepSeek model whose Codex request is passed through as it is (OpenCode Go's deepseek-v4.1-flash) gets its reasoning back as reasoning_text, and is never asked without it (#1104)
yetone2026-10-07 18:53:58 +08:00
5a9c0c21ca
codexcat: a third-party entry for a model Codex has its own entry for (s2a/gpt-6-astra) says the same multi_agent_reasoning_effort, so Codex's Ultra sends xhigh for it as for OpenAI's gpt-6-astra instead of falling back to max (#1108)
yetone2026-10-07 18:52:26 +08:00
842272df84
gateway: a Codex subagent's sealed task goes back to the Responses provider that answered its lead (a Sub2API relay of the ChatGPT backend), relayed as it came, instead of being refused before it is asked; the refusal names who sealed it (#1109)
yetone2026-10-07 18:57:39 +08:00
ed4476b981
agent: Hermes keeps magpie's provider when its model goes to one of its own, so it stays connected and its session picker still offers magpie's models; Disconnect takes it out (lijiho96940561 on X: changing Hermes's default model marked it Not connected and magpie's models left its picker)
yetone2026-10-08 00:27:03 +08:00
8731dd9f38
docs: LESSONS.md gets the review of 10-07's commits — fix-the-class, re-derive, red-on-main and merge-record lessons seen a third day move into the code standards; not tried with the real thing seen a second day (b2345078→7837f90d, #1050, cda11d84); positives from 6b6113aa, d40fee80, bed306ae and #948yetone2026-10-07 23:46:48 +08:00
8b14afea15
docs: Plugins says magpie asks GitHub for tagged repositories at most every ten minutes (en, zh, ja)
yetone2026-10-07 22:08:45 +08:00
a12f6fc13a
plugins: a repository tagged magpie-plugin shows within ten minutes, not up to six hours later (lee04052822 on X: tagged it, and magpie didn't show it)
yetone2026-10-07 22:08:45 +08:00
cd8d64a9fc
feat(gui): add Sub2API balance autofill on account balance hint (#1059)
mslxl2026-10-07 19:11:01 +08:00
92e4fc32fa
provider: moved ZCode users get plugin 0.1.12 and moved WorkBuddy users 0.1.10 — ZCode's counted windows carry their amount and limit so the card's count follows used/left (#659, magpie-community/plugins#35); WorkBuddy's credits-used-up error (code 14018, matched as the whole code) says so with the nested message (plugins#25). Both versions resolve with npm view. go test -tags nogui ./internal/provider under a temp HOME passes; the plugins' own bun tests passed at merge. Not tried with a real ZCode or WorkBuddy account here.
yetone2026-10-07 18:52:23 +08:00
bed306ae60
gateway: reasoning off reaches Gemini 3 at its lowest level, and Google refusing minimal no longer stops a provider's thoughts (#1062)
forever2026-10-07 03:51:01 -07:00
cda11d8467
appdir: a data folder beside magpie in the home folder, Downloads, Desktop or Documents is its portable data only when it holds magpie's files and the installed folder doesn't (or with .portable), so magpie.exe run from Downloads no longer writes into a user's own Downloads\data (tangle778 on X)
yetone2026-10-07 18:13:01 +08:00