tabminal 2.0.16 → 2.0.18

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/ACP_PLANING.md CHANGED
@@ -1,184 +1,271 @@
1
- # ACP Planing
1
+ # ACP Planning
2
2
 
3
- ## Goal
3
+ Last updated: 2026-03-27
4
4
 
5
- Integrate ACP-based coding agents into Tabminal without implementing agents
6
- ourselves. Agents run on the Tabminal host, managed by the Tabminal backend.
7
- The web UI adds an Agent panel integrated into the existing workspace/editor
8
- area and supports multiple concurrent agent tabs per host.
5
+ This file is no longer a pure implementation plan.
6
+ It is now the ACP status ledger for Tabminal:
9
7
 
10
- ## Constraints
8
+ - what shipped
9
+ - what is stable
10
+ - what remains open
11
11
 
12
- - Do not break existing terminal, file editor, multi-host, or AI-assist flows.
13
- - Reuse community-maintained protocol and agent ecosystem pieces where
14
- practical.
15
- - Keep lifecycle bounded: lazy start, reusable while tabs are open, and
16
- cleaned up after inactivity.
17
- - Host isolation remains strict: each agent runtime and tab belongs to one
18
- host.
19
- - MVP should be usable before advanced ACP capabilities are added.
12
+ Use `/Users/leask/Documents/Tabminal/AGENTS.md` as the broader engineering
13
+ handoff document. Use this file as the ACP-specific roadmap/status snapshot.
20
14
 
21
- ## Selected Architecture
15
+ ## 1) Goal
16
+
17
+ Integrate ACP-based coding agents into Tabminal without building custom agents
18
+ in-repo. Agents should run on the Tabminal host, be managed by the Tabminal
19
+ backend, and feel native inside the existing workspace/editor UI.
20
+
21
+ ## 2) Current Architecture
22
22
 
23
23
  ### Backend
24
24
 
25
- Add an ACP supervisor inside the Tabminal backend.
25
+ Implemented:
26
+
27
+ - ACP supervisor in `/Users/leask/Documents/Tabminal/src/acp-manager.mjs`
28
+ - Built-in host-local agent definitions:
29
+ - Gemini CLI
30
+ - Codex CLI
31
+ - Claude Agent
32
+ - GitHub Copilot
33
+ - ACP Test Agent when `TABMINAL_ENABLE_TEST_AGENT=1`
34
+ - Lazy runtime startup
35
+ - Runtime reuse while tabs are active
36
+ - Idle cleanup
37
+ - ACP websocket fan-out to browser clients
38
+ - Session restore for ACP runtimes that support `loadSession`
39
+ - Per-agent saved config/env persistence
26
40
 
27
- Responsibilities:
28
- - List supported agent definitions available on the host.
29
- - Start ACP runtimes on demand.
30
- - Reuse ACP runtime processes while tabs/sessions are active.
31
- - Create ACP sessions within a runtime.
32
- - Bridge ACP events to browser clients over a dedicated WebSocket.
33
- - Expose minimal approval surfaces later; MVP focuses on prompt/stream/cancel.
41
+ ### Frontend
34
42
 
35
- Transport strategy:
36
- - Primary: stdio-launched ACP agents.
37
- - Future: attach to TCP ACP servers for tools like GitHub Copilot CLI.
43
+ Implemented:
38
44
 
39
- Lifecycle:
40
- - Lazy runtime start on first use.
41
- - Keep alive while any agent tab is attached.
42
- - Idle timeout after last tab closes.
43
- - Destroy all runtimes on backend shutdown.
45
+ - Host-scoped agent dropdown from the sidebar
46
+ - Agent tabs inside the shared workspace tab strip
47
+ - Transcript rendering with message/tool/permission/plan history
48
+ - Composer with send/stop, slash-command suggestions, attachments, and keyboard
49
+ shortcuts
50
+ - Mode/model/thought-level/permission selectors
51
+ - Managed terminal summaries and `Jump in`
52
+ - Usage HUD
53
+ - Plan panel that archives into transcript history once complete
54
+ - Agent-specific workspace restore and focus behavior
44
55
 
45
- ### Frontend
56
+ ## 3) Completed Scope
46
57
 
