@maincode-ai/matilda-code 0.21.12 → 0.21.13-nightly.20261026.e0eae1d8c

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.
Files changed (194) hide show
  1. package/bundled/mainy/SKILL.md +0 -2
  2. package/bundled/mainy/docs/_meta.ts +0 -2
  3. package/bundled/mainy/docs/configuration/auth.md +5 -10
  4. package/bundled/mainy/docs/configuration/model-providers.md +31 -217
  5. package/bundled/mainy/docs/configuration/settings.md +32 -4
  6. package/bundled/mainy/docs/features/auto-mode.md +1 -1
  7. package/bundled/mainy/docs/features/channels/_meta.ts +0 -3
  8. package/bundled/mainy/docs/features/channels/overview.md +8 -16
  9. package/bundled/mainy/docs/features/commands.md +4 -4
  10. package/bundled/mainy/docs/features/hooks.md +9 -7
  11. package/bundled/mainy/docs/features/language.md +2 -29
  12. package/bundled/mainy/docs/features/sub-agents.md +1 -1
  13. package/bundled/mainy/docs/features/worktree.md +3 -5
  14. package/bundled/mainy/docs/integration-github-action.md +3 -3
  15. package/bundled/mainy/docs/matilda-serve.md +1 -1
  16. package/bundled/mainy/docs/quickstart.md +2 -2
  17. package/bundled/mainy/docs/support/troubleshooting.md +3 -10
  18. package/chunks/agent-4FTU3WN6.js +3 -0
  19. package/chunks/agent-headless-QJUVHPFC.js +3 -0
  20. package/chunks/{askUserQuestion-2QI4NSFJ.js → askUserQuestion-QKX4NEFX.js} +1 -1
  21. package/chunks/{ca-I2HEEIL7.js → ca-C2V7I65K.js} +6 -6
  22. package/chunks/{chunk-6E766NPX.js → chunk-2ONZZ46N.js} +2 -2
  23. package/chunks/chunk-36K4HBVM.js +7 -0
  24. package/chunks/{chunk-EQGA7LH7.js → chunk-3B2HABK7.js} +1 -1
  25. package/chunks/{chunk-MCQUPLRE.js → chunk-5NMK4Y7C.js} +1 -1
  26. package/chunks/chunk-5YT4GCK7.js +14 -0
  27. package/chunks/{chunk-27Q5KW3A.js → chunk-62AFAL4I.js} +10 -10
  28. package/chunks/chunk-75KP2FVD.js +81 -0
  29. package/chunks/chunk-7ZODGQO6.js +4 -0
  30. package/chunks/chunk-BZB7HYRC.js +37 -0
  31. package/chunks/{chunk-YRQP3SLC.js → chunk-EXNHJQCD.js} +1 -1
  32. package/chunks/chunk-FCGYRGV4.js +9 -0
  33. package/chunks/chunk-G4YMVWG4.js +8 -0
  34. package/chunks/{chunk-6T2GIM76.js → chunk-HDARIAVM.js} +1 -1
  35. package/chunks/{chunk-YJAKOETP.js → chunk-HM5LCKDB.js} +2 -2
  36. package/chunks/chunk-IIQ5YERM.js +120 -0
  37. package/chunks/{chunk-CSJTA7NE.js → chunk-JGJ7BVZN.js} +18 -18
  38. package/chunks/{chunk-GTVCJCHR.js → chunk-JIKQI4MZ.js} +1 -1
  39. package/chunks/{chunk-WV3IUPZS.js → chunk-LHDCAN7Z.js} +1 -1
  40. package/chunks/chunk-LZDHANXA.js +89 -0
  41. package/chunks/{chunk-PGXQZVLX.js → chunk-NOE4UNQN.js} +1 -1
  42. package/chunks/chunk-OEZS5R3S.js +207 -0
  43. package/chunks/{chunk-OOEH6ZSV.js → chunk-PTMCLADZ.js} +1 -1
  44. package/chunks/{chunk-2HTPVSGT.js → chunk-PYZNGIIR.js} +1 -1
  45. package/chunks/chunk-QJJTUDDA.js +56 -0
  46. package/chunks/{chunk-LUNDTQ3G.js → chunk-R34HYLL4.js} +1 -1
  47. package/chunks/{chunk-QVCGLQCI.js → chunk-RK4LPGBV.js} +3 -3
  48. package/chunks/{chunk-DE3HKC2W.js → chunk-RYHMPK5G.js} +1 -1
  49. package/chunks/chunk-SR7ARGUY.js +13 -0
  50. package/chunks/{chunk-JRECUFB3.js → chunk-SY6JRCN3.js} +636 -654
  51. package/chunks/chunk-TUKNB5CQ.js +33 -0
  52. package/chunks/{chunk-VTGICC67.js → chunk-TZ4FRU6B.js} +1 -1
  53. package/chunks/chunk-U7V7APDV.js +9 -0
  54. package/chunks/{chunk-CZGZ3KK7.js → chunk-UVWZ44ZW.js} +1 -1
  55. package/chunks/{chunk-HYVP4472.js → chunk-V6UPUMP3.js} +1 -1
  56. package/chunks/{chunk-DOOFGSRV.js → chunk-VLDZBRTL.js} +1 -1
  57. package/chunks/{computer-use-WKDNUTLD.js → computer-use-OXAMR75N.js} +1 -1
  58. package/chunks/contextCommand-ERLW5VWL.js +3 -0
  59. package/chunks/{cron-create-F2LXM2OA.js → cron-create-AUDQ6STP.js} +1 -1
  60. package/chunks/{cron-delete-DE6Q2S2L.js → cron-delete-P5HE3PDD.js} +1 -1
  61. package/chunks/{cron-list-IAQEJVV7.js → cron-list-NR5FZBK2.js} +1 -1
  62. package/chunks/{de-AQXFJYZI.js → de-KOUI2CEW.js} +5 -5
  63. package/chunks/{devtools-5JRKK3E7.js → devtools-G5DWLP2N.js} +1 -1
  64. package/chunks/dist-XXTQNTKQ.js +42 -0
  65. package/chunks/dist-ZFZZLIQU.js +3 -0
  66. package/chunks/{edit-QQNJZ55P.js → edit-REFR5ROS.js} +1 -1
  67. package/chunks/{en-EJLDYIBM.js → en-RMYRLXC2.js} +4 -4
  68. package/chunks/{enter-worktree-5X5SAMBJ.js → enter-worktree-WO3DT2G7.js} +1 -1
  69. package/chunks/{enterPlanMode-HP35SPLN.js → enterPlanMode-PLRHEU5A.js} +1 -1
  70. package/chunks/{exit-worktree-SRKZBEYF.js → exit-worktree-J5PW6DCV.js} +1 -1
  71. package/chunks/{exitPlanMode-WSPTGGVN.js → exitPlanMode-KXUPNLCJ.js} +2 -2
  72. package/chunks/{fr-6TDHK7F2.js → fr-R3QF3LA2.js} +5 -5
  73. package/chunks/glob-ZVTVRDQO.js +22 -0
  74. package/chunks/{goal-tools-C6BSBHCF.js → goal-tools-XVKQJL5I.js} +1 -1
  75. package/chunks/{grep-MVCOBUYW.js → grep-R7CWUNNE.js} +1 -1
  76. package/chunks/{ja-GGNJR7AR.js → ja-A5OQLXUZ.js} +5 -5
  77. package/chunks/{keychain-token-storage-KQK6MNOJ.js → keychain-token-storage-IM4UB4P4.js} +1 -1
  78. package/chunks/{ls-JYJXFSXN.js → ls-DEAFYDVV.js} +1 -1
  79. package/chunks/{lsp-DYDK6XCS.js → lsp-DL7W47VY.js} +1 -1
  80. package/chunks/matildaAgentContentGenerator-57EIU5XE.js +8 -0
  81. package/chunks/mcp-client-X7LEGSP3.js +3 -0
  82. package/chunks/monitor-KPWTMH3V.js +32 -0
  83. package/chunks/{multipart-parser-JI75T2O5.js → multipart-parser-FKHYAVGR.js} +1 -1
  84. package/chunks/notebook-edit-3ZH5M2TC.js +17 -0
  85. package/chunks/openaiContentGenerator-6PXSD3T7.js +37 -0
  86. package/chunks/{pt-D6L2QTDM.js → pt-RG3S3KA7.js} +5 -5
  87. package/chunks/read-file-JNS7WRUP.js +3 -0
  88. package/chunks/ripGrep-ICJDGIIV.js +3 -0
  89. package/chunks/{ru-BNJCHDYO.js → ru-5S5HLRT7.js} +5 -5
  90. package/chunks/scheduler-QC2PPMFP.js +8 -0
  91. package/chunks/{send-message-P3SMWNEE.js → send-message-V2WYLN5X.js} +1 -1
  92. package/chunks/{serve-FXH6EBQ6.js → serve-NUVQULZJ.js} +59 -48
  93. package/chunks/shell-5LNI7URE.js +3 -0
  94. package/chunks/{skill-HZPFEAPF.js → skill-QFATRHQW.js} +1 -1
  95. package/chunks/src-6UPZ7TVB.js +3 -0
  96. package/chunks/src-LZEU4AYF.js +5 -0
  97. package/chunks/{symbol-search-EAIZPWN7.js → symbol-search-WL6ZHUUN.js} +1 -1
  98. package/chunks/{syntheticOutput-432LXITX.js → syntheticOutput-3KW6SQAF.js} +1 -1
  99. package/chunks/task-create-PNW5SN27.js +3 -0
  100. package/chunks/{task-detach-XMSJ3HBM.js → task-detach-B7PDPFBA.js} +1 -1
  101. package/chunks/task-list-GGZATGK5.js +9 -0
  102. package/chunks/{task-stop-NTS62FLG.js → task-stop-UKBBE2KG.js} +1 -1
  103. package/chunks/{task-update-AR26UFYZ.js → task-update-4RHVUBUV.js} +1 -1
  104. package/chunks/{team-create-PYXFVIR5.js → team-create-2TJC3X57.js} +1 -1
  105. package/chunks/team-delete-4UJ7SU65.js +8 -0
  106. package/chunks/todoWrite-NEBVKOSG.js +3 -0
  107. package/chunks/{tool-search-RKZDSRYS.js → tool-search-R5GS64YR.js} +1 -1
  108. package/chunks/{web-fetch-VW3SVDQ6.js → web-fetch-H3XJMAEF.js} +17 -17
  109. package/chunks/{web-search-XQUIZARL.js → web-search-Q6RWPEIB.js} +1 -1
  110. package/chunks/{workflow-YXNXDRWZ.js → workflow-3A7KN3E3.js} +2 -2
  111. package/chunks/write-file-O7Q6SKZC.js +15 -0
  112. package/cli.js +502 -498
  113. package/locales/ca.js +1 -28
  114. package/locales/de.js +1 -28
  115. package/locales/en.js +1 -30
  116. package/locales/fr.js +1 -30
  117. package/locales/ja.js +1 -28
  118. package/locales/pt.js +1 -28
  119. package/locales/ru.js +1 -28
  120. package/package.json +2 -2
  121. package/sandbox-macos-permissive-closed.sb +0 -1
  122. package/sandbox-macos-permissive-open.sb +0 -1
  123. package/sandbox-macos-permissive-proxied.sb +0 -1
  124. package/sandbox-macos-restrictive-closed.sb +0 -1
  125. package/sandbox-macos-restrictive-open.sb +0 -1
  126. package/sandbox-macos-restrictive-proxied.sb +0 -1
  127. package/bundled/mainy/docs/features/channels/dingtalk.md +0 -134
  128. package/bundled/mainy/docs/features/channels/feishu.md +0 -186
  129. package/bundled/mainy/docs/features/channels/weixin.md +0 -106
  130. package/bundled/mainy/docs/integration-jetbrains.md +0 -81
  131. package/bundled/mainy/docs/integration-zed.md +0 -72
  132. package/chunks/agent-WM63A6NK.js +0 -3
  133. package/chunks/agent-headless-QIUBDKPW.js +0 -3
  134. package/chunks/anthropicContentGenerator-VKFTAIU3.js +0 -39
  135. package/chunks/chunk-2MOGYHWM.js +0 -8
  136. package/chunks/chunk-3IRGBRSP.js +0 -113
  137. package/chunks/chunk-3YLXGE6T.js +0 -8
  138. package/chunks/chunk-4F4DA5UI.js +0 -8
  139. package/chunks/chunk-4J6DC24J.js +0 -59
  140. package/chunks/chunk-4Q2SNBUH.js +0 -18
  141. package/chunks/chunk-5C2RJ5RR.js +0 -37
  142. package/chunks/chunk-6EQMZNIY.js +0 -8
  143. package/chunks/chunk-6GBNB5Z2.js +0 -3
  144. package/chunks/chunk-6Z2MV7ZY.js +0 -186
  145. package/chunks/chunk-BVOCFLC4.js +0 -56
  146. package/chunks/chunk-FPO57O66.js +0 -39
  147. package/chunks/chunk-G7R2XEEF.js +0 -7
  148. package/chunks/chunk-GOJCMVJJ.js +0 -8
  149. package/chunks/chunk-JCE3JAVC.js +0 -25
  150. package/chunks/chunk-KHHJYBR5.js +0 -9
  151. package/chunks/chunk-LJR4RZZ2.js +0 -3
  152. package/chunks/chunk-MO2HXJG5.js +0 -9
  153. package/chunks/chunk-O44XK65C.js +0 -8
  154. package/chunks/chunk-OA56BXPD.js +0 -3
  155. package/chunks/chunk-PA6532AY.js +0 -6
  156. package/chunks/chunk-QN6Y6NPA.js +0 -3
  157. package/chunks/chunk-S3CWEVTS.js +0 -15
  158. package/chunks/chunk-SDTWBD62.js +0 -8
  159. package/chunks/chunk-U347OO7S.js +0 -9
  160. package/chunks/chunk-UIRBHC5X.js +0 -3
  161. package/chunks/chunk-VI74YQQO.js +0 -8
  162. package/chunks/chunk-VYZOOSMP.js +0 -30
  163. package/chunks/chunk-WC2VTVCE.js +0 -27
  164. package/chunks/chunk-WVY2P6WH.js +0 -26
  165. package/chunks/chunk-WZ75OGYY.js +0 -14
  166. package/chunks/chunk-XMZIY7XX.js +0 -13
  167. package/chunks/chunk-YV3PUOBU.js +0 -65
  168. package/chunks/contextCommand-DAB3HOHY.js +0 -3
  169. package/chunks/dist-7UYRLSLE.js +0 -3
  170. package/chunks/dist-ME6647DQ.js +0 -195
  171. package/chunks/dist-P6SLWL5V.js +0 -42
  172. package/chunks/dist-VG3ZDJ2A.js +0 -28
  173. package/chunks/dist-YTCHM57U.js +0 -23
  174. package/chunks/fileFromPath-7UCWPD4W.js +0 -3
  175. package/chunks/geminiContentGenerator-RJ73DQAP.js +0 -8
  176. package/chunks/glob-QQ6LGKDX.js +0 -22
  177. package/chunks/matildaAgentContentGenerator-YUYS4336.js +0 -8
  178. package/chunks/matildaContentGenerator-O4Z2QPCP.js +0 -8
  179. package/chunks/matildaOAuth2-7COTQQR2.js +0 -3
  180. package/chunks/mcp-client-RXVQU5VI.js +0 -3
  181. package/chunks/monitor-77KXDXPR.js +0 -32
  182. package/chunks/notebook-edit-TKJD2EQZ.js +0 -17
  183. package/chunks/openaiContentGenerator-2EALAM3U.js +0 -3
  184. package/chunks/read-file-3KUAH6ND.js +0 -3
  185. package/chunks/ripGrep-U2PLKXMY.js +0 -3
  186. package/chunks/scheduler-J7VU2V5Y.js +0 -8
  187. package/chunks/shell-PXR2AXDD.js +0 -3
  188. package/chunks/src-RFAEPLY7.js +0 -3
  189. package/chunks/src-WZTRMETQ.js +0 -5
  190. package/chunks/task-create-Z3QRCMX4.js +0 -3
  191. package/chunks/task-list-GXAJW3JP.js +0 -9
  192. package/chunks/team-delete-OMYVUAQU.js +0 -8
  193. package/chunks/todoWrite-5NZ7CHTC.js +0 -3
  194. package/chunks/write-file-XDDLTGSG.js +0 -15
