Commit Graph

  • 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) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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 坚果云) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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-yang 2026-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) yetone 2026-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) yetone 2026-10-08 12:53:17 +08:00
  • 5318231938 gui tests: usage-ledger expects the Usage page's Context tab (red since 586f2bce added it) yetone 2026-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 yetone 2026-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) yetone 2026-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) yetone 2026-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) Strelizia 2026-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) yetone 2026-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) yetone 2026-10-08 11:57:15 +08:00
  • be1ce5d4d2 davsync: incomplete S3 listings keep cached usage days (#1243) Alex 2026-10-08 11:52:26 +08:00
  • 2d9db1b60d edit: malformed JSON configs stay untouched when agents connect (#1242) Alex 2026-10-08 11:52:20 +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) yetone 2026-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) yetone 2026-10-08 11:24:44 +08:00
  • ad3b7fe5c2 agents: keep Air provider fields on sync and model picks (#1239) Kenoia 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) forever 2026-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_lu 2026-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) yetone 2026-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) yetone 2026-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) yetoneandSadWood 2026-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 yetone 2026-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) yetone 2026-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 yetone 2026-10-08 09:01:23 +08:00
  • ac142bb1d2 agent, gateway: Claude Code through magpie can keep its claude.ai sign-in (#1218) forever 2026-10-07 17:58:21 -07:00
  • 84d2d75205 provider: Windows 上 Devin 的登录装得上 Devin CLI 了:安装命令从 stdin 进 PowerShell,devin setup 不再卡住登录 (#1225) (#1226) hisilingandSiling 2026-10-07 18:58:15 -06:00
  • 247a9857df gui: Claude Code tier pickers keep one width in narrow windows (#1135) (#1162) Eugene 2026-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) forever 2026-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) forever 2026-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) TryWorld 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) forever 2026-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) forever 2026-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) forever 2026-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) forever 2026-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) 2026-10-07 15:24:44 -07:00
  • 30a8ce2915 davsync tests: TestSlowTransferIsNotCutShort's watchdog is a second, not 300 ms, over ~24 MB each way yetoneandClaude Opus 5.5 2026-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) forever 2026-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) forever 2026-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) forever 2026-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) yetone 2026-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.5 2026-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.5 2026-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) yetone 2026-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 yetone 2026-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 yetone 2026-10-08 05:13:16 +08:00
  • d1bbc5b65b provider: Volcengine plans use their preset models instead of /models (xyenon) (#1216) XYenonandAmp 2026-10-08 05:37:56 +08:00
  • 586f2bce8f context: magpie inspects the context window of every request, session and agent yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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 yetone 2026-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 yetone 2026-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) yetone 2026-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的时候,没有跳过已经安装的) yetone 2026-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) yetone 2026-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) forever 2026-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) yetone 2026-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)) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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 yetone 2026-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) yetone 2026-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 yetone 2026-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 yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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) yetone 2026-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 #948 yetone 2026-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) yetone 2026-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) yetone 2026-10-07 22:08:45 +08:00
  • e95852e301 usage, gui: 用量页补上各 agent 会话文件里的用量,请求页按「经过 / 不经过 magpie」拆开 (#948) wizzy-yangandwizzy-yang 2026-10-07 19:43:01 +08:00
  • cd8d64a9fc feat(gui): add Sub2API balance autofill on account balance hint (#1059) mslxl 2026-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. yetone 2026-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) forever 2026-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) yetone 2026-10-07 18:13:01 +08:00