47
- Add a host-scoped Agent button beside the file editor toggle area.
48
-
49
- Behavior:
50
- - Clicking Agent opens a dropdown of available agents for the active host.
51
- - Choosing an agent opens a new Agent tab inside the existing editor pane tab
52
- strip.
53
- - Agent tabs coexist with file tabs.
54
- - Each agent tab streams conversation updates and supports prompt send/cancel.
55
-
56
- MVP UI:
57
- - Agent tabs render in the editor workspace.
58
- - Transcript area with coalesced message stream.
59
- - Prompt textarea + single send/stop button.
60
- - Mode picker, new chat action, and slash-command chips when available.
61
- - Status row with host, cwd, mode, and runtime/session status.
62
-
63
- ## Reuse Strategy
64
-
65
- Use:
66
- - `@agentclientprotocol/sdk` for protocol/client implementation.
67
- - ACP Registry later for agent metadata discovery.
68
-
69
- Do not directly embed:
70
- - Chrome ACP web client.
71
- - ACP UI desktop frontend.
72
-
73
- Reason:
74
- - They are standalone apps, not embeddable widgets.
75
- - Tabminal needs native integration with existing host/session/workspace state.
76
-
77
- ## MVP Scope
78
-
79
- ### Phase 1
80
-
81
- Status:
82
- - Implemented on `acp` branch and usable with real browser smoke.
83
- - Backend ACP supervisor, API, and WS fan-out are live.
84
- - Frontend agent tabs, transcript rendering, prompt send/cancel, and
85
- permission resolution are live.
86
- - Agent tab metadata now persists on the backend and restores across backend
87
- restart for ACP runtimes that support `loadSession`.
88
- - Agent panel interaction polish is live:
89
- - duplicate agent tabs auto-number as `#1`, `#2`, ...
90
- - `Enter` sends
91
- - `Esc` stops active runs
92
- - `Ctrl+J` and `Shift+Enter` insert newlines
93
- - mode switching and new-chat flows are available in-panel
94
- - tool calls and permission requests render as structured cards
95
- - Verified with:
96
- - `npm run lint`
97
- - `npm test`
98
- - browser smoke against isolated local ACP test agent
99
- - browser restart-restore validation against backend-persisted ACP tabs
100
- - Current polish fixes already applied:
101
- - Codex token stream is coalesced into a single assistant message instead of
102
- one message per chunk.
103
- - User prompts are no longer duplicated when an ACP runtime echoes
104
- `user_message_chunk` updates after local optimistic insertion.
105
- - Gemini definition availability is disabled with reason
106
- `API key missing` when no key is configured.
107
- - Agent panel typography has been reduced to align with the existing
108
- workspace/editor density.
109
-
110
- Backend:
111
- - ACP supervisor module.
112
- - Built-in agent definitions for Gemini CLI, Codex CLI adapter, Claude adapter,
113
- and Copilot CLI ACP server descriptor.
114
- - REST endpoints:
58
+ The following items are effectively shipped and usable.
59
+
60
+ ### 3.1 Core ACP plumbing
61
+
62
+ - ACP dependency integrated
63
+ - Backend ACP supervisor live
64
+ - REST endpoints live:
115
65
  - `GET /api/agents`
66
+ - `GET /api/agents/config`
67
+ - `PUT /api/agents/config/:agentId`
68
+ - `DELETE /api/agents/config/:agentId`
116
69
  - `POST /api/agents/tabs`
117
70
  - `POST /api/agents/tabs/:tabId/prompt`
118
71
  - `POST /api/agents/tabs/:tabId/cancel`
119
72
  - `POST /api/agents/tabs/:tabId/mode`
73
+ - `POST /api/agents/tabs/:tabId/config`
120
74
  - `POST /api/agents/tabs/:tabId/permissions/:permissionId`
121
75
  - `DELETE /api/agents/tabs/:tabId`