@@ -51,12 +51,14 @@ Command hooks execute commands via child processes. Input JSON is passed through
51
51
  | `command` | `string` | Yes | Command to execute |
52
52
  | `name` | `string` | No | Hook name (for logging) |
53
53
  | `description` | `string` | No | Hook description |
54
- | `timeout` | `number` | No | Timeout in milliseconds, default 60000 |
54
+ | `timeout` | `number` | No | Timeout in seconds, default 60 |
55
55
  | `async` | `boolean` | No | Whether to run asynchronously in background |
56
56
  | `env` | `Record<string, string>` | No | Environment variables |
57
57
  | `shell` | `"bash" \| "powershell"` | No | Shell to use |
58
58
  | `statusMessage` | `string` | No | Status message displayed during execution |
59
59
 
60
+ `timeout` is in seconds for command, HTTP and prompt hooks, as in Claude Code; SDK-registered function hooks keep milliseconds. Earlier versions read command hook timeouts as milliseconds, so rewrite any such value in seconds, for example `10000` as `10`; otherwise it is read as 10000 seconds. A command hook `timeout` that is not a positive number, such as `"30s"`, is ignored and the 60 second default applies, and one longer than about 24.8 days, the longest a timer supports, is capped there.
61
+
60
62
  **Example:**
61
63
 
