tabby-agentdeck 1.2.4 → 1.2.6
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/CHANGELOG.md +20 -0
- package/README.ko.md +16 -10
- package/README.md +7 -7
- package/dist/config.d.ts +9 -1
- package/dist/deck.service.d.ts +7 -1
- package/dist/i18n/af.d.ts +4 -0
- package/dist/i18n/bg.d.ts +4 -0
- package/dist/i18n/cs.d.ts +4 -0
- package/dist/i18n/da.d.ts +4 -0
- package/dist/i18n/de.d.ts +4 -0
- package/dist/i18n/en.d.ts +4 -0
- package/dist/i18n/es.d.ts +4 -0
- package/dist/i18n/fr.d.ts +4 -0
- package/dist/i18n/hr.d.ts +4 -0
- package/dist/i18n/id.d.ts +4 -0
- package/dist/i18n/it.d.ts +4 -0
- package/dist/i18n/ja.d.ts +4 -0
- package/dist/i18n/ko.d.ts +4 -0
- package/dist/i18n/pl.d.ts +4 -0
- package/dist/i18n/pt.d.ts +4 -0
- package/dist/i18n/ru.d.ts +4 -0
- package/dist/i18n/sr.d.ts +4 -0
- package/dist/i18n/sv.d.ts +4 -0
- package/dist/i18n/tr.d.ts +4 -0
- package/dist/i18n/uk.d.ts +4 -0
- package/dist/i18n/zh-CN.d.ts +4 -0
- package/dist/i18n/zh-TW.d.ts +4 -0
- package/dist/i18n.d.ts +188 -18
- package/dist/index.js +2 -2
- package/dist/mailboxWake.d.ts +34 -0
- package/dist/notify.service.d.ts +8 -0
- package/dist/profile.service.d.ts +8 -0
- package/dist/sessionIdentity.d.ts +24 -0
- package/dist/sessionMailbox.d.ts +5 -1
- package/dist/settings.component.d.ts +3 -0
- package/dist/status.service.d.ts +2 -0
- package/dist/update.service.d.ts +6 -2
- package/hooks/agentdeck-mailbox.mjs +2 -2
- package/package.json +5 -4
- package/updater/agentdeck-update.ps1 +11 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,26 @@ The tag points at the commit that first introduced that version, and `test/tags.
|
|
|
5
5
|
|
|
6
6
|
Korean release notes for the current version are at the top of [`docs/REFERENCE.ko.md`](docs/REFERENCE.ko.md).
|
|
7
7
|
|
|
8
|
+
## 1.2.6 — 2026-10-01
|
|
9
|
+
|
|
10
|
+
- Preserve original tab titles and show permanent job aliases before status badges.
|
|
11
|
+
- Discover project names locally and keep assigned aliases unique and unchanged.
|
|
12
|
+
- Follow visible tab order for numeric shortcuts and preserve identities when dragging.
|
|
13
|
+
- Resolve messaging targets from live alias-to-session mappings.
|
|
14
|
+
- Check for updates immediately when AgentDeck starts.
|
|
15
|
+
|
|
16
|
+
## 1.2.5 — 2026-09-30
|
|
17
|
+
|
|
18
|
+
- Restore full-width Windows title-bar dragging without administrator privileges.
|
|
19
|
+
- Save multiple work root profiles and choose when opening a tab; open directly
|
|
20
|
+
when only one root is configured.
|
|
21
|
+
- Notify idle recipient tabs of queued messages while deferring during work,
|
|
22
|
+
typing and IME composition; keep delivery separate from acknowledgement.
|
|
23
|
+
- Treat npm stderr warnings as successful updates when the process exits with 0.
|
|
24
|
+
- Drain mailbox responses within the hook deadline and select one Node executable
|
|
25
|
+
when PATH contains multiple installations.
|
|
26
|
+
- Expand regression coverage, translations and usage documentation.
|
|
27
|
+
|
|
8
28
|
## 1.2.4 — 2026-09-30
|
|
9
29
|
|
|
10
30
|
- Stop launching Codex every minute for account checks. Refresh credentials only
|
package/README.ko.md
CHANGED
|
@@ -9,17 +9,17 @@
|
|
|
9
9
|
|
|
10
10
|
**Claude Code · Codex · Gemini CLI 를 탭 여러 개에 띄워 두고 쓰는 사람**을 위한 [Tabby](https://tabby.sh) 플러그인.
|
|
11
11
|
4:3 터미널, 상태가 실시간으로 보이는 세션 목록, 에이전트 결과물 미리보기 패널.
|
|
12
|
-
고정
|
|
12
|
+
작업에 맞춰 자동으로 붙인 고정 별명으로 에이전트를 구분하고, 서로 다른 탭의 에이전트에게 작업과 결과를 주고받도록 요청할 수 있다.
|
|
13
13
|
|
|
14
14
|

|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## 자동 작업 별명과 탭 간 에이전트 통신
|
|
17
17
|
|
|
18
|
-
한 탭에서는 구현하고, 다른 탭에서는 리뷰하거나 버그를 조사한다. 에이전트에게
|
|
18
|
+
한 탭에서는 구현하고, 다른 탭에서는 리뷰하거나 버그를 조사한다. 에이전트에게 **“화면에 표시된 별명의 탭에 조사 결과 전달해”**라고 요청할 수 있다. 에이전트는 최신 탭 목록에서 별명에 대응하는 실제 세션 ID를 조회해 전송한다. 별명은 사용자 환경마다 다르며, 문서의 예시를 실제 주소로 사용하지 않는다. 답장이나 수신 확인으로 전달 결과를 확인한다.
|
|
19
19
|
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
- **전송과 수신 확인은 구분한다.** 메시지를 보냈다는 것은 대기함에 넣었다는 뜻이며, 상대의 수신 확인이나 답장으로 읽었는지 확인한다.
|
|
20
|
+
- **기존 제목은 첫 줄에, 별명은 아래 상태 앞에 표시한다.** 작업 제목과 프로젝트 경로를 기준으로 자동 배정한다. 처음 보는 프로젝트도 폴더명으로 구분한다. 제목에 명확한 프로젝트명이 나타나면 경로별로 로컬 설정에 저장해 이후 탭에 사용한다. 기존 별명은 변경·중복·재사용하지 않는다. 프로젝트명과 경로를 소스 코드에 추가하지 않는다.
|
|
21
|
+
- **ABCD와 이동 번호는 표시하지 않는다.** `Ctrl+1` … `Ctrl+9`는 현재 보이는 위에서부터 해당 번째 탭으로 이동한다. 드래그로 순서를 바꿔도 별명과 통신 대상은 유지된다. 메시지는 확인한 정확한 세션 ID로 전송한다.
|
|
22
|
+
- **전송과 수신 확인은 구분한다.** 메시지를 보냈다는 것은 대기함에 넣었다는 뜻이며, 상대의 수신 확인이나 답장으로 읽었는지 확인한다. 메시지 알림이 켜져 있으면 입력 가능한 대기·완료 상태의 탭에 수신 안내를 자동 입력한다. 작업 중이거나 타이핑·한글 조합 중이면 기다린다. 안내 입력 성공도 수신 확정은 아니다. [알림 동작과 설정](docs/MAILBOX_WAKE.md)을 참고한다.
|
|
23
23
|
|
|
24
24
|
통신은 로컬 메시지함을 사용하며, 선택적으로 연결하는 MCP 또는 인증된 CLI 경로로 이용한다. 참여 세션에 지원되는 상태 훅과 등록이 필요하므로, 탭이 보인다고 바로 통신 가능한 것은 아니다. [연결 방법과 지원 동작](https://github.com/jghwang2/tabby-agentdeck/blob/main/docs/SESSION-COMMUNICATION.md)을 참고한다.
|
|
25
25
|
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
|
|
28
28
|
| 키 | 동작 |
|
|
29
29
|
|---|---|
|
|
30
|
-
| `Ctrl+T` (⌘+T) | 작업 루트에 새 탭 |
|
|
31
|
-
| `Ctrl+1` … `Ctrl+9` |
|
|
30
|
+
| `Ctrl+T` (⌘+T) | 작업 루트에 새 탭 열기 (프로필이 여러 개면 선택) |
|
|
31
|
+
| `Ctrl+1` … `Ctrl+9` | 현재 화면 위에서부터 1~9번째 탭으로 이동 |
|
|
32
32
|
| `Ctrl+L` | 세션 목록에 포커스 / 같은 키로 터미널 복귀. 이어서 `↑↓` 이동, `Enter` 선택, `Esc` 나가기 |
|
|
33
33
|
| `Ctrl+W` | 지금 탭 닫기 (목록이 키보드를 가졌으면 포커스 줄) |
|
|
34
34
|
| `Ctrl+O` | 미리보기 패널 여닫기 |
|
|
@@ -45,7 +45,13 @@
|
|
|
45
45
|
**설정 → AgentDeck → 단축키** 에서 바꾼다 — Tabby 순정이나 AgentDeck 이 이미 쓰는 키면 적용 전에 무엇과 겹치는지 알려 준다. Tabby 설정 → 단축키 → `agentdeck-*` 로도 된다.
|
|
46
46
|
위 표는 새 설치의 기본값이다. 기존 AgentDeck 단축키는 저장된 값을 유지하며, 각 항목의 **기본값** 버튼으로 새 키를 적용한다. 순정 분할 키 `Ctrl+Shift+S` / `Ctrl+Shift+D`는 `Ctrl+S` / `Ctrl+D`로 바꾸고, 직접 지정한 분할 키는 유지한다.
|
|
47
47
|
|
|
48
|
-
##
|
|
48
|
+
## 창 이동과 작업 루트
|
|
49
|
+
|
|
50
|
+
Windows의 얇은 창 테두리에서는 상단 제목 표시줄 전체를 드래그하여 창을 옮긴다. 더블 클릭하면 최대화하거나 복원하며, 일반 권한에서도 동작한다. 사이드바의 `AGENT DECK` 헤더는 사이드바 도킹 위치를 옮길 때 사용한다.
|
|
51
|
+
|
|
52
|
+
**설정 → AgentDeck → 추가 작업 루트 프로필 → 프로필 추가**에서 이름과 작업 폴더를 저장한다. 기존 작업 루트도 그대로 사용할 수 있다. **+ 새 탭** 또는 **Ctrl+T**를 누르면 프로필이 하나일 때는 그 폴더에서 바로 열린다. 두 개 이상이면 이름과 경로를 보고 선택하며, `Esc`로 취소한다. 프로필을 삭제해도 이미 열려 있는 탭은 유지된다.
|
|
53
|
+
|
|
54
|
+
## 지난 대화 검색
|
|
49
55
|
|
|
50
56
|
**지난 세션**을 펼치고 전용 검색창에 함수명·오류코드·파일명·세션 ID를 입력한다. 저장된 Claude·Codex 대화의 질문과 답변에서 대소문자 구분 없이 입력한 문자열 그대로 찾는다. 결과를 누르면 일치한 대화가 미리 열리고, **이어서 대화**를 눌러 재개한다. 현재 탭 검색과는 별도다.
|
|
51
57
|
|
|
@@ -54,7 +60,7 @@
|
|
|
54
60
|
## 설치
|
|
55
61
|
|
|
56
62
|
Tabby 안에서: 설정 → 플러그인 → `agentdeck` 검색 → 설치 → Tabby 재시작.
|
|
57
|
-
|
|
63
|
+
탭은 작업에 따른 고정 별명을 사용하며 드래그로 순서를 바꿀 수 있습니다. 숫자 이동키는 현재 화면 순서를 따릅니다.
|
|
58
64
|
선택적으로 연결하는 [세션 통신 MCP](docs/SESSION-COMMUNICATION.md)는 실제 세션 ID로만 송수신합니다. 사람용 번호는 MCP 주소가 아닙니다.
|
|
59
65
|
|
|
60
66
|
그 외 — 상태·미리보기 패널·diff 와 커밋·지난 세션 이어받기·설정 — 은
|
package/README.md
CHANGED
|
@@ -9,16 +9,16 @@
|
|
|
9
9
|
|
|
10
10
|
A [Tabby](https://tabby.sh) plugin for people who keep **Claude Code, Codex and Gemini CLI open in several tabs at once**.
|
|
11
11
|
A 4:3 terminal, a session deck with live status, and a preview panel for what the agents produce.
|
|
12
|
-
|
|
12
|
+
Automatic job-related aliases identify agents consistently across tab moves.
|
|
13
13
|
|
|
14
14
|

|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Permanent tab names and cross-session messaging
|
|
17
17
|
|
|
18
|
-
Keep one agent implementing, another reviewing, and another investigating a bug.
|
|
18
|
+
Keep one agent implementing, another reviewing, and another investigating a bug. Address the target by the alias displayed in your sidebar. The agent resolves that alias from the latest live snapshot to an exact session ID before sending. Aliases vary by user; documentation examples are never actual addresses. A reply or acknowledgement confirms receipt.
|
|
19
19
|
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
20
|
+
- **Keep the original title and show the permanent alias before the status.** Project paths and explicit project labels determine names locally. Unknown projects use their folder names; discovered labels improve future names without renaming existing tabs. Names remain unique, immutable and reserved after closing. Project names and paths are saved in local application settings, never added to the source repository.
|
|
21
|
+
- **Letter badges and position numbers are hidden.** `Ctrl+1` … `Ctrl+9` selects the current first through ninth visible tab. Drag tabs to reorder them without changing their names. Messages still use the exact resolved session ID.
|
|
22
22
|
- **Delivery and receipt are separate.** Sending queues a message. An acknowledgement or reply confirms that the recipient has read it. An idle agent checks at its next supported hook/task boundary; sending does not automatically start it.
|
|
23
23
|
|
|
24
24
|
Communication uses AgentDeck's local mailbox through an optional MCP connection or the authenticated CLI fallback. Participating sessions need the supported status hooks and registration; a visible tab alone does not mean messaging is ready. See [setup and supported behavior](https://github.com/jghwang2/tabby-agentdeck/blob/main/docs/SESSION-COMMUNICATION.md).
|
|
@@ -28,7 +28,7 @@ Communication uses AgentDeck's local mailbox through an optional MCP connection
|
|
|
28
28
|
| Key | What it does |
|
|
29
29
|
|---|---|
|
|
30
30
|
| `Ctrl+T` (⌘+T) | New tab in the work root |
|
|
31
|
-
| `Ctrl+1` … `Ctrl+9` | Select
|
|
31
|
+
| `Ctrl+1` … `Ctrl+9` | Select the first through ninth currently visible tab |
|
|
32
32
|
| `Ctrl+L` | Focus the session list / same key returns to the terminal. Then `↑↓` walk, `Enter` picks, `Esc` leaves |
|
|
33
33
|
| `Ctrl+W` | Close the current tab (the focused row when the list has the keyboard) |
|
|
34
34
|
| `Ctrl+O` | Open / close the preview panel |
|
|
@@ -54,7 +54,7 @@ Search runs locally in a background Node.js process, with a disk cache refreshed
|
|
|
54
54
|
## Install
|
|
55
55
|
|
|
56
56
|
Inside Tabby: Settings → Plugins → search `agentdeck` → Install → restart Tabby.
|
|
57
|
-
Sessions use
|
|
57
|
+
Sessions use automatic permanent job aliases beside their original titles. Drag to reorder; numeric shortcuts follow visible order.
|
|
58
58
|
The optional [session communication MCP](docs/SESSION-COMMUNICATION.md) sends and receives by actual session ID only. Human numbers never address the MCP server.
|
|
59
59
|
|
|
60
60
|
Everything else — status, preview panel, diff and commit, resuming sessions, settings — is in the
|
package/dist/config.d.ts
CHANGED
|
@@ -153,7 +153,7 @@ export declare class AgentDeckConfigProvider extends ConfigProvider {
|
|
|
153
153
|
* (판정은 `update.ts` 의 `canSelfUpdate`).
|
|
154
154
|
*/
|
|
155
155
|
autoUpdate: boolean;
|
|
156
|
-
/**
|
|
156
|
+
/** 이전 설정 호환용. 기동 시 검사는 시간 제한을 사용하지 않는다 */
|
|
157
157
|
updateCheckIntervalHours: number;
|
|
158
158
|
/** 마지막으로 레지스트리에 물어본 시각 (epoch ms) — 설정이 아니라 상태다 */
|
|
159
159
|
lastUpdateCheck: number;
|
|
@@ -601,6 +601,7 @@ export declare class AgentDeckConfigProvider extends ConfigProvider {
|
|
|
601
601
|
* 기본값을 가로채면 곤란하므로, 쓰려는 사람이 `rootProfileCwd` 를 채우고 켜야 한다.
|
|
602
602
|
*/
|
|
603
603
|
rootProfile: boolean;
|
|
604
|
+
rootProfiles: any[];
|
|
604
605
|
rootProfileName: string;
|
|
605
606
|
rootProfileCwd: string;
|
|
606
607
|
rootProfileCommand: string;
|
|
@@ -658,12 +659,19 @@ export declare class AgentDeckConfigProvider extends ConfigProvider {
|
|
|
658
659
|
viewerDock: string;
|
|
659
660
|
/** 미리보기 패널 폭 (px). 경계선 드래그로 바뀐다 */
|
|
660
661
|
viewerWidth: number;
|
|
662
|
+
sessionIdentities: any[];
|
|
663
|
+
aliasProjects: any[];
|
|
661
664
|
/** Empty uses the CLI/environment default. Applied at app startup. */
|
|
662
665
|
accountStorageDir: string;
|
|
663
666
|
claudeStorageDir: string;
|
|
664
667
|
codexStorageDir: string;
|
|
665
668
|
/** 레이아웃/사이드바 전체 on-off */
|
|
666
669
|
enabled: boolean;
|
|
670
|
+
mailboxWake: {
|
|
671
|
+
enabled: boolean;
|
|
672
|
+
typingGuardMs: number;
|
|
673
|
+
text: string;
|
|
674
|
+
};
|
|
667
675
|
/** 터미널 뷰포트 가로:세로 비율 */
|
|
668
676
|
aspectW: number;
|
|
669
677
|
aspectH: number;
|
package/dist/deck.service.d.ts
CHANGED
|
@@ -62,7 +62,14 @@ export declare class AgentDeckService {
|
|
|
62
62
|
private ledger;
|
|
63
63
|
private zone;
|
|
64
64
|
private locale;
|
|
65
|
+
private mailboxLastInput;
|
|
66
|
+
private mailboxComposing;
|
|
67
|
+
private mailboxWakeDisabled;
|
|
68
|
+
private mailboxWake;
|
|
69
|
+
private setupMailboxWake;
|
|
65
70
|
private readonly sessionSlots;
|
|
71
|
+
private readonly identityIds;
|
|
72
|
+
private identityOf;
|
|
66
73
|
private pendingSessionOpens;
|
|
67
74
|
private syncSessionSlots;
|
|
68
75
|
private sidebar;
|
|
@@ -1418,7 +1425,6 @@ export declare class AgentDeckService {
|
|
|
1418
1425
|
* 대신 막은 이유와 푸는 방법을 적어 보여준다.
|
|
1419
1426
|
*/
|
|
1420
1427
|
private noteReorderBlocked;
|
|
1421
|
-
/** 더블클릭 -> 작업 이름 인라인 편집 */
|
|
1422
1428
|
private startLabelEdit;
|
|
1423
1429
|
/**
|
|
1424
1430
|
* 지난 세션 한 줄을 누른 결과 — **이미 열려 있으면 이어받지 않고 그 탭으로 보낸다.**
|
package/dist/i18n/af.d.ts
CHANGED
package/dist/i18n/bg.d.ts
CHANGED
package/dist/i18n/cs.d.ts
CHANGED
package/dist/i18n/da.d.ts
CHANGED
package/dist/i18n/de.d.ts
CHANGED
package/dist/i18n/en.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/** English — the fallback every other language falls back to (`i18n.ts`). */
|
|
2
2
|
declare const _default: {
|
|
3
|
+
'root.more': string;
|
|
4
|
+
'root.choose.desc': string;
|
|
5
|
+
'root.add': string;
|
|
6
|
+
'root.remove': string;
|
|
3
7
|
'layout.title': string;
|
|
4
8
|
'layout.desc': string;
|
|
5
9
|
'reset.title': string;
|
package/dist/i18n/es.d.ts
CHANGED
package/dist/i18n/fr.d.ts
CHANGED
package/dist/i18n/hr.d.ts
CHANGED
package/dist/i18n/id.d.ts
CHANGED
package/dist/i18n/it.d.ts
CHANGED
package/dist/i18n/ja.d.ts
CHANGED
package/dist/i18n/ko.d.ts
CHANGED
package/dist/i18n/pl.d.ts
CHANGED
package/dist/i18n/pt.d.ts
CHANGED
package/dist/i18n/ru.d.ts
CHANGED
package/dist/i18n/sr.d.ts
CHANGED
package/dist/i18n/sv.d.ts
CHANGED
package/dist/i18n/tr.d.ts
CHANGED
package/dist/i18n/uk.d.ts
CHANGED
package/dist/i18n/zh-CN.d.ts
CHANGED