122
- - WebSocket endpoint for live event fan-out.
123
-
124
- Frontend:
125
- - Agent dropdown button.
126
- - Agent tab state model.
127
- - Agent transcript rendering.
128
- - Prompt send/stop.
129
- - Mode picker.
130
- - New chat action.
131
- - Slash-command starter chips.
132
- - Structured tool call / permission cards.
133
- - Host-scoped tabs in editor pane.
134
-
135
- ### Deferred
136
-
137
- - File attachments.
138
- - Rich diff/resource rendering in tool outputs.
139
- - Terminal execution transcript UI for ACP tool calls.
140
- - Registry-driven install UX.
141
- - TCP ACP runtime support in UI.
142
- - Dedicated conversation history browser independent of terminal sessions.
143
-
144
- ## Safety and Isolation
145
-
146
- - Agent runtimes inherit the host filesystem context, not browser-local state.
147
- - Prompt and transcript data stay isolated per host.
148
- - Closing an agent tab detaches from its ACP session.
149
- - When the last ACP session on a runtime closes, runtime enters idle cleanup.
150
-
151
- ## Test Plan
152
-
153
- Backend:
154
- - Unit tests for supervisor lifecycle.
155
- - Mock ACP runtime process to test stream/cancel behavior.
156
- - API tests for create/send/cancel/close.
157
-
158
- Frontend:
159
- - State/unit tests are minimal in current stack; use integration smoke.
160
- - Manual flow:
161
- - open agent dropdown
162
- - create Gemini/Codex tab
163
- - send prompt
164
- - receive stream
165
- - cancel
166
- - open second agent tab
167
- - verify file editor tabs still work
168
- - verify terminal tabs still work
169
-
170
- Regression checks:
76
+ - ACP websocket endpoint live
77
+
78
+ ### 3.2 Agent tab UX
79
+
80
+ - Agent tabs coexist with file tabs and pinned terminal tabs
81
+ - Duplicate agent tabs auto-number
82
+ - `Enter` sends
83
+ - `Shift+Enter` and `Ctrl+J` insert newline
84
+ - `Esc` stops active runs
85
+ - `Ctrl+Shift+A` opens the agent menu
86
+ - Slash-command menu opens upward as floating overlay
87
+ - Keyboard navigation inside slash-command menu is implemented
88
+
89
+ ### 3.3 Transcript and tool rendering
90
+
91
+ - Coalesced assistant message streaming
92
+ - Optimistic user message insertion
93
+ - De-duplication when runtime echoes user chunks
94
+ - Structured tool-call cards
95
+ - Structured permission cards
96
+ - Diff rendering
97
+ - Code/resource rendering
98
+ - Terminal output rendering inside tool cards
99
+ - Path link rendering
100
+ - Running-terminal activity summary
101
+
102
+ ### 3.4 Managed terminal flow
103
+
104
+ - ACP tool calls can create managed terminal sessions
105
+ - `Jump in` switches to the real terminal session when still alive
106
+ - Focus-stealing bug after `Jump in` has been fixed
107
+ - Hidden pinned terminals no longer report bogus tiny sizes to the backend
108
+
109
+ ### 3.5 Persistence and restore
110
+
111
+ - Agent tab metadata persists on backend
112
+ - Agent config persists on backend
113
+ - Transcript/tool/permission/plan state persists
114
+ - Restore works across backend restart for runtimes that support `loadSession`
115
+ - Restore no longer wrongly penalizes built-in agent availability on startup
116
+
117
+ ### 3.6 Usage / status UI
118
+
119
+ - Usage HUD implemented
120
+ - CSS-only expanded HUD layout stabilized
121
+ - Plan panel implemented
122
+ - Completed plan moves into transcript history instead of permanently occupying
123
+ composer-adjacent UI
124
+ - Transcript auto-scroll logic now follows the correct “only pin if already at
125
+ bottom” rule
126
+
127
+ ### 3.7 Test tooling
128
+
129
+ - ACP Test Agent supports real slash-command scenarios:
130
+ - `/demo`
131
+ - `/plan`
132
+ - `/diff`
133
+ - `/permission`
134
+ - `/cancel`
135
+ - `/stale`
136
+ - `/order`
137
+ - `/fail`
138
+ - ACP browser smoke covers current UI shape
139
+ - ACP manager tests cover restore, prompt attachments, config, availability, and
140
+ slash commands
141
+
142
+ ## 4) Stable Contracts
143
+
144
+ These should now be treated as product contracts, not experiments.
145
+
146
+ - ACP agents are host-scoped.
147
+ - Agent tabs do not require the file tree to be open.
148
+ - Workspace tabs should remain visible if there is any file tab, agent tab, or
149
+ pinned terminal tab.
150
+ - `Jump in` is a management path, not a read-only preview, while the terminal is
151
+ still alive.
152
+ - Internal shell bootstrap commands such as `TABMINAL_SHELL_READY=1` must never
153
+ surface as user notifications.
154
+ - ACP availability should reflect the backend runtime environment, not only the
155
+ developer's interactive shell.
156
+ - On small screens, agent config selectors collapse to icon-only affordances.
157
+
158
+ ## 5) Remaining Work
159
+
160
+ This is the actual remaining ACP backlog.
161
+
162
+ ### 5.1 Still open
163
+
164
+ #### A) Registry-driven install/setup UX
165
+
166
+ Status: not done
167
+
168
+ Missing:
169
+
170
+ - guided install flow for agents that are unavailable
171
+ - first-class setup UX for installing required CLIs
172
+ - richer host diagnostics for why a definition is unavailable
173
+
174
+ Current state:
175
+
176
+ - availability reasons are shown
177
+ - some config/setup flows exist
178
+ - but this is not yet a complete install-onboarding UX
179
+
180
+ #### B) Explicit TCP ACP runtime support in the UI
181
+
182
+ Status: not done
183
+
184
+ Missing:
185
+
186
+ - user-visible workflow for attaching to TCP ACP servers
187
+ - transport selection UX
188
+ - connection lifecycle UX for non-stdio ACP runtimes
189
+
190
+ Current state:
191
+
192
+ - architecture originally allowed for this direction
193
+ - product currently operates around stdio-launched/local CLI definitions
194
+
195
+ #### C) Dedicated conversation history browser
196
+
197
+ Status: not done
198
+
199
+ Missing:
200
+
201
+ - independent history browser for ACP conversations
202
+ - browsing/searching old conversations outside the current terminal/workspace
203
+ session context
204
+
205
+ Current state:
206
+
207
+ - transcript restores with the tab
208
+ - completed plans archive into the transcript
209
+ - but there is no standalone conversation history surface
210
+
211
+ ### 5.2 Nice-to-have follow-up work
212
+
213
+ These are not blockers, but they are logical next ACP improvements.
214
+
215
+ - stronger browser smoke coverage for touch/mobile-only ACP interactions
216
+ - clearer visual distinction between running, attention, and completed agent
217
+ states at scale
218
+ - broader multi-host ACP smoke scenarios
219
+ - richer availability/setup diagnostics in the UI
220
+
221
+ ## 6) What Was Originally Deferred But Is Now Done
222
+
223
+ These items were previously listed as deferred and should no longer be treated
224
+ as open backlog:
225
+
226
+ - prompt/file attachments
227
+ - diff rendering in tool outputs
228
+ - code/resource rendering in tool outputs
229
+ - terminal execution transcript UI for ACP tool calls
230
+
231
+ ## 7) Test and Verification Status
232
+
233
+ Current ACP verification surface:
234
+
171
235
  - `npm run lint`