62
64
  ```json
@@ -70,7 +72,7 @@ Command hooks execute commands via child processes. Input JSON is passed through
70
72
  "type": "command",
71
73
  "command": "$MATILDA_PROJECT_DIR/.matilda/hooks/security-check.sh",
72
74
  "name": "security-check",
73
- "timeout": 10000
75
+ "timeout": 10
74
76
  }
75
77
  ]
76
78
  }
@@ -942,7 +944,7 @@ exit 0
942
944
  "type": "command",
943
945
  "command": "$HOME/.matilda/hooks/todo-validator.sh",
944
946
  "name": "todo-validator",
945
- "timeout": 5000
947
+ "timeout": 5
946
948
  }
947
949
  ]
948
950
  }
@@ -1036,7 +1038,7 @@ exit 0
1036
1038
  "type": "command",
1037
1039
  "command": "$HOME/.matilda/hooks/todo-completion-validator.sh",
1038
1040
  "name": "completion-validator",
1039
- "timeout": 5000
1041
+ "timeout": 5
1040
1042
  }
1041
1043
  ]
1042
1044
  }
@@ -1069,7 +1071,7 @@ Hooks are configured in Matilda Code settings, typically in `.matilda/settings.j
1069
1071
  "command": "/path/to/security-check.sh",
