@litfamily/litopencode 1.0.15 → 1.0.16
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 +4 -0
- package/README-Ko-KR.md +10 -10
- package/README.md +10 -10
- package/dist/auto-handoff.js +34 -1
- package/docs/assets/readme/badge-version.svg +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,10 @@ are tracked separately from this product history.
|
|
|
5
5
|
|
|
6
6
|
## Unreleased
|
|
7
7
|
|
|
8
|
+
## 1.0.16 - 2026-10-01
|
|
9
|
+
|
|
10
|
+
- Automatic handoff now finds the handoff it asked for after compaction even when the model formats the marker line, for example as a bullet, in backticks or in bold. A handoff written by another session is still ignored.
|
|
11
|
+
|
|
8
12
|
## 1.0.15 - 2026-09-30
|
|
9
13
|
|
|
10
14
|
- `gpt-6.1-sol` is now the recommended coding-lead alternative, because OpenAI lists `gpt-6-sol` as the previous generation. The installer model menu offers it as the coding lead and keeps `gpt-6-sol` listed as the previous generation, and the reference describes both. Routes that already use `gpt-6-sol` keep working, and `litopencode doctor` still accepts them.
|
package/README-Ko-KR.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
1
|
+
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/cover-motion.webp" width="100%" alt="LitFamily 모션 커버: 다섯 로봇 패널이 차례로 켜지고, LitOpenCode 로봇의 눈과 테두리가 빛난 뒤 LITFAMILY와 KEEP THE WORK LIT. 문구가 밝아지는 영상" /></picture></p>
|
|
2
2
|
|
|
3
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
3
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B 마크" /></p>
|
|
4
4
|
|
|
5
5
|
<details>
|
|
6
6
|
<summary>ASCII 로고 복사</summary>
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
|
|
33
33
|
# LitOpenCode
|
|
34
34
|
|
|
35
|
-
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
35
|
+
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/README-Ko-KR.md)
|
|
36
36
|
|
|
37
37
|
> **불씨를 건네받았다.**<br>
|
|
38
38
|
> **이제, 당신의 작업에 옮길 차례다.**
|
|
39
39
|
|
|
40
40
|
<p align="center">
|
|
41
|
-
<a href="#설치"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
42
|
-
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
41
|
+
<a href="#설치"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/readme/badge-version.svg" alt="1.0.16" /></a>
|
|
42
|
+
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/readme/badge-license.svg" alt="MIT 라이선스" /></a>
|
|
43
43
|
</p>
|
|
44
44
|
|
|
45
45
|
LitOpenCode는 OpenCode에 워크플로 agent, 슬래시 명령, 로컬 근거 기록을 더합니다.
|
|
@@ -99,7 +99,7 @@ OpenAI 제공자를 쓰면 새로 설치했을 때 계획과 검토는 GPT-6 Ast
|
|
|
99
99
|
- planner는 계획만 세웁니다. `lit-plan`은 `edit`, `bash`, `task` 권한이 거부되어 있고, 더 느슨한 `balanced`나 `yolo` 모드를 직접 골라도 그대로입니다.
|
|
100
100
|
- LitOpenCode는 대화형으로 시작할 때와 install이나 doctor가 성공한 뒤에 스스로 업데이트할 수 있습니다. 끄려면 `--no-auto-update`를 붙이거나 `LITOPENCODE_NO_AUTO_UPDATE=1`을 설정하세요.
|
|
101
101
|
- 스킬 학습 기능은 제거되었습니다. 이전 릴리스가 프로젝트의 `.litopencode` 폴더에 남긴 학습 기록은 더 이상 쓰이지 않으니, 남겨 두든 지우든 편한 대로 하면 됩니다.
|
|
102
|
-
- Jev 스킬 힌트는 선택 기능이고 기본값은 꺼짐입니다. 켜면 조건에 맞는 프롬프트가 TypeSafe로 전송되니, 먼저 [Jev 스킬 힌트 참조 문서](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
102
|
+
- Jev 스킬 힌트는 선택 기능이고 기본값은 꺼짐입니다. 켜면 조건에 맞는 프롬프트가 TypeSafe로 전송되니, 먼저 [Jev 스킬 힌트 참조 문서](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/reference-Ko-KR.md#jev-스킬-힌트-선택)를 읽어 보세요. 알림과 doctor 줄이 어떻게 보이는지는 [GitHub 페이지](https://github.com/wjgoarxiv/litopencode/blob/master/README-Ko-KR.md#화면에서-보이는-것)에서 볼 수 있습니다.
|
|
103
103
|
- 뭔가 이상하면 `npm exec --package @litfamily/litopencode@latest -- litopencode doctor`로 패키지와 설정 상태를 확인하세요.
|
|
104
104
|
|
|
105
105
|
## 제거
|
|
@@ -110,11 +110,11 @@ OpenAI 제공자를 쓰면 새로 설치했을 때 계획과 검토는 GPT-6 Ast
|
|
|
110
110
|
npm uninstall -g @litfamily/litopencode
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
-
남겨 둘 만한 설치 파일과 기록은 [제거 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
113
|
+
남겨 둘 만한 설치 파일과 기록은 [제거 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/reference-Ko-KR.md#제거)에 정리되어 있습니다.
|
|
114
114
|
|
|
115
115
|
## 더 보기
|
|
116
116
|
|
|
117
117
|
- [GitHub 전체 안내](https://github.com/wjgoarxiv/litopencode/blob/master/README-Ko-KR.md)
|
|
118
|
-
- [워크플로 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
119
|
-
- [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
120
|
-
- [MIT 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
118
|
+
- [워크플로 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/reference-Ko-KR.md) · [English reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/reference.md)
|
|
119
|
+
- [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/migration.md) · [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/CHANGELOG.md) · [개인정보와 네트워크 동작](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/privacy.md)
|
|
120
|
+
- [MIT 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/LICENSE) · [ASCII 글꼴 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/readme/JetBrainsMono-OFL.txt)
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
1
|
+
<p align="center"><picture><source media="(prefers-reduced-motion: reduce)" srcset="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/cover-motion.webp" width="100%" alt="LitFamily motion cover: five armored robots power on one by one, the LitOpenCode robot wakes with glowing eyes and a lit frame, then LITFAMILY and KEEP THE WORK LIT. light up." /></picture></p>
|
|
2
2
|
|
|
3
|
-
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
3
|
+
<p align="center"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B mark" /></p>
|
|
4
4
|
|
|
5
5
|
<details>
|
|
6
6
|
<summary>Copy ASCII logo</summary>
|
|
@@ -32,13 +32,13 @@
|
|
|
32
32
|
|
|
33
33
|
# LitOpenCode
|
|
34
34
|
|
|
35
|
-
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
35
|
+
[English](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/README-Ko-KR.md)
|
|
36
36
|
|
|
37
37
|
**Keep the work lit.**
|
|
38
38
|
|
|
39
39
|
<p align="center">
|
|
40
|
-
<a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
41
|
-
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
40
|
+
<a href="#install"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/readme/badge-version.svg" alt="1.0.16" /></a>
|
|
41
|
+
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/readme/badge-license.svg" alt="MIT license" /></a>
|
|
42
42
|
</p>
|
|
43
43
|
|
|
44
44
|
LitOpenCode adds workflow agents, slash commands, and a local evidence ledger to OpenCode.
|
|
@@ -98,7 +98,7 @@ With the OpenAI provider, a fresh install uses GPT-6 Astra (`gpt-6-astra`) at `x
|
|
|
98
98
|
- The planner only plans. `lit-plan` has `edit`, `bash` and `task` denied, and it stays that way even if you choose the looser `balanced` or `yolo` mode.
|
|
99
99
|
- LitOpenCode can update itself when it starts interactively and after an install or doctor run succeeds. To turn that off, pass `--no-auto-update` or set `LITOPENCODE_NO_AUTO_UPDATE=1`.
|
|
100
100
|
- Skill learning has been removed. Learning records an earlier release left in a project's `.litopencode` folder are no longer used; keep or delete them as you like.
|
|
101
|
-
- The Jev skill hint is optional and off by default. Turning it on sends eligible prompts to TypeSafe, so read the [Jev skill hint reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
101
|
+
- The Jev skill hint is optional and off by default. Turning it on sends eligible prompts to TypeSafe, so read the [Jev skill hint reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/reference.md#jev-skill-hint-optional) first. The GitHub page shows [what the toast and the doctor line look like](https://github.com/wjgoarxiv/litopencode#what-you-will-see).
|
|
102
102
|
- If something seems off, `npm exec --package @litfamily/litopencode@latest -- litopencode doctor` checks the package and your configuration.
|
|
103
103
|
|
|
104
104
|
## Uninstall
|
|
@@ -109,11 +109,11 @@ There's no uninstall command. Remove the `@litfamily/litopencode` entry from the
|
|
|
109
109
|
npm uninstall -g @litfamily/litopencode
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
The [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
112
|
+
The [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/reference.md#remove) covers the installed files and records you may want to keep.
|
|
113
113
|
|
|
114
114
|
## More
|
|
115
115
|
|
|
116
116
|
- [Full guide on GitHub](https://github.com/wjgoarxiv/litopencode#readme)
|
|
117
|
-
- [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
118
|
-
- [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
119
|
-
- [MIT license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
117
|
+
- [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/reference.md) · [한국어 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/reference-Ko-KR.md)
|
|
118
|
+
- [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/migration.md) · [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/CHANGELOG.md) · [Privacy and network behavior](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/privacy.md)
|
|
119
|
+
- [MIT license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/LICENSE) · [ASCII font license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.16/docs/assets/readme/JetBrainsMono-OFL.txt)
|
package/dist/auto-handoff.js
CHANGED
|
@@ -283,6 +283,39 @@ export function autoHandoffDirective(percent, marker) {
|
|
|
283
283
|
const handoffCandidates = Object.freeze(["HANDOFF.md", path.join(".handoff", "HANDOFF.md")]);
|
|
284
284
|
const handoffSizeLimitBytes = 1_048_576;
|
|
285
285
|
const mtimeToleranceMs = 2000;
|
|
286
|
+
/**
|
|
287
|
+
* One line with its Markdown decoration removed: list bullet, quote marker, emphasis, backticks and an
|
|
288
|
+
* HTML comment wrapper. Underscores are dropped only where they open or close a word, so the one inside
|
|
289
|
+
* a session id stays.
|
|
290
|
+
*/
|
|
291
|
+
function plainLine(line) {
|
|
292
|
+
let text = line.replace(/<!--|-->/gu, " ").replace(/[*`]/gu, "");
|
|
293
|
+
text = text.replace(/(^|\s)_+/gu, "$1").replace(/_+(?=\s|$)/gu, "");
|
|
294
|
+
for (;;) {
|
|
295
|
+
const stripped = text.replace(/^\s*(?:>\s*|[-+]\s+|\d+[.)]\s+)/u, "");
|
|
296
|
+
if (stripped === text)
|
|
297
|
+
break;
|
|
298
|
+
text = stripped;
|
|
299
|
+
}
|
|
300
|
+
return text.replace(/\s+/gu, " ").trim();
|
|
301
|
+
}
|
|
302
|
+
const markerWordCharacter = /[0-9A-Za-z_-]/u;
|
|
303
|
+
/** The exact marker on some line, with no word character glued directly before or after it. */
|
|
304
|
+
function carriesMarker(text, marker) {
|
|
305
|
+
const wanted = plainLine(marker);
|
|
306
|
+
if (wanted === "")
|
|
307
|
+
return false;
|
|
308
|
+
for (const line of text.split(/\r?\n/u)) {
|
|
309
|
+
const plain = plainLine(line);
|
|
310
|
+
for (let at = plain.indexOf(wanted); at !== -1; at = plain.indexOf(wanted, at + 1)) {
|
|
311
|
+
const before = at === 0 ? "" : plain[at - 1];
|
|
312
|
+
const after = plain.slice(at + wanted.length, at + wanted.length + 1);
|
|
313
|
+
if (!markerWordCharacter.test(before) && !markerWordCharacter.test(after))
|
|
314
|
+
return true;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return false;
|
|
318
|
+
}
|
|
286
319
|
/**
|
|
287
320
|
* A handoff counts only when it carries the marker this session's trigger produced and the file was
|
|
288
321
|
* written after the trigger. A file left by an earlier run, another session, or a person does not.
|
|
@@ -297,7 +330,7 @@ export async function readFreshHandoff(projectRoot, marker, firedAt) {
|
|
|
297
330
|
if (stat.mtimeMs < firedAt - mtimeToleranceMs)
|
|
298
331
|
continue;
|
|
299
332
|
const text = await fs.readFile(file, "utf8");
|
|
300
|
-
if (text
|
|
333
|
+
if (carriesMarker(text, marker))
|
|
301
334
|
return { relativePath, text };
|
|
302
335
|
}
|
|
303
336
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="146" height="20" role="img" aria-label="release: 1.0.16"><title>release: 1.0.16</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.16</text></g></svg>
|