172
236
  - `npm test`
173
- - existing multi-host session behavior
174
- - editor pane switching between file tabs and agent tabs
175
-
176
- ## Implementation Order
177
-
178
- 1. Add ACP dependency and inspect exact SDK client API.
179
- 2. Implement backend supervisor with a mockable adapter layer.
180
- 3. Expose API/WS endpoints with no frontend integration yet.
181
- 4. Add frontend Agent button and agent tab model.
182
- 5. Wire prompt streaming and cancellation.
183
- 6. Run tests and manual smoke.
184
- 7. Iterate on lifecycle and UI fit.
237
+ - `npm run build`
238
+ - browser smoke via
239
+ `/Users/leask/Documents/Tabminal/scripts/acp-browser-smoke.mjs`
240
+
241
+ Recommended ACP manual spot-checks when behavior changes:
242
+
243
+ 1. Start with `TABMINAL_ENABLE_TEST_AGENT=1`
244
+ 2. Run `/demo`
245
+ 3. Verify:
246
+ - agent menu
247
+ - slash-command menu
248
+ - plan panel
249
+ - usage HUD
250
+ - tool call cards
251
+ - managed terminal
252
+ - `Jump in`
253
+ - transcript scroll behavior
254
+ 4. Run `/permission`
255
+ 5. Run `/cancel`
256
+ 6. Reload and verify restore
257
+
258
+ ## 8) Recommendation
259
+
260
+ ACP is no longer in “MVP not landed” status.
261
+ It is in “shipped, actively polished, with a short remaining backlog” status.
262
+
263
+ Practical summary:
264
+
265
+ - Core ACP product: done
266
+ - ACP UI polish: largely done
267
+ - ACP infra/test surface: done
268
+ - Remaining strategic work: 3 real items
269
+
270
+ That remaining scope is small enough that this file should stay as a status
271
+ ledger, not a large speculative design doc.
package/AGENTS.md CHANGED
@@ -10,14 +10,14 @@ ACP agent UX, or mobile ergonomics.
10
10
  ## 1) Project Snapshot