1070
1072
  "name": "security-check",
1071
1073
  "description": "Run security checks before tool execution",
1072
- "timeout": 30000
1074
+ "timeout": 30
1073
1075
  }
1074
1076
  ]
1075
1077
  }
@@ -1120,7 +1122,7 @@ Only `command` type supports asynchronous execution. Setting `"async": true` run
1120
1122
  "type": "command",
1121
1123
  "command": "$MATILDA_PROJECT_DIR/.matilda/hooks/run-tests-async.sh",
1122
1124
  "async": true,
1123
- "timeout": 300000
1125
+ "timeout": 300
1124
1126
  }
1125
1127
  ]
1126
1128
  }
@@ -1206,7 +1208,7 @@ Configure in `.matilda/settings.json`:
1206
1208
  "command": "${SECURITY_CHECK_SCRIPT}",
1207
1209
  "name": "security-checker",
1208
1210
  "description": "Security validation for bash commands",
1209
- "timeout": 10000
1211
+ "timeout": 10
1210
1212
  }
1211
1213
  ]
1212
1214
  }
@@ -21,7 +21,6 @@ This is the CLI’s UI localization layer (i18n/l10n): it controls the language
21
21
  Use the `/language ui` command:
22
22
 
23
23
  ```bash
24
- /language ui zh-CN # Chinese
25
24
  /language ui en-US # English
26
25
  /language ui ru-RU # Russian
27
26
  /language ui de-DE # German
@@ -34,7 +33,6 @@ Use the `/language ui` command:
34
33
  Aliases are also supported:
35
34
 
36
35
  ```bash
