@sushanglewis/lincoln 1.7.0 → 1.8.2
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/dist/main.js +347 -107
- package/dist/main.js.map +1 -1
- package/dist/postinstall.js +306 -21
- package/dist/postinstall.js.map +1 -1
- package/framework/.claude/skills/build-product-prototype/prompts/main.md +6 -1
- package/framework/.claude/skills/clarify-requirements/prompts/main.md +6 -0
- package/framework/.claude/skills/dependencies.yaml +8 -8
- package/framework/.claude/skills/draft-product-design/SKILL.md +1 -0
- package/framework/.claude/skills/draft-product-design/prompts/main.md +26 -3
- package/framework/.claude/skills/lc-workflow/validators/validate.py +1 -0
- package/framework/.claude/stages/product-design-docs.yaml +2 -0
- package/framework/.claude/workflows/bug-fix.yaml +1 -0
- package/framework/.claude/workflows/design-spike.yaml +1 -0
- package/framework/.claude/workflows/existing-project-iteration.yaml +1 -0
- package/framework/.claude/workflows/interview-to-knowledge.yaml +1 -0
- package/framework/.claude/workflows/oss-first-design.yaml +1 -0
- package/framework/.claude-plugin/marketplace.json +2 -2
- package/framework/.claude-plugin/plugin.json +1 -1
- package/framework/.version-bump.json +1 -1
- package/framework/README.en.md +21 -3
- package/framework/README.md +23 -3
- package/framework/RELEASE.md +41 -1
- package/framework/manifest.json +24 -24
- package/framework/scripts/lincoln_index.py +8 -1
- package/framework/tools/lincoln/package-lock.json +2 -2
- package/framework/tools/lincoln/package.json +1 -1
- package/framework/tools/lincoln-installer/package.json +1 -1
- package/package.json +1 -1
package/framework/README.en.md
CHANGED
|
@@ -12,9 +12,9 @@ Lincoln is an AI-Native R&D workflow system spanning **IDEs, agent harnesses, co
|
|
|
12
12
|
|
|
13
13
|
## Latest Release
|
|
14
14
|
|
|
15
|
-
[](RELEASE.md)
|
|
16
16
|
|
|
17
|
-
**v1.
|
|
17
|
+
**v1.8.2** is released: SecurityAnalyzer pre-tool-use gating, Trace 2.0 event log, session friction scoring and knowledge recall, plus multi-dimensional stakeholder analysis in the clarify stage.
|
|
18
18
|
|
|
19
19
|
See the full release notes in [RELEASE.md](RELEASE.md).
|
|
20
20
|
|
|
@@ -94,10 +94,28 @@ This creates a `.lincoln.yaml` marker file. After that, opening Claude Code in t
|
|
|
94
94
|
|
|
95
95
|
### Update Lincoln
|
|
96
96
|
|
|
97
|
+
Already installed? One command upgrades Lincoln and re-syncs the framework into your harnesses — `lincoln update` pulls the latest release from npm and re-runs the sync:
|
|
98
|
+
|
|
97
99
|
```bash
|
|
98
|
-
lincoln update
|
|
100
|
+
lincoln update # upgrade to the latest release and re-sync
|
|
101
|
+
lincoln update --check # check for a newer version without installing
|
|
99
102
|
```
|
|
100
103
|
|
|
104
|
+
On an older install (e.g. from the `lincoln-install` era), or if npm reports `EEXIST: file already exists`, a leftover bin from an old package is blocking the install — clean up first, then reinstall:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
npm uninstall -g lincoln lincoln-install # remove legacy package names (skips if absent)
|
|
108
|
+
npm install -g @sushanglewis/lincoln@latest
|
|
109
|
+
lincoln install --yes
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
> **Dangling-bin symptom**: the install fails with `EEXIST: file already exists` while running `lincoln` reports `command not found` — a dead symlink from an old package occupies the bin path. Verify with `ls -la "$(npm prefix -g)/bin/lincoln"` that it points to a removed package, delete it, and retry:
|
|
113
|
+
>
|
|
114
|
+
> ```bash
|
|
115
|
+
> rm "$(npm prefix -g)/bin/lincoln"
|
|
116
|
+
> npm install -g @sushanglewis/lincoln@latest && lincoln install --yes
|
|
117
|
+
> ```
|
|
118
|
+
|
|
101
119
|
### Migrate from the old vendored model
|
|
102
120
|
|
|
103
121
|
If your project previously committed the Lincoln framework source directly into the repo:
|
package/framework/README.md
CHANGED
|
@@ -12,9 +12,9 @@ Lincoln 是一个贯穿 **IDE、Agent Harness、代码托管、知识管理、
|
|
|
12
12
|
|
|
13
13
|
## 最新版本
|
|
14
14
|
|
|
15
|
-
[](RELEASE.md)
|
|
16
16
|
|
|
17
|
-
**v1.
|
|
17
|
+
**v1.8.2** 已发布:新增 SecurityAnalyzer 安全门控、Trace 2.0 事件日志与会话摩擦学习/知识召回能力,clarify 阶段支持多维度相关者分析。
|
|
18
18
|
|
|
19
19
|
查看完整发布说明:[RELEASE.md](RELEASE.md)
|
|
20
20
|
|
|
@@ -94,10 +94,30 @@ lincoln init-project
|
|
|
94
94
|
|
|
95
95
|
### 更新 Lincoln
|
|
96
96
|
|
|
97
|
+
已安装过 Lincoln 的用户,一条命令即可升级——`lincoln update` 会自动拉取 npm 最新版本,重新把框架同步到各 harness,并按新版本中 pin 的版本刷新外部技能库(superpowers、gsd、oh-my-claudecode 等 `~/.claude/skills/` 下的 git 仓库,以及 openspec 等 npm 管理的 CLI):
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
lincoln update # 升级本体 + 同步框架 + 刷新外部技能库到最新 pin
|
|
101
|
+
lincoln update --check # 只检查是否有新版本,不安装
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
技能库同步遵循 dependencies.yaml 的 pin 策略:本地有未提交修改的仓库会被跳过并警告(不会被强制覆盖),非 npm 管理的 CLI(如 gh)缺失时只提示安装命令。同步失败降级为警告,不会阻断升级。
|
|
105
|
+
|
|
106
|
+
如果还是旧版安装(例如 bin 名是 `lincoln-install` 的时代),或更新时 npm 报 `EEXIST: file already exists`,说明有旧包残留的 bin 文件挡住了安装,先清理再重装:
|
|
107
|
+
|
|
97
108
|
```bash
|
|
98
|
-
lincoln
|
|
109
|
+
npm uninstall -g lincoln lincoln-install # 卸载旧包名(未安装会自动跳过)
|
|
110
|
+
npm install -g @sushanglewis/lincoln@latest
|
|
111
|
+
lincoln install --yes
|
|
99
112
|
```
|
|
100
113
|
|
|
114
|
+
> **EEXIST / command not found 残留软链**:如果安装报 `EEXIST: file already exists`(bin 位置已被占用),而运行 `lincoln` 却是 `command not found`,说明 bin 位置是旧包遗留的悬空软链。用 `ls -la "$(npm prefix -g)/bin/lincoln"` 确认它指向已卸载的旧包路径,删除后重试安装:
|
|
115
|
+
>
|
|
116
|
+
> ```bash
|
|
117
|
+
> rm "$(npm prefix -g)/bin/lincoln"
|
|
118
|
+
> npm install -g @sushanglewis/lincoln@latest && lincoln install --yes
|
|
119
|
+
> ```
|
|
120
|
+
|
|
101
121
|
### 从旧版 vendored 模式迁移
|
|
102
122
|
|
|
103
123
|
如果你的项目之前是把 Lincoln 框架源码直接提交到仓库里的,可以用:
|
package/framework/RELEASE.md
CHANGED
|
@@ -1,3 +1,43 @@
|
|
|
1
|
+
# Lincoln v1.8.2 Release Notes
|
|
2
|
+
|
|
3
|
+
**Release date:** 2026-10-07
|
|
4
|
+
|
|
5
|
+
## Highlights
|
|
6
|
+
|
|
7
|
+
- **修复非 npm CLI 安装提示的平台命令选择** — 技能库同步在非 npm CLI(gh、ffmpeg、faster-whisper 等)缺失时,按当前运行平台(可用 `platform` 参数覆盖,便于跨平台测试)从 `dependencies.yaml` 的 `platforms` 映射中选择对应的安装提示命令。
|
|
8
|
+
- **一条命令更新 Lincoln 与全部外部技能库 (#124 / LEW-73)** — `lincoln update`(以及 `lincoln install`)现在会读取新安装 payload 中的 `.claude/skills/dependencies.yaml`,把外部依赖刷新到当前 pin 的稳定版本,不再需要手动逐个仓库升级:
|
|
9
|
+
- git 类技能库(superpowers、oh-my-claudecode):缺失时自动 clone + checkout 到 pin;本地 HEAD 落后时 `git fetch origin <pin>` 后 checkout FETCH_HEAD;pin 不在任何远端 ref 尖端时回退全量 fetch + checkout SHA。工作区有本地修改(dirty)的仓库一律跳过并警告,绝不强制覆盖。
|
|
10
|
+
- npm 管理的 CLI(openspec):缺失或版本低于 pin 时自动 `npm install -g <pkg>@<pin>` 升级;非 npm 管理的 CLI(gh、ffmpeg、faster-whisper 等)缺失时只提示对应平台的手动安装命令,不会擅自执行 brew/apt/pip。
|
|
11
|
+
- 单个依赖的同步失败(网络故障、上游不可用等)降级为警告,不会阻断 Lincoln 本体升级;`--dry-run` 下只报告计划动作,不执行任何命令。
|
|
12
|
+
- **外部依赖 pin 升级至 2026-10-07 上游版本 (#124 / LEW-73)** — superpowers → `8ca22db`(v6.4.2,快进 242 个上游提交),oh-my-claudecode → `454bae0`(v5.6.2,快进 1599 个上游提交),openspec → v1.14.1(npm 同版本发布,要求 Node.js >= 20.19.0);gsd 与上游无漂移,保持 `bdcaab2` 不变。用户升级 Lincoln 到本版本后,一次 `lincoln update` 即把本地技能库同步到这些 pin。
|
|
13
|
+
|
|
14
|
+
## Migration Notes
|
|
15
|
+
|
|
16
|
+
- 无破坏性变更:框架文件、issue 工作包、阶段协议与 hooks 均保持兼容。
|
|
17
|
+
- 升级后首次运行 `lincoln update` 会自动补齐或刷新技能库;若某个技能仓库有本地未提交修改,同步会跳过该仓库并给出警告,手动 commit/stash 后重跑即可。
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Lincoln v1.8.0 Release Notes
|
|
22
|
+
|
|
23
|
+
**Release date:** 2026-09-21
|
|
24
|
+
|
|
25
|
+
## Highlights
|
|
26
|
+
|
|
27
|
+
- **PM 阶段门户产物人类可读性改造 (#123 / LEW-72)** — issue-package `index.html` 在 PM 阶段的输出全面聚焦业务说明:主阅读路径只保留需求背景、用户角色、旅程、业务状态、业务流程、页面路由/元素/交互与可交互原型。
|
|
28
|
+
- **门户归档层级** — `nav-group: 归档` 的页面在 `package-data.js` 中标记 `archived: true`,portal 左侧导航将归档组折叠置于末尾(点击展开);`调研笔记` 从头条产物清单移除。
|
|
29
|
+
- **决策归档页 decisions.html** — product-design-docs 阶段新增必备产物 `pages/docs/decisions.html`,以「日期/场景/选项/决定/理由/影响/状态」表格归档澄清与设计阶段的重要沟通记录与决策;`design_docs_complete` 校验器强制其存在及 design-review 的链接,`design-review` 不再承载决策摘要章节。
|
|
30
|
+
- **技术调研归入归档** — `feasibility.html` 仍为必备产物,但必须以 `--nav-group "归档"` 渲染;三个 PM 阶段 prompt 新增硬规则:技术调研/方案对比只允许进入 feasibility(归档)或 handoff 契约,禁止进入 PRD、requirements、design-review、scenarios、feature-catalog 等主路径页面。
|
|
31
|
+
- **每页意图与边界纪律** — clarify-requirements、draft-product-design、build-product-prototype 三个 prompt 统一要求:每个文档页以 `## 页面意图` 与 `## 边界` 开篇,遵循标准 Markdown 结构(单一 H1、H2 分章、优先表格与 Mermaid),跨页内容禁止复制、以链接引用单一事实来源。
|
|
32
|
+
- **原型按角色×场景拆分** — build-product-prototype 要求先从 scenarios/page-map 产出「角色×场景矩阵」并写入 ui-spec.html 作为拆分契约;每个可达矩阵单元对应一个原型子页面,由 main shell 组织导航;每个原型页通过 annotations 标注适用角色、场景、页面状态(默认/空/加载/错误/成功)及该状态下可见可用的功能。
|
|
33
|
+
|
|
34
|
+
## Migration Notes
|
|
35
|
+
|
|
36
|
+
- 无破坏性变更:既有 issue-package 的页面与门户继续工作;新规则在下次渲染或重新生成 PM 阶段产物时生效。
|
|
37
|
+
- 已有 package 如希望获得归档折叠导航,重新运行 `python scripts/lincoln_index.py --state-file <process_slug>/workflow-stage.yaml` 刷新 `package-data.js` 即可。
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
1
41
|
# Lincoln v1.7.0 Release Notes
|
|
2
42
|
|
|
3
43
|
**Release date:** 2026-09-05
|
|
@@ -14,7 +54,7 @@
|
|
|
14
54
|
|
|
15
55
|
## Migration Notes
|
|
16
56
|
|
|
17
|
-
-
|
|
57
|
+
- 全局插件用户升级:直接运行 `lincoln update`(一键拉取 npm 最新版并重新同步框架到各 harness);或手动 `npm update -g @sushanglewis/lincoln` 后重跑 `lincoln install --yes`。若旧版 bin 名残留导致安装报 `EEXIST`,先 `npm uninstall -g lincoln lincoln-install` 并删除悬空软链(详见 README「更新 Lincoln」一节)。
|
|
18
58
|
- 安全门控默认生效且为人类确认制(confirm_required),不是自动阻断;策略可在项目 `.claude/policies/security.yaml` 中按需调整。
|
|
19
59
|
- 无破坏性变更:现有 issue 工作包、`.lincoln.yaml` 激活方式与阶段协议均保持兼容。
|
|
20
60
|
|
package/framework/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
3
|
-
"generatedAt": "2026-
|
|
2
|
+
"version": "1.8.2",
|
|
3
|
+
"generatedAt": "2026-10-08T06:40:17.950Z",
|
|
4
4
|
"files": [
|
|
5
5
|
{
|
|
6
6
|
"path": ".claude-plugin/hooks.json",
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
10
|
"path": ".claude-plugin/marketplace.json",
|
|
11
|
-
"sha256": "
|
|
11
|
+
"sha256": "d75b0baca7dc97591d380f263bc05926822b4ff786275b0508b372acc3cb981a"
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"path": ".claude-plugin/plugin.json",
|
|
15
|
-
"sha256": "
|
|
15
|
+
"sha256": "85cc6d4828c84ac38ed0a5972b6e76a624b96092e2f0868e1928bb407307ca4d"
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
18
|
"path": ".claude/agents/architect.md",
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
},
|
|
169
169
|
{
|
|
170
170
|
"path": ".claude/skills/build-product-prototype/prompts/main.md",
|
|
171
|
-
"sha256": "
|
|
171
|
+
"sha256": "390589f01598b749d8c85e5ecab425ea70b428cb3fe91484b91136168e0b4a82"
|
|
172
172
|
},
|
|
173
173
|
{
|
|
174
174
|
"path": ".claude/skills/clarify-requirements/SKILL.md",
|
|
@@ -176,19 +176,19 @@
|
|
|
176
176
|
},
|
|
177
177
|
{
|
|
178
178
|
"path": ".claude/skills/clarify-requirements/prompts/main.md",
|
|
179
|
-
"sha256": "
|
|
179
|
+
"sha256": "5431aa1a268058d397d1a0acbf79d50b8c87e42ab3ae7f329e0e810e2e519f7b"
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
"path": ".claude/skills/dependencies.yaml",
|
|
183
|
-
"sha256": "
|
|
183
|
+
"sha256": "ec7c2f4d4da047009bf3e323aa9ebde13b01871372361f0caf5ab5edf33ae337"
|
|
184
184
|
},
|
|
185
185
|
{
|
|
186
186
|
"path": ".claude/skills/draft-product-design/SKILL.md",
|
|
187
|
-
"sha256": "
|
|
187
|
+
"sha256": "8fc7e2de16c0e82657ce253ccd0cb1b8f21dd6cb648436f5c689f4118e7b678f"
|
|
188
188
|
},
|
|
189
189
|
{
|
|
190
190
|
"path": ".claude/skills/draft-product-design/prompts/main.md",
|
|
191
|
-
"sha256": "
|
|
191
|
+
"sha256": "22d3a9635ab3937206eb1bb686728e5d5135b9b1de27ca76d6976180ab97b8ab"
|
|
192
192
|
},
|
|
193
193
|
{
|
|
194
194
|
"path": ".claude/skills/lc-analyze-frameworks/SKILL.md",
|
|
@@ -344,7 +344,7 @@
|
|
|
344
344
|
},
|
|
345
345
|
{
|
|
346
346
|
"path": ".claude/skills/lc-workflow/validators/validate.py",
|
|
347
|
-
"sha256": "
|
|
347
|
+
"sha256": "2ef99c40e29de06761005ac58f9e47a32955a104a18987d4b8059507f179bdbf"
|
|
348
348
|
},
|
|
349
349
|
{
|
|
350
350
|
"path": ".claude/skills/plan-tdd-development/SKILL.md",
|
|
@@ -472,7 +472,7 @@
|
|
|
472
472
|
},
|
|
473
473
|
{
|
|
474
474
|
"path": ".claude/stages/product-design-docs.yaml",
|
|
475
|
-
"sha256": "
|
|
475
|
+
"sha256": "04829200479439864b95cd5ce34d86035a557e699d8a441ae09b55c1e89e7ddb"
|
|
476
476
|
},
|
|
477
477
|
{
|
|
478
478
|
"path": ".claude/stages/product-prototype.yaml",
|
|
@@ -508,15 +508,15 @@
|
|
|
508
508
|
},
|
|
509
509
|
{
|
|
510
510
|
"path": ".claude/workflows/bug-fix.yaml",
|
|
511
|
-
"sha256": "
|
|
511
|
+
"sha256": "10ec84aefe852f9b36d5694cf1139107877df1cec7bf906c7b1f5e5174b0d2e4"
|
|
512
512
|
},
|
|
513
513
|
{
|
|
514
514
|
"path": ".claude/workflows/design-spike.yaml",
|
|
515
|
-
"sha256": "
|
|
515
|
+
"sha256": "bf19482918ee0356db06b606afccbd4fbe0289db1eeedc5ab81cf81a6b23ad04"
|
|
516
516
|
},
|
|
517
517
|
{
|
|
518
518
|
"path": ".claude/workflows/existing-project-iteration.yaml",
|
|
519
|
-
"sha256": "
|
|
519
|
+
"sha256": "10d52c8e005a2ba98297fa6b961a54b2755d3e470b2feff765de7fa32e509830"
|
|
520
520
|
},
|
|
521
521
|
{
|
|
522
522
|
"path": ".claude/workflows/framework-self-improvement.yaml",
|
|
@@ -524,11 +524,11 @@
|
|
|
524
524
|
},
|
|
525
525
|
{
|
|
526
526
|
"path": ".claude/workflows/interview-to-knowledge.yaml",
|
|
527
|
-
"sha256": "
|
|
527
|
+
"sha256": "ba7178a7459025e9fa003cc9b0f3318ec0dc7f0b0bda89114d69723028398d47"
|
|
528
528
|
},
|
|
529
529
|
{
|
|
530
530
|
"path": ".claude/workflows/oss-first-design.yaml",
|
|
531
|
-
"sha256": "
|
|
531
|
+
"sha256": "0ec0dcc91a5545acd1e50afe54f6935d7008ec70dfd33648a689fd3ac006d4c1"
|
|
532
532
|
},
|
|
533
533
|
{
|
|
534
534
|
"path": ".claude/workflows/pm-research.yaml",
|
|
@@ -536,7 +536,7 @@
|
|
|
536
536
|
},
|
|
537
537
|
{
|
|
538
538
|
"path": ".version-bump.json",
|
|
539
|
-
"sha256": "
|
|
539
|
+
"sha256": "979ac3fdc2994408a873fb1ac7b942163c1b19c344f08b60469fb331e5d3d85a"
|
|
540
540
|
},
|
|
541
541
|
{
|
|
542
542
|
"path": "CLAUDE.md",
|
|
@@ -552,15 +552,15 @@
|
|
|
552
552
|
},
|
|
553
553
|
{
|
|
554
554
|
"path": "README.en.md",
|
|
555
|
-
"sha256": "
|
|
555
|
+
"sha256": "88b4d0e3161b12b90290bdc92811f535d2c607bb94d79147412020c55d270477"
|
|
556
556
|
},
|
|
557
557
|
{
|
|
558
558
|
"path": "README.md",
|
|
559
|
-
"sha256": "
|
|
559
|
+
"sha256": "7bb00a07982f4d0b5046e41b197db9609ae440d2b808ce27650b4a91ba3bb22a"
|
|
560
560
|
},
|
|
561
561
|
{
|
|
562
562
|
"path": "RELEASE.md",
|
|
563
|
-
"sha256": "
|
|
563
|
+
"sha256": "45edad15cbaee8ba16e889d16239eea83a4c8118839fe9d0bbe709f105de504c"
|
|
564
564
|
},
|
|
565
565
|
{
|
|
566
566
|
"path": "SKILL.md",
|
|
@@ -680,7 +680,7 @@
|
|
|
680
680
|
},
|
|
681
681
|
{
|
|
682
682
|
"path": "scripts/lincoln_index.py",
|
|
683
|
-
"sha256": "
|
|
683
|
+
"sha256": "8b237e80673dd96e6aa6fba6cf65f6c9bb4e09777ef17ed7bf1eaa2dce0c10ff"
|
|
684
684
|
},
|
|
685
685
|
{
|
|
686
686
|
"path": "scripts/lincoln_mr_mine.py",
|
|
@@ -784,7 +784,7 @@
|
|
|
784
784
|
},
|
|
785
785
|
{
|
|
786
786
|
"path": "tools/lincoln-installer/package.json",
|
|
787
|
-
"sha256": "
|
|
787
|
+
"sha256": "ff14d4cc2cc7c6a661482b0cc9e6fc40492f9e5b930c3370917ecc1944f3fdc6"
|
|
788
788
|
},
|
|
789
789
|
{
|
|
790
790
|
"path": "tools/lincoln-installer/src/cli.tsx",
|
|
@@ -1068,11 +1068,11 @@
|
|
|
1068
1068
|
},
|
|
1069
1069
|
{
|
|
1070
1070
|
"path": "tools/lincoln/package-lock.json",
|
|
1071
|
-
"sha256": "
|
|
1071
|
+
"sha256": "08dc3bac6e6902190e5d670a62fd937aa4ac5911bccd0231d983f4cafd81a189"
|
|
1072
1072
|
},
|
|
1073
1073
|
{
|
|
1074
1074
|
"path": "tools/lincoln/package.json",
|
|
1075
|
-
"sha256": "
|
|
1075
|
+
"sha256": "63be991c34f907564f53df7a75e845a9153f4285f966b1c12a5cad8335674b0c"
|
|
1076
1076
|
},
|
|
1077
1077
|
{
|
|
1078
1078
|
"path": "tools/lincoln/src/cli.tsx",
|
|
@@ -26,6 +26,7 @@ sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
|
|
26
26
|
from scripts.lincoln_paths import STATE_FILENAME, is_process_state_path
|
|
27
27
|
|
|
28
28
|
PACKAGE_DATA_FILENAME = "assets/js/package-data.js"
|
|
29
|
+
ARCHIVE_NAV_GROUP = "归档"
|
|
29
30
|
VERSION_COMMENT_RE = re.compile(r"<!--\s*version:\s*(v\d+\.\d+)\s*-->", re.IGNORECASE)
|
|
30
31
|
STATUS_COMMENT_RE = re.compile(r"<!--\s*status:\s*(\w+)\s*-->", re.IGNORECASE)
|
|
31
32
|
LIST_META_KEYS = ("doc-fields", "doc-stories", "doc-rules", "doc-boundaries", "doc-exceptions", "doc-refs")
|
|
@@ -183,11 +184,13 @@ def build_package_data(
|
|
|
183
184
|
if not entry.get("uid"):
|
|
184
185
|
meta_warnings.append(f"{rel}: missing <meta name=\"doc-uid\"> or <meta name=\"page-uid\">")
|
|
185
186
|
group_name = entry.get("group") or entry.get("nav_group") or "Docs"
|
|
187
|
+
archived = group_name == ARCHIVE_NAV_GROUP
|
|
186
188
|
groups.setdefault(group_name, []).append(
|
|
187
189
|
{
|
|
188
190
|
"path": rel,
|
|
189
191
|
"label": entry.get("nav_label") or entry.get("label") or entry.get("title") or Path(rel).stem,
|
|
190
192
|
"title": entry.get("title") or Path(rel).stem,
|
|
193
|
+
"archived": archived,
|
|
191
194
|
"version": entry.get("version"),
|
|
192
195
|
"status": entry.get("status", ""),
|
|
193
196
|
"stage": entry.get("stage", ""),
|
|
@@ -210,7 +213,11 @@ def build_package_data(
|
|
|
210
213
|
for warning in meta_warnings:
|
|
211
214
|
print(f" - {warning}", file=sys.stderr)
|
|
212
215
|
|
|
213
|
-
|
|
216
|
+
# Archive groups render last and collapsed in the portal.
|
|
217
|
+
nav = (
|
|
218
|
+
[{"group": g, "items": items} for g, items in groups.items() if g != ARCHIVE_NAV_GROUP]
|
|
219
|
+
+ [{"group": g, "items": items} for g, items in groups.items() if g == ARCHIVE_NAV_GROUP]
|
|
220
|
+
)
|
|
214
221
|
|
|
215
222
|
return {
|
|
216
223
|
"process_slug": process_slug,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sushanglewis/lincoln",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@sushanglewis/lincoln",
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.8.2",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"ink": "^5.2.0",
|