zigmini 0.9.0-beta.3 → 1.0.0-beta.1
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 +24 -4
- package/README.md +24 -4
- package/assets/agent/gateway-rules.md +1 -1
- package/assets/android/zigmini.apk +0 -0
- package/assets/android/zigmini.apk.json +3 -3
- package/assets/build.json +1 -1
- package/docs/manual.ko.md +51 -11
- package/docs/manual.md +52 -12
- package/host/omo-bridge/agent-control.ts +274 -0
- package/host/omo-bridge/bridge.ts +1 -1
- package/host/omo-bridge/continuity-control.ts +1 -1
- package/host/omo-bridge/task-control.ts +26 -16
- package/host/omo-check/patches/omo-5.1.51-compaction-long-context.patch +92 -0
- package/host/omo-check/patches/omo-5.1.51-compaction-port.patch +2635 -0
- package/host/omo-check/patches/omo-5.1.51-compaction-recovery.patch +911 -0
- package/host/omo-check/patches/omo-5.1.51-gateway-port.manifest.json +363 -0
- package/host/omo-check/patches/omo-5.1.51-provider-failover.patch +50 -0
- package/host/omo-check/patches/omo-5.1.51-provider-port.patch +441 -0
- package/host/omo-check/patches/omo-5.1.51-rpc-port.patch +799 -0
- package/host/omo-check/patches/omo-5.1.51-runtime-compat.patch +31 -0
- package/package.json +3 -2
- package/src/agent/api.ts +215 -0
- package/src/agent/definition.ts +177 -0
- package/src/agent/fields.ts +42 -0
- package/src/agent/files.ts +192 -0
- package/src/agent/legacy-files.ts +46 -0
- package/src/agent/list.ts +21 -0
- package/src/agent-rules.ts +14 -5
- package/src/approvals.ts +6 -1
- package/src/cli/main.ts +33 -0
- package/src/cli/messages.ts +10 -2
- package/src/cli/rotate-main.ts +2 -1
- package/src/cli/scan.ts +414 -0
- package/src/cli/security-import.ts +155 -0
- package/src/compact.ts +22 -0
- package/src/decisions.ts +6 -4
- package/src/engine/compat.json +3 -3
- package/src/engine/index.ts +1 -0
- package/src/engine/schema-guard.ts +12 -4
- package/src/engine/sdk.ts +8 -0
- package/src/formal-verification.ts +366 -0
- package/src/gc.ts +37 -6
- package/src/hub.ts +339 -79
- package/src/main.ts +95 -9
- package/src/maintenance.ts +1 -1
- package/src/manual.ts +9 -2
- package/src/profile-prompt.ts +73 -0
- package/src/profile.ts +33 -10
- package/src/protocol.ts +11 -2
- package/src/question-notifications.ts +4 -1
- package/src/reply-notifications.ts +7 -1
- package/src/repo-security-setting.ts +33 -0
- package/src/runtime/paths.ts +16 -0
- package/src/security/baseline.ts +170 -0
- package/src/security/dex-strings.ts +242 -0
- package/src/security/repo-scan.ts +369 -0
- package/src/security/revision-probe.ts +144 -0
- package/src/security/terms.ts +97 -0
- package/src/security-allow.ts +1 -0
- package/src/security-baseline.ts +113 -0
- package/src/security-check.ts +91 -16
- package/src/server-text.ts +38 -0
- package/src/store.ts +142 -16
- package/src/transcript.ts +7 -1
- package/src/ui-language.ts +33 -0
- package/src/update/check.ts +7 -3
- package/src/update/handoff-system.ts +24 -16
- package/src/update/handoff.ts +23 -12
- package/src/update/helper.ts +72 -36
- package/src/update/request.ts +46 -30
- package/src/update/state.ts +21 -11
- package/src/update/strategy.ts +12 -5
- package/src/update/target.ts +32 -15
- package/src/usage.ts +43 -20
- package/src/version.ts +39 -16
- package/src/voice/agents.ts +8 -3
- package/src/voice/install.ts +29 -18
- package/src/work-watch.ts +40 -18
- package/web/agent-icon.js +15 -9
- package/web/agents.d.ts +201 -0
- package/web/agents.js +813 -0
- package/web/app-download.js +32 -19
- package/web/app.js +1407 -278
- package/web/autocopy.js +6 -1
- package/web/boot.js +27 -8
- package/web/commands.js +20 -11
- package/web/decisions.js +70 -49
- package/web/devlog.js +25 -19
- package/web/diagram.js +8 -3
- package/web/enroll.js +43 -22
- package/web/gc.js +32 -19
- package/web/i18n/agent-icon.js +24 -0
- package/web/i18n/agents.js +48 -0
- package/web/i18n/app-download.js +26 -0
- package/web/i18n/autocopy.js +5 -0
- package/web/i18n/boot.js +24 -0
- package/web/i18n/commands.js +34 -0
- package/web/i18n/decisions.js +24 -0
- package/web/i18n/devlog.js +60 -0
- package/web/i18n/diagram.js +12 -0
- package/web/i18n/enroll.js +22 -0
- package/web/i18n/gc.js +38 -0
- package/web/i18n/lastsent.js +10 -0
- package/web/i18n/main.d.ts +4 -0
- package/web/i18n/main.js +527 -0
- package/web/i18n/manual.d.ts +4 -0
- package/web/i18n/manual.js +14 -0
- package/web/i18n/memo.js +30 -0
- package/web/i18n/notifications.js +16 -0
- package/web/i18n/profile.js +13 -0
- package/web/i18n/reference.js +26 -0
- package/web/i18n/security-inbox.js +40 -0
- package/web/i18n/slash.js +38 -0
- package/web/i18n/turn-stats.js +5 -0
- package/web/i18n/update.js +42 -0
- package/web/i18n/voice.js +28 -0
- package/web/i18n/wake.js +16 -0
- package/web/i18n/workid.js +10 -0
- package/web/i18n/workstatus.js +20 -0
- package/web/i18n.d.ts +20 -0
- package/web/i18n.js +63 -0
- package/web/index.html +156 -96
- package/web/lastsent.js +9 -4
- package/web/manual.d.ts +1 -1
- package/web/manual.js +11 -5
- package/web/memo.js +18 -13
- package/web/notifications.js +12 -7
- package/web/profile.js +42 -17
- package/web/reference.js +20 -15
- package/web/security-inbox.d.ts +18 -1
- package/web/security-inbox.js +173 -4
- package/web/slash.js +23 -13
- package/web/style.css +132 -3
- package/web/tooltip.js +5 -2
- package/web/turn-stats.js +6 -2
- package/web/update.js +31 -23
- package/web/voice.js +18 -8
- package/web/wake.d.ts +4 -0
- package/web/wake.js +7 -3
- package/web/workid.js +12 -2
- package/web/workstatus.js +36 -32
package/README.ko.md
CHANGED
|
@@ -97,7 +97,7 @@ zigmini는 에이전트를 권한 프리셋 `full-access`로 실행합니다.
|
|
|
97
97
|
- 결과가 여전히 `zsh: command not found: zigmini`이면 설치를 멈춥니다. `ls "$(bun pm bin -g)"`를 실행합니다. 결과에 `zigmini`가 없으면 8번의 `bun add -g zigmini` 출력에서 `error:`로 시작하는 줄을 확인합니다.
|
|
98
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
|
-
bun add -g omo-ai@5.1.
|
|
100
|
+
bun add -g omo-ai@5.1.51
|
|
101
101
|
```
|
|
102
102
|
16. 셸이 `omo` 명령을 찾는지 확인합니다. 결과는 버전 한 줄이어야 합니다.
|
|
103
103
|
```sh
|
|
@@ -118,7 +118,7 @@ zigmini는 에이전트를 권한 프리셋 `full-access`로 실행합니다.
|
|
|
118
118
|
1. 언어를 묻습니다: `Language / 언어 [1] English [2] 한국어`. 그 뒤의 안내는 모두 고른 언어로 나옵니다. 고른 언어는 `~/.zigmini/language`에 저장되고 `zigmini setup --access`, `zigmini pair`, `zigmini start`·`restart`의 준비 대기도 이 언어를 씁니다. `--lang en|ko`로 묻지 않고 정할 수 있습니다. 묻지 않는 설치(`--non-interactive`)는 저장된 언어, 없으면 시스템 언어(`LANG`이 `ko…`이면 한국어), 그것도 없으면 영어를 씁니다.
|
|
119
119
|
2. 권한 안내를 보여 주고 동의를 받습니다.
|
|
120
120
|
3. 홈 폴더 `~/.zigmini`를 만듭니다. 이 설치의 규칙 파일(`~/.zigmini/rules.md`)이 없으면 빈 파일을 만듭니다. 아래 "에이전트 규칙"을 보세요.
|
|
121
|
-
4. 에이전트 엔진(omo-ai)의 고정 버전을 내려받아 해시를 확인하고 패치합니다. 버전은 패키지가 정합니다(`src/engine/compat.json`, 이 문서를 쓸 때 엔진 5.1.
|
|
121
|
+
4. 에이전트 엔진(omo-ai)의 고정 버전을 내려받아 해시를 확인하고 패치합니다. 버전은 패키지가 정합니다(`src/engine/compat.json`, 이 문서를 쓸 때 엔진 5.1.51). 엔진 라이선스 요약을 보여 주고 동의(`y`)를 받습니다.
|
|
122
122
|
5. 전역 `omo` 명령을 `bun add -g omo-ai@<버전>`으로 설치합니다. 버전은 고정 엔진과 같은 stock 버전입니다. 전역 `omo`가 이미 그 버전이면 설치를 건너뜁니다. 다른 버전이면 `<버전>으로 덮어쓸까요? (y/N)`를 묻습니다. 묻지 않는 설치는 있는 버전을 유지합니다. 설치에 실패하면 고정 엔진의 긴 명령을 로그인 명령으로 보여 줍니다.
|
|
123
123
|
6. 에이전트 폴더와 모델 계정 로그인 상태를 확인합니다. 기본 에이전트 폴더는 `~/.omo/agent`이고, 같은 폴더를 쓰는 다른 OMO와 로그인 정보를 같이 씁니다. 로그인하지 않았으면 아래 상자를 보이고 기다립니다.
|
|
124
124
|
```text
|
|
@@ -195,6 +195,17 @@ 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
|
+
## 1.0.0-beta.1의 새 기능
|
|
199
|
+
|
|
200
|
+
1.0.0-beta.1(2026-11-02 KST, Android `versionCode` 30)은 1.0.0의 첫 후보입니다. 엔진 `5.1.51-zgw` 개정 3(OMO 5.1.51, 불변 빌드 `5.1.51-zgw.3`, senpi 2026.10.27-1, 대화 스키마 10)을 선택합니다. 전체 노트는 [docs/releases/1.0.0-beta.1.ko.md](docs/releases/1.0.0-beta.1.ko.md)에 있습니다.
|
|
201
|
+
|
|
202
|
+
- **에이전트:** 웹에서 특화 대화를 만듭니다. 대화마다 세션, 모델, 지식 폴더가 따로 있습니다.
|
|
203
|
+
- **보안 기준:** 설정 > 보안검사에 기준 하나를 두고, `zigmini scan`으로 어느 저장소든 검사합니다.
|
|
204
|
+
- **설정:** 검사와 형식 검증 스위치, 도구별 설치 버튼, 화면 언어(영어 또는 한국어) 하나.
|
|
205
|
+
- **채팅:** `/compact`가 생기고, 모든 세션이 프로필 닉네임을 압니다.
|
|
206
|
+
- **엔진 5.1.51:** 큰 요약이 1M 문맥 크레딧 거부로 실패하지 않습니다.
|
|
207
|
+
- **앱:** 스위치, 설치 버튼, 쪽지 화면에 새 APK가 필요합니다.
|
|
208
|
+
|
|
198
209
|
## 0.9.0-beta.3의 새 기능
|
|
199
210
|
|
|
200
211
|
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)에 있습니다.
|
|
@@ -247,7 +258,11 @@ 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
|
|
|
247
258
|
|
|
248
259
|
값이 나오면 게이트웨이가 메시지를 보류하고 보내지 않습니다. 엔진이 아니라 게이트웨이가 웹과 앱에 "보안검사 결과" 카드를 직접 보여 줍니다. 카드에는 걸린 값마다 종류, 실제 값, 메시지 안의 줄과 칸이 보이고 "이 값들을 노출해도 되겠습니까?"라고 묻습니다. "보내기"를 누르면 원래 메시지를 그대로 엔진에 보냅니다. "보내지 않기"를 누르면 메시지를 버리고, 웹은 글을 입력창에 되돌려 고칠 수 있게 합니다. 걸린 값은 엔진, 엔진 세션 파일, 대화 기록, 로그에 들어가지 않습니다. 보류한 메시지는 게이트웨이 메모리에만 있습니다. 게이트웨이가 다시 시작하면 보내지 않고 버리며, 웹 카드에 그렇게 표시됩니다.
|
|
249
260
|
|
|
250
|
-
보안검사는 기본으로 켜져 있습니다.
|
|
261
|
+
보안검사는 기본으로 켜져 있습니다. 웹이나 앱 설정의 "엔진으로 가는 메시지 검사" 스위치로 끄고 켭니다. 설정은 `~/.zigmini/data/security-check`에 저장되어 재시작 뒤에도 유지됩니다. 끄면 검사 없이 바로 엔진에 보냅니다. 검사가 찾는 종류의 목록은 [docs/security-check.md](docs/security-check.md)에 있습니다. 설정 항목마다 짧은 요약이 보이고, 정보 아이콘으로 상세 설명을 봅니다(웹은 툴팁, 앱은 창). 설정 문구는 설정의 "언어"에서 고른 화면 언어를 따릅니다(기본 영어).
|
|
262
|
+
|
|
263
|
+
웹 설정에는 스위치가 두 개 더 있습니다(개선 250). 보안검사 묶음의 "결과물 검사"(기본 켜짐)은 작업 결과물 검사를 켜고 끕니다. `zigmini scan`이 비밀값처럼 보인 값과 보안 기준에 지정한 값을 찾아 GitHub 같은 외부로 나가지 않게 합니다. 켜져 있으면 새 main·작업·에이전트 세션의 규칙에 "머지 전에 검사한다"는 의무도 들어갑니다. 끄면 `zigmini scan`이 검사하지 않고 종료 코드 4로 끝나며, 새 세션 규칙에서 그 의무가 빠집니다. 엔진으로 가는 메시지 검사는 따로 켜고 끕니다. "dev 머지 전 보안검사 필수"는 운영자의 운영 규칙이고 게이트웨이 기능이 아닙니다. 이 저장소의 `test:all` 보안검사는 이 스위치와 관계없이 돕니다. "형식 검증"은 설정 묶음 제목이고, 그 아래에 도구마다 한 줄이 있습니다(지금은 TLA+/TLC 1.7.4). 도구 스위치는 그 도구가 설치된 뒤 검사(`bun run formal:check`)에 쓸지만 정합니다. 스위치를 켜도 설치하지 않습니다. 설치되지 않은 도구는 "설치 안 됨"과 "설치" 버튼을 보입니다. "설치"를 누르면 게이트웨이가 그 도구만 설치합니다. Homebrew로 `openjdk@21`을 설치하고(`brew link` 없음, 시스템 java 그대로) tla2tools.jar 1.7.4를 크기와 SHA-256으로 확인해 `~/.zigmini/formal-tools`에 받습니다. 설치하는 동안 그 줄에는 "설치 중…"이 보입니다. 설치가 실패하면 "설치 실패"와 원인이 보이고 "설치" 버튼이 다시 나타납니다. Homebrew가 없으면 원인에 https://brew.sh 에서 Homebrew를 설치한 뒤 설치를 다시 누르라는 안내가 나옵니다. "설치"를 누르기 전에는 아무것도 설치하지 않습니다. 업데이트 전에 형식 검증 전체 설정이 꺼져 있었다면 업데이트 뒤에도 모든 도구 스위치가 꺼진 채로 남습니다.
|
|
264
|
+
|
|
265
|
+
같은 규칙으로 저장소도 검사합니다. 게이트웨이는 보안 기준 하나를 갖습니다. 웹 설정의 "보안 기준"에 넣은 용어와, 게이트웨이가 스스로 더하는 이 맥의 홈 경로와 계정 이름입니다. 게이트웨이는 기준을 `~/.zigmini/secrets/security-baseline.json`으로 내보냅니다. Git 저장소에서 `zigmini scan`(또는 `zigmini scan <저장소>`)을 실행하면 추적 파일과 작업 브랜치·`dev`의 Git 객체를 검사합니다. 종료 코드는 0 발견 없음, 1 발견 있음, 2 입력·실행 오류, 3 기준 없음·비어 있음·낡음입니다. 기억한 값은 "저장소 검사에도 허용"을 켜야만 저장소 검사를 통과합니다. 옛 평문 목록은 게이트웨이가 켜진 상태에서 `zigmini security import-baseline`으로 기준에 가져옵니다. 자세한 내용은 [docs/security-check.md](docs/security-check.md#보안-기준과-zigmini-scan)에 있습니다.
|
|
251
266
|
|
|
252
267
|
## 업데이트
|
|
253
268
|
|
|
@@ -290,10 +305,13 @@ zigmini update <버전> # 지정한 버전으로 업데이트
|
|
|
290
305
|
| `zigmini rotate-main [--restart] [--wait <초>] [--foreground]` | main 대화를 새 엔진 세션으로 교체합니다. 웹의 "새 세션"과 같은 요청입니다. 분리 실행하고 결과는 `~/.zigmini/logs/rotate-main.log`에 남깁니다. `--restart`는 게이트웨이를 먼저 멈추고 다시 켭니다 |
|
|
291
306
|
| `zigmini migrate` | 옛 Docker 설치(`~/.zigmini-gateway`)를 새 구조로 복사합니다. 옛 폴더는 바꾸지 않습니다 |
|
|
292
307
|
| `zigmini migrate-run` | 유휴를 기다리고, 옛 실행을 멈추고, 백업하고, migrate와 setup을 실행한 뒤 확인합니다. 실패하면 옛 실행으로 되돌립니다 |
|
|
308
|
+
| `zigmini scan [<저장소>] [--scope all\|tracked\|git] [--json] [--out <파일>]` | 보안 기준으로 저장소를 검사합니다(종료 코드 0 깨끗함, 1 발견, 2 오류, 3 기준 사용 불가) |
|
|
309
|
+
| `zigmini security import-baseline [--from <파일>] [--dry-run]` | 평문 목록의 값을 켜진 게이트웨이를 통해 보안 기준에 더합니다. 건수만 출력합니다 |
|
|
293
310
|
| `zigmini --version` | 설치된 버전을 출력합니다 |
|
|
294
311
|
| `zigmini --help` | 도움말을 출력합니다 |
|
|
295
312
|
|
|
296
313
|
채팅에서 `/usage`를 보내면 게이트웨이가 로그인한 모델 계정의 사용량을 바로 답합니다.
|
|
314
|
+
게이트웨이 채팅에서 `/compact`를 보내면 게이트웨이가 대화 요약을 바로 시작합니다. `/compact 결정 사항 위주로`처럼 뒤에 쓴 글은 요약의 추가 지시가 됩니다. 답변, 다른 요약, 모델 요청 재시도, 세션 교체가 진행 중이거나 엔진 연결이 끊겨 있으면 게이트웨이가 요청을 거부하고 짧은 안내를 보입니다. 거부한 요청은 대기열에 넣지 않습니다.
|
|
297
315
|
|
|
298
316
|
## 에이전트 규칙
|
|
299
317
|
|
|
@@ -304,6 +322,8 @@ zigmini update <버전> # 지정한 버전으로 업데이트
|
|
|
304
322
|
|
|
305
323
|
바꾼 뒤에 열리는 세션부터 새 내용을 씁니다. 바로 적용하려면 쉬는 때 `zigmini restart bridge`를 실행합니다.
|
|
306
324
|
|
|
325
|
+
브리지는 차례마다 모든 세션에 프로필 닉네임도 알려 줍니다. 그래서 닉네임을 위한 규칙은 필요하지 않습니다. main, 작업, 에이전트 세션이 모두 받습니다. main은 기본 에이전트 이름도 받고, 각 에이전트는 만들거나 편집할 때 정한 자기 이름을 받습니다. 바꾼 닉네임과 이름은 다음 차례부터 적용됩니다. 닉네임이 기본값("Me" 또는 "나")이면 세션은 닉네임이 없다는 안내를 받습니다.
|
|
326
|
+
|
|
307
327
|
## 문제 해결
|
|
308
328
|
|
|
309
329
|
1. 상태를 봅니다.
|
|
@@ -331,7 +351,7 @@ zigmini update <버전> # 지정한 버전으로 업데이트
|
|
|
331
351
|
```sh
|
|
332
352
|
zigmini setup --access lan # 또는 tailscale, domain --domain https://<도메인>
|
|
333
353
|
```
|
|
334
|
-
- **설치 뒤 에이전트가 답하지 않습니다.** 모델 계정에 로그인하지 않았습니다(예: 로그인 단계에서 `s`를 입력함). 설치 15~18번(`bun add -g omo-ai@5.1.
|
|
354
|
+
- **설치 뒤 에이전트가 답하지 않습니다.** 모델 계정에 로그인하지 않았습니다(예: 로그인 단계에서 `s`를 입력함). 설치 15~18번(`bun add -g omo-ai@5.1.51`, `omo`, `/login`)을 합니다. 그 뒤 `zigmini setup`을 다시 실행합니다. "모델 계정: 로그인됨"이 나오고, 이미 끝난 단계는 유지됩니다. `--agent-dir`을 쓰면 `OMO_CODING_AGENT_DIR=<경로> omo`로 실행해야 그 폴더에 로그인됩니다.
|
|
335
355
|
- 오래된 DB 백업, 쓰지 않는 엔진 버전, 업데이트에서 남은 파일은 웹 화면 설정의 "정리"에서 확인하고, 고른 항목만 지웁니다.
|
|
336
356
|
|
|
337
357
|
## 제거
|
package/README.md
CHANGED
|
@@ -97,7 +97,7 @@ The gateway runs the agent with the permission preset `full-access`. The agent d
|
|
|
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
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
|
-
bun add -g omo-ai@5.1.
|
|
100
|
+
bun add -g omo-ai@5.1.51
|
|
101
101
|
```
|
|
102
102
|
16. Check that the shell finds the `omo` command. The result must be one version line.
|
|
103
103
|
```sh
|
|
@@ -118,7 +118,7 @@ The gateway runs the agent with the permission preset `full-access`. The agent d
|
|
|
118
118
|
1. It asks for the language: `Language / 언어 [1] English [2] 한국어`. All later messages use this language. The choice is saved in `~/.zigmini/language` and used by `zigmini setup --access`, `zigmini pair` and the ready wait of `zigmini start` and `restart`. `--lang en|ko` picks it without the question. Without a question (`--non-interactive`) the saved language is used, else the system language (`LANG`, `ko…` means Korean), else English.
|
|
119
119
|
2. It shows the permission notice and asks for your consent.
|
|
120
120
|
3. It creates the home folder `~/.zigmini`. If the rules file of this installation (`~/.zigmini/rules.md`) does not exist, it creates an empty one. See "Agent rules" below.
|
|
121
|
-
4. It downloads the pinned version of the agent engine (omo-ai), checks its hash and patches it. The package decides the version (`src/engine/compat.json`; engine 5.1.
|
|
121
|
+
4. It downloads the pinned version of the agent engine (omo-ai), checks its hash and patches it. The package decides the version (`src/engine/compat.json`; engine 5.1.51 at the time of writing). It shows a summary of the engine license and asks for your consent (`y`).
|
|
122
122
|
5. It installs the global `omo` command with `bun add -g omo-ai@<version>`, the same stock version as the pinned engine. If the global `omo` already has this version, it skips the installation. If it has another version, it asks `Replace it with <version>? (y/N)`; without a question it keeps the installed one. If the installation fails, it shows the long command of the pinned engine for the login instead.
|
|
123
123
|
6. It checks the agent folder and the login state of the model account. The default agent folder is `~/.omo/agent`. Other OMO installations that use the same folder share the login data. If you are not logged in, it shows this box and waits:
|
|
124
124
|
```text
|
|
@@ -195,6 +195,17 @@ 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 1.0.0-beta.1
|
|
199
|
+
|
|
200
|
+
Release 1.0.0-beta.1 (2026-11-02 KST, Android `versionCode` 30) is the first candidate for 1.0.0. It selects engine `5.1.51-zgw` revision 3 (OMO 5.1.51, immutable build `5.1.51-zgw.3`, senpi 2026.10.27-1, thread schema 10). Full notes: [docs/releases/1.0.0-beta.1.md](docs/releases/1.0.0-beta.1.md).
|
|
201
|
+
|
|
202
|
+
- **Agents:** make your own specialist chats on the web, each with its own session, model and knowledge folder.
|
|
203
|
+
- **Security baseline:** one baseline in Settings > Security check, and `zigmini scan` for any repository.
|
|
204
|
+
- **Settings:** switches for checks and formal verification, per-tool Install buttons, and one UI language (English or Korean).
|
|
205
|
+
- **Chat:** `/compact`, and every session knows your profile nickname.
|
|
206
|
+
- **Engine 5.1.51:** large summaries no longer fail on the 1M-context credit refusal.
|
|
207
|
+
- **App:** new APK for switches, Install buttons and the memo layout.
|
|
208
|
+
|
|
198
209
|
## What's new in 0.9.0-beta.3
|
|
199
210
|
|
|
200
211
|
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).
|
|
@@ -248,7 +259,11 @@ Before the gateway hands a message to the engine, it checks the message for valu
|
|
|
248
259
|
|
|
249
260
|
When it finds something, the gateway holds the message and does not send it. The gateway itself (not the engine) shows a "보안검사 결과" (security check result) card on the web and in the app. The card lists each value with its kind and its line and column in the message, and asks whether these values may be exposed. "보내기" (send) sends the original message to the engine unchanged. "보내지 않기" (don't send) drops it, and the web puts the text back into the input box so you can fix it. The values never reach the engine, its session files, the conversation history or the logs. Held messages live only in gateway memory: a gateway restart drops them without sending them, and the web card then says so.
|
|
250
261
|
|
|
251
|
-
The check is on by default. Turn it off or on with
|
|
262
|
+
The check is on by default. Turn it off or on with the "Message check before the engine" switch in the web or app settings. The setting is stored in `~/.zigmini/data/security-check` and survives a restart. With the check off, messages go to the engine without a check. The list of kinds that the check finds is in [docs/security-check.md](docs/security-check.md). Each setting shows a short summary; the info icon shows the full description (a tooltip on the web, a dialog in the app). Settings text follows the screen language picked under "Language" in settings (English by default).
|
|
263
|
+
|
|
264
|
+
Two more switches sit in the web settings (improvement 250). In the security check group, "Output check" (on by default) controls the check of work output: `zigmini scan` finds secret-like values and the values in the security baseline so they do not leak to GitHub or other outside places, and new main, work and agent sessions get the rule to run it before a merge. Off makes `zigmini scan` stop without scanning (exit code 4) and removes that rule from new sessions. The check of messages to the engine has its own switch. A "pass the security check before a dev merge" duty is an operator rule, not a gateway feature: this repository's `test:all` security checks run regardless of this switch. "Formal verification" is a settings group title with one row per tool (TLA+/TLC 1.7.4 today). Each tool's switch chooses whether checks (`bun run formal:check`) use that tool once it's installed; the switch never installs anything. A tool that isn't installed shows "Not installed" and an "Install" button. Pressing Install installs only that tool: `openjdk@21` with Homebrew (no `brew link`, the system java stays) and tla2tools.jar 1.7.4, checked by size and SHA-256, into `~/.zigmini/formal-tools`. While it runs, the row shows "Installing…". A failed install shows "Install failed", the cause and the Install button again. Without Homebrew, the cause tells you to install Homebrew from https://brew.sh and press Install again. Nothing is installed until you press Install. If your old overall formal verification switch was off, every tool switch stays off after the update.
|
|
265
|
+
|
|
266
|
+
The same rules also check repositories. The gateway keeps one security baseline: terms you add under "보안 기준" (security baseline) in the web settings, plus this Mac's home path and account name, which it adds by itself. It exports the baseline to `~/.zigmini/secrets/security-baseline.json`. Run `zigmini scan` in a Git repository (or `zigmini scan <repo>`) to check its tracked files and the Git objects of the work branch and `dev`. Exit codes: 0 no findings, 1 findings, 2 input or run error, 3 baseline missing, empty or out of date. A remembered value passes the repository scan only when "저장소 검사에도 허용" (also allow in repository scan) is on for it. To move an old plain-text list into the baseline, run `zigmini security import-baseline` while the gateway runs. Details: [docs/security-check.md](docs/security-check.md#보안-기준과-zigmini-scan).
|
|
252
267
|
|
|
253
268
|
## Update
|
|
254
269
|
|
|
@@ -291,10 +306,13 @@ An update to a version that does not support the zero-downtime switch (including
|
|
|
291
306
|
| `zigmini rotate-main [--restart] [--wait <초>] [--foreground]` | Moves the main conversation to a fresh engine session, like "새 세션" (New session) in the web. Runs detached and logs to `~/.zigmini/logs/rotate-main.log`. `--restart` stops and starts the gateway first (`<초>`: seconds) |
|
|
292
307
|
| `zigmini migrate` | Copies an old Docker installation (`~/.zigmini-gateway`) to the new layout. The old folder is not changed |
|
|
293
308
|
| `zigmini migrate-run` | Waits until idle, stops the old runtime, backs up, runs migrate and setup, then checks. If this fails, it goes back to the old runtime |
|
|
309
|
+
| `zigmini scan [<repo>] [--scope all\|tracked\|git] [--json] [--out <file>]` | Checks a repository against the security baseline (exit 0 clean, 1 findings, 2 error, 3 baseline unusable) |
|
|
310
|
+
| `zigmini security import-baseline [--from <file>] [--dry-run]` | Adds the values of a plain-text list to the security baseline through the running gateway. Prints counts only |
|
|
294
311
|
| `zigmini --version` | Prints the installed version |
|
|
295
312
|
| `zigmini --help` | Prints the help |
|
|
296
313
|
|
|
297
314
|
When you send `/usage` in the chat, the gateway replies at once with the usage of the logged-in model account.
|
|
315
|
+
Send `/compact` in a gateway chat to summarize the conversation right away. Text after it, like `/compact focus on decisions`, becomes extra instructions for the summary. It's refused with a short notice, and not queued, while an answer, another summary, a model retry or a session replacement is running, or while the engine is disconnected.
|
|
298
316
|
|
|
299
317
|
## Agent rules
|
|
300
318
|
|
|
@@ -305,6 +323,8 @@ The bridge appends two rule files after the instructions of each agent session.
|
|
|
305
323
|
|
|
306
324
|
Sessions that open after a change use the new content. To apply it at once, run `zigmini restart bridge` while nothing is running.
|
|
307
325
|
|
|
326
|
+
The bridge also tells every session your profile nickname at each turn, so you don't need a rule for it. Main, work and agent sessions get it. Main also gets the default agent name, and each agent gets the name you gave it when you created or edited it. A changed nickname or name applies from the next turn. While the nickname is the default ("Me" or "나"), sessions are told that no nickname is set.
|
|
327
|
+
|
|
308
328
|
## Troubleshooting
|
|
309
329
|
|
|
310
330
|
1. Look at the state.
|
|
@@ -332,7 +352,7 @@ Use these workarounds.
|
|
|
332
352
|
```sh
|
|
333
353
|
zigmini setup --access lan # or tailscale, or domain --domain https://<도메인>
|
|
334
354
|
```
|
|
335
|
-
- **After the installation the agent does not answer.** The model account is not logged in (for example you typed `s` at the login step). Do install steps 15 to 18 (`bun add -g omo-ai@5.1.
|
|
355
|
+
- **After the installation the agent does not answer.** The model account is not logged in (for example you typed `s` at the login step). Do install steps 15 to 18 (`bun add -g omo-ai@5.1.51`, `omo`, `/login`). Then run `zigmini setup` again. It shows "Model accounts: logged in" and keeps the steps that are already done. If you use `--agent-dir`, start `omo` with `OMO_CODING_AGENT_DIR=<경로> omo` so that it logs in to that folder.
|
|
336
356
|
- Old DB backups, unused engine versions and files left by updates appear in "정리" (Clean up) in the web screen settings. Only the items you select are deleted.
|
|
337
357
|
|
|
338
358
|
## Uninstall
|
|
@@ -12,7 +12,7 @@ zigmini 패키지 공통 에이전트 규칙입니다. 게이트웨이 브리지
|
|
|
12
12
|
7. main의 할 일 목록에 위임한 작업의 할 일을 옮겨 적지 않습니다. 새 결과가 없는 관찰 알림(시작, 대기, 연결 상태 등)은 채팅에 올리지 않습니다. 같은 보고가 다시 오면 한 줄로만 알립니다.
|
|
13
13
|
8. 시험, 계약 테스트, 끝에서 끝 확인으로 띄운 게이트웨이, 브리지, OMO 자식 프로세스와 임시 폴더는 성공, 실패, 중단 모두에서 정리합니다. 코드 변경, 산출물, 검증 증거는 지우지 않습니다.
|
|
14
14
|
9. 웹 화면 확인에는 Bun.WebView와 WebKit을 쓰지 않습니다. 작업이 띄운 headless Chrome을 마이크·카메라 가짜 장치 옵션으로 쓰고, 끝나면 종료합니다. 사용자 브라우저를 쓸 때는 작업이 연 백그라운드 탭만 씁니다. 화면 흉내, 뷰포트 같은 설정은 작업 탭에만 걸고 탭을 닫기 전에 지웁니다.
|
|
15
|
-
10. 게이트웨이가 떠 있는 동안 운영 DB를 다른 프로세스로 열지 않습니다. 조회는 게이트웨이 API와 로그로 합니다.
|
|
15
|
+
10. 게이트웨이가 떠 있는 동안 운영 DB를 다른 프로세스로 열지 않습니다. 조회는 게이트웨이 API와 로그로 합니다. <!--repo-security-check-->저장소 보안검사는 `zigmini scan <저장소>`로 하고 종료 코드를 그대로 보고합니다(0 깨끗함, 1 발견, 2 오류, 3 기준 사용 불가, 4 설정에서 결과물 검사 꺼짐). 이 명령이 보내는 읽기 전용 `GET /api/settings/security-check/baseline/revision`은 허용됩니다. 종료 코드 3이나 4이면 기준 파일을 직접 만들거나 고치지 않고 사용자에게 알립니다. 보고에는 규칙·위치·건수만 쓰고 값은 쓰지 않습니다.<!--/repo-security-check-->
|
|
16
16
|
11. 보고에는 증거가 있는 것만 씁니다. 확인된 것과 추정을 나눕니다. 코드 검토, 테스트 통과, dev 머지, 운영 배포, OMO 교체, 앱 설치를 구분하고 각각의 주체와 대상을 적습니다. 다시 시작한 뒤에는 짧은 "재시작 완료" 알림을 먼저 보냅니다.
|
|
17
17
|
12. 로컬 파일 경로를 웹 링크처럼 보여 주지 않습니다.
|
|
18
18
|
13. 사용자의 시간 표현은 사용자의 현지 시간으로 해석합니다. 보고하는 시각도 현지 시간으로 씁니다.
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"versionCode":
|
|
3
|
-
"versionName": "0.
|
|
4
|
-
"sha256": "
|
|
2
|
+
"versionCode": 30,
|
|
3
|
+
"versionName": "1.0.0-beta.1",
|
|
4
|
+
"sha256": "656d1c9b1f53acafc36d427351f219b3a008bb8930090f06e19448633258e53e"
|
|
5
5
|
}
|
package/assets/build.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"commit":"
|
|
1
|
+
{"commit":"a651863ce49d160d13a5ebf0399ce6e1551b6dd0"}
|
package/docs/manual.ko.md
CHANGED
|
@@ -19,7 +19,7 @@ zigmini는 화면 두 개를 제공합니다.
|
|
|
19
19
|
|
|
20
20
|
웹 화면은 세 부분으로 나뉩니다.
|
|
21
21
|
|
|
22
|
-
- 왼쪽 사이드바:
|
|
22
|
+
- 왼쪽 사이드바: 기본 에이전트(main) 대화, 에이전트마다 대화 하나씩인 에이전트 묶음, 작업 상태 영역, 내 프로필, 기본 에이전트 프로필이 있습니다. 사이드바 맨 위의 "엔진" 배지는 엔진 연결 상태를 보여 줍니다.
|
|
23
23
|
- 가운데 채팅: 헤더, 메시지 목록, 입력창이 있습니다.
|
|
24
24
|
- 오른쪽 패널: 확인함, 설정, 이벤트 패널이 열립니다.
|
|
25
25
|
|
|
@@ -65,9 +65,11 @@ Shift+Enter는 줄을 바꿉니다. 한글 조합 중에 누른 Enter는 메시
|
|
|
65
65
|
|
|
66
66
|
요약에 실패하면 엔진은 이전 작업 문맥을 유지하고 멈춥니다. 비상 축약본을 대신 적용하지 않습니다. 안내에 따라 모델 설정을 확인하거나 요약 제공자에 다시 로그인해 주세요. 사용 한도가 복구되기를 기다리거나 계정·조직 권한을 확인해야 할 수도 있습니다. 다른 실패도 원인을 해결한 뒤 계속할 지시를 보내거나 명시적으로 다시 시도해 주세요. 게이트웨이는 이전 입력을 다시 보내거나 새 세션을 시작하지 않습니다. 취소는 실패와 구분해서 표시합니다. 정상 요약도 모든 세부 정보의 보존을 보증하지 않습니다. 계속할 때 중요한 조건을 확인해 주세요.
|
|
67
67
|
|
|
68
|
+
원할 때 요약하려면 게이트웨이 대화(메인 또는 웹·앱의 다른 대화)에서 `/compact`를 보냅니다. 게이트웨이는 그 대화의 세션 요약을 엔진에 바로 요청합니다. 이 글은 모델에 프롬프트로 가지 않습니다. 명령 뒤에 글을 붙이면 요약의 추가 지시가 됩니다. 예: `/compact 결정 사항 위주로`. 게이트웨이는 다음 경우에 `/compact`를 거절합니다. 답변이 진행 중일 때, 요약이 이미 진행 중일 때, 엔진이 모델 요청을 다시 시도하는 중일 때, 세션을 교체하는 중일 때, 엔진 연결이 끊겼을 때입니다. 채팅에 한 줄 경고가 거절 이유와 할 일을 알려 줍니다. 거절한 `/compact`는 대기열에 넣지 않습니다. 나중에 다시 보내 주세요. 요약 안내는 위와 같이 시작 안내 한 개와 완료·취소·실패 안내 한 개입니다. 요약 시작 전에 엔진이 거절하면(예: 모델을 고르지 않음) 채팅에 오류 한 개가 나타납니다. 이때 이전 내용은 유지합니다. 아주 짧거나 이미 요약한 세션은 보통 실패 안내를 표시합니다. 실패한 `/compact`는 '요약이 두 번 연속 실패하면 새 세션을 연다'는 규칙의 횟수에 들어가지 않습니다. 자동 압축이 꺼져 있어도 `/compact`는 동작합니다. 작업 세션에는 `/compact`가 없습니다. 인용한 메시지나 이미지를 붙이면 `/compact`는 일반 입력입니다.
|
|
69
|
+
|
|
68
70
|
게이트웨이는 메인과 작업 세션을 엔진의 기존 앱 모드로 엽니다. 그래서 응답은 터미널이 아니라 채팅 화면에 맞춰집니다. 바꿀 설정은 없습니다. 앱 모드는 모든 모델 응답이 유효한 JSON 같은 요청 형식을 지킨다고 보장하지 않으며, 위의 요약 실패 복구도 바꾸지 않습니다.
|
|
69
71
|
|
|
70
|
-
|
|
72
|
+
사이드바에는 main 대화와 에이전트마다 대화 하나만 보입니다. 다른 역할의 대화가 필요하면 에이전트를 만듭니다(에이전트 절 참고). 이전 버전의 "+" 버튼으로 만든 대화는 화면에 보이지 않습니다. 게이트웨이는 그 데이터를 그대로 가지고 있습니다.
|
|
71
73
|
|
|
72
74
|
#### 슬래시 명령 메뉴
|
|
73
75
|
|
|
@@ -90,6 +92,8 @@ Shift+Enter는 줄을 바꿉니다. 한글 조합 중에 누른 Enter는 메시
|
|
|
90
92
|
|
|
91
93
|
README의 '명령' 절에 따르면 채팅에서 `/usage`를 보내면 게이트웨이가 모델 계정의 사용량을 답합니다.
|
|
92
94
|
|
|
95
|
+
메뉴에는 게이트웨이 명령 `/compact`도 있습니다. 이 명령은 원할 때 대화를 요약합니다. 자세한 내용은 위의 '대화 요약'을 참고해 주세요.
|
|
96
|
+
|
|
93
97
|
### 2.3 첨부와 참조
|
|
94
98
|
|
|
95
99
|
#### 흐름도와 구조도
|
|
@@ -199,21 +203,34 @@ README의 '명령' 절에 따르면 채팅에서 `/usage`를 보내면 게이트
|
|
|
199
203
|
|
|
200
204
|
헤더의 "설정" 버튼으로 엽니다. Esc, 닫기 버튼(×), 창 바깥 누르기로 닫습니다.
|
|
201
205
|
|
|
206
|
+
#### 언어
|
|
207
|
+
|
|
208
|
+
언어 선택기는 게이트웨이 전체의 화면 언어를 English(영어)나 한국어로 정합니다. 기본은 영어입니다. 선택한 언어로 웹 화면 문구와 툴팁, 앱 화면 문구가 바뀌며 웹과 앱이 함께 바뀝니다. 매뉴얼은 선택한 언어 판으로 열립니다. 게이트웨이가 보내는 고정 문구(채팅 안내와 오류, 업데이트 안내, `/version`·`/usage` 답, 알림 제목)도 다음 문구부터 이 언어를 씁니다. 이미 채팅에 있는 문구는 그때 언어를 유지합니다. 에이전트 답변과 사용자가 쓴 내용은 번역하지 않습니다.
|
|
209
|
+
|
|
202
210
|
#### 프로필
|
|
203
211
|
|
|
204
212
|
프로필은 사이드바 아래에 있습니다.
|
|
205
213
|
|
|
206
214
|
| 대상 | 방법 | 규칙 |
|
|
207
215
|
| --- | --- | --- |
|
|
208
|
-
| 내 닉네임 | 내 프로필을 두 번 누릅니다. | 20자까지입니다. 비우면 "나"
|
|
209
|
-
| 에이전트 이름 | 에이전트 프로필을 두 번 누릅니다. | 한글 10자, 영문 20자까지입니다. 너무 길면 바꾸지 않습니다. 비우면 "지그"
|
|
210
|
-
| 에이전트 아이콘 | 에이전트 아이콘을 두 번 누릅니다. | PNG, JPEG, WebP, 1MB 이하입니다. 가운데를 정사각형으로 자릅니다. 기본 아이콘으로 되돌릴 수 있습니다. |
|
|
216
|
+
| 내 닉네임 | 내 프로필을 두 번 누릅니다. | 20자까지입니다. 비우면 화면 언어의 기본값(영어 "Me", 한국어 "나")이 보입니다. |
|
|
217
|
+
| 기본 에이전트 이름 | 기본 에이전트 프로필을 두 번 누릅니다. | 한글 10자, 영문 20자까지입니다. 너무 길면 바꾸지 않습니다. 비우면 화면 언어의 기본값(영어 "Zig", 한국어 "지그")이 보입니다. 직접 정한 이름은 두 언어에서 그대로 보입니다. |
|
|
218
|
+
| 기본 에이전트 아이콘 | 기본 에이전트 아이콘을 두 번 누릅니다. | PNG, JPEG, WebP, 1MB 이하입니다. 가운데를 정사각형으로 자릅니다. 기본 아이콘으로 되돌릴 수 있습니다. |
|
|
211
219
|
|
|
212
220
|
이름 입력란에서 Enter는 저장하고 Esc는 취소합니다. 입력란을 벗어나도 저장합니다. 이름은 게이트웨이에 저장됩니다. 저장에 실패하면 이 브라우저에만 바뀐 이름이 보입니다.
|
|
213
221
|
|
|
222
|
+
게이트웨이는 차례마다 main, 작업, 에이전트 세션에 내 닉네임을 알려 줍니다. 그래서 모든 세션이 다음 차례부터 그 닉네임으로 부릅니다. main은 기본 에이전트 이름도 받고, 각 에이전트는 에이전트 화면에서 정한 자기 이름을 받습니다.
|
|
223
|
+
|
|
214
224
|
#### 보안검사
|
|
215
225
|
|
|
216
|
-
|
|
226
|
+
엔진으로 가는 메시지 검사, 결과물 검사, "형식 검증" 묶음 아래의 도구별 줄은 모두 스위치입니다. 항목마다 1~2줄 요약이 보입니다. 상세 설명은 웹에서는 정보 아이콘(i)에 마우스를 올리거나 키보드로 포커스하면 툴팁으로 보이고, 앱에서는 정보 아이콘을 누르면 창으로 열립니다. Android 설정 화면에도 같은 스위치가 있습니다.
|
|
227
|
+
|
|
228
|
+
- "엔진으로 가는 메시지 검사"는 보내는 메시지의 검사를 켜고 끕니다. 기본은 켜짐이고 게이트웨이가 설정을 기억합니다.
|
|
229
|
+
- "결과물 검사"는 작업 결과물 검사를 켜고 끕니다. 기본은 켜짐입니다. 켜지면 `zigmini scan`이 비밀값처럼 보인 값과 보안 기준의 값을 찾고, 새 세션 규칙에 "머지 전에 검사한다"는 의무가 들어갑니다. 끄면 `zigmini scan`이 검사하지 않고 종료 코드 4로 끝나며 그 의무가 빠집니다. 메시지 검사는 따로 켜고 끕니다.
|
|
230
|
+
- "형식 검증"은 묶음 제목이고, 그 아래에 도구마다 한 줄이 있습니다(지금은 TLA+). 줄마다 도구 이름과 상태, 정보 아이콘, 그 도구의 스위치가 있습니다. 스위치는 도구가 설치된 뒤 검사(`bun run formal:check`)에 쓸지만 정합니다. 스위치를 켜도 설치하지 않습니다.
|
|
231
|
+
- 설치되지 않은 도구는 "설치 안 됨"과 "설치" 버튼을 보입니다. "설치"를 누르면 그 도구만 Homebrew로 설치합니다(`brew link` 없이 `openjdk@21`, 크기와 SHA-256으로 확인한 tla2tools.jar 1.7.4). 설치하는 동안 그 줄에는 "설치 중…"이 보이고 버튼은 숨겨집니다. 설치가 끝나면 버튼이 사라집니다. "설치"를 누르기 전에는 아무것도 설치하지 않습니다.
|
|
232
|
+
- 설치가 실패하면 "설치 실패"와 줄 아래의 "실패 원인: …"이 보이고 "설치" 버튼이 다시 나타납니다. Homebrew가 없으면 원인에 https://brew.sh 에서 Homebrew를 설치한 뒤 설치를 다시 누르라는 안내가 나옵니다. 설치가 실패해도 스위치 값은 그대로입니다.
|
|
233
|
+
- 업데이트 전에 형식 검증 전체 설정이 꺼져 있었다면 업데이트 뒤에도 모든 도구 스위치가 꺼진 채로 남습니다.
|
|
217
234
|
- 메시지나 확인함 답에 허용하지 않은 값이 탐지되면 게이트웨이가 에이전트에 보내기 전에 보류합니다. 확인함과 채팅에는 같은 보안 항목이 보입니다. 항목은 기억할 전체 값과 종류를 보여 줍니다.
|
|
218
235
|
- 보내기를 선택하면 원래 메시지를 전송하고 표시한 정확한 값을 이 게이트웨이에 기억합니다. 다음부터 같은 값은 다시 묻지 않습니다. 다른 값은 계속 확인합니다. 이미 보류한 메시지를 자동으로 보내지는 않습니다.
|
|
219
236
|
- 취소는 이번 전송만 중단합니다. 기존 작업은 중단하지 않습니다. 보류한 내용이 확인함 답이면 원래 질문은 답하지 않은 상태로 남고 답변 입력란도 유지합니다.
|
|
@@ -223,7 +240,8 @@ README의 '명령' 절에 따르면 채팅에서 `/usage`를 보내면 게이트
|
|
|
223
240
|
- 허용 목록은 이 설치에만 비공개로 저장하며 게이트웨이를 다시 시작해도 유지합니다. 웹 설정의 보안검사 구역에서 목록을 봅니다. Android는 매뉴얼 버튼이 있는 게이트웨이 설정 화면에서 허용 값 목록을 엽니다.
|
|
224
241
|
- 항목마다 전체 값, 종류, 승인 시각, 승인한 클라이언트를 보여 줍니다. 개별 삭제나 전체 삭제를 하면 다음 전송부터 해당 값을 다시 검사합니다. 삭제는 이미 승인한 전송을 취소하거나 보낸 메시지를 지우지 않습니다.
|
|
225
242
|
- 구형 앱의 보내기는 한 번만 전송하며 값을 기억하지 않습니다. 값을 기억하려면 새 화면의 전송·기억 선택이 필요합니다. 미승인 원문은 일반 질문 기록이나 대화 이력에 저장하지 않습니다. 게이트웨이를 다시 시작하면 보류 원문은 사라집니다.
|
|
226
|
-
- 이
|
|
243
|
+
- 기억한 값은 기본으로 전송에만 허용합니다. 항목마다 "저장소 검사에도 허용" 스위치가 있습니다. 스위치를 켠 값만 `zigmini scan`을 통과합니다. 이 맥의 홈 경로나 계정 이름과 같은 값은 켤 수 없습니다.
|
|
244
|
+
- "보안 기준"은 저장소 검사가 항상 찾는 용어 목록입니다. 용어는 웹에서 더합니다. 웹과 Android에서 확인을 거쳐 지울 수 있습니다. 이 맥의 홈 경로와 계정 이름 행은 자동 항목이며 고칠 수 없습니다. 상태 줄에 게이트웨이가 기준 파일을 마지막으로 내보낸 시각이 보입니다.
|
|
227
245
|
|
|
228
246
|
#### 업데이트
|
|
229
247
|
|
|
@@ -296,10 +314,30 @@ Android 앱(APK)을 받는 QR이 보입니다. 폰 카메라로 QR을 찍어 APK
|
|
|
296
314
|
|
|
297
315
|
### 2.10 매뉴얼 보기
|
|
298
316
|
|
|
299
|
-
- 웹: 설정 창 위쪽의 "매뉴얼" 버튼을 누릅니다.
|
|
317
|
+
- 웹: 설정 창 위쪽의 "매뉴얼" 버튼을 누릅니다. 선택한 화면 언어 판이 먼저 보입니다. "English" 버튼이나 문서 첫 줄의 링크는 영어 판으로 바꿉니다. Esc, 닫기 버튼(×), 창 바깥 누르기로 닫습니다.
|
|
300
318
|
- 앱: 헤더의 상태 태그(예: "작업 상태 확인 중")를 짧게 눌러 게이트웨이 연결 화면을 엽니다. 그 화면의 "매뉴얼" 버튼을 누릅니다. "English" 버튼은 영어 판으로 바꿉니다. "닫기"나 뒤로 가기는 연결 화면으로 돌아갑니다.
|
|
301
319
|
- 게이트웨이가 매뉴얼을 주지 않으면 "이 게이트웨이 버전에는 매뉴얼이 없습니다" 안내가 보입니다. 게이트웨이를 업데이트하면 볼 수 있습니다.
|
|
302
320
|
|
|
321
|
+
### 2.11 에이전트
|
|
322
|
+
|
|
323
|
+
에이전트는 사용자가 웹에서 만드는 역할이 붙은 대화입니다. 에이전트마다 대화, 대화 기록, 엔진 세션, 지식 폴더가 따로 있습니다. 에이전트는 기본 에이전트(main, 지그)와 분리됩니다. 기본 에이전트는 그대로 사용자의 비서이고 작업과 확인함을 관리합니다. 에이전트는 면접 연습 같은 일 하나를 맡고, 작업이나 다른 세션을 관리하지 않습니다. 기본으로 들어 있는 에이전트는 없습니다.
|
|
324
|
+
|
|
325
|
+
용어: 기본 에이전트(main, 지그)는 게이트웨이에 처음부터 있는 대화입니다. 에이전트는 사용자가 만드는 역할 대화입니다. 작업 세션과 하위 작업은 일 하나를 실행하는 별도 엔진 세션이며, 에이전트가 아닙니다.
|
|
326
|
+
|
|
327
|
+
```zigmini-diagram
|
|
328
|
+
{"version":1,"title":"기본 에이전트, 에이전트, 작업 세션","nodes":[{"id":"user","label":"사용자"},{"id":"main","label":"기본 에이전트 (main, 지그)"},{"id":"agent","label":"에이전트 대화"},{"id":"work","label":"작업"},{"id":"knowledge","label":"에이전트 지식 폴더"}],"edges":[{"from":"user","to":"main"},{"from":"user","to":"agent"},{"from":"main","to":"work"},{"from":"agent","to":"knowledge"}]}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
- **사이드바.** 에이전트는 별도 묶음에 보입니다. 묶음 이름 옆 **⋯** 버튼(또는 대화창 위쪽 **에이전트** 버튼)은 에이전트 화면을 엽니다. 이 화면에는 목록, 공통 기본값, 보관함이 있습니다. 에이전트 추가와 편집은 이 화면에서만 합니다. 목록의 **+ 에이전트**는 새 에이전트를 만듭니다. 줄마다 있는 **편집**은 그 에이전트의 편집 화면을 엽니다. 사이드바와 대화창 머리에는 추가·편집 버튼이 없습니다. 에이전트마다 대화는 정확히 하나입니다.
|
|
332
|
+
- **편집 화면.** 이름과 목적 한 줄은 꼭 채웁니다. 선택 항목은 아이콘, 모델(제공자와 모델 ID를 둘 다 채우거나 둘 다 비움, 비우면 게이트웨이의 현재 모델), 사고 수준, 스킬 허용 목록, 웹 리서치(web_search, webfetch), 답이 끝나면 앱 알림, 게이트웨이 규칙·설치 규칙 붙이기, MEMORY.md 상한(0부터 32768바이트)입니다. 셸과 코드 실행은 늘 꺼져 있습니다. 항목마다 값의 출처(패키지 기본값, 공통 기본값, 이 에이전트)가 보입니다. 본문은 역할 지시문입니다.
|
|
333
|
+
- **바꾼 정의는 새 세션부터 적용합니다.** 정의를 고치면 대화 머리줄에 "정의 바뀜 · 새 세션부터 적용"이 보입니다. 열린 세션은 이전 정의를 씁니다. 이 표시를 누르면 새 세션을 시작해 바뀐 정의를 적용합니다.
|
|
334
|
+
- **스킬.** 에이전트 대화의 "/" 메뉴에는 허용 목록 밖의 스킬이 보이지 않습니다.
|
|
335
|
+
- **지식.** 에이전트의 파일 도구는 자기 지식 폴더 안에서만 동작합니다. 자료 파일은 에이전트 화면의 목록에서 **편집**을 눌러 연 편집 화면에서 올립니다. 웹 리서치를 켜면 조사 결과를 `knowledge/notes/` 아래에 쓰고, 사실마다 출처 URL을 같은 줄에 적습니다. 에이전트는 자기 대화 기록만 검색합니다.
|
|
336
|
+
- **복제.** 복제하면 정의, 자료 파일, MEMORY.md를 "<이름> 사본"이라는 새 에이전트로 복사합니다. 대화는 복사하지 않습니다.
|
|
337
|
+
- **삭제와 되살리기.** 삭제하려면 에이전트 이름을 똑같이 입력합니다. 대화는 숨기고, 정의와 지식은 보관함에 30일 둡니다. 진행 중인 턴이나 열린 질문이 있으면 삭제할 수 없습니다. 보관함에서 되살리면 대화가 다시 보입니다.
|
|
338
|
+
- **기본 에이전트.** 지그는 에이전트 목록(이름, 목적, 링크)을 볼 수 있지만 에이전트와 대화하지 않습니다. 보관함의 에이전트는 목록에 나오지 않습니다.
|
|
339
|
+
- **Android.** 앱은 기본 에이전트(main) 대화만 씁니다. 에이전트 대화는 지금은 웹에서만 씁니다.
|
|
340
|
+
|
|
303
341
|
## 3. 키보드 단축키
|
|
304
342
|
|
|
305
343
|
| 키 | 위치(어디서) | 동작 |
|
|
@@ -324,9 +362,9 @@ Android 앱(APK)을 받는 QR이 보입니다. 폰 카메라로 QR을 찍어 APK
|
|
|
324
362
|
| Tab, Shift+Tab | 설정 | 초점이 설정 안에서만 돕니다. |
|
|
325
363
|
| Esc | 매뉴얼 | 매뉴얼을 닫고 설정으로 돌아갑니다. |
|
|
326
364
|
| Tab, Shift+Tab | 매뉴얼 | 초점이 매뉴얼 안에서만 돕니다. |
|
|
327
|
-
| Enter | 닉네임, 에이전트 이름 입력란 | 저장합니다. |
|
|
328
|
-
| Esc | 닉네임, 에이전트 이름 입력란 | 바꾸지 않고 닫습니다. |
|
|
329
|
-
| Esc | 에이전트 아이콘 편집 창 | 바꾸지 않고 닫습니다. |
|
|
365
|
+
| Enter | 닉네임, 기본 에이전트 이름 입력란 | 저장합니다. |
|
|
366
|
+
| Esc | 닉네임, 기본 에이전트 이름 입력란 | 바꾸지 않고 닫습니다. |
|
|
367
|
+
| Esc | 기본 에이전트 아이콘 편집 창 | 바꾸지 않고 닫습니다. |
|
|
330
368
|
|
|
331
369
|
Ctrl 단축키는 Cmd, Alt, Shift와 함께 누르면 동작하지 않습니다. 한글 자판에서도 같은 키 위치로 동작합니다.
|
|
332
370
|
|
|
@@ -453,6 +491,8 @@ Ctrl 단축키는 Cmd, Alt, Shift와 함께 누르면 동작하지 않습니다.
|
|
|
453
491
|
- `zigmini pair [--apk]`: 폰 등록 QR이나 앱 내려받기 QR을 보여 줍니다.
|
|
454
492
|
- `zigmini consent`: 권한 안내를 보이고 동의를 기록합니다.
|
|
455
493
|
- `zigmini update [버전]`: 업데이트합니다.
|
|
494
|
+
- `zigmini scan [<저장소>]`: 보안 기준으로 저장소를 검사합니다. 종료 코드 0 깨끗함, 1 발견, 2 오류, 3 기준 없음·비어 있음·낡음.
|
|
495
|
+
- `zigmini security import-baseline [--dry-run]`: 게이트웨이가 켜진 상태에서 옛 평문 목록을 보안 기준에 더합니다.
|
|
456
496
|
- `zigmini rotate-main [--restart]`: main 대화를 새 세션으로 교체합니다. "새 세션"과 같습니다. 먼저 운영자 허가를 받습니다. 자세한 내용은 운영 문서를 보세요.
|
|
457
497
|
|
|
458
498
|
전체 목록은 README의 '명령' 절을 보세요.
|
package/docs/manual.md
CHANGED
|
@@ -19,7 +19,7 @@ zigmini has two surfaces.
|
|
|
19
19
|
|
|
20
20
|
The web screen has three parts.
|
|
21
21
|
|
|
22
|
-
- Left sidebar: the conversation
|
|
22
|
+
- Left sidebar: the default agent (main) conversation, the agent group with one conversation per agent, the work status area, your profile and the default agent profile. The "엔진" (engine) badge at the top shows the engine connection.
|
|
23
23
|
- Center chat: the header, the message list and the input box.
|
|
24
24
|
- Right panels: the inbox, settings and the event panel open here.
|
|
25
25
|
|
|
@@ -65,9 +65,11 @@ No new setting is required. With `compaction.model` absent or set to `"auto"`, t
|
|
|
65
65
|
|
|
66
66
|
If a summary fails, the engine keeps the previous working context and stops instead of applying an emergency shortened substitute. The notice tells you what to do: check the model setting, log in to the summary provider again, wait for the usage limit to recover, or check account and organization permissions. Other failures require you to resolve the cause and explicitly continue or retry. The gateway does not resend the previous input or start a new session. A cancellation is separate from a failure. A successful summary is not a guarantee that every detail survives; check critical requirements when you continue.
|
|
67
67
|
|
|
68
|
+
To summarize on demand, send `/compact` in a gateway chat (main or another web or app chat). The gateway asks the engine to summarize that chat's session right away, and the text never goes to the model as a prompt. Add text after the command to give extra instructions for the summary, for example `/compact 결정 사항 위주로`. The gateway refuses `/compact` while an answer is running, a summary is already running, the engine is retrying a model request, the session is being replaced, or the engine is disconnected. A one-line warning says why and what to do. A refused `/compact` isn't queued, so send it again later. You get the usual start notice and one completed, cancelled or failed notice. If the engine refuses before a summary starts, for example with no model selected, chat shows one error that keeps the previous content. A very short or already summarized session shows the usual failure notice. A failed `/compact` doesn't count toward the rule that two failed summaries in a row open a fresh session. It works even with automatic compaction off. Work sessions don't get `/compact`. With a quoted message or an image attached, `/compact` is ordinary input.
|
|
69
|
+
|
|
68
70
|
The gateway opens main and work sessions in the engine's existing app mode, so replies are shaped for the chat screen rather than a terminal. You don't need to change any setting. App mode doesn't guarantee that every model answer follows a requested format such as valid JSON, and it doesn't change the summary recovery above.
|
|
69
71
|
|
|
70
|
-
|
|
72
|
+
The sidebar lists only the main conversation and one conversation per agent. For another role conversation, create an agent (see Agents). Conversations made with the "+" button of earlier versions no longer appear anywhere; the gateway keeps their data.
|
|
71
73
|
|
|
72
74
|
#### Slash command menu
|
|
73
75
|
|
|
@@ -90,6 +92,8 @@ With voice off, the voice commands leave the menu. Typed by hand, they get the r
|
|
|
90
92
|
|
|
91
93
|
The README's Commands section says that sending `/usage` in chat makes the gateway reply with the model account's usage.
|
|
92
94
|
|
|
95
|
+
The menu also lists the gateway command `/compact`, which summarizes the conversation on demand. See Conversation summaries above.
|
|
96
|
+
|
|
93
97
|
### 2.3 Attachments and references
|
|
94
98
|
|
|
95
99
|
#### Flow and structure diagrams
|
|
@@ -142,7 +146,7 @@ Right-click a message to attach it as a reference tag above the input box. The m
|
|
|
142
146
|
|
|
143
147
|
#### Memo
|
|
144
148
|
|
|
145
|
-
The 쪽지 (memo) button opens and closes the memo. Keep frequent prompts or notes there. It saves on its own. 이미지 보관 keeps up to 2 images in it.
|
|
149
|
+
The 쪽지 (memo) button opens and closes the memo. Keep frequent prompts or notes there. It saves on its own. 이미지 보관 keeps up to 2 images in it. In the phone app the open memo takes the whole chat area and hides the chat input and the "새 앱 버전" row; close it with its 닫기 button or Back.
|
|
146
150
|
|
|
147
151
|
#### Auto copy
|
|
148
152
|
|
|
@@ -197,21 +201,34 @@ At phone width the sidebar is hidden. Click the Zig face in the header to switch
|
|
|
197
201
|
|
|
198
202
|
Open it with the header's 설정 button. Close it with Esc, the × button, or a click outside the card.
|
|
199
203
|
|
|
204
|
+
#### Language
|
|
205
|
+
|
|
206
|
+
The Language selector picks the screen language for the whole gateway: English or 한국어 (Korean). The default is English. The choice changes the web screen text, its tooltips and the app screen text, and the web and the app switch together. The manual opens in the selected language. Fixed messages from the gateway (chat notices and errors, update messages, `/version` and `/usage` replies, notification titles) also use it from the next message on; messages already in the chat keep their language. Agent replies and your own content aren't translated.
|
|
207
|
+
|
|
200
208
|
#### Profile
|
|
201
209
|
|
|
202
210
|
The profile sits at the bottom of the sidebar.
|
|
203
211
|
|
|
204
212
|
| Target | How | Rules |
|
|
205
213
|
| --- | --- | --- |
|
|
206
|
-
| Your nickname | Double-click your profile. | Up to 20 characters. Blank
|
|
207
|
-
|
|
|
208
|
-
|
|
|
214
|
+
| Your nickname | Double-click your profile. | Up to 20 characters. Blank shows the default of the screen language: "Me" in English, "나" in Korean. |
|
|
215
|
+
| Default agent name | Double-click the default agent profile. | Up to 10 Korean or 20 Latin characters. Too long and it isn't changed. Blank shows the default of the screen language: "Zig" in English, "지그" in Korean. A name you set stays as you wrote it in both languages. |
|
|
216
|
+
| Default agent icon | Double-click the default agent icon. | PNG, JPEG or WebP, 1 MB at most. The center is cropped to a square. You can go back to the default icon. |
|
|
209
217
|
|
|
210
218
|
In a name field, Enter saves and Esc cancels. Leaving the field also saves. Names are stored on the gateway. If that fails, only this browser shows the new name.
|
|
211
219
|
|
|
220
|
+
The gateway tells main, work and agent sessions your nickname at each turn, so every session calls you by it from the next turn. Main also learns the default agent name, and each agent learns the name you gave it in the Agents screen.
|
|
221
|
+
|
|
212
222
|
#### Security check (보안검사)
|
|
213
223
|
|
|
214
|
-
|
|
224
|
+
"Message check before the engine", "Output check" and each tool row under the "Formal verification" group are switches. Each item shows a one or two line summary. For the full description, hover over or focus the info icon (i) on the web, or tap the info icon in the app to open a dialog. The Android settings screen has the same switches.
|
|
225
|
+
|
|
226
|
+
- "Message check before the engine" turns the check of your messages on or off. It is on by default and the gateway keeps the choice.
|
|
227
|
+
- "Output check" turns the check of work output on or off. On (the default), `zigmini scan` looks for secret-like values and your baseline values, and new sessions get the rule to run it before a merge. Off makes `zigmini scan` stop without scanning (exit code 4) and removes that rule. The message check has its own switch.
|
|
228
|
+
- "Formal verification" is a group title with one row per tool (TLA+ today). Each row shows the tool name and its status, an info icon and the tool's switch. The switch chooses whether checks (`bun run formal:check`) use the tool once it's installed; it never installs anything.
|
|
229
|
+
- A tool that isn't installed shows "Not installed" and an "Install" button. Pressing Install installs only that tool with Homebrew (`openjdk@21` without `brew link`, and tla2tools.jar 1.7.4 checked by size and SHA-256). While it runs, the row shows "Installing…" and hides the button. Once installed, the button goes away. Nothing is installed until you press Install.
|
|
230
|
+
- A failed install shows "Install failed", "Failure reason: …" under the row and the Install button again. Without Homebrew, the reason tells you to install Homebrew from https://brew.sh and press Install again. A failed install keeps the switch as you set it.
|
|
231
|
+
- If your old overall formal verification setting was off, every tool switch stays off after the update.
|
|
215
232
|
- When a message or inbox answer contains a detected value that is not allowed, the gateway holds it before sending it to the agent. The same security item appears in the inbox and chat. It shows the complete values to be remembered and their types.
|
|
216
233
|
- Approving sends the original message and remembers the displayed exact values on this gateway. The same values do not prompt again. A different value still needs approval. Existing held messages do not send automatically.
|
|
217
234
|
- Cancel stops only this transmission. It does not stop the existing work. If the held transmission is an inbox answer, the original question remains unanswered and its answer form stays available.
|
|
@@ -221,7 +238,8 @@ In a name field, Enter saves and Esc cancels. Leaving the field also saves. Name
|
|
|
221
238
|
- The allowed-value list is private to this installation and survives gateway restarts. Web settings show the list under Security check. On Android, open the gateway settings screen that contains Manual, then open the allowed values.
|
|
222
239
|
- Each entry shows its full value, type, approval time and approving client. Remove one entry or clear the list to check those values again on future transmissions. Removal does not cancel a transmission already approved or erase a sent message.
|
|
223
240
|
- An older app's send-only approval still sends once without remembering values. Remembering requires the new send-and-remember choice. Unapproved original messages are not saved in ordinary question records or history; pending originals are lost on gateway restart.
|
|
224
|
-
-
|
|
241
|
+
- By default a remembered value is allowed only for transmission. Each entry has a "저장소 검사에도 허용" (also allow in repository scan) switch. Only values with the switch on pass `zigmini scan`. A value equal to this Mac's home path or account name can't be switched on.
|
|
242
|
+
- "보안 기준" (security baseline) lists the terms that the repository scan always looks for. Add a term on the web; the web and Android can remove one after a confirmation. Rows for this Mac's home path and account name are automatic and read-only. The status line shows when the gateway last exported the baseline file.
|
|
225
243
|
|
|
226
244
|
#### Update (업데이트)
|
|
227
245
|
|
|
@@ -294,10 +312,30 @@ Voice features work only while voice is on (음성 켜짐).
|
|
|
294
312
|
|
|
295
313
|
### 2.10 Viewing the manual
|
|
296
314
|
|
|
297
|
-
- Web: click the 매뉴얼 (manual) button at the top of the settings dialog. The
|
|
315
|
+
- Web: click the 매뉴얼 (manual) button at the top of the settings dialog. The version in the selected screen language opens first. The "English" button or the link on the first line of the document switches to the English version. Esc, the close button (×) or a click outside the dialog closes it.
|
|
298
316
|
- App: short press the header status tag (for example "작업 상태 확인 중") to open the gateway connection screen, then tap its 매뉴얼 button. The "English" button switches to the English version. 닫기 (close) or Back returns to the connection screen.
|
|
299
317
|
- When the gateway does not serve the manual, the notice "이 게이트웨이 버전에는 매뉴얼이 없습니다" (this gateway version has no manual) shows. Update the gateway to read it.
|
|
300
318
|
|
|
319
|
+
### 2.11 Agents
|
|
320
|
+
|
|
321
|
+
An agent is a conversation with a role, which you create on the web. Each agent has its own conversation, history, engine session and knowledge folder. It's separate from the default agent (main, Zig). The default agent stays your assistant and keeps managing work and the inbox. An agent does one job, like interview practice, and doesn't manage work or other sessions. No agents come built in.
|
|
322
|
+
|
|
323
|
+
Terms: the default agent (main, Zig) is the conversation the gateway has from the start. An agent is a role conversation that you create. A work session or a sub-task is a separate engine session that runs one job; it is not an agent.
|
|
324
|
+
|
|
325
|
+
```zigmini-diagram
|
|
326
|
+
{"version":1,"title":"Default agent, agents and work sessions","nodes":[{"id":"user","label":"You"},{"id":"main","label":"Default agent (main, Zig)"},{"id":"agent","label":"Agent conversation"},{"id":"work","label":"Work"},{"id":"knowledge","label":"Agent knowledge folder"}],"edges":[{"from":"user","to":"main"},{"from":"user","to":"agent"},{"from":"main","to":"work"},{"from":"agent","to":"knowledge"}]}
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
- **Sidebar.** Agents appear in their own group. The **⋯** button beside the group name (or **Agents** at the top of the chat) opens the Agents screen with three views: **List**, **Shared defaults** and **Archive**. You create and edit agents only on this screen: **+ Agent** in **List** creates one, and **Edit** on a row opens its editor. The sidebar and the chat header have no add or edit button. Each agent has exactly one conversation.
|
|
330
|
+
- **Editor.** Name and a one-line purpose are required. Optional fields: icon, model (provider and model ID, both filled or both empty; empty means the gateway's current model), thinking level, skill allow list, web research (web_search, webfetch), app notification when a reply ends, gateway and install rules on or off, and the MEMORY.md size limit (0 to 32768 bytes). Shell and code execution are always off. Each field shows where its value comes from: package default, shared default or this agent. The body is the role instruction.
|
|
331
|
+
- **Changes apply from the next session.** After you edit an agent, its header shows **Definition changed · applies from the next session**. The open session keeps the old definition. Click the badge to start a new session with the edited one.
|
|
332
|
+
- **Skills.** The "/" menu in an agent conversation hides skills outside its allow list.
|
|
333
|
+
- **Knowledge.** The agent's file tools work only inside its knowledge folder. Upload source files in the agent's editor (**Agents** screen, **List**, **Edit**). With web research on, research notes are saved under `knowledge/notes/` with the source URL beside each fact. An agent can search only its own conversation history.
|
|
334
|
+
- **Clone.** Cloning copies the definition, source files and MEMORY.md into a new agent named "<name> 사본". The conversation isn't copied.
|
|
335
|
+
- **Delete and restore.** To delete, type the agent's exact name. The conversation is hidden, and the definition and knowledge move to **Archive** for 30 days. You can't delete during a running turn or an open question. **Restore** in **Archive** brings the conversation back.
|
|
336
|
+
- **Default agent.** Zig can list agents (name, purpose, link) but can't talk to them. Trashed agents aren't listed.
|
|
337
|
+
- **Android.** The app stays on the default agent (main) conversation. Agent conversations are web only for now.
|
|
338
|
+
|
|
301
339
|
## 3. Keyboard shortcuts
|
|
302
340
|
|
|
303
341
|
| Key | Where | What it does |
|
|
@@ -322,9 +360,9 @@ Voice features work only while voice is on (음성 켜짐).
|
|
|
322
360
|
| Tab, Shift+Tab | Settings | Focus cycles inside settings. |
|
|
323
361
|
| Esc | Manual | Closes the manual and returns to settings. |
|
|
324
362
|
| Tab, Shift+Tab | Manual | Focus cycles inside the manual. |
|
|
325
|
-
| Enter | Nickname or agent name field | Saves. |
|
|
326
|
-
| Esc | Nickname or agent name field | Closes without change. |
|
|
327
|
-
| Esc |
|
|
363
|
+
| Enter | Nickname or default agent name field | Saves. |
|
|
364
|
+
| Esc | Nickname or default agent name field | Closes without change. |
|
|
365
|
+
| Esc | Default agent icon editor | Closes without change. |
|
|
328
366
|
|
|
329
367
|
Ctrl shortcuts do nothing with Cmd, Alt or Shift held. They match by key position, so a Korean layout works too.
|
|
330
368
|
|
|
@@ -451,6 +489,8 @@ Main commands for the Mac terminal:
|
|
|
451
489
|
- `zigmini pair [--apk]`: shows the phone registration QR or the app download QR.
|
|
452
490
|
- `zigmini consent`: shows the permission notice and records consent.
|
|
453
491
|
- `zigmini update [version]`: updates.
|
|
492
|
+
- `zigmini scan [<repo>]`: checks a repository with the security baseline. Exit 0 clean, 1 findings, 2 error, 3 baseline missing, empty or out of date.
|
|
493
|
+
- `zigmini security import-baseline [--dry-run]`: adds an old plain-text list to the security baseline while the gateway runs.
|
|
454
494
|
- `zigmini rotate-main [--restart]`: moves the main conversation to a new session, like "새 세션" (new session). Ask the operator first. See the operator guide.
|
|
455
495
|
|
|
456
496
|
For the full list, see the README's Commands section.
|