37
- /language ui zh # Chinese
38
36
  /language ui en # English
39
37
  /language ui ru # Russian
40
38
  /language ui de # German
@@ -67,7 +65,6 @@ The LLM output language is controlled by a rule file at `~/.matilda/output-langu
67
65
 
68
66
  On first startup, if no `output-language.md` file exists, Matilda Code automatically creates one based on your system locale. For example:
69
67
 
70
- - System locale `zh` creates a rule for Chinese responses
71
68
  - System locale `en` creates a rule for English responses
72
69
  - System locale `ru` creates a rule for Russian responses
73
70
  - System locale `de` creates a rule for German responses
@@ -81,13 +78,12 @@ On first startup, if no `output-language.md` file exists, Matilda Code automatic
81
78
  Use `/language output <language>` to change:
82
79
 
83
80
  ```bash
84
- /language output Chinese
85
81
  /language output English
86
82
  /language output Japanese
87
83
  /language output German
88
84
  ```
89
85
 
90
- Any language name works. The LLM will be instructed to respond in that language.
86
+ The LLM will be instructed to respond in that language.
91
87
 
92
88
  > [!note]
93
89
  >
@@ -110,7 +106,7 @@ Any language name works. The LLM will be instructed to respond in that language.
110
106
  ### Via Environment Variable
111
107
 
112
108
  ```bash
113
- export MATILDA_CODE_LANG=zh
109
+ export MATILDA_CODE_LANG=de
114
110
  ```
115
111
 
116
112
  This influences auto-detection on first startup (if you haven’t set a UI language and no `output-language.md` file exists yet).
@@ -129,29 +125,6 @@ User directory takes precedence over built-in translations.
129
125
  > Contributions are welcome! If you’d like to improve built-in translations or add new languages.
130
126
  > For a concrete example, see [PR #1238: feat(i18n): add Russian language support](https://github.com/MaincodeHQ/matilda-code/pull/1238).
131
127
 
132
- ### Maintaining `zh-TW` (Traditional Chinese for Taiwan)
133
-
134
- `zh-TW` is **not** an automatic OpenCC s2t conversion of `zh.js` — it is a hand-maintained Taiwan-vocabulary translation. When adding or updating keys, please follow the conventions below.
135
-
136
- The "CI enforced?" column indicates whether `npm run check-i18n` will fail the build on a violation. Rows marked **No** are style guidance enforced by review only — typically because the offending form has a legitimate non-UI meaning (`文件` can mean "document", `打開` is colloquially fine in Taiwan).
137
-
138
- | Avoid | Use instead | CI enforced? | Reason |
139
- | --------------------- | --------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
140
- | 文件 (file) | 檔案 | No | Taiwan term for filesystem files (but `文件` can legitimately mean "document") |
141
- | 服務器 / 服务器 | 伺服器 | Yes | Taiwan term for "server" |
142
- | 菜單 / 菜单 | 選單 | Yes | Taiwan term for "menu" |
143
- | 鏈接 / 链接 | 連結 | Yes | Taiwan term for "link" (bare `鏈` is fine — e.g. 區塊鏈) |
144
- | 打開 | 開啟 | No | Taiwan-preferred verb for "open" (UI); `打開` is colloquially common |
145
- | 爲 / 啓 / 曆史 / 鏈接 | 為 / 啟 / 歷史 / 連結 | Yes | Variant Traditional forms from raw OpenCC s2t. Note: `曆` is context-dependent and correct in calendar terms (日曆, 農曆, 西曆); CI only flags the bigram `曆史`, not bare `曆`. |
146
-
147
- If you are not a Traditional Chinese speaker and need to bootstrap a value, **do not paste raw OpenCC `s2t` output**: the default s2t profile emits variant Traditional characters (e.g. 爲, 啓) that Taiwan does not use, and never rewrites Mainland-Chinese vocabulary (服務器, 菜單). Prefer `s2twp.json` (Simplified → Taiwan with phrase mapping) as a starting point and then ask a Taiwan-Chinese speaker to review.
148
-
149
- The `check-i18n` script (run in CI via `npm run check-i18n`) will fail the build if any of the CI-enforced substrings above end up in a `zh-TW` value. See `scripts/check-i18n.ts → ZH_TW_FORBIDDEN_PATTERNS` for the full list. If a translation legitimately needs to contain a CI-forbidden substring, add its key to `ZH_TW_ALLOWED_EXCEPTIONS` in the same file with a brief justification.
150
-
151
- > [!note]
152
- >
153
- > The check uses plain substring matching, which does not understand Chinese word boundaries. A bigram pattern can therefore false-positive across compound-word boundaries — for example, `區塊鏈接口` (= `區塊鏈` + `接口`) contains the substring `鏈接` even though neither word is incorrect. If you hit a surprising CI failure of this kind, add the translation key to `ZH_TW_ALLOWED_EXCEPTIONS` rather than removing the pattern.
154
-
155
128
  ### Language Pack Format
156
129
 
157
130
  ```javascript
@@ -189,7 +189,7 @@ tools:
189
189
 
190
190
  The `fast` selector uses the same `fastModel` setting configured in