11
11
 
12
12
  - Runtime: Node.js `>= 22`, ESM project.
13
- - Backend entry: `/Users/leask/Documents/Tabminal/src/server.mjs`
14
- - Frontend entry: `/Users/leask/Documents/Tabminal/public/app.js`
13
+ - Backend entry: `src/server.mjs`
14
+ - Frontend entry: `public/app.js`
15
15
  - PWA shell:
16
- - `/Users/leask/Documents/Tabminal/public/index.html`
17
- - `/Users/leask/Documents/Tabminal/public/sw.js`
16
+ - `public/index.html`
17
+ - `public/sw.js`
18
18
  - Native app workspace:
19
- - `/Users/leask/Documents/Tabminal/apps/Apple`
20
- - `/Users/leask/Documents/Tabminal/apps/ghostty-vendor`
19
+ - `apps/Apple`
20
+ - `apps/ghostty-vendor`
21
21
 
22
22
  Current product shape:
23
23
 
@@ -46,8 +46,8 @@ Important persistence files under `~/.tabminal`:
46
46
  - Do not merge runtime state across hosts.
47
47
 
48
48
  Relevant code:
49
- - `/Users/leask/Documents/Tabminal/public/app.js`
50
- - `/Users/leask/Documents/Tabminal/public/modules/session-meta.js`
49
+ - `public/app.js`
50
+ - `public/modules/session-meta.js`
51
51
 
52
52
  ### 2.2 Auth model
53
53
 
@@ -57,7 +57,7 @@ Relevant code:
57
57
  - Sub-hosts may require Cloudflare Access login without password change.
58
58
 
59
59
  Relevant code:
60
- - `/Users/leask/Documents/Tabminal/public/app.js`
60
+ - `public/app.js`
61
61
  - `ServerClient.handleUnauthorized`
62
62
  - `ServerClient.handleAccessRedirect`
63
63
 
@@ -72,8 +72,8 @@ Relevant code:
72
72
  - Removing a host should also remove any stale local token keyed to that host.
73
73
 
74
74
  Relevant code:
75
- - `/Users/leask/Documents/Tabminal/public/app.js`
76
- - `/Users/leask/Documents/Tabminal/src/persistence.mjs`
75
+ - `public/app.js`
76
+ - `src/persistence.mjs`
77
77
 
78
78
  ### 2.4 Host registry persistence
79
79
 
@@ -84,9 +84,9 @@ Relevant code:
84
84
  - On page load, host list restores only after main-host auth succeeds.
85
85
 
86
86
  Relevant code:
87
- - `/Users/leask/Documents/Tabminal/public/app.js`
88
- - `/Users/leask/Documents/Tabminal/src/server.mjs`
89
- - `/Users/leask/Documents/Tabminal/src/persistence.mjs`
87
+ - `public/app.js`
88
+ - `src/server.mjs`
89
+ - `src/persistence.mjs`
90
90
 
91
91
  ### 2.5 Deduplication and self-host skip
92
92
 
@@ -98,8 +98,8 @@ Relevant code:
98
98
  the current client assumptions.
99
99
 
100
100
  Relevant code:
101
- - `/Users/leask/Documents/Tabminal/public/modules/url-auth.js`
102
- - `/Users/leask/Documents/Tabminal/public/app.js`
101
+ - `public/modules/url-auth.js`
102
+ - `public/app.js`
103
103
 
104
104
  ### 2.6 Session creation ownership
105
105
 
@@ -109,8 +109,8 @@ Relevant code:
109
109
  - recreate one main-host session if user closes the last session
110
110
 
111
111
  Relevant code:
112
- - `/Users/leask/Documents/Tabminal/public/app.js`
113
- - `/Users/leask/Documents/Tabminal/src/server.mjs`
112
+ - `public/app.js`
113
+ - `src/server.mjs`
114
114
 
115
115
  ### 2.7 Polling and heartbeat
116
116
 
@@ -119,7 +119,7 @@ Relevant code:
119
119
  - Do not weaken these without measuring UX fallout.
120
120
 
121
121
  Relevant code:
122
- - `/Users/leask/Documents/Tabminal/public/app.js`
122
+ - `public/app.js`
123
123
 
124
124
  ### 2.8 Cloudflare Access handling
125
125
 
@@ -130,8 +130,8 @@ Relevant code:
130
130
  - Reconnect UI may open the host root in a new tab for Access login.
131
131
 
132
132
  Relevant code:
133
- - `/Users/leask/Documents/Tabminal/public/app.js`
134
- - `/Users/leask/Documents/Tabminal/public/modules/url-auth.js`
133
+ - `public/app.js`
134
+ - `public/modules/url-auth.js`
135
135
 
136
136
  ### 2.9 Runtime version and PWA coherence
137
137
 
@@ -141,10 +141,10 @@ Relevant code:
141
141
  - Service worker is versioned the same way.
142
142
 
143
143
  Relevant code:
144
- - `/Users/leask/Documents/Tabminal/src/server.mjs`
145
- - `/Users/leask/Documents/Tabminal/public/app.js`
146
- - `/Users/leask/Documents/Tabminal/public/index.html`
147
- - `/Users/leask/Documents/Tabminal/public/sw.js`
144
+ - `src/server.mjs`
145
+ - `public/app.js`
146
+ - `public/index.html`
147
+ - `public/sw.js`
148
148
 
149
149
  ## 3) ACP Design Contracts
150
150
 
@@ -161,8 +161,8 @@ Relevant code:
161
161
  - ACP Test Agent when `TABMINAL_ENABLE_TEST_AGENT=1`
162
162
 
163
163
  Relevant code:
164
- - `/Users/leask/Documents/Tabminal/src/acp-manager.mjs`
165
- - `/Users/leask/Documents/Tabminal/src/acp-test-agent.mjs`
164
+ - `src/acp-manager.mjs`
165
+ - `src/acp-test-agent.mjs`
166
166
 
167
167
  ### 3.2 ACP workspace model
168
168
 
@@ -174,8 +174,8 @@ Relevant code:
174
174
  tab, or pinned terminal tab.
175
175
 
176
176
  Relevant code:
177
- - `/Users/leask/Documents/Tabminal/public/app.js`
178
- - `/Users/leask/Documents/Tabminal/public/styles.css`
177
+ - `public/app.js`
178
+ - `public/styles.css`
179
179
 
180
180
  ### 3.3 Agent dropdown and toggle behavior
181
181
 
@@ -195,7 +195,7 @@ Relevant code:
195
195
  - Agent sync must never steal focus back from a session the user jumped into.
196
196
 
197
197
  Relevant code:
198
- - `/Users/leask/Documents/Tabminal/public/app.js`
198
+ - `public/app.js`
199
199
 
200
200
  ### 3.5 Hidden terminal resize contract
201
201
 
@@ -206,7 +206,7 @@ Relevant code:
206
206
  - This prevents broken sidebar previews caused by tiny hidden-layout sizes.
207
207
 
208
208
  Relevant code:
209
- - `/Users/leask/Documents/Tabminal/public/app.js`
209
+ - `public/app.js`
210
210
 
211
211
  ### 3.6 Shell ready noise filtering
212
212
 
@@ -214,9 +214,9 @@ Relevant code:
214
214
  - They must not produce user notifications or visible execution-completed noise.
