@litfamily/litopencode 1.0.6 → 1.0.7

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 CHANGED
@@ -5,6 +5,11 @@ are tracked separately from this product history.
5
5
 
6
6
  ## Unreleased
7
7
 
8
+ ## 1.0.7
9
+
10
+ - Run the automatic update's staged installer on Node instead of the OpenCode host binary, so a new release no longer rolls back and leaves the plugin unloaded.
11
+ - Keep `~/.litopencode/` owner-only instead of refusing a directory created world-readable by earlier state writers, and load the current install when the state directory is unusable.
12
+
8
13
  ## 1.0.6
9
14
 
10
15
  - Ask about competing visual directions the brief leaves open instead of silently applying an announced default.
package/README-Ko-KR.md CHANGED
@@ -1,7 +1,7 @@
1
- <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/cover-motion.webp" width="100%" alt="LITOPENCODE 워드마크 위 궤도를 라임 신호가 지나가는 표지입니다. 움직임 줄이기를 선호하면 이 표지의 정지 프레임을 표시합니다." /></picture></p>
2
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/cover.webp" width="100%" alt="LITFAMILY와 KEEP THE WORK LIT. 문구 아래에 모인 다섯 로봇 크루." /></p>
1
+ <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover-motion.webp" width="100%" alt="LITOPENCODE 워드마크 위 궤도를 라임 신호가 지나가는 표지입니다. 움직임 줄이기를 선호하면 이 표지의 정지 프레임을 표시합니다." /></picture></p>
2
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover.webp" width="100%" alt="LITFAMILY와 KEEP THE WORK LIT. 문구 아래에 모인 다섯 로봇 크루." /></p>
3
3
 
4
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B 마크" /></p>
4
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B 마크" /></p>
5
5
 
6
6
  <details>
7
7
  <summary>ASCII 로고 복사</summary>
@@ -33,21 +33,21 @@
33
33
 
34
34
  # LitOpenCode
35
35
 
36
- [English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/README-Ko-KR.md)
36
+ [English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/README-Ko-KR.md)
37
37
 
38
38
  > **불씨를 건네받았다.**<br>
39
39
  > **이제, 당신의 작업에 옮길 차례다.**
40
40
 
41
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/litopencode-wordmark.svg" width="480" alt="LITOPENCODE 디스플레이 타입" /></p>
42
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/litopencode-clay-icon.png" width="160" alt="LitOpenCode 클레이 마크" /></p>
41
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/litopencode-wordmark.svg" width="480" alt="LITOPENCODE 디스플레이 타입" /></p>
42
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/litopencode-clay-icon.png" width="160" alt="LitOpenCode 클레이 마크" /></p>
43
43
 
44
44
  <p align="center">
45
- <a href="#설치"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/badge-version.svg" alt="1.0.6" /></a>
46
- <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/badge-license.svg" alt="MIT 라이선스" /></a>
45
+ <a href="#설치"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/badge-version.svg" alt="1.0.7" /></a>
46
+ <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/badge-license.svg" alt="MIT 라이선스" /></a>
47
47
  </p>
48
48
 
49
49
  <p align="center">
50
- <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference-Ko-KR.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/lucide-book-open.svg" width="16" alt="" /> 문서</a> &nbsp; <a href="#설치">설치</a> &nbsp; <a href="#ignition-motion"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/lucide-play.svg" width="16" alt="" /> Ignition</a> &nbsp; <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
50
+ <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-book-open.svg" width="16" alt="" /> 문서</a> &nbsp; <a href="#설치">설치</a> &nbsp; <a href="#ignition-motion"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-play.svg" width="16" alt="" /> Ignition</a> &nbsp; <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
51
51
  </p>
52
52
 
53
53
  ## LitOpenCode란
@@ -79,9 +79,9 @@ npm exec --package @litfamily/litopencode@latest -- litopencode install --yes
79
79
  설치 도구는 OpenCode 설정 루트에 플러그인과 native 명령·스킬 파일을 등록합니다.
80
80
  route 파일은 `~/.config/opencode/litopencode.json`이며 `XDG_CONFIG_HOME`을 지정하면