191
191
  `settings.json` or with `/model --fast`. That setting may itself refer to a
192
- model under another configured auth type, such as `openai:deepseek-v4-flash`.
192
+ model under another configured auth type, such as `openai:gpt-4o-mini`.
193
193
  When the selector resolves to another auth type, Matilda Code creates a dedicated
194
194
  runtime provider for that subagent request and sends the provider only the bare
195
195
  model ID.
@@ -36,7 +36,7 @@ matilda --resume <session-id> --worktree=my-feature
36
36
 
37
37
  `process.cwd()` and the model's workspace are switched to the worktree before the first turn runs. Exit with `Ctrl+C` twice and the [Exit Dialog](#exit-dialog-ctrlc--ctrld) prompts to keep or remove the worktree.
38
38
 
39
- The `--worktree` flag cannot be combined with `--acp`/`--experimental-acp` — for ACP hosts (like Zed), pass the worktree path as the `cwd` of the `loadSession`/`newSession` request instead.
39
+ The `--worktree` flag cannot be combined with `--acp`/`--experimental-acp`. For ACP hosts (like the VS Code companion), pass the worktree path as the `cwd` of the `loadSession`/`newSession` request instead.
40
40
 
41
41
  ### Or ask mid-session
42
42
 
@@ -148,7 +148,7 @@ The active worktree binding is persisted to a sidecar file alongside your sessio
148
148
  <chatsDir>/<sessionId>.worktree.json
