69c21cdd77
gateway, settings, gui: a reply whose reasoning or text has become a loop of the same few lines is ended with an error the agent can act on, instead of running on to its output limit (#1359, Moody-Sin: WorkBuddy's DeepSeek v4.1 flash at max effort reasoned "Now." "Writing." "Go." "Let me write." "OK." "Producing." … until max tokens, while dsh waited and Pi hung)
yetone2026-10-09 19:27:33 +08:00
ab3fe0fe41
gateway: a Claude subscription turn whose saved session Claude Code can't load goes on in a new Claude Code instead of 502 "Claude Code ended", and a Claude Code that ends early says why (FrierenF on Discord)
yetone2026-10-09 22:29:38 +08:00
7953c7ef9b
agent: a config folder holding only skills/ no longer counts as the agent installed, since skill installers make one for every agent they know (qtwaiter on X)
yetone2026-10-09 22:26:02 +08:00
603dc0c44f
dsh: Disconnect keeps the model picked in dsh 0.2, which saves it into magpie's agent-default-model entry (#1392)
yetone2026-10-09 22:25:54 +08:00
dec951229c
agent: Grok Build installed by xAI's installer shows its newest version and offers grok update, and its version is read again after each update (xiaoxiaofeixz on Discord: Grok at C:\Users\<user>\.grok\bin\grok.exe)
yetone2026-10-09 22:20:15 +08:00
ecc94dbf41
gateway: a routing group's DeepSeek reasoning, its text in it, no longer sticks a Codex conversation on OpenAI destinations (#1411, cth123456: "Invalid 'input[n].content': array too long")
yetone2026-10-09 19:40:14 +08:00
1ddcc3e8cc
gateway: a provider that refuses a system message inside messages gets its text on the top-level system, and an empty one left out (#1407, liuyejinghong: Command Code "Invalid input at messages.1.role")
yetone2026-10-09 19:30:44 +08:00
02dfb7aa2c
profile: applying a profile writes only agents found on this computer, so a profile synced from another one no longer makes missing agents look installed (qtwaiter on X)
yetone2026-10-09 21:50:15 +08:00
3691c2047d
plugin, agent: bun is given a SOCKS proxy through the bridge, so a plugin installs with only a SOCKS system proxy (#1409)
yetone2026-10-09 19:33:42 +08:00
bc7362904f
quotas: another computer's magpie that won't tell its quotas says why on its card — not shared there, this key not taken, or not reached — instead of "Allowance unavailable" (Fim980 on X)
yetone2026-10-09 19:34:07 +08:00
f575da41cc
provider: the Kiro mover asks for opencode-kiro-auth 0.1.8, which sends a tool named past 64 characters under a short name (#1393)
yetone2026-10-09 19:31:33 +08:00
655f96ede4
gui tests: usage-fold and account-mask no longer reload the Usage page the moment it opens, so WebKit has no first reads to cancel and report as page errors (#1350)
yetone2026-10-09 19:22:53 +08:00
ee14595ff3
gui tests: warm-at-times opens each language in its own locale and calls a time field squeezed when it is narrower than its own text, not under a fixed 60px (#1353)
yetone2026-10-09 19:21:57 +08:00
62b1c995ff
provider, codex: an account the Codex app holds is switched off whatever its windows read, and never switched to (CavillZhang on X: "out of Codex and Work usage", some accounts not switched)
yetone2026-10-09 14:24:47 +08:00
68aab298d3
gateway, codex: a provider the user added by its address is sent the service_tier Codex asks for, and offered Fast and Ultrafast (hsiangron on X)
yetone2026-10-09 14:16:50 +08:00
0b5b10da2a
agent, gateway, gui, tui: a Codex that goes through magpie only to fail over to the user's other ChatGPT accounts says so on the Agents row and keeps to its own models (#1385, shenghsi)
yetone2026-10-09 14:10:13 +08:00
1bc0ed404a
minimax-code: magpie's models have one slash in the whole ref, so SubAgents take them (#1387, worksyang)
yetone2026-10-09 14:08:07 +08:00
e66fa16593
codex: magpie's actor header goes into a [model_providers.magpie.http_headers] table the config already has, instead of failing every model switch (wztlink1013 on Discord)
yetone2026-10-09 13:50:47 +08:00
71ee5e3519
gateway: a Claude subscription conversation whose client took its images out goes on in its run (#1382, Songxiaor)
yetone2026-10-09 13:45:42 +08:00
98236edd77
agent: Codex installed by install.ps1 on Windows shows its newest version and offers codex update, and its version is read again after each update (xiaoxiaofeixz on Discord: 不会自动检测最新的版本)
yetone2026-10-09 13:44:09 +08:00
1069785dc7
catalog: a model a relay renamed (claude-deepseek-v4.1-flash[1M]) gets its levels, window, images, name and price from the model it is (#1383, uWydnA)
yetone2026-10-09 13:35:11 +08:00
4cbde14cea
gui tests: rate-limited-sink wheels the WorkBuddy AI pool's "Goes to the back" into sight before clicking it, as aab2e441 did for the group editor's rows (#1376)
yetone2026-10-09 13:31:30 +08:00
2c36d3f282
gui tests: TestSetAnswersWhileDevinAndProvidersHang tells that the set didn't wait by order, not a 1.5s clock, and its fake devin ends with the test (#1375)
yetone2026-10-09 13:29:08 +08:00
3cd0b5f78d
gui: lightweight mode no longer lets go of a main window that is open under another app's, so Command-Tab back to magpie finds it there (#1381, ttmouse)
yetone2026-10-09 12:57:24 +08:00
4b56c8672d
plugin: an update Bun holds back says why, instead of saying it was made (sweanng424 on Discord)
yetone2026-10-09 12:57:53 +08:00
8e0e7d3c40
dsh: the desktop app's profile made while magpie runs gets magpie's route within a round, not at magpie's next start (star on Discord)
yetone2026-10-09 12:56:04 +08:00
ee3f83b59d
agents: DeepSeek Harness Desktop installed is no missing dsh CLI — its version shows instead of 未找到 CLI (star on Discord)
yetone2026-10-09 12:52:10 +08:00
4dc7222fdc
kimi: each of magpie's models in Kimi Code has its name (display_name) and, where magpie knows it, its most output (max_output_size); a value the user set in the table stays (Sorghum on Discord)
yetone2026-10-09 12:51:15 +08:00
6f59be4ef7
plugins: Qoder's mover asks for 0.2.11, so a moved Qoder CN enterprise VPC account keeps its model list and renewal mark apart from a public account with the same uid (plugins#40)
yetone2026-10-09 12:51:13 +08:00
e119470a70
gui: the ZCode plugin's claim line is translated — its name is a sentence magpie knows, its count and plan name are data (#1244)
如是2026-10-09 12:35:34 +08:00
78ae171a6d
gui: the folded Codex row says which copy to reopen, "已接入 · 重新加载编辑器窗口后生效" for an editor's Codex, instead of only "reopen Codex" (#1374, SivanCola)
yetone2026-10-09 12:16:06 +08:00
457119fec3
gui: text selected in a dialog and let go outside it no longer closes the dialog; only a press and a release both on the backdrop do (#1373, xiaozhu1337)
yetone2026-10-09 12:13:57 +08:00
be2037285a
davsync, gui: a server file that isn't a backup is said as what it is, and can be replaced by this computer's setup (JasonLeeForOnly on Discord)
yetone2026-10-09 12:09:44 +08:00
28c31a365e
readme: ordered for a reader deciding whether magpie fits (noffle's Art of README, via better-readme-skill): who it's for and who doesn't need it, then Quick start and Supported agents before the features; the six feature cards that repeated the sections below are gone, usage and sharing are tables, the intent and nested-routing shots give way to the intent docs link; zh mirrors en and gains the missing Qwen Code; every relative link and image checked
yetone2026-10-09 12:13:28 +08:00
b86001d432
gui: on GTK 3 with no font DPI set, magpie gives GDK one before the first webview, so the window and panel no longer collapse (#1371, haoxianhan)
yetone2026-10-09 12:10:30 +08:00
2018882e47
davsync, gui: a server file that isn't a backup is said as what it is, and can be replaced by this computer's setup (JasonLeeForOnly on Discord)
yetone2026-10-09 12:10:01 +08:00
34a598372c
providers, gateway, gui, cli: each usage window of an account can have a cap of its own beside the account's (willz on Discord)
yetone2026-10-09 11:51:55 +08:00
3c7473eb3f
redact: a value masked once is masked again wherever a request has it, whatever words are around it
yetone2026-10-09 11:38:45 +08:00
9fbdd584ed
codex: a thread started on a provider config.toml no longer has opens again, through magpie (#1372, obstrux: "ChatGPT 无法加载 config.toml … Model provider custom not found")
yetone2026-10-09 11:55:30 +08:00
ff93c29224
gui, provider: Try again on a held move takes the models unticked in the editor, not only the saved ones (noting_ever on X: deep-model unticked, and WorkBuddy AI's move still failed on deep-model)
yetone2026-10-09 11:54:22 +08:00
ee657c0969
usage: a Kimi Code membership's k3 is counted at Kimi's API price for kimi-k3, not ≈¥0.000, and kimi-for-coding is unpriced rather than free (#1370, maicent: Kimi Code 的模型计费都是 0)
yetone2026-10-09 11:48:12 +08:00
6df59bb186
providers: MLX-Serve is a local-server preset beside oMLX (zachzhao1984 on X: "Magpie 可以预置支持一下 MLX-Serve")
yetone2026-10-09 11:45:49 +08:00
d1d4b7ed2a
usage: a heatmap of the last 53 weeks on the Requests tab, by tokens, requests or cost (#1369, nianlee-official)
yetone2026-10-09 11:27:05 +08:00
1965e1f0f4
redact: a tool call's arguments are masked again, whatever their keys are called (7137feb4 let them out)
yetone2026-10-09 11:29:07 +08:00
e4a90aa62f
groups, routing: a found group the user changed drops a removed provider's members, and a switched-off provider's members are said as switched off (Discord)
yetone2026-10-09 11:07:18 +08:00
55544f09f6
routing, gui: a provider's accounts and a group in the group fold on the Routing page, long ones folded at first, what the reader picks kept (Aiirobyte on Discord)
yetone2026-10-09 10:48:37 +08:00
7137feb4fc
redact: what a vendor wrote and checks goes back as it wrote it — signed thinking and tool call ids (Jeremy.Zhou on Discord: OpenCode Zen answered 400 "invalid …" until 脱敏密钥 and 脱敏个人信息 were off)
yetone2026-10-09 10:58:50 +08:00
6d1322e58e
agents, profiles: a profile keeps each agent's model list, and switching profiles switches it (#1368, liuheo)
yetone2026-10-09 11:03:01 +08:00
16dc154589
claude: a new Claude Code told a whole conversation is told which turns were answered already and which turn to answer, and the gateway logs that it happened (#1365)
yetone2026-10-09 11:01:44 +08:00
7ea1cb6743
claude: a client that goes away while the run answers its tool results takes the turn back, not the whole conversation to a new Claude Code (#1365)
yetone2026-10-09 10:57:02 +08:00
9f5812f3cf
agents: an update says each agent's version from and to (37FlowAI on X: "更新后 显示一次各 Agent 的版本变更列表: 例如 Pi 从 v1.0x 更新到 v1.10")
yetone2026-10-09 11:00:58 +08:00
1734d2b33d
update: magpie web in a Docker container says to pull the new image instead of only linking the release page, and magpie update in one says the same instead of failing on the write (Chapin on Discord: 网页端的更新按钮…跳转到github)
yetone2026-10-09 10:43:11 +08:00
d14b2a2957
update: magpie web from the Mac's terminal build downloads and puts in the update itself, as magpie update does, instead of sending the page to the release page (Chapin on Discord: 网页端的更新按钮…跳转到github)
yetone2026-10-09 10:30:58 +08:00
3e9bbdaae9
gateway: a paused Codex sign-in isn't spent by native compaction either (JasonLeeForOnly on Discord: a ChatGPT account turned off in magpie still had its quota used)
yetone2026-10-09 10:38:35 +08:00
4b21fd1a19
provider, gui: a MiniMax Token Plan's video windows say their count, "1 / 5 个视频", as MiniMax's own CLI does (#1366, IamMiao)
yetone2026-10-09 10:36:56 +08:00
bf4d55acdd
gateway: a Codex task sealed by a custom Responses provider still goes back to it after magpie forgets who answered the lead — a day later, after a restart, or after the lead's reply broke off — and the refusal says how to go on (#1367)
yetone2026-10-09 10:33:42 +08:00
a8ca790855
plugin: the host takes a proxy set after it started (#1363)
yetone2026-10-09 09:48:56 +08:00
e6f81585c4
gui: a plugin's signed-out account keeps Sign in again and Remove (#1363)
yetone2026-10-09 09:48:56 +08:00
b37a082c48
davsync: WebDAV sync reads the backup uncompressed, so its ETag matches the write after it (#1362, laiquziru: TeraCloud synced once, then every sync said "the file on the server changed meanwhile")
yetone2026-10-09 09:46:34 +08:00
58ba737811
remote magpie: a remote magpie's model prices are this magpie's list prices for its models, so both Usage pages count a call at one cost (Sorghum on Discord: 希望本地 magpie 可以自动集成 remote magpie 手动设置的模型价格)
yetone2026-10-09 09:43:54 +08:00
5da6c24e80
agents, gui, cli: an agent can be shown only the models picked for it, so a model added later stays out of its list until ticked (#1337, nianlee-official)
yetone2026-10-09 08:50:14 +08:00
e9ed294383
provider, tests: a history write holds no reading waiter, and a batch of cached readings notes nothing new (#1358)
ggbdpq2026-10-09 07:08:15 +08:00
40eba22141
provider: the partners tests fetch one list at a time, as magpie does, so a fetch Partners started can't store its older list over the one fetched after it (TestPartnersFromTheFeed red on ubuntu CI at 439cfc4a: "partners after the list emptied = acme,regioned")
yetone2026-10-09 07:21:16 +08:00
f368f709c3
test(usage): TestLogChangeTrustedAppendReuse counts the prefix it re-hashes, not an empty fingerprint (CI red on Windows since 439cfc4a)
yetone2026-10-09 07:20:48 +08:00
439cfc4ac4
usage: the parse is the log fingerprint, dropping the build's full re-read before it (#1357)
yetone2026-10-09 06:54:28 +08:00
baecbb1be0
provider, gateway: Cursor moved onto its 0.2.x plugin gets Fast back, in the agent picker (#954) and for a Routing group's member, on the models Cursor has a fast variant of (#1360, loosheng: 插件 0.2.x 后 Cursor 的快速模式不见了,保存 cursor/<model>:fast 报 "has no fast mode magpie can ask for")
yetone2026-10-09 05:32:36 +08:00
ea6f8f89f8
routing: a group under the pointer stays where it is as requests come in (cwfox67 on X: picking a manual group's model meant fighting the page, which shook as it live-updated) — the Routing page keeps the groups in place on the screen only while they're in the upper half of the view or a field in them has the focus, else it keeps the requests list's place; at the page's foot the groups sit low in the view, so the list kept its place, grew with each request, and pushed a manual group's card down from under the pointer about to click it. Now the groups are also the part kept while the pointer is on them, and the pointer coming onto them or leaving them takes where the reader is again (readerLeaves), as their own scroll would. No new strings. Tested with a new internal/gui/tests/routing-pointer-pin.test.cjs in Chromium and WebKit at 420 and 1100 wide: wheeled down to the groups, pointer on the manual group's card, 8 requests streamed in (start, prompt read, done each): the card stays within 1.5 px on the screen. On origin/main it fails in both engines at 1100 (588 → 702 px). All routing-* GUI tests (199) and click-scroll pass in both engines. The wheel over the requests list still scrolls the list first (the browser's own scroll chaining); not changed. Not tried in the real window with a live gateway.
yetone2026-10-09 04:03:36 +08:00
461708907a
docs: the 10-08 review moves real use and GUI-in-both-engines into the code standards, adds gofmt and a Linux/Windows go vet to the checks, and adds lessons on Windows CI, telemetry disclosure, timing tests, guarantee tests, real vendor pages, CI's Go version and large commits without a body
yetone2026-10-09 03:48:15 +08:00
c17cbfa161
routing, gui: the folded context window shows a thin bar of what fills it beside how full it is, one line high whatever a live request puts in it, and a request opened from the Usage page's Context tab shows its card unfolded, it alone (PILIPALA @NXirg2 on X, Jeremy.Zhou on Discord)
yetone2026-10-09 02:05:15 +08:00
03c8d21fde
gui: opening the folded context window on Routing no longer scrolls the page 4px; the folded card keeps the open card's padding, so its title stays where it is and the browser's scroll anchoring has nothing to follow (af798bd1's fold)
yetone2026-10-09 02:05:06 +08:00
e20e1e9eea
provider, gui: Detect asks a Gemini API too, at the URL's …/v1beta, with the key in x-goog-api-key and a gemini model from the list, and the editor shows Detect on a Gemini pick (#1346, NagaseMinato: 「检测」不会探测 Gemini 端点,为什么呢?)
yetone2026-10-09 02:20:30 +08:00
b946e018cf
provider: MiMo's mover asks for opencode-mimo-auth 0.1.9, so a moved account with a Token Plan and no app membership is answered by its Token Plan instead of 403 membership_required on every model (yetone: 2 个模型中有 2 个没有响应)
yetone2026-10-09 01:55:07 +08:00
f76a14dc52
gui: Settings → Observability heads its three groups as every other Settings tab does, a small label over a card of its own, instead of grey bands inside one card (yetone)
yetone2026-10-09 01:50:47 +08:00
b4aa62af96
docs: the READMEs' Privacy and the site's "What does magpie send about me?" (en, zh, ja) say a partner's daily counts are sent too
yetone2026-10-09 01:49:57 +08:00
97f825d560
gui: spinners turn round their own centre: the drawing turns inside the svg, round the viewBox's centre, since WebKit turned a whole svg on a pixel-snapped layer and its ring circled a point ~1.3px off (Agents' "Updating…", Sync, Save, the quota and usage refreshes, the agent fix) (yetone)
yetone2026-10-09 01:46:44 +08:00
05b5965872
providers, gui: a partner listed since the add sheet last showed the partners puts a small dot on the "+ Add provider" button, its name in the title, until the sheet shows it (yetone: 有了新的合作伙伴的时候,这里能否有个小小的精致优雅的提醒吸引用户点击查看)
yetone2026-10-09 01:45:43 +08:00
7d663a2769
providers, stats: count how often each partner is shown, opened, has its key page opened and is added, per day and capped, and send the days that have ended with the daily stats as "magpie partner" events; off with the stats or with what magpie is used with (yetone: 能否统计每个合作伙伴的展示数和点击数)
yetone2026-10-09 01:39:59 +08:00
af798bd1bf
routing, gui: the context window's card folds to its head, with how full it is beside the title ("114K / 272K · 42%"), and stays folded for the next request and after the page comes back, so the request list under it has the room (0xBCD18E on X: 这个"上下文窗口"的板块非常占"上下"高度,还不能折叠,下面只能展示三行)
yetone2026-10-09 01:30:46 +08:00
0d20aaba45
gateway: under In turn routing, new conversations sent at once spread over the accounts instead of all going to the one least held, which held one Antigravity account busy while the others sat idle (#1342, handong66)
yetone2026-10-09 01:29:41 +08:00
b2c97659fb
gateway: a model picked for Responses is asked on Responses again after the relay once answers it there with "use /v1/chat/completions", not sent as chat from then on (01huadalang on Discord: 为什么会转成 chat,我都设置的 response)
yetone2026-10-09 01:18:09 +08:00
cde2a351e2
library, gui: the Skills and MCP tabs' strip has a Discover button that goes to the market under the list, many screens down with dozens of skills (#1348, ttmouse)
yetone2026-10-09 01:18:26 +08:00
b3330ea82d
gateway: a Responses request relayed with a tool call no result answers sends the call a synthetic result, instead of Volcengine coding plan's 400 "An assistant message with 'tool_calls' must be followed by tool messages" (#1341, XcodeFish)
yetone2026-10-09 01:19:25 +08:00
23d9e5def8
gui tests: ledger-hscroll checks the Requests table's sideways scroll in a 600px window, where the table is wider by a margin no machine's fonts take away (#1340, wizzy-yang)
yetone2026-10-09 01:12:06 +08:00
844b9ca3ac
provider, gateway, gui: a custom provider's Base URL can be a Gemini API (generateContent): …/v1beta, its models listed from it, the key sent in x-goog-api-key (#1346, NagaseMinato)
yetone2026-10-09 01:05:03 +08:00
88f2eb8aa5
gui tests: signin-paste-codex, signin-again and signin-closes-sheet give the sign-in window they open an empty page instead of the real vendor's (#1307's siblings)
yetone2026-10-09 01:07:38 +08:00
f9a1ca0355
docs: a Privacy section in the READMEs and a "What does magpie send about me?" FAQ on the site's Get started (en, zh, ja): the daily event's id, version and system, and the agents, providers and models by magpie's own ids (a provider of the user's own only "custom"), what is never sent, and the Settings → Privacy switches; node --test site/*.test.mjs passes
yetone2026-10-09 01:07:16 +08:00
9f0831b239
gui tests: copilot-ghe gives the device-sign-in window it opens an empty page instead of the real github.com and acme.ghe.com (#1307's sibling)
yetone2026-10-09 01:02:20 +08:00
9755201b44
gui tests: login-import gives the sign-in window it opens an empty page instead of ChatGPT's real one, whose Cloudflare challenge hung this page's clicks in Chromium (#1307)
yetone2026-10-09 01:01:16 +08:00
7ddea2c2e0
plugin tests: TestHostRunsAsMagpieBun puts the Bun on PATH at the old name as a hard link, not a fresh copy, so macOS's first-run check of a new program no longer comes out of the host's one-minute start under a full go test run (#1306)
yetone2026-10-09 00:55:49 +08:00
1e405be3fc
gui tests: routing-sessions' suggestion groups answer the names ask with the titles their trace carries, as the gateway does; the Claude Code row has the page ask 300ms after it draws, and the empty answer took the titles away under load (#1307)
yetone2026-10-09 00:37:17 +08:00
8576e3cc33
gui tests: routing-sessions leaves the held live trace for a reload to cancel; letting it go just before the reload had the page ask again while going away, which WebKit turned away "due to access control checks" as a page error (#1307)
yetone2026-10-09 00:37:17 +08:00
023f5aaad2
provider: a background reading of an account writes its quota history too (#1318)
Charan Rathore2026-10-08 22:09:40 +05:30
84c3eb0362
provider: moved Cursor users get plugin 0.2.1: an id 0.1.x listed, at an effort only its other branch has, goes as that branch's nearest effort, not as the default's id with parameters that contradict it (magpie-community/plugins#54, geoqiao)
yetone2026-10-09 00:36:27 +08:00
b91569d311
readme: feedback goes to Discord, and the repository takes no pull requests (only collaborators can open one)
yetone2026-10-09 00:31:48 +08:00
55209c5529
plugin tests: TestHostStreamCreditBoundsTheQueue waits for the given-up call to leave the host, which it does once its abort's write is known, after the child may already have read it (red on ubuntu CI at 2b5f19fc; a 50ms pause before the write is known fails the old check every time)
yetoneandClaude2026-10-09 00:23:14 +08:00
ed31293c0e
usage, gui: a reply its vendor let go in a burst over a couple of hundred milliseconds tells no speed, not 2,237 tok/s (John on Discord)
yetone2026-10-09 00:06:07 +08:00
3d34c2d747
routing: live, the next request is patched into the context window that is there, so its cells don't come in again and the card no longer goes and comes back, moving the request list under it (Zhenzhen on Discord)
yetone2026-10-09 00:08:18 +08:00
ae24bcfcfb
agent, gui: Codex's row on the Agents page shows its desktop app's version beside its CLI's ("CLI 0.130.0", "App 26.930.31730"), and the app's alone where no CLI is on PATH (#1334, laacmilan)
yetone2026-10-09 00:00:42 +08:00