magicrew-auth 0.3.34 → 0.3.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -75,9 +75,9 @@ curl -s "https://usemagpie.ai/api/latest?channel=stable" | grep -o '"version":"[
75
75
  | 22 | 同一账号有的请求 200、有的 403 `token无效`(`retryable=false`),换个时间又好了 | key 有两条签发路径时 store 与 magpie 各存一把,**静态挑一把必有一半踩空**。0.3.29 起 `keyCandidates()` 把 store 两槽 + `auth.access` 逐把打 chat,命中的写回 store;全被拒才交 402 让 magpie 换号。判据:`GET /v1/models` 对死 key **放行**,逐把探活必须用 `/v1/chat/completions` | CHANGELOG 0.3.29 · `tests/key-failover.mjs` |
76
76
  | 23 | 插件列表里别人有「已自动更新」徽章,magicrew 没有 | magpie 只自动更新包名以 `@magpie-community/` 开头的包(`internal/plugin/updates.go` 的 `Official()` 硬编码前缀);第三方 npm / git 源永远只提示。本插件用 `src/auto-maintenance.mjs` 复刻:读 `plugin-updates.json` 的 `waiting` → 调 `magpie plugin update` → 成功后补 `updated[]`(徽章读它)。判据:`plugin-updates.json` 的 waiting 有 `package:"Magicrew", git:true`;`findMagpieExe()` 能解析到 magpie 可执行文件。⚠ 更新后要重启 magpie 才加载新代码 | CHANGELOG 0.3.30 · `tests/auto-maintenance.mjs` |
77
77
  | 24 | 新装插件后没有任何签到记录,`plugin-checkin.json` 里没有 magicrew | magpie 的 `PluginCheckinOn()`:`pluginCheckins` 没有显式值时默认 **false**(只有 WorkBuddy / Trae / MiniMax / Qoder 有内置开关)。插件只能在加载时把 `settings.json` 的 `pluginCheckins[provider]` 补成 true —— **只在键不存在时补**,用户显式 false 不覆盖。判据:`settings.json` 的 `pluginCheckins` 有 `magicrew` / `magicrew-intl` 键 | CHANGELOG 0.3.30 · `src/auto-maintenance.mjs` |
78
- | 25 | 邀请上级选了某个账号,第二天签到后又变回别的号 | 旧版 `rollInvite` 每天覆盖滚动文件。0.3.33 起在插件页「超级麦吉设置」按站点选码 + 「锁定(签到不再覆盖)」勾选框(写 `inviteLockBySite`,登录侧优先于文件策略);锁定关掉则回落滚动。判据:页面「当前」与登录方法标题同源;`tests/invite-policy.mjs` 锁死 | CHANGELOG 0.3.33 · `page/app.js` |
79
- | 26 | 插件页里设置保存了,登录/标题却不认 | 官方契约工厂是 `(ctx, options)` —— **第二个参数**才是插件 options;`input.magpie.options(provider)` 实测恒为 `{}`。index.mjs 用 `async (input, options) => ...`,页面写 `inviteBySite` / `inviteLockBySite`。改回 `input.magpie.options` 会静默回退 | CHANGELOG 0.3.33 · `index.mjs` |
80
- | 27 | 插件页「超级麦吉设置」空白 / 没有账号可选 | 页面是沙箱:读不到磁盘/账号。账号清单由 `syncInvitePage()` 在 Node 侧生成 `page/codes.js`(config / 签到 / 登录 / 策略变更 / usage 60s 刷新);老用户升级后 20s 由 `backfillInviteCodes()` 用 plugin-auth 的 JWT 补码;仓库里有 `.git` 时故意不生成,发布包才有;`package.json` 的 `files` 必须含 `page` | CHANGELOG 0.3.33 · `src/store.mjs` · `page/` |
78
+ | 25 | 邀请上级选完,第二天签到后又变回别的号 | 0.3.36 起登录页「邀请上级」一个数字文本框:0=我的(作者 MYCF711)、1..N=已登录账号(按账号名排序)、-1=自动;留空/不存在数字回退 0。选中即写 `magicrew-invite-policy-<site>.json`(fixed),`inviteToUse` 优先它;死号自动回落滚动→作者码。判据:`tests/invite-policy.mjs` | CHANGELOG 0.3.36 · `src/hooks/methods.mjs` |
79
+ | 26 | 邀请上级的数字文本框有没有「右边实时显示账号」 | magpie 的 `prompts` 只有 `text` / `select`,没有复合控件;对照表只能写进 prompt 的 `message`(每次用 `ask()` 按最新账号清单生成),保存后回一条「新号挂在 X(码)」说明。要真正的右侧实时刷新得等上游加控件 | CHANGELOG 0.3.36 · `src/hooks/methods.mjs` |
80
+ | 27 | 数字方法的账号列表是空的 / 顺序不对 | 列表来自 `magicrew-invite-codes-<site>.json`(签到/登录时 `rollInvite` 记录)+ 作者码;老用户升级后 config 20s 由 `backfillInviteCodes()` 用 plugin-auth 的 JWT 补;账号按 accountId 排序,所以 1..N 稳定。页面/`page/codes.js` 已在 0.3.36 删除 | CHANGELOG 0.3.36 · `src/store.mjs` |
81
81
 
