vg-coder-cli 2.0.49 → 2.0.51

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/INTEGRATION.md CHANGED
@@ -29,6 +29,7 @@ External Service ◀── POST <webhookUrl> (push, retry 3×)
29
29
  - **Workers**: mỗi tab Chrome trên `aistudio.google.com` với extension VG Coder = 1 worker. Server tự load-balance song song giữa các worker idle.
30
30
  - **Launchers**: mỗi Chrome profile = 1 launcher (background service worker của extension). Dùng để mở/đóng tab AI Studio và lock model cho từng task.
31
31
  - **Auto-recycle**: sau mỗi task done/failed, server gọi launcher đóng tab worker đó + mở lại tab mới với `?model=<target>` — guarantee model lock per task. Mark worker `recycling` để tránh race.
32
+ - **Idle tab TTL** (v2.0.50+): sau khi recycle xong, nếu không có task mới trong `VG_WORKER_IDLE_TTL_MS` (default `120000` = 2 phút), launcher đóng tab → CPU container về ~0%. Task tiếp theo sẽ trigger `launcher:open_aistudio` để mở lại tab. Set `VG_WORKER_IDLE_TTL_MS=0` để giữ tab always-on (behavior cũ); set `=1` để đóng ngay sau mỗi task.
32
33
  - **Failover**: rate-limit / quota error → mark worker `rate_limited` 30 phút, requeue task sang worker khác (max 3 attempts). Tab giữ nguyên qua cooldown (không recycle khi rate-limited).
33
34
  - **Default model**: `gemini-3-flash-preview` (free + multimodal — verified working với image + PDF). Avoid `-lite` (text-only) hoặc `-pro-preview` (paid alias to Deep Research).
34
35
  - **Persistence**: tasks lưu vào `.vg/tasks/<id>/{task.json,result.md,files/}` của active project.
@@ -39,9 +40,13 @@ External Service ◀── POST <webhookUrl> (push, retry 3×)
39
40
 
40
41
  ```bash
41
42
  npm install -g vg-coder-cli # hoặc: cd repo && npm run build
42
- vg start # khởi động server :6868
43
+ vg start # khởi động server :6868 (loopback)
44
+ vg start --host 0.0.0.0 # bind LAN/Docker
45
+ vg start --worker # ẩn bubble + dashboard panel trên tab AI Studio
43
46
  ```
44
47
 
48
+ > **Worker-only mode** (`--worker`): server inject `window.__VG_WORKER_ONLY__=true` vào bundle khi serve `/dist/vg-coder-bundle.js`. Dashboard sẽ ẩn `#vg-coder-shadow-host` và chỉ chạy `initTaskWorker()` — không render bubble + tool panels. REST API vẫn đầy đủ. Sau khi đổi flag phải **reload tab AI Studio** để bundle mới load.
49
+
45
50
  ### Worker (browser tab)
46
51
 
47
52
  Mỗi Google account muốn dùng → 1 Chrome profile riêng:
@@ -402,7 +407,7 @@ User vẫn có thể:
402
407
 
403
408
  ```bash
404
409
  curl http://127.0.0.1:6868/health
405
- # {"status":"ok","version":"2.0.48"}
410
+ # {"status":"ok","version":"2.0.50"}
406
411
  ```
407
412
 
408
413
  ## End-to-end smoke test
package/README.md CHANGED
@@ -73,13 +73,20 @@ vg clean --output ./my-output
73
73
 
74
74
  #### 4. **Khởi động API Server** 🆕
75
75
  ```bash
76
- # Start server (mặc định port 6868)
76
+ # Start server (mặc định port 6868, bind 127.0.0.1)
77
77
  vg start
78
78
  vg s # Alias rút gọn
79
79
 
80
80
  # Custom port
81
81
  vg start -p 8080
82
82
 
83
+ # Bind LAN/Docker (cho phép truy cập từ host khác)
84
+ vg start --host 0.0.0.0
85
+
86
+ # Worker-only mode: ẩn bubble + dashboard panel trên tab AI Studio,
87
+ # chỉ chạy task automation (cho server headless điều phối từ xa)
88
+ vg start --worker
89
+
83
90
  # Browser tự động mở dashboard tại http://localhost:6868
84
91
  ```
85
92
 
@@ -94,7 +101,7 @@ GET http://localhost:6868/health
94
101
  ```json
95
102
  {
96
103
  "status": "ok",
97
- "version": "2.0.48",
104
+ "version": "2.0.50",
98
105
  "timestamp": "2026-05-09T10:07:13.000Z"
99
106
  }
100
107
  ```
@@ -194,6 +201,8 @@ Content-Type: application/json
194
201
  | Option | Mô tả | Default |
195
202
  |--------|-------|---------|
196
203
  | `-p, --port <port>` | Port cho server | 6868 |
204
+ | `--host <host>` | Bind address. Set `0.0.0.0` cho LAN/Docker port-forward (env: `VG_HOST`) | 127.0.0.1 |
205
+ | `--worker` | Worker-only mode: ẩn bubble + dashboard panel trên tab AI Studio, chỉ giữ task automation | false |
197
206
 
198
207
  ## 🎨 Dashboard UI
199
208
 
@@ -369,7 +378,13 @@ MIT License - xem file [LICENSE](LICENSE) để biết thêm chi tiết.
369
378
 
370
379
  ## 📊 Version History
371
380
 
372
- ### v2.0.48 (Latest)
381
+ ### v2.0.50 (Latest)
382
+ - 🤖 Worker-only mode (`vg start --worker`): server prepend `window.__VG_WORKER_ONLY__=true` vào bundle, dashboard skip bubble + panels, chỉ chạy `initTaskWorker()` — tab AI Studio sạch không bị che bởi UI
383
+ - ⏲️ Idle worker tab TTL (env `VG_WORKER_IDLE_TTL_MS`, default 120 000): không có task mới → launcher đóng tab → CPU container về 0%; task tới sẽ tự mở lại tab
384
+ - 🐳 Configurable bind address: `vg start --host 0.0.0.0` (hoặc env `VG_HOST`) cho LAN/Docker port-forward
385
+ - 🧱 Dynamic CSP bypass via `chrome.declarativeNetRequest.updateDynamicRules` — fix lỗi parse static rules.json trên Chromium 120 (Linux/Docker)
386
+
387
+ ### v2.0.48
373
388
  - 🤖 Remote Task API: external service push task chat AI Studio + nhận callback (`POST /api/tasks` + webhook)
374
389
  - 🧠 Multi-worker pool: mỗi Chrome profile = 1 worker, parallel + auto-failover khi rate-limit
375
390
  - 🪟 Launcher SW per profile + tab management API (`GET /api/launcher/tabs`, `POST /api/launcher/{open,close}-tab`)