149
149
  ```
150
150
 
151
- When you launch the CLI with `--resume <sessionId>` (or pick the session from `/resume`), three things happen consistently across **interactive TUI**, **headless `-p`**, and **ACP/Zed** modes:
151
+ When you launch the CLI with `--resume <sessionId>` (or pick the session from `/resume`), three things happen consistently across **interactive TUI**, **headless `-p`**, and **ACP** modes:
152
152
 
153
153
  1. The sidecar is loaded and the worktree directory is verified to still exist on disk.
154
154
  2. If alive, the model receives a one-shot reminder on its very next prompt:
@@ -163,7 +163,7 @@ Each mode chooses its own injection mechanism, but the user-visible behavior is
163
163
  | ----------------- | ------------------------------------------------------------------------------------------------------ |
164
164
  | Interactive (TUI) | `INFO` history item + system-reminder prefix on the next user prompt. |
165
165
  | Headless (`-p`) | `<system-reminder>` prefix on the prompt + `worktree_restored` JSON system event in the output stream. |
166
- | ACP (e.g. Zed) | Pending notice attached to the next `prompt()` call. |
166
+ | ACP | Pending notice attached to the next `prompt()` call. |
167
167
 
168
168
  The model is **not** automatically `chdir`'d into the worktree — the reminder is what keeps it routing edits through the worktree path.
169
169
 
@@ -328,8 +328,6 @@ The following items are intentionally not implemented in the current phase:
328
328
  - **Mid-session `enter_worktree` does NOT switch `process.cwd()` or `Config.targetDir`.** That tool uses the model-context-only convention (see [Sub-Agents](./sub-agents.md)). Only the startup `--worktree` flag actually switches the process working directory.
329
329
  - **Relative paths in other arg fields are resolved BEFORE the worktree chdir.** Path-taking flags (`--mcp-config`, `--openai-logging-dir`, `--json-file`, `--input-file`, `--telemetry-outfile`, `--include-directories`) are normalized to absolute paths against the launch cwd when `--worktree` is set. Other path-shaped argv fields not in this list still resolve against the worktree cwd — use absolute paths to be safe.
330
330
 
331
- Track the roadmap in `docs/design/worktree.md`.
332
-
333
331
  ## Troubleshooting
334
332
 
335
333
  **The Footer shows no worktree indicator even though I just created one.**
@@ -21,7 +21,7 @@ Get started with Matilda Code CLI in your repository in just a few minutes:
21
21
 
22
22
  ### 1. Get a Matilda API Key
23
23
 
24
- Obtain your API key from [Matilda-compatible](https://help.matilda.com/zh/model-studio/matilda-code) (Matilda's AI platform)
24
+ Get a Matilda API token from the [Matilda external API guide][Matilda external API].
25
25
 
26
26
  ### 2. Add it as a GitHub Secret
27
27
 
@@ -175,7 +175,7 @@ You can set the following secrets in your repository:
175
175
 
176
176
  | Name | Description | Required | When Required |
177
177
  | ----------------- | --------------------------------------------- | -------- | --------------------------------------------- |
178
- | `MATILDA_API_KEY` | Your Matilda API key from Matilda-compatible. | Yes | Required for all workflows that call Matilda. |
178
+ | `MATILDA_API_KEY` | Your Matilda API token. | Yes | Required for all workflows that call Matilda. |
179
179
  | `APP_PRIVATE_KEY` | Private key for your GitHub App (PEM format). | No | Using a custom GitHub App. |
180
180
 
181
181
  To add a secret:
@@ -234,7 +234,7 @@ Contributions are welcome! Check out the Matilda Code CLI **Contributing Guide**
234
234
 
235
235
  [secrets]: https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions
236
236
  [Matilda Code]: https://github.com/MaincodeHQ/matilda-code
237
- [Matilda-compatible]: https://matilda.maincode.help/welcome/external-api
237
+ [Matilda external API]: https://matilda.maincode.help/welcome/external-api
238
238
  [Matilda Code CLI]: https://github.com/MaincodeHQ/matilda-code-action/
239
239
  [variables]: https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-variables#creating-configuration-variables-for-a-repository
240
240
  [GitHub CLI]: https://docs.github.com/en/github-cli/github-cli
@@ -497,7 +497,7 @@ const result = await flow.awaitCompletion({ signal: abortCtrl.signal });
497
497
 
498
498
  **`--require-auth` and dev convenience.** The device-flow routes use the strict mutation gate (PR 15), which means a token-less loopback default returns `401 token_required`. Locally, the simplest way around this during development is `matilda serve --token=dev-token`; you don't need `--require-auth` unless you're hardening the loopback default.
499
499
 
500
- **Cross-daemon limitation.** `oauth_creds.json` is daemon-shared (`~/.matilda/oauth_creds.json`), so a successful login in daemon A is automatically picked up by daemon B's next token refresh — but daemon B's SDK clients won't receive the `auth_device_flow_authorized` event (events are per-daemon).
500
+ **Cross-daemon limitation.** The account is stored in `~/.matilda/matilda-auth.json`, which every daemon on the machine shares, so a sign-in through daemon A is picked up by daemon B's sessions. Daemon B's SDK clients won't receive the `auth_device_flow_authorized` event, though: events are per-daemon.
501
501
 
502
502
  **Cross-client take-over.** Two SDK clients on the same daemon that both `POST /workspace/auth/device-flow` for the same provider get the per-provider singleton: the first call starts a fresh IdP request and returns `attached: false`; the second call returns the EXISTING in-flight entry with `attached: true`. The take-over is recorded on the audit trail (under the second client's `X-Matilda-Client-Id`) but does NOT emit a separate event — both clients eventually observe the SAME `auth_device_flow_authorized` once the user finishes the IdP page. If your UI distinguishes "I started this" from "someone else's flow I joined", branch on the `attached` field returned by `start()`.
503
503
 
@@ -185,8 +185,8 @@ Here are the most important commands for daily use:
185
185
  | `/clear` | Clear terminal screen content | `/clear` (shortcut: `Ctrl+L`) |
186
186
  | `/theme` | Change Matilda Code visual theme | `/theme` |
187
187
  | `/language` | View or change language settings | `/language` |
188
- | → `ui [language]` | Set UI interface language | `/language ui zh-CN` |
189
- | → `output [language]` | Set LLM output language | `/language output Chinese` |
188
+ | → `ui [language]` | Set UI interface language | `/language ui de-DE` |
189
+ | → `output [language]` | Set LLM output language | `/language output German` |
190
190
  | `/quit` | Exit Matilda Code immediately | `/quit` or `/exit` |
191
191
 
192
192
  See the [CLI reference](./features/commands) for a complete list of commands.
@@ -9,22 +9,15 @@ This guide provides solutions to common issues and debugging tips, including top
9
9
 
10
10
  ## Authentication or login errors
11
11
 
12
- - **Error: `Matilda OAuth free tier was discontinued on 2026-04-15`**
13
- - **Cause:** Matilda OAuth is no longer available as of April 15, 2026.
14
- - **Solution:** Switch to a different authentication method. Run `matilda` → `/auth` and choose one of:
12
+ - **Error: `Invalid auth method selected.`**
13
+ - **Cause:** `security.auth.selectedType` in `settings.json` names an auth type Matilda Code no longer supports, such as the retired `matilda-oauth`.
14
+ - **Solution:** Run `matilda auth login`, or `/auth` in an interactive session, and sign in with your Matilda account.
15
15
 
16
16
  - **Error: `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, `UNABLE_TO_VERIFY_LEAF_SIGNATURE`, or `unable to get local issuer certificate`**
17
17
  - **Cause:** You may be on a corporate network with a firewall that intercepts and inspects SSL/TLS traffic. This often requires a custom root CA certificate to be trusted by Node.js.
18
18
  - **Solution:** Set the `NODE_EXTRA_CA_CERTS` environment variable to the absolute path of your corporate root CA certificate file.
19
19
  - Example: `export NODE_EXTRA_CA_CERTS=/path/to/your/corporate-ca.crt`
20
20
 
21
- - **Error: `Device authorization flow failed: fetch failed`**
22
- - **Cause:** Node.js could not reach Matilda OAuth endpoints (often a proxy or SSL/TLS trust issue). When available, Matilda Code will also print the underlying error cause (for example: `UNABLE_TO_VERIFY_LEAF_SIGNATURE`). Note: this error is specific to the legacy Matilda OAuth flow.
23
- - **Solution:**
24
- - If you are still using Matilda OAuth, switch to API Key or Coding Plan via `/auth`.
25
- - If you are behind a proxy, set it via `matilda --proxy <url>` (or the `proxy` setting in `settings.json`).
26
- - If your network uses a corporate TLS inspection CA, set `NODE_EXTRA_CA_CERTS` as described above.
27
-
28
21
  - **Issue: Unable to display UI after authentication failure**