81
81
  설정 루트가 달라집니다. 기존 custom route는 사용자 소유로 유지됩니다.
82
- custom root, 모델 선택, 터미널 정책, 무인 설치는 [상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference-Ko-KR.md#설치)를 참고하세요.
82
+ custom root, 모델 선택, 터미널 정책, 무인 설치는 [상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md#설치)를 참고하세요.
83
83
 
84
- 이 checkout의 패키지는 `@litfamily/litopencode@1.0.6`입니다. registry의 `@latest`는 다를 수 있으므로
84
+ 이 checkout의 패키지는 `@litfamily/litopencode@1.0.7`입니다. registry의 `@latest`는 다를 수 있으므로
85
85
  정확한 버전이 필요하면 `npm view @litfamily/litopencode version`으로 확인하세요.
86
86
 
87
87
  ## 처음 사용하기
@@ -136,9 +136,9 @@ primitive가 없으므로 이 프로젝트별 로컬 기록으로 작업을 재
136
136
 
137
137
  Lit 경로가 활성화되면 답변이 굵은 점화 문구로 시작합니다. 플러그인은 글리프를 지원하는 환경에서 다섯 줄의 micro 로고와 마지막 `🔥 LIT IGNITED · <discipline> 🔥` 문구를 6초 동안 경고 토스트로 표시하도록 요청합니다. 글리프를 지원하지 않으면 문구만 표시합니다.
138
138
 
139
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/litopencode-ignition-1600.webp" width="48%" alt="LitOpenCode 점화 장치" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/litopencode-continuity-1600.webp" width="48%" alt="LitOpenCode 연속 장치" /></p>
139
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/litopencode-ignition-1600.webp" width="48%" alt="LitOpenCode 점화 장치" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/litopencode-continuity-1600.webp" width="48%" alt="LitOpenCode 연속 장치" /></p>
140
140
 
141
- <p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/poster.png" width="720" alt="Ignition 모션 포스터" /></a></p>
141
+ <p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/poster.png" width="720" alt="Ignition 모션 포스터" /></a></p>
142
142
 
143
143
  포스터를 선택하면 선택형 영상을 엽니다. README에서 자동 재생하지 않습니다.
144
144
 
@@ -210,9 +210,9 @@ canonical 경로를 사용합니다. 번호가 붙은 license·provenance 파일
210
210
  | `/lit-korean` | 의미를 유지하며 한국어 문장 다듬기 |
211
211
  | `/lit-scientific-visualization` | 패키지에 포함된 과학 시각화 워크플로 |
212
212
 
213
- Autoresearch, Autoconference, Wikify, UI/UX는 [전체 경로 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference-Ko-KR.md#주요-명령)에,
214
- 두 가지 rule 처리 경로는 [규칙 엔진 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md#safety-and-updates)에서 확인하세요.
215
- 이전 스킬 이름은 한 릴리스 동안 별칭으로 연결됩니다. [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/migration.md#skill-id-renames)를 확인하세요.
213
+ Autoresearch, Autoconference, Wikify, UI/UX는 [전체 경로 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md#주요-명령)에,
214
+ 두 가지 rule 처리 경로는 [규칙 엔진 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#safety-and-updates)에서 확인하세요.
215
+ 이전 스킬 이름은 한 릴리스 동안 별칭으로 연결됩니다. [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/migration.md#skill-id-renames)를 확인하세요.
216
216
 
217
217
  ## 안전과 업데이트
218
218
 
@@ -223,7 +223,7 @@ Autoresearch, Autoconference, Wikify, UI/UX는 [전체 경로 안내](https://cd
223
223
  `--no-auto-update` 또는 `LITOPENCODE_NO_AUTO_UPDATE=1`로 자동 업데이트를 끌 수 있습니다.
224
224
  - 스킬 학습 결과는 명시적인 apply 명령이 있어야 반영됩니다. 학습의 review·변경·rollback·curator는
225
225
  POSIX를 지원하며 Windows에서는 해당 경계를 차단합니다. 설치, doctor, 수동 조회에는
226
- 이 제한이 적용되지 않습니다. [학습 루프 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md#skill-learning-loop).
226
+ 이 제한이 적용되지 않습니다. [학습 루프 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#skill-learning-loop).
227
227
 
228
228
  ## 문제 해결
229
229
 
@@ -235,12 +235,12 @@ Autoresearch, Autoconference, Wikify, UI/UX는 [전체 경로 안내](https://cd
235
235
  npm exec --package @litfamily/litopencode@latest -- litopencode doctor
236
236
  ```
237
237
 
238
- [설치와 모델 설정 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference-Ko-KR.md#설치)를 참고하세요.
238
+ [설치와 모델 설정 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md#설치)를 참고하세요.
239
239
 
240
240
  `install`과 `doctor`는 `<root>/skills`가 심볼릭 링크일 때 그 사실과 git 저장소 경고를
241
241
  보고하며, `~/.agents/skills`, `~/.claude/skills`, 프로젝트 스킬 디렉토리에 같은 이름의
242
242
  스킬이 있으면 함께 알려줍니다. 자세한 내용은
243
- [심볼릭 링크된 native 스킬 루트와 다른 위치의 같은 이름 스킬](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference-Ko-KR.md#심볼릭-링크된-native-스킬-루트와-다른-위치의-같은-이름-스킬)을
243
+ [심볼릭 링크된 native 스킬 루트와 다른 위치의 같은 이름 스킬](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md#심볼릭-링크된-native-스킬-루트와-다른-위치의-같은-이름-스킬)을
244
244
  참고하세요.
245
245
 
246
246
  ## 제거
@@ -256,7 +256,7 @@ npm uninstall -g @litfamily/litopencode
256
256
  설치된 명령·스킬 파일은 소유 관계를 확인한 뒤 설치 도구가 관리하는 복사본만 제거하세요.
257
257
  사용자가 만든 파일과 수정 내용은 보존합니다. route가 필요하면 `litopencode.json`을,
258
258
  작업을 재개할 계획이라면 프로젝트의 `.litopencode/` 기록을 남기세요. 제거 후 OpenCode를
259
- 재시작합니다. [제거 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference-Ko-KR.md#제거).
259
+ 재시작합니다. [제거 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md#제거).
260
260
 
261
261
  ## 라이선스
262
262
 
@@ -266,25 +266,25 @@ MIT
266
266
 
267
267
  ### 문서
268
268
 
269
- - [워크플로 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference-Ko-KR.md): 모델, 권한, host 연결, 명령, 검증 방법
270
- - [English reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md): 전체 스킬 목록, 학습 루프, 규칙 엔진 포함
271
- - [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/migration.md)
272
- - [터미널 마크와 활성화 확인 문구](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/lit-mark.md)
273
- - [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/CHANGELOG.md)
269
+ - [워크플로 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md): 모델, 권한, host 연결, 명령, 검증 방법
270
+ - [English reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md): 전체 스킬 목록, 학습 루프, 규칙 엔진 포함
271
+ - [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/migration.md)
272
+ - [터미널 마크와 활성화 확인 문구](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/lit-mark.md)
273
+ - [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CHANGELOG.md)
274
274
  - 출시 담당자 체크리스트 (저장소 전용)
275
275
 
276
- - [기여 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/CONTRIBUTING.md) · [지원](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/SUPPORT.md) · [보안 제보](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/SECURITY.md)
277
- - [행동 규범](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/CODE_OF_CONDUCT.md) · [개인정보와 네트워크 동작](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/privacy.md)
276
+ - [기여 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CONTRIBUTING.md) · [지원](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/SUPPORT.md) · [보안 제보](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/SECURITY.md)
277
+ - [행동 규범](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CODE_OF_CONDUCT.md) · [개인정보와 네트워크 동작](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/privacy.md)
278
278
 
279
279
  ### LITFAMILY
280
280
 
281
- ![LitClaude, LitHermes, LitCodex, LitOpenCode, LitGrok을 표현한 다섯 중장갑 머신](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/litfamily-machines.png)
281
+ ![LitClaude, LitHermes, LitCodex, LitOpenCode, LitGrok을 표현한 다섯 중장갑 머신](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/litfamily-machines.png)
282
282
 
283
283
  LitClaude · LitHermes · LitCodex · LitOpenCode · LitGrok.
284
284
  다섯 중장갑 머신으로 다섯 제품을 표현한 일러스트입니다. 각 제품은 자신이 지원하는 도구에서 독립적으로 동작합니다.
285
285
 
286
286
  ### Ignition motion
287
287
 
288
- [![Ignition 모션 그래픽 포스터](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/poster.png)](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/ignition-film.mp4)
288
+ [![Ignition 모션 그래픽 포스터](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/poster.png)](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4)
289
289
 
290
- [10초 영상 보기](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/ignition-film.mp4) · [애니메이션 GIF](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/ignition-readme.gif) · [Lucide 아이콘 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/Lucide-LICENSE.txt) · [ASCII 글꼴 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/JetBrainsMono-OFL.txt)
290
+ [10초 영상 보기](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4) · [애니메이션 GIF](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-readme.gif) · [Lucide 아이콘 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/Lucide-LICENSE.txt) · [ASCII 글꼴 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/JetBrainsMono-OFL.txt)
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
- <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/cover-motion.webp" width="100%" alt="LitOpenCode cover art. A lime signal traces orbital paths above the OPENCODE wordmark. Reduced-motion users see a still frame from this cover." /></picture></p>
2
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/cover.webp" width="100%" alt="Five robots beneath the LITFAMILY and KEEP THE WORK LIT. lettering." /></p>
1
+ <p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover-motion.webp" width="100%" alt="LitOpenCode cover art. A lime signal traces orbital paths above the OPENCODE wordmark. Reduced-motion users see a still frame from this cover." /></picture></p>
2
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/cover.webp" width="100%" alt="Five robots beneath the LITFAMILY and KEEP THE WORK LIT. lettering." /></p>
3
3
 
4
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B mark" /></p>
4
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B mark" /></p>
5
5
 
6
6
  <details>
7
7
  <summary>Copy ASCII logo</summary>
@@ -33,20 +33,20 @@
33
33
 
34
34
  # LitOpenCode
35
35
 
36
- [English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/README-Ko-KR.md)
36
+ [English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/README-Ko-KR.md)
37
37
 
38
38
  **Keep the work lit.**
39
39
 
40
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/litopencode-wordmark.svg" width="480" alt="LITOPENCODE display type" /></p>
41
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/litopencode-clay-icon.png" width="160" alt="LitOpenCode clay mark" /></p>
40
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/litopencode-wordmark.svg" width="480" alt="LITOPENCODE display type" /></p>
41
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/litopencode-clay-icon.png" width="160" alt="LitOpenCode clay mark" /></p>
42
42
 
43
43
  <p align="center">
44
- <a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/badge-version.svg" alt="1.0.6" /></a>
45
- <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
44
+ <a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/badge-version.svg" alt="1.0.7" /></a>
45
+ <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
46
46
  </p>
47
47
 
48
48
  <p align="center">
49
- <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/lucide-book-open.svg" width="16" alt="" /> Docs</a> &nbsp; <a href="#install">Install</a> &nbsp; <a href="#ignition-motion"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/lucide-play.svg" width="16" alt="" /> Ignition</a> &nbsp; <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
49
+ <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-book-open.svg" width="16" alt="" /> Docs</a> &nbsp; <a href="#install">Install</a> &nbsp; <a href="#ignition-motion"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-play.svg" width="16" alt="" /> Ignition</a> &nbsp; <a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/lucide-shield-check.svg" width="16" alt="" /> MIT</a>
50
50
  </p>
51
51
 
52
52
  ## What is LitOpenCode
@@ -76,10 +76,10 @@ npm exec --package @litfamily/litopencode@latest -- litopencode install --yes
76
76
  Installation registers the plugin and native command/skill files under your OpenCode
77
77
  config root. Routes live in `~/.config/opencode/litopencode.json`; `XDG_CONFIG_HOME`
78
78
  changes that root. Existing custom routes remain user-owned. See the
79
- [installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md#install) for custom roots,
79
+ [installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#install) for custom roots,
80
80
  provider choices, terminal policy, and unattended setup.
81
81
 
82
- This checkout is `@litfamily/litopencode@1.0.6`. Registry `@latest` can differ; inspect it with
82
+ This checkout is `@litfamily/litopencode@1.0.7`. Registry `@latest` can differ; inspect it with
83
83
  `npm view @litfamily/litopencode version` when an exact version matters.
84
84
 
85
85
  ## First use
@@ -134,9 +134,9 @@ Use `lit` or `/lit` to start a bounded task; `handoff` or `/lit-handoff` carries
134
134
 
135
135
  When a Lit route activates, the reply starts with a bold ignition line. The plugin requests a six-second warning toast with five micro-logo rows and a final `🔥 LIT IGNITED · <discipline> 🔥` line when the environment supports mark glyphs; otherwise, it shows only that line.
136
136
 
137
- <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/litopencode-ignition-1600.webp" width="48%" alt="LitOpenCode ignition apparatus" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/litopencode-continuity-1600.webp" width="48%" alt="LitOpenCode continuity apparatus" /></p>
137
+ <p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/litopencode-ignition-1600.webp" width="48%" alt="LitOpenCode ignition apparatus" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/litopencode-continuity-1600.webp" width="48%" alt="LitOpenCode continuity apparatus" /></p>
138
138
 
139
- <p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/poster.png" width="720" alt="Ignition motion poster" /></a></p>
139
+ <p align="center"><a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/poster.png" width="720" alt="Ignition motion poster" /></a></p>
140
140
 
141
141
  The poster opens the optional film; this README keeps motion opt-in.
142
142
 
@@ -206,9 +206,9 @@ remain source-attribution records.
206
206
  | `/lit-korean` | Improve Korean prose without changing its meaning. |
207
207
  | `/lit-scientific-visualization` | Use the packaged scientific-visualization workflow. |
208
208
 
209
- The [full route and skill reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md#core-commands) covers
209
+ The [full route and skill reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#core-commands) covers
210
210
  Autoresearch, Autoconference, Wikify, UI/UX, and the two-lane repository rules engine.
211
- [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/migration.md#skill-id-renames) explain the one-release skill aliases.
211
+ [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/migration.md#skill-id-renames) explain the one-release skill aliases.
212
212
 
213
213
  ## Safety and updates
214
214
 
@@ -219,7 +219,7 @@ Autoresearch, Autoconference, Wikify, UI/UX, and the two-lane repository rules e
219
219
  check. Use `--no-auto-update` or `LITOPENCODE_NO_AUTO_UPDATE=1` to disable automatic updates.
220
220
  - Skill learning requires an explicit apply command. Its review, mutation, rollback, and
221
221
  curator boundaries support POSIX; on Windows those boundaries fail closed. Install,
222
- doctor, and passive surfaces remain available. [Learning-loop details](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md#skill-learning-loop).
222
+ doctor, and passive surfaces remain available. [Learning-loop details](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#skill-learning-loop).
223
223
 
224
224
  ## Troubleshooting
225
225
 
@@ -231,12 +231,12 @@ Inspect package and configuration health with:
231
231
  npm exec --package @litfamily/litopencode@latest -- litopencode doctor
232
232
  ```
233
233
 
234
- See the [installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md#install).
234
+ See the [installation and model reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#install).
235
235
 
236
236
  Install and `doctor` report when `<root>/skills` is a symlink (and its git-repository
237
237
  warning) and any same-named skill shadowing it in `~/.agents/skills`, `~/.claude/skills`,
238
238
  or a project skills directory. See
239
- [symlinked native skills root and shadow copies](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md#symlinked-native-skills-root-and-shadow-copies).
239
+ [symlinked native skills root and shadow copies](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#symlinked-native-skills-root-and-shadow-copies).
240
240
 
241
241
  ## Uninstall
242
242
 
@@ -252,7 +252,7 @@ npm uninstall -g @litfamily/litopencode
252
252
  Review installed command/skill files before removing installer-owned copies; preserve
253
253
  user-created files and edits. Keep `litopencode.json` if you still need its routes, and
254
254
  keep project `.litopencode/` ledgers if you plan to resume. Restart OpenCode after removal.
255
- See the [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md#remove).
255
+ See the [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md#remove).
256
256
 
257
257
  ## License
258
258
 
@@ -262,25 +262,25 @@ MIT
262
262
 
263
263
  ### Documentation
264
264
 
265
- - [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference.md): models, permissions, host hooks, all skills, learning loop, and reproducible verification.
266
- - [한국어 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/reference-Ko-KR.md)
267
- - [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/migration.md)
268
- - [Terminal mark and activation probes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/lit-mark.md)
269
- - [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/CHANGELOG.md)
265
+ - [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference.md): models, permissions, host hooks, all skills, learning loop, and reproducible verification.
266
+ - [한국어 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/reference-Ko-KR.md)
267
+ - [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/migration.md)
268
+ - [Terminal mark and activation probes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/lit-mark.md)
269
+ - [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CHANGELOG.md)
270
270
  - Maintainer release checklist (repository only)
271
271
 
272
- - [Contributing](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/CONTRIBUTING.md) · [Support](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/SUPPORT.md) · [Security](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/SECURITY.md)
273
- - [Code of conduct](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/CODE_OF_CONDUCT.md) · [Privacy and network behavior](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/privacy.md)
272
+ - [Contributing](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CONTRIBUTING.md) · [Support](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/SUPPORT.md) · [Security](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/SECURITY.md)
273
+ - [Code of conduct](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/CODE_OF_CONDUCT.md) · [Privacy and network behavior](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/privacy.md)
274
274
 
275
275
  ### LITFAMILY
276
276
 
277
- ![Five armored machines representing LitClaude, LitHermes, LitCodex, LitOpenCode and LitGrok](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/litfamily-machines.png)
277
+ ![Five armored machines representing LitClaude, LitHermes, LitCodex, LitOpenCode and LitGrok](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/litfamily-machines.png)
278
278
 
279
279
  LitClaude · LitHermes · LitCodex · LitOpenCode · LitGrok.
280
280
  Five armored machines for five independent products, each working in its own host.
281
281
 
282
282
  ### Ignition motion
283
283
 
284
- [![Ignition motion graphic poster](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/poster.png)](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/ignition-film.mp4)
284
+ [![Ignition motion graphic poster](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/poster.png)](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4)
285
285
 
286
- [Watch the 10-second film](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/ignition-film.mp4) · [Animated GIF](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/ignition-readme.gif) · [Lucide icon license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/Lucide-LICENSE.txt) · [ASCII font license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.6/docs/assets/readme/JetBrainsMono-OFL.txt)
286
+ [Watch the 10-second film](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-film.mp4) · [Animated GIF](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/ignition-readme.gif) · [Lucide icon license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/Lucide-LICENSE.txt) · [ASCII font license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.7/docs/assets/readme/JetBrainsMono-OFL.txt)
@@ -49,6 +49,8 @@ export type AutoUpdateOptions = {
49
49
  readonly env?: NodeJS.ProcessEnv;
50
50
  readonly argv?: readonly string[];
51
51
  readonly fetchLatestVersion?: () => Promise<string>;
52
+ /** Runtime for the staged CLI; defaults to {@link childNodeExecutable}. */
53
+ readonly nodeExecutable?: string;
52
54
  readonly runCommand?: (command: string, args: readonly string[], options: AutoUpdateCommandOptions) => Promise<CommandOutput>;
53
55
  };
54
56
  type DoctorReceipt = {
@@ -81,6 +83,12 @@ type AutoUpdateReceipt = {
81
83
  readonly error?: string;
82
84
  };
83
85
  };
86
+ /**
87
+ * The staged CLI needs Node. Inside OpenCode the plugin runs on a Bun-compiled
88
+ * host binary, and process.execPath names that binary rather than a Node
89
+ * runtime, so fall back to `node` on PATH there.
90
+ */
91
+ export declare function childNodeExecutable(execPath?: string, versions?: NodeJS.ProcessVersions | Readonly<Record<string, string | undefined>>): string;
84
92
  export declare function autoUpdateInstallLockPath(homeDir?: string): string;
85
93
  export declare function autoUpdateJournalPath(homeDir?: string): string;
86
94
  export declare function autoUpdateReceiptPath(homeDir?: string): string;
@@ -21,6 +21,16 @@ const journalFileName = "auto-update-journal.jsonl";
21
21
  const installLockFileName = "auto-update-install.lock";
22
22
  const maxCommandOutputBytes = 4 * 1024 * 1024;
23
23
  const execFileAsync = promisify(execFile);
24
+ /**
25
+ * The staged CLI needs Node. Inside OpenCode the plugin runs on a Bun-compiled
26
+ * host binary, and process.execPath names that binary rather than a Node
27
+ * runtime, so fall back to `node` on PATH there.
28
+ */
29
+ export function childNodeExecutable(execPath = process.execPath, versions = process.versions) {
30
+ if (versions.bun === undefined && /^node(\.exe)?$/iu.test(path.basename(execPath.replaceAll("\\", "/"))))
31
+ return execPath;
32
+ return "node";
33
+ }
24
34
  function stateRoot(homeDir) {
25
35
  return path.join(homeDir, stateRootName);
26
36
  }
@@ -126,8 +136,11 @@ async function ensurePrivateStateRoot(homeDir) {
126
136
  throw new Error("automatic update state root is unsafe");
127
137
  if (typeof process.getuid === "function" && stat.uid !== process.getuid())
128
138
  throw new Error("automatic update state root is not user-owned");
139
+ // Project-local state for a project at HOME shares this directory and was
140
+ // created with default permissions; tighten our own directory instead of
141
+ // refusing every update.
129
142
  if ((stat.mode & 0o077) !== 0)
130
- throw new Error("automatic update state root is not private");
143
+ await fs.chmod(directory, 0o700);
131
144
  }
132
145
  catch (error) {
133
146
  if (error.code !== "ENOENT")
@@ -413,14 +426,15 @@ async function updateTransaction(options, homeDir, currentVersion, targetVersion
413
426
  await bounded(() => runCommand("npm", npmArgs, { cwd: stageRoot, env: childEnv, timeout: autoUpdateTimeoutMs, maxBuffer: maxCommandOutputBytes }), autoUpdateTimeoutMs);
414
427
  await appendJournal(homeDir, "npm-install", { spec });
415
428
  const entrypoint = await packageEntrypoint(stageRoot, targetVersion);
429
+ const nodeExecutable = options.nodeExecutable ?? childNodeExecutable();
416
430
  const installArgs = [entrypoint, "install", "--root", options.configRoot, "--no-model-prompt", "--no-permission-prompt", "--no-auto-update"];
417
431
  stagedStateKnown = false;
418
- await bounded(() => runCommand(process.execPath, installArgs, { cwd: options.configRoot, env: childEnv, timeout: autoUpdateTimeoutMs, maxBuffer: maxCommandOutputBytes }), autoUpdateTimeoutMs);
432
+ await bounded(() => runCommand(nodeExecutable, installArgs, { cwd: options.configRoot, env: childEnv, timeout: autoUpdateTimeoutMs, maxBuffer: maxCommandOutputBytes }), autoUpdateTimeoutMs);
419
433
  stagedStateKnown = true;
420
434
  await appendJournal(homeDir, "install", { spec });
421
435
  const doctorArgs = [entrypoint, "doctor", "--root", options.configRoot, "--json", "--no-auto-update"];
422
436
  stagedStateKnown = false;
423
- const doctorOutput = await bounded(() => runCommand(process.execPath, doctorArgs, { cwd: options.configRoot, env: childEnv, timeout: autoUpdateTimeoutMs, maxBuffer: maxCommandOutputBytes }), autoUpdateTimeoutMs);
437
+ const doctorOutput = await bounded(() => runCommand(nodeExecutable, doctorArgs, { cwd: options.configRoot, env: childEnv, timeout: autoUpdateTimeoutMs, maxBuffer: maxCommandOutputBytes }), autoUpdateTimeoutMs);
424
438
  doctor = parseDoctorOutput(doctorOutput, targetVersion);
425
439
  stagedStateKnown = doctor.package?.name !== undefined && doctor.package.version !== undefined;
426
440
  await appendJournal(homeDir, "doctor", { ok: doctor.ok, package: doctor.package, error: doctor.error });
@@ -503,7 +517,14 @@ export async function runAutoUpdate(options) {
503
517
  const comparison = compareStableVersions(targetVersion, options.currentVersion);
504
518
  if (comparison !== 1)
505
519
  return { status: "skipped", currentVersion: options.currentVersion, targetVersion, reason: "up-to-date" };
506
- const lock = await acquireInstallLock(homeDir);
520
+ let lock;
521
+ try {
522
+ lock = await acquireInstallLock(homeDir);
523
+ }
524
+ catch {
525
+ // Nothing has been mutated yet, so the current install stays usable.
526
+ return { status: "skipped", currentVersion: options.currentVersion, targetVersion, reason: "state-unavailable" };
527
+ }
507
528
  if (lock === undefined)
508
529
  return { status: "skipped", currentVersion: options.currentVersion, targetVersion, reason: "install-lock-busy" };
509
530
  try {
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.6"><title>release: 1.0.6</title><g shape-rendering="crispEdges"><rect width="49" height="20" fill="#080d14"/><rect x="49" width="97" height="20" fill="#ff6337"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="255" y="140" textLength="390" transform="scale(.1)">release</text><text x="965" y="140" textLength="870" transform="scale(.1)" fill="#080D14">1.0.6</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.7"><title>release: 1.0.7</title><g shape-rendering="crispEdges"><rect width="49" height="20" fill="#080d14"/><rect x="49" width="97" height="20" fill="#ff6337"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text x="255" y="140" textLength="390" transform="scale(.1)">release</text><text x="965" y="140" textLength="870" transform="scale(.1)" fill="#080D14">1.0.7</text></g></svg>
package/docs/reference.md CHANGED
@@ -344,7 +344,10 @@ when discarding that project's ledger and receipts is intentional.
344
344
  balanced mode; YOLO allows the configured OpenCode tools, but it does not weaken the planner's
345
345
  deny guard or allow recursive subagent delegation.
346
346
  - Packaged startup and successful interactive `install`/`doctor` commands use a bounded,
347
- exact-version foreground update barrier. Disable it with `--no-auto-update` or
347
+ exact-version foreground update barrier. The staged installer runs on Node from `PATH` when
348
+ the host binary is not Node (OpenCode's own runtime). The barrier keeps `~/.litopencode/`
349
+ owner-only and, if that directory is unusable, skips the update and loads the current
350
+ install. Disable it with `--no-auto-update` or
348
351
  `LITOPENCODE_NO_AUTO_UPDATE=1`. The cache-only notice can also be disabled with
349
352
  `NO_UPDATE_NOTIFIER=1` or `LITOPENCODE_NO_UPDATE_CHECK=1`.
350
353
  - Public-source retrieval uses SSRF checks, redirect validation, byte limits, and access
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@litfamily/litopencode",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "LitOpenCode OpenCode plugin bootstrap package.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -44,6 +44,12 @@
44
44
  "occurrences": 1,
45
45
  "why": "This package manifest is the source of truth used by the lockstep guard."
46
46
  },
47
+ {
48
+ "path": "skills/readme-studio/templates/remotion/package-lock.json",
49
+ "kind": "derived",
50
+ "occurrences": 3,
51
+ "why": "The Remotion template lockfile has 3 occurrence(s) of an unrelated dependency version matching this package release by coincidence; it is not release metadata, and the count follows the current package version."
52
+ },
47
53
  {
48
54
  "path": "test/docs.test.mjs",
49
55
  "kind": "pinned",