215
215
 
216
216
  Relevant code:
217
- - `/Users/leask/Documents/Tabminal/shell/tabminal-bashrc`
218
- - `/Users/leask/Documents/Tabminal/src/terminal-session.mjs`
219
- - `/Users/leask/Documents/Tabminal/public/app.js`
217
+ - `shell/tabminal-bashrc`
218
+ - `src/terminal-session.mjs`
219
+ - `public/app.js`
220
220
 
221
221
  ### 3.7 Agent plan behavior
222
222
 
@@ -236,7 +236,7 @@ Relevant code:
236
236
  back down.
237
237
 
238
238
  Relevant code:
239
- - `/Users/leask/Documents/Tabminal/public/app.js`
239
+ - `public/app.js`
240
240
 
241
241
  ### 3.9 Slash command menu contract
242
242
 
@@ -247,9 +247,9 @@ Relevant code:
247
247
  - Current shortcut to open agent menu is `Ctrl+Shift+A`.
248
248
 
249
249
  Relevant code:
250
- - `/Users/leask/Documents/Tabminal/public/app.js`
251
- - `/Users/leask/Documents/Tabminal/public/styles.css`
252
- - `/Users/leask/Documents/Tabminal/public/index.html`
250
+ - `public/app.js`
251
+ - `public/styles.css`
252
+ - `public/index.html`
253
253
 
254
254
  ### 3.10 Usage HUD contract
255
255
 
@@ -261,12 +261,12 @@ Relevant code:
261
261
  updates.
262
262
 
263
263
  Relevant code:
264
- - `/Users/leask/Documents/Tabminal/public/styles.css`
265
- - `/Users/leask/Documents/Tabminal/public/app.js`
264
+ - `public/styles.css`
265
+ - `public/app.js`
266
266
 
267
267
  ## 4) ACP Status and Remaining Gaps
268
268
 
269
- `/Users/leask/Documents/Tabminal/ACP_PLANING.md` is partly stale.
269
+ `ACP_PLANING.md` is partly stale.
270
270
 
271
271
  Implemented from that plan:
272
272
 
@@ -297,39 +297,39 @@ Implication:
297
297
  ## 5) File Map for Fast Onboarding
298
298
 
299
299
  Backend:
300
- - `/Users/leask/Documents/Tabminal/src/server.mjs`
300
+ - `src/server.mjs`
301
301
  - API routes, WS upgrade, auth, runtime boot id
302
- - `/Users/leask/Documents/Tabminal/src/config.mjs`
302
+ - `src/config.mjs`
303
303
  - merged config parser and validation
304
- - `/Users/leask/Documents/Tabminal/src/auth.mjs`
304
+ - `src/auth.mjs`
305
305
  - password hashing and auth checks
306
- - `/Users/leask/Documents/Tabminal/src/persistence.mjs`
306
+ - `src/persistence.mjs`
307
307
  - sessions, cluster registry, ACP tab/config persistence
308
- - `/Users/leask/Documents/Tabminal/src/terminal-manager.mjs`
308
+ - `src/terminal-manager.mjs`
309
309
  - PTY lifecycle and persistence
310
- - `/Users/leask/Documents/Tabminal/src/terminal-session.mjs`
310
+ - `src/terminal-session.mjs`
311
311
  - terminal stream parsing, shell AI path, execution model
312
- - `/Users/leask/Documents/Tabminal/src/acp-manager.mjs`
312
+ - `src/acp-manager.mjs`
313
313
  - ACP definitions, runtime supervision, ACP tab lifecycle
314
- - `/Users/leask/Documents/Tabminal/src/acp-test-agent.mjs`
314
+ - `src/acp-test-agent.mjs`
315
315
  - local ACP smoke agent with slash-command fixtures
316
316
 
317
317
  Frontend:
318
- - `/Users/leask/Documents/Tabminal/public/app.js`
318
+ - `public/app.js`
319
319
  - nearly all UI orchestration lives here
320
- - `/Users/leask/Documents/Tabminal/public/modules/url-auth.js`
320
+ - `public/modules/url-auth.js`
321
321
  - URL normalization and auth helpers