29
22
  - **Cause:** If authentication fails after selecting an authentication type, the `security.auth.selectedType` setting may be persisted in `settings.json`. On restart, the CLI may get stuck trying to authenticate with the failed auth type and fail to display the UI.
30
23
  - **Solution:** Clear the `security.auth.selectedType` configuration item in your `settings.json` file:
@@ -0,0 +1,3 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import{Fg as a,Gg as b,Hg as c,Ig as d,Jg as e,Kg as f}from"./chunk-SY6JRCN3.js";import"./chunk-M53RP3YP.js";import"./chunk-FCGYRGV4.js";import"./chunk-G4YMVWG4.js";import"./chunk-5YT4GCK7.js";import"./chunk-MTMU7JYZ.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-PYZNGIIR.js";import"./chunk-QJJTUDDA.js";import"./chunk-5NMK4Y7C.js";import"./chunk-47XR7IMP.js";import"./chunk-UVWZ44ZW.js";import"./chunk-QKYGQLWC.js";import"./chunk-LHDCAN7Z.js";import"./chunk-V6UPUMP3.js";import"./chunk-RNKDFE2S.js";import"./chunk-VLDZBRTL.js";import"./chunk-RYHMPK5G.js";import"./chunk-JIKQI4MZ.js";import"./chunk-RK4LPGBV.js";import"./chunk-75KP2FVD.js";import"./chunk-7ZODGQO6.js";import"./chunk-TISQNFB5.js";import"./chunk-IIQ5YERM.js";import"./chunk-DC7LAFZZ.js";import"./chunk-LZDHANXA.js";import"./chunk-U7V7APDV.js";import"./chunk-SR7ARGUY.js";import"./chunk-OEZS5R3S.js";import"./chunk-NOE4UNQN.js";import"./chunk-R34HYLL4.js";import"./chunk-EXNHJQCD.js";import"./chunk-2ONZZ46N.js";import"./chunk-62AFAL4I.js";import"./chunk-36K4HBVM.js";import"./chunk-FWDMPRKU.js";import"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";export{f as AgentTool,b as TOOL_REGISTRY_REBUILT,e as createApprovalModeOverride,c as hasRebuiltToolRegistry,d as rebuildToolRegistryOnOverride,a as resolveSubagentApprovalMode};
@@ -0,0 +1,3 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import{dg as a,eg as b,fg as c}from"./chunk-SY6JRCN3.js";import"./chunk-M53RP3YP.js";import"./chunk-FCGYRGV4.js";import"./chunk-G4YMVWG4.js";import"./chunk-5YT4GCK7.js";import"./chunk-MTMU7JYZ.js";import"./chunk-TXMXCR7D.js";import"./chunk-YULUB745.js";import"./chunk-PYZNGIIR.js";import"./chunk-QJJTUDDA.js";import"./chunk-5NMK4Y7C.js";import"./chunk-47XR7IMP.js";import"./chunk-UVWZ44ZW.js";import"./chunk-QKYGQLWC.js";import"./chunk-LHDCAN7Z.js";import"./chunk-V6UPUMP3.js";import"./chunk-RNKDFE2S.js";import"./chunk-VLDZBRTL.js";import"./chunk-RYHMPK5G.js";import"./chunk-JIKQI4MZ.js";import"./chunk-RK4LPGBV.js";import"./chunk-75KP2FVD.js";import"./chunk-7ZODGQO6.js";import"./chunk-TISQNFB5.js";import"./chunk-IIQ5YERM.js";import"./chunk-DC7LAFZZ.js";import"./chunk-LZDHANXA.js";import"./chunk-U7V7APDV.js";import"./chunk-SR7ARGUY.js";import"./chunk-OEZS5R3S.js";import"./chunk-NOE4UNQN.js";import"./chunk-R34HYLL4.js";import"./chunk-EXNHJQCD.js";import"./chunk-2ONZZ46N.js";import"./chunk-62AFAL4I.js";import"./chunk-36K4HBVM.js";import"./chunk-FWDMPRKU.js";import"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";export{c as AgentHeadless,a as ContextState,b as templateString};
@@ -1,6 +1,6 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import{a as r}from"./chunk-ILBTI4K5.js";import"./chunk-47XR7IMP.js";import{g as m,i as h,p as f,q as g}from"./chunk-6E766NPX.js";import{ba as d}from"./chunk-27Q5KW3A.js";import"./chunk-FWDMPRKU.js";import{b as p}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";p();var a=d("ASK_USER_QUESTION"),b=`Use this tool when you need to ask the user questions during execution. This allows you to:
3
+ import{a as r}from"./chunk-ILBTI4K5.js";import"./chunk-47XR7IMP.js";import{g as m,i as h,p as f,q as g}from"./chunk-2ONZZ46N.js";import{ba as d}from"./chunk-62AFAL4I.js";import"./chunk-FWDMPRKU.js";import{b as p}from"./chunk-GZPNIYVZ.js";import"./chunk-OWGSC52X.js";p();var a=d("ASK_USER_QUESTION"),b=`Use this tool when you need to ask the user questions during execution. This allows you to:
4
4
  1. Gather user preferences or requirements
5
5
  2. Clarify ambiguous instructions
6
6
  3. Get decisions on implementation choices as you work