82
82
  **坑 14 的两个附带判据**(都实测过):
83
83
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # 更新记录
2
2
 
3
+ ## 0.3.36 — 2026-10-29
4
+
5
+ **设置回到登录页:一个数字文本框(0=作者,1..N=账号,-1=自动)**
6
+
7
+ 按反馈把 0.3.33 的插件页面删掉 —— 不需要单独一个界面,登录页多一个按钮就够:
8
+
9
+ - 登录方式列表新增 **`超级麦吉 邀请上级`**:一个 `text` 输入框,填数字
10
+ - **0 / 留空** = 我的(作者 MYCF711)的作者码
11
+ - **1..N** = 已登录账号(按 accountId 排序,稳定),保存账号 + 它的邀请码
12
+ - **-1** = 自动(跟随最后一个登录 / 签到的号)
13
+ - 不存在的数字 / 非数字 → 回退 0
14
+ - 对照表(`0 = 我的…;1 = 138****0000(IV…)`)由 `ask()` 每次打开时按最新账号
15
+ 清单生成,写进 prompt 的 message
16
+ - 保存只落盘策略,不登录、不新增账号(`authorize` 返回 `{type:"failed"}`)
17
+
18
+ 删掉的:`page/`(index/app)、`package.json` 的 `magpie.page` 与 `files` 里的
19
+ `page`、`syncInvitePage()` / `readAccountLabels()` / `pruneDeadAccounts()` 和
20
+ `usage` 的页面心跳。保留 `backfillInviteCodes()`(config 后 20s 给老账号补码)。
21
+
22
+ **限制**:magpie 的 prompts 只有 `text` / `select`,没有「输入框右边实时显示对应
23
+ 账号」的复合控件;所以对照表在提示里,输入后点下一步回一条「新号挂在 X(码)」。
24
+ 要真正的右侧实时刷新得等上游加控件。
25
+
26
+ 验证:`tests/invite-policy.mjs` 20 条(数字方法 0/1/-1/留空/越界、死号回退、
27
+ backfill);其余测试不变。
28
+
29
+ ## 0.3.35 — 2026-10-29
30
+
31
+ **设置页:锁定关闭时明确说明「选择只保存、不生效」**
32
+
33
+ 0.3.34 的页面在「锁定」关掉时仍提示「下一个新号就按这个走」,与实际行为不符
34
+ (登录侧会回到滚动 / 作者码)。现在:
35
+
36
+ - 锁定关掉时,勾选框下面直接写明「下面选的码只保存,不生效」
37
+ - 此时点账号 / 保存自定义码,状态栏提示「已保存选择;但锁定已关闭,当前仍跟随
38
+ 最后一个登录/签到的号」
39
+
40
+ 只改页面文案,行为不变。
41
+
3
42
  ## 0.3.34 — 2026-10-29
4
43
 
5
44
  **页面账号列表为空:升级后补一次邀请码(0.3.33 补丁)**