@litfamily/litopencode 1.0.11 → 1.0.12
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 +5 -0
- package/README-Ko-KR.md +21 -19
- package/README.md +20 -18
- package/docs/assets/readme/badge-version.svg +1 -1
- package/package.json +1 -1
- package/tools/version-manifests.json +0 -6
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.12 - 2026-09-29
|
|
9
|
+
|
|
10
|
+
- The npm page is a short install card that links to the full guide on GitHub.
|
|
11
|
+
- The English and Korean READMEs and the npm card were rewritten in plainer language, with the reason given before each switch.
|
|
12
|
+
|
|
8
13
|
## 1.0.11 - 2026-09-29
|
|
9
14
|
|
|
10
15
|
- The motion skill's runtime now installs `ws` 8.22.0 instead of 8.18.3, which fixes a memory-exhaustion denial of service and an uninitialized-memory disclosure in that package. After upgrading, run `litopencode motion-runtime install` again so the cache picks up the new version.
|
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.12/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/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.12/docs/assets/readme/ascii-readme.svg" width="480" alt="LIT ASCII B 마크" /></p>
|
|
4
4
|
|
|
5
5
|
<details>
|
|
6
6
|
<summary>ASCII 로고 복사</summary>
|
|
@@ -32,19 +32,19 @@
|
|
|
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.12/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/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.12/docs/assets/readme/badge-version.svg" alt="1.0.12" /></a>
|
|
42
|
+
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/assets/readme/badge-license.svg" alt="MIT 라이선스" /></a>
|
|
43
43
|
</p>
|
|
44
44
|
|
|
45
45
|
LitOpenCode는 OpenCode에 워크플로 agent, 슬래시 명령, 로컬 근거 기록을 더합니다.
|
|
46
46
|
|
|
47
|
-
프롬프트에 `lit`을 붙이면 계획하고, 만들고, 확인한 뒤 다음 할 일을 프로젝트에 적어 둡니다. 그래서 다음 세션이 멈춘 자리에서 바로 이어 갈 수 있습니다.
|
|
47
|
+
프롬프트에 `lit`을 붙이면 계획하고, 만들고, 확인한 뒤 다음 할 일을 프로젝트에 적어 둡니다. 그래서 다음 세션이 멈춘 자리에서 바로 이어 갈 수 있습니다. 모델을 돌리고 권한을 묻는 일은 지금처럼 OpenCode가 합니다.
|
|
48
48
|
|
|
49
49
|
**[전체 안내, 스킬 갤러리, A/B 결과는 GitHub에서 →](https://github.com/wjgoarxiv/litopencode/blob/master/README-Ko-KR.md)**
|
|
50
50
|
|
|
@@ -57,7 +57,9 @@ LIT_PACKAGE='@litfamily/litopencode@latest'
|
|
|
57
57
|
npm exec --package "$LIT_PACKAGE" -- litopencode install
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
OpenCode를 다시 시작하고 `Tab` 키를 눌러 `lit-loop`를 고르세요.
|
|
60
|
+
OpenCode를 다시 시작하고 `Tab` 키를 눌러 `lit-loop`를 고르세요. 권한은 `safe`에서 시작하는데, 무언가 하기 전에 OpenCode가 먼저 물어보는 설정입니다. 로그인과 API 키는 OpenCode에 이미 설정해 둔 모델 제공자(provider) 쪽 것을 그대로 씁니다.
|
|
61
|
+
|
|
62
|
+
바뀔 내용을 먼저 보려면 `--dry-run`을 붙이세요. 아무것도 쓰지 않습니다. 질문 없이 설치하려면 `--yes`를 붙이세요. 기본값으로 설치하되 예전에 저장해 둔 선택은 그대로 둡니다.
|
|
61
63
|
|
|
62
64
|
```sh
|
|
63
65
|
npm exec --package @litfamily/litopencode@latest -- litopencode install --dry-run # 변경 사항 미리 보기
|
|
@@ -78,7 +80,7 @@ lit 외부 의존성 없이 index.html 하나로 할 일 목록을 만들고,
|
|
|
78
80
|
|
|
79
81
|
| 입력 | 하는 일 |
|
|
80
82
|
| --- | --- |
|
|
81
|
-
| `lit` 또는 `/lit` | 범위가 분명한 작업을
|
|
83
|
+
| `lit` 또는 `/lit` | 범위가 분명한 작업을 시작하고, 확인한 내용을 기록합니다. |
|
|
82
84
|
| `lit-plan` → `/start-work` → `/review-work` | 계획, 승인, 실행, 검토. planner는 파일을 고치거나 shell을 실행할 수 없습니다. |
|
|
83
85
|
| `handoff` 또는 `/lit-handoff` | 현재 결과와 다음 할 일을 다음 세션에 넘깁니다. |
|
|
84
86
|
| `/lit-recap` | 로컬 기록을 짧게 요약해 보여 줍니다. |
|
|
@@ -92,17 +94,17 @@ lit 외부 의존성 없이 index.html 하나로 할 일 목록을 만들고,
|
|
|
92
94
|
|
|
93
95
|
## 설치하면 바뀌는 것
|
|
94
96
|
|
|
95
|
-
OpenCode
|
|
97
|
+
많지 않습니다. OpenCode 설정에 플러그인을 등록하고, LitOpenCode의 명령과 스킬 파일을 OpenCode 설정 폴더에 복사합니다. 어떤 일에 어떤 모델을 쓸지 정한 route는 `~/.config/opencode/litopencode.json`에 저장됩니다. `XDG_CONFIG_HOME`을 지정하면 설정 폴더가 그쪽으로 옮겨 가고, 이미 손봐 둔 route는 건드리지 않습니다. 작업 기록은 프로젝트마다 `.litopencode/litgoal/`에 쌓이고, 다음 세션은 이 기록을 읽고 이어 갑니다.
|
|
96
98
|
|
|
97
|
-
OpenAI
|
|
99
|
+
OpenAI 제공자를 쓰면 새로 설치했을 때 계획과 검토는 GPT-6 Astra(`gpt-6-astra`)가 `xhigh`로, 만들기와 조사는 GPT-6 Luna(`gpt-6-luna`)가 `max`로 맡습니다.
|
|
98
100
|
|
|
99
101
|
## 안전과 업데이트
|
|
100
102
|
|
|
101
|
-
- `lit-plan
|
|
102
|
-
-
|
|
103
|
-
- 스킬 학습 기능은 제거되었습니다. 이전 릴리스가 프로젝트의 `.litopencode` 폴더에 남긴 학습 기록은
|
|
104
|
-
-
|
|
105
|
-
- `npm exec --package @litfamily/litopencode@latest -- litopencode doctor`로 패키지와 설정 상태를
|
|
103
|
+
- planner는 계획만 세웁니다. `lit-plan`은 `edit`, `bash`, `task` 권한이 거부되어 있고, 더 느슨한 `balanced`나 `yolo` 모드를 직접 골라도 그대로입니다.
|
|
104
|
+
- LitOpenCode는 대화형으로 시작할 때와 install이나 doctor가 성공한 뒤에 스스로 업데이트할 수 있습니다. 끄려면 `--no-auto-update`를 붙이거나 `LITOPENCODE_NO_AUTO_UPDATE=1`을 설정하세요.
|
|
105
|
+
- 스킬 학습 기능은 제거되었습니다. 이전 릴리스가 프로젝트의 `.litopencode` 폴더에 남긴 학습 기록은 더 이상 쓰이지 않으니, 남겨 두든 지우든 편한 대로 하면 됩니다.
|
|
106
|
+
- Jev 스킬 힌트는 선택 기능이고 기본값은 꺼짐입니다. 켜면 조건에 맞는 프롬프트가 TypeSafe로 전송되니, 먼저 [Jev 스킬 힌트 참조 문서](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/reference-Ko-KR.md#jev-스킬-힌트-선택)를 읽어 보세요.
|
|
107
|
+
- 뭔가 이상하면 `npm exec --package @litfamily/litopencode@latest -- litopencode doctor`로 패키지와 설정 상태를 확인하세요.
|
|
106
108
|
|
|
107
109
|
## 제거
|
|
108
110
|
|
|
@@ -112,11 +114,11 @@ OpenAI provider로 새로 설치하면 계획·검토에는 GPT-6 Astra (`gpt-6-
|
|
|
112
114
|
npm uninstall -g @litfamily/litopencode
|
|
113
115
|
```
|
|
114
116
|
|
|
115
|
-
남겨 둘 만한 설치 파일과 기록은 [제거 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
117
|
+
남겨 둘 만한 설치 파일과 기록은 [제거 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/reference-Ko-KR.md#제거)에 정리되어 있습니다.
|
|
116
118
|
|
|
117
119
|
## 더 보기
|
|
118
120
|
|
|
119
121
|
- [GitHub 전체 안내](https://github.com/wjgoarxiv/litopencode/blob/master/README-Ko-KR.md)
|
|
120
|
-
- [워크플로 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
121
|
-
- [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
122
|
-
- [MIT 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
122
|
+
- [워크플로 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/reference-Ko-KR.md) · [English reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/reference.md)
|
|
123
|
+
- [마이그레이션 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/migration.md) · [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/CHANGELOG.md) · [개인정보와 네트워크 동작](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/privacy.md)
|
|
124
|
+
- [MIT 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/LICENSE) · [ASCII 글꼴 라이선스](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/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.12/docs/assets/cover-motion-still.webp" /><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/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.12/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,18 +32,18 @@
|
|
|
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.12/README.md) · [한국어](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/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.12/docs/assets/readme/badge-version.svg" alt="1.0.12" /></a>
|
|
41
|
+
<a href="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/LICENSE"><img src="https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/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.
|
|
45
45
|
|
|
46
|
-
Add `lit` to a prompt and it plans, builds, checks, and writes down the next step in your project, so a later session can pick up where this one stopped. OpenCode still runs the model and asks
|
|
46
|
+
Add `lit` to a prompt and it plans, builds, checks, and writes down the next step in your project, so a later session can pick up where this one stopped. OpenCode still runs the model and asks for permission the way it always has.
|
|
47
47
|
|
|
48
48
|
**[Full guide, skills gallery and A/B results on GitHub →](https://github.com/wjgoarxiv/litopencode#readme)**
|
|
49
49
|
|
|
@@ -56,7 +56,9 @@ LIT_PACKAGE='@litfamily/litopencode@latest'
|
|
|
56
56
|
npm exec --package "$LIT_PACKAGE" -- litopencode install
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
Restart OpenCode, press **Tab**, and pick **lit-loop**. Permissions
|
|
59
|
+
Restart OpenCode, press **Tab**, and pick **lit-loop**. Permissions start at `safe`, where OpenCode asks you before acting. Logins and API keys stay with the provider you already set up in OpenCode.
|
|
60
|
+
|
|
61
|
+
To see the changes first, add `--dry-run`; it writes nothing. To skip the questions, add `--yes`; it takes the defaults and keeps choices you saved before.
|
|
60
62
|
|
|
61
63
|
```sh
|
|
62
64
|
npm exec --package @litfamily/litopencode@latest -- litopencode install --dry-run # preview changes
|
|
@@ -77,7 +79,7 @@ You get an `index.html` to open and try. Next time, `/lit-recap` shows where you
|
|
|
77
79
|
|
|
78
80
|
| Type | What happens |
|
|
79
81
|
| --- | --- |
|
|
80
|
-
| `lit` or `/lit` | Start a
|
|
82
|
+
| `lit` or `/lit` | Start a task with a clear scope and record what was checked. |
|
|
81
83
|
| `lit-plan` → `/start-work` → `/review-work` | Plan, approve, execute, and review. The planner can't edit files or run shell commands. |
|
|
82
84
|
| `handoff` or `/lit-handoff` | Carry the current result and next step into another session. |
|
|
83
85
|
| `/lit-recap` | Read a short recap from local state. |
|
|
@@ -91,17 +93,17 @@ Ten casual Korean prompts went to plain OpenCode and to LitOpenCode; the LitOpen
|
|
|
91
93
|
|
|
92
94
|
## What install changes
|
|
93
95
|
|
|
94
|
-
|
|
96
|
+
Not much. Install adds the plugin to OpenCode's config and copies LitOpenCode's commands and skills into your OpenCode config folder. Your routes, which say which model handles each kind of work, are kept in `~/.config/opencode/litopencode.json`. Setting `XDG_CONFIG_HOME` moves that folder, and routes you've already customized are left as they are. Each project keeps its work record in `.litopencode/litgoal/`, and that record is what a later session reads to carry on.
|
|
95
97
|
|
|
96
98
|
With the OpenAI provider, a fresh install uses GPT-6 Astra (`gpt-6-astra`) at `xhigh` for planning and review, and GPT-6 Luna (`gpt-6-luna`) at `max` for execution and research.
|
|
97
99
|
|
|
98
100
|
## Safety and updates
|
|
99
101
|
|
|
100
|
-
- `lit-plan`
|
|
101
|
-
-
|
|
102
|
-
- Skill learning has been removed.
|
|
103
|
-
- The
|
|
104
|
-
- `npm exec --package @litfamily/litopencode@latest -- litopencode doctor` checks the package and your configuration.
|
|
102
|
+
- 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.
|
|
103
|
+
- 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`.
|
|
104
|
+
- 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.
|
|
105
|
+
- 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.12/docs/reference.md#jev-skill-hint-optional) first.
|
|
106
|
+
- If something seems off, `npm exec --package @litfamily/litopencode@latest -- litopencode doctor` checks the package and your configuration.
|
|
105
107
|
|
|
106
108
|
## Uninstall
|
|
107
109
|
|
|
@@ -111,11 +113,11 @@ There's no uninstall command. Remove the `@litfamily/litopencode` entry from the
|
|
|
111
113
|
npm uninstall -g @litfamily/litopencode
|
|
112
114
|
```
|
|
113
115
|
|
|
114
|
-
The [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
116
|
+
The [removal reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/reference.md#remove) covers the installed files and records you may want to keep.
|
|
115
117
|
|
|
116
118
|
## More
|
|
117
119
|
|
|
118
120
|
- [Full guide on GitHub](https://github.com/wjgoarxiv/litopencode#readme)
|
|
119
|
-
- [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
120
|
-
- [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
121
|
-
- [MIT license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.
|
|
121
|
+
- [Workflow reference](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/reference.md) · [한국어 상세 안내](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/reference-Ko-KR.md)
|
|
122
|
+
- [Migration notes](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/migration.md) · [Changelog](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/CHANGELOG.md) · [Privacy and network behavior](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/privacy.md)
|
|
123
|
+
- [MIT license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/LICENSE) · [ASCII font license](https://cdn.jsdelivr.net/npm/@litfamily/litopencode@1.0.12/docs/assets/readme/JetBrainsMono-OFL.txt)
|
|
@@ -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.12"><title>release: 1.0.12</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.12</text></g></svg>
|
package/package.json
CHANGED
|
@@ -56,12 +56,6 @@
|
|
|
56
56
|
"occurrences": 1,
|
|
57
57
|
"why": "This package manifest is the source of truth used by the lockstep guard."
|
|
58
58
|
},
|
|
59
|
-
{
|
|
60
|
-
"path": "skills/lit-pptx/package-lock.json",
|
|
61
|
-
"kind": "derived",
|
|
62
|
-
"occurrences": 2,
|
|
63
|
-
"why": "The lit-pptx runtime lockfile has 2 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."
|
|
64
|
-
},
|
|
65
59
|
{
|
|
66
60
|
"path": "test/docs.test.mjs",
|
|
67
61
|
"kind": "pinned",
|