zigmini 0.9.0-beta.2 → 0.9.0-beta.3
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/README.ko.md +11 -1
- package/README.md +11 -1
- package/assets/android/zigmini.apk +0 -0
- package/assets/android/zigmini.apk.json +3 -3
- package/assets/build.json +1 -1
- package/host/omo-bridge/model-control.ts +15 -3
- package/host/omo-check/patches/omo-5.1.48-compaction-recovery.patch +912 -0
- package/host/omo-check/patches/omo-5.1.48-gateway-port.manifest.json +12 -11
- package/package.json +1 -1
- package/src/hub.ts +195 -15
- package/src/omo/client.ts +2 -0
package/README.ko.md
CHANGED
|
@@ -95,7 +95,7 @@ zigmini는 에이전트를 권한 프리셋 `full-access`로 실행합니다.
|
|
|
95
95
|
14. 9번 명령을 다시 실행합니다.
|
|
96
96
|
- 결과가 숫자로 시작하는 버전 한 줄이면 15번으로 갑니다.
|
|
97
97
|
- 결과가 여전히 `zsh: command not found: zigmini`이면 설치를 멈춥니다. `ls "$(bun pm bin -g)"`를 실행합니다. 결과에 `zigmini`가 없으면 8번의 `bun add -g zigmini` 출력에서 `error:`로 시작하는 줄을 확인합니다.
|
|
98
|
-
15. 에이전트 엔진 `omo-ai`를 전역 설치합니다. 필수 단계입니다. `omo-ai` 설치와 모델 계정 로그인이 없으면 게이트웨이가 동작하지 않습니다. 15~18번을 건너뛰면 `zigmini setup`이 전역 `omo`를 직접 설치하고 로그인 단계에서 기다리지만, 로그인은 직접 해야 합니다. 그래도 여기의 단계를 먼저 합니다. 버전은 게이트웨이가 고정한 stock 버전에 맞춥니다(`src/engine/compat.json`의 `omo`, 0.9.0-beta.
|
|
98
|
+
15. 에이전트 엔진 `omo-ai`를 전역 설치합니다. 필수 단계입니다. `omo-ai` 설치와 모델 계정 로그인이 없으면 게이트웨이가 동작하지 않습니다. 15~18번을 건너뛰면 `zigmini setup`이 전역 `omo`를 직접 설치하고 로그인 단계에서 기다리지만, 로그인은 직접 해야 합니다. 그래도 여기의 단계를 먼저 합니다. 버전은 게이트웨이가 고정한 stock 버전에 맞춥니다(`src/engine/compat.json`의 `omo`, 0.9.0-beta.3은 5.1.48이며 설치된 릴리스는 자체 고정값을 유지합니다).
|
|
99
99
|
```sh
|
|
100
100
|
bun add -g omo-ai@5.1.48
|
|
101
101
|
```
|
|
@@ -195,6 +195,16 @@ F0:AB:B3:B2:DC:70:1A:45:19:85:69:7D:58:68:F5:FB:4F:AC:33:4F:D8:6A:68:DD:04:5C:53
|
|
|
195
195
|
|
|
196
196
|
사용자 매뉴얼([한국어](docs/manual.ko.md), [English](docs/manual.md))은 웹 설정 창 위쪽의 "매뉴얼" 버튼과, 앱 헤더의 상태 태그를 짧게 눌러 여는 연결 화면의 "매뉴얼" 버튼으로 봅니다.
|
|
197
197
|
|
|
198
|
+
## 0.9.0-beta.3의 새 기능
|
|
199
|
+
|
|
200
|
+
0.9.0-beta.3(2026-10-29 KST, Android `versionCode` 29)은 압축 실패로 main이 멈추는 문제를 고칩니다. 엔진 `5.1.48-zgw` 개정 3(OMO 5.1.48, 불변 빌드 `5.1.48-zgw.3`, senpi 2026.10.25-2, 대화 스키마 10)을 선택합니다. 전체 노트는 [docs/releases/0.9.0-beta.3.ko.md](docs/releases/0.9.0-beta.3.ko.md)에 있습니다.
|
|
201
|
+
|
|
202
|
+
- **압축 실패 뒤 main 교착 해소:** 엔진이 거절한 메시지는 차례를 열어 두지 않고 안내와 함께 닫힙니다. 이렇게 남은 차례가 있어도 "새 세션"이 동작합니다. 압축이 연속 두 번 실패하면 새 세션을 엽니다.
|
|
203
|
+
- **막힌 공급자에 같은 요약을 되풀이하지 않음:** 사용 한도나 계정 묶음 거절 뒤에는 재시도 시각까지 기다립니다. 모델 전환은 그 요약을 기다리지 않습니다.
|
|
204
|
+
- **자동 압축 끔 설정을 지킵니다.** 요약도 일반 다중 계정 교대를 씁니다.
|
|
205
|
+
- **원인 확인이 쉬워짐:** 압축이 실패할 때마다 `gateway.log`에 `compaction_failed` 한 줄을 남깁니다. 공급자의 원래 오류 문장을 남기고 민감한 값은 지웁니다.
|
|
206
|
+
- **앱:** 동작 변화가 없습니다. `versionCode` 29는 이 릴리스 표시입니다.
|
|
207
|
+
|
|
198
208
|
## 0.9.0-beta.2의 새 기능
|
|
199
209
|
|
|
200
210
|
0.9.0-beta.2(2026-10-29 KST, Android `versionCode` 28)는 0.8.0-beta.7에서 업데이트하기 위한 핫픽스입니다. 엔진 `5.1.48-zgw`(OMO 5.1.48, 패치 개정 2, senpi 2026.10.25-2, 대화 스키마 10)를 선택합니다. 전체 노트는 [docs/releases/0.9.0-beta.2.ko.md](docs/releases/0.9.0-beta.2.ko.md)에 있습니다.
|
package/README.md
CHANGED
|
@@ -95,7 +95,7 @@ The gateway runs the agent with the permission preset `full-access`. The agent d
|
|
|
95
95
|
14. Run the command of step 9 again.
|
|
96
96
|
- If the result is one version line that starts with a number, go to step 15.
|
|
97
97
|
- If the result is still `zsh: command not found: zigmini`, stop the installation. Run `ls "$(bun pm bin -g)"`. If the result does not contain `zigmini`, look for lines that start with `error:` in the output of `bun add -g zigmini` in step 8.
|
|
98
|
-
15. Install the agent engine `omo-ai` globally. This step is required: without the `omo-ai` installation and the model account login, the gateway does not work. If you skip steps 15 to 18, `zigmini setup` installs the global `omo` itself and stops at the login step, but you must still log in. Do the steps here anyway. Use the stock version that the gateway pins (`omo` in `src/engine/compat.json`; 5.1.48 in 0.9.0-beta.
|
|
98
|
+
15. Install the agent engine `omo-ai` globally. This step is required: without the `omo-ai` installation and the model account login, the gateway does not work. If you skip steps 15 to 18, `zigmini setup` installs the global `omo` itself and stops at the login step, but you must still log in. Do the steps here anyway. Use the stock version that the gateway pins (`omo` in `src/engine/compat.json`; 5.1.48 in 0.9.0-beta.3; installed releases keep their own pin).
|
|
99
99
|
```sh
|
|
100
100
|
bun add -g omo-ai@5.1.48
|
|
101
101
|
```
|
|
@@ -195,6 +195,16 @@ F0:AB:B3:B2:DC:70:1A:45:19:85:69:7D:58:68:F5:FB:4F:AC:33:4F:D8:6A:68:DD:04:5C:53
|
|
|
195
195
|
|
|
196
196
|
The user manual ([English](docs/manual.md), [한국어](docs/manual.ko.md)) opens from the "매뉴얼" (Manual) button at the top of the web settings dialog, and in the app from the "매뉴얼" button on the connection screen that a short press on the header status tag opens.
|
|
197
197
|
|
|
198
|
+
## What's new in 0.9.0-beta.3
|
|
199
|
+
|
|
200
|
+
Release 0.9.0-beta.3 (2026-10-29 KST, Android `versionCode` 29) fixes failed compactions that could leave main stuck. It selects engine `5.1.48-zgw` revision 3 (OMO 5.1.48, immutable build `5.1.48-zgw.3`, senpi 2026.10.25-2, thread schema 10). Full notes: [docs/releases/0.9.0-beta.3.md](docs/releases/0.9.0-beta.3.md).
|
|
201
|
+
|
|
202
|
+
- **Main no longer locks up after a failed compaction:** a message the engine refuses closes with a notice instead of keeping the turn open, "새 세션" works over such a leftover turn, and two failed compactions in a row open a fresh session.
|
|
203
|
+
- **No repeated summary against a blocked provider:** after a usage limit or a refused account pool, the engine waits for the retry time; a model switch no longer waits for that summary.
|
|
204
|
+
- **Automatic compaction off is respected,** and summaries use the normal multi-account rotation.
|
|
205
|
+
- **Clearer diagnosis:** each failed compaction writes one `compaction_failed` line to `gateway.log` with the provider's own error, sensitive values removed.
|
|
206
|
+
- **App:** no behavior change; `versionCode` 29 only marks this release.
|
|
207
|
+
|
|
198
208
|
## What's new in 0.9.0-beta.2
|
|
199
209
|
|
|
200
210
|
Release 0.9.0-beta.2 (2026-10-29 KST, Android `versionCode` 28) is a hotfix for updating from 0.8.0-beta.7. It selects engine `5.1.48-zgw` (OMO 5.1.48, patch revision 2, senpi 2026.10.25-2, thread schema 10). Full notes: [docs/releases/0.9.0-beta.2.md](docs/releases/0.9.0-beta.2.md).
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"versionCode":
|
|
3
|
-
"versionName": "0.9.0-beta.
|
|
4
|
-
"sha256": "
|
|
2
|
+
"versionCode": 29,
|
|
3
|
+
"versionName": "0.9.0-beta.3",
|
|
4
|
+
"sha256": "72d0d7e270137e2afd26c76e6bd725fca0ee7d2acbccab2e08769911554e0113"
|
|
5
5
|
}
|
package/assets/build.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"commit":"
|
|
1
|
+
{"commit":"2c3b0d6a5aa6078593122d32cb19f0cacc4d178d"}
|
|
@@ -9,6 +9,7 @@ type Model = { readonly provider: string; readonly id: string };
|
|
|
9
9
|
type SessionContext = ContinuityContext & {
|
|
10
10
|
readonly model: Model | undefined;
|
|
11
11
|
readonly modelRegistry: { getAvailable(): Promise<Model[]> };
|
|
12
|
+
getModelSwitchState?(): { readonly current?: Model; readonly pending?: Model };
|
|
12
13
|
};
|
|
13
14
|
interface ExtensionApi extends ContinuityExtensionApi<SessionContext> {
|
|
14
15
|
readonly rpc: { handle(name: string, handler: (data: unknown) => Promise<unknown>): void };
|
|
@@ -29,13 +30,24 @@ export default function modelControl(pi: ExtensionApi): void {
|
|
|
29
30
|
if (!context) throw new Error("session_not_ready");
|
|
30
31
|
const model = (await context.modelRegistry.getAvailable()).find((m) => m.provider === data.provider && m.id === data.modelId);
|
|
31
32
|
if (!model) throw new Error(`unknown_model:${data.provider}/${data.modelId}`);
|
|
33
|
+
const state = () => {
|
|
34
|
+
const actual = context?.getModelSwitchState?.() ?? { current: context?.model };
|
|
35
|
+
const current = actual.current ? { provider: actual.current.provider, modelId: actual.current.id } : null;
|
|
36
|
+
const pending = actual.pending ? { provider: actual.pending.provider, modelId: actual.pending.id } : null;
|
|
37
|
+
return {
|
|
38
|
+
...(current ?? {}),
|
|
39
|
+
current, pending,
|
|
40
|
+
applied: current?.provider === model.provider && current.modelId === model.id && pending === null,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
32
43
|
// Reattach reapplies the saved model. A native switch, even to the same model,
|
|
33
44
|
// restores its remembered thinking preference over explicit session thinking.
|
|
34
|
-
if (context.model?.provider === model.provider && context.model.id === model.id
|
|
35
|
-
|
|
45
|
+
if (context.model?.provider === model.provider && context.model.id === model.id &&
|
|
46
|
+
!context.getModelSwitchState?.().pending) {
|
|
47
|
+
return state();
|
|
36
48
|
}
|
|
37
49
|
// Persist in this session's history, never in the shared CLI defaults.
|
|
38
50
|
if (!(await pi.setSessionModel(model))) throw new Error(`model_auth_unavailable:${model.provider}/${model.id}`);
|
|
39
|
-
return
|
|
51
|
+
return state();
|
|
40
52
|
});
|
|
41
53
|
}
|