postinstall installs Ark skills into shared agent directories without separate confirmation
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- javascript, node.js
- Lĩnh vực
- cli, developer-experience
Hướng nghiên cứu
Start in scripts/postinstall.js at lines 60, 216, and 344, then review the related consent concern in issue #24. Reproduce an install or update and verify that connecting does not modify every detected agent directory without explicit confirmation or a selected target; document the opt-out and affected paths when applicable.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
Installing or updating @volcengine/ark-cli runs an npm postinstall hook that automatically executes +connect --refresh without a separate user confirmation. The connect flow detects agent environments and installs the full Ark CLI skill bundle into their skill locations. In the observed setup, 25 skills were installed under the shared ~/.agents/skills directory.
Codex subsequently discovered those skills and included their names and descriptions in the <skills_instructions> developer message of later sessions. Package installation therefore changed persistent configuration consumed by another agent harness, with a recurring downstream context payload.
Verified on 1.0.33; the relevant postinstall implementation is byte-identical through 1.0.36, the latest stable release.
Related: #24 reported the same postinstall +connect --refresh behavior on v1.0.23 and raised the opt-in/consent concern.
This issue adds two pieces of follow-up evidence rather than intending to duplicate that report:
- the relevant postinstall implementation was verified on 1.0.33 and is byte-identical through 1.0.36 (latest stable);
- the downstream Codex impact was measured directly from rollout files: 30 affected sessions, 33
<skills_instructions>injections, and 439,579 B attributable to the 25 Ark skill entries.
Happy for maintainers to track the underlying fix under #24 if preferred; the measurements here are intended as additional impact evidence.
Trigger mechanism
At scripts/postinstall.js:344, the hook calls:
execFileSync(binPath, ["+connect", "--refresh"])
The hook skips CI environments (scripts/postinstall.js:216), and ARKCLI_SKIP_POSTINSTALL=1 is available (scripts/postinstall.js:60). The CLI also has a --path capability for a targeted installation, but the automatic connect path does not use it to limit the target agent.
Measured downstream impact
In the September 21–29, 2026 observation window, 30 sessions were affected across 161 rollouts in the relevant statistics scope. There were 33 <skills_instructions> injections: 27 sessions had one and three sessions had two, consistent with a resumed session receiving the metadata again. All 33 injections contained the 25 Ark skill entries.
| Measurement | Observed value |
|---|---|
Complete <skills_instructions> developer message |
22,646–51,365 B per injection |
| Complete message median | 46,970 B |
| Complete messages across 33 injections | 1,511,925 B |
| Ark skill entries attributable median | 13,387 B per injection |
| Ark skill entries attributable total | 439,579 B |
The 25 Ark skill descriptions contain 7,406 characters in one copy. Depending on tokenizer, the attributable payload corresponds roughly to 3.5K–5.5K tokens per injection, or 115K–180K tokens across the 33 observed injections. These token figures are estimates; the byte measurements above are the primary evidence.
No Ark CLI skill invocation was observed in the audited logs (1,929 Antigravity command log entries and 255 Codex rollouts).
Why this behavior is surprising
The user action was to install or update one CLI package. The lifecycle hook also modified persistent skill configuration automatically consumed by other agent harnesses. The scope of that side effect is broader than the package installation makes visible to the user.
In agent harnesses, skill descriptions can become recurring prompt context rather than passive files on disk. This makes the default installation behavior relevant to future sessions even when no Ark CLI skill is invoked.
Reproduction / evidence anchors
Two local Codex rollout anchors from the frozen evidence set illustrate the developer-message payload:
rollout-2026-09-21T23-12-33-*.jsonl:3: complete<skills_instructions>message, 51,109 B.rollout-2026-09-22T03-28-51-*.jsonl:277: complete<skills_instructions>message, 22,646 B.
To inspect this in a Codex rollout, find <skills_instructions>, confirm the record is a response_item with role=developer, identify the Ark skill entries, and measure both the complete message bytes and the bytes attributable to those entries. The private rollout and conversation contents are not included here.
Suggested fixes
- Explicit opt-in or scoped installation. Avoid modifying every detected agent environment by default during
postinstall. For example, prompt the user to runarkcli +connect, request confirmation before the first connect, require selection of a target agent, or use the existing--pathcapability for a scoped installation. - Slim metadata and progressive disclosure. Provide shorter auto-discovery descriptions or a slim skill index, with full descriptions loaded only after a skill is selected.
- Clearer installation disclosure. If automatic connect remains, show the detected agents, modified paths, skill count, opt-out method, and uninstall method in the installation output.
- Ngôn ngữ chính
- Go
- Star
- 142
- Fork
- 15
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của volcengine/ark-cli
-
[BUG] Responses API:tools 含 web_search 声明时,deepseek 将 function_call_output 误读为用户消息,多轮工具对话可形成死循环Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
volcengine/ark-cli#26 · 6 bình luận ·
-
[UX] postinstall silently injects 25 arkcli skills into every detected AI agent — should be opt-inĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
volcengine/ark-cli#24 · 1 reaction ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
volcengine/ark-cli#16 · 2 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
volcengine/ark-cli#15 · 1 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 64/100
volcengine/ark-cli#10 · 1 bình luận ·
Tất cả issue của volcengine/ark-cli
Issue tương tự
-
state:triage-needed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
puppe1990/amarra-cais#342 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày
-
tier:1-mechanical
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
krakenhavoc/cmd_and_ctrl#3278 ·
Maintainer thường phản hồi trong vòng 1 ngày