322
- - `/Users/leask/Documents/Tabminal/public/modules/session-meta.js`
322
+ - `public/modules/session-meta.js`
323
323
  - host display and compact path formatting
324
- - `/Users/leask/Documents/Tabminal/public/styles.css`
324
+ - `public/styles.css`
325
325
  - all current UI contracts and responsive rules
326
- - `/Users/leask/Documents/Tabminal/public/index.html`
326
+ - `public/index.html`
327
327
  - shell DOM, layout bootstrapping, shortcuts modal
328
328
 
329
329
  Tests and smoke:
330
- - `/Users/leask/Documents/Tabminal/test/acp-manager.mjs`
330
+ - `test/acp-manager.mjs`
331
331
  - richest ACP coverage
332
- - `/Users/leask/Documents/Tabminal/scripts/acp-browser-smoke.mjs`
332
+ - `scripts/acp-browser-smoke.mjs`
333
333
  - browser ACP smoke against a real running app and real Chrome remote debug
334
334
 
335
335
  ## 6) Debug and Testing Guidance
@@ -367,7 +367,7 @@ Use these instead of inventing ad-hoc prompts when validating ACP UI.
367
367
 
368
368
  Preferred browser smoke:
369
369
 
370
- - `/Users/leask/Documents/Tabminal/scripts/acp-browser-smoke.mjs`
370
+ - `scripts/acp-browser-smoke.mjs`
371
371
 
372
372
  It supports:
373
373
 
@@ -394,7 +394,7 @@ If an ACP agent appears inconsistently available:
394
394
  - Restore failures should not temporarily mark built-in definitions unavailable.
395
395
 
396
396
  Relevant code:
397
- - `/Users/leask/Documents/Tabminal/src/acp-manager.mjs`
397
+ - `src/acp-manager.mjs`
398
398
 
399
399
  ### 6.5 Focus and session-debug tips
400
400
 
@@ -455,7 +455,7 @@ Expected behavior:
455
455
  ## 9) Deployment and Ops Notes
456
456
 
457
457
  - Local helper script:
458
- - `/Users/leask/Documents/Tabminal/reploy.sh`
458
+ - `reploy.sh`
459
459
  - It restarts one macOS launchctl node plus several Linux `pm2` nodes via SSH.
460
460
  - It includes aggressive cleanup behavior on Linux nodes; use carefully.
461
461
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # `t>` Tabminal
2
2
 
3
- > **Tab(ter)minal, a Cloud-Native terminal and ACP agent workspace for desktop, tablet, and phone.
3
+ > `Tab(ter)minal`, a Cloud-Native terminal and ACP agent workspace for desktop, tablet, and phone.
4
4
 
5
5
  `Tabminal` combines persistent server-side terminal sessions, a built-in
6
6
  workspace, multi-host access, and Agent Client Protocol (ACP) integrations in
@@ -267,8 +267,8 @@ reliable.
267
267
 
268
268
  ## Architecture Snapshot
269
269
 
270
- - Backend: `Node.js`, [`utilitas`](https://github.com/leask/utilitas), `Koa`, `node-pty`, `WebSocket`, `ACP SDK`
271
- - Frontend: [`Vanilla JS 😝`](http://vanilla-js.com/), `xterm.js`, `Monaco Editor`
270
+ - Backend: [`Node.js`](https://nodejs.org/), [`utilitas`](https://github.com/leask/utilitas), [`Koa`](https://github.com/koajs/koa), [`node-pty`](https://github.com/Tyriar/node-pty), [`WebSocket`](https://github.com/websockets/ws), [`ACP SDK`](https://github.com/acp-kit/acp-sdk)
271
+ - Frontend: [`Vanilla JS 😝`](http://vanilla-js.com/), [`xterm.js`](https://github.com/xtermjs/xterm.js), [`Monaco Editor`](https://github.com/microsoft/monaco-editor)
272
272
  - Persistence: host-local files under `~/.tabminal`
273
273
  - Native clients and packaging work live under:
274
274
  - `apps/Apple`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tabminal",
3
- "version": "2.0.16",
3
+ "version": "2.0.18",
4
4
  "description": "A modern, persistent web terminal with multi-tab support and real-time system monitoring.",
5
5
  "type": "module",
6
6
  "bin": {