@memef1f1y/dsh-plugin-tts 0.6.4 → 0.6.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/.github/ISSUE_TEMPLATE/bug_report.yml +51 -51
- package/.github/ISSUE_TEMPLATE/config.yml +2 -2
- package/.github/ISSUE_TEMPLATE/feature_request.yml +28 -28
- package/.github/pull_request_template.md +7 -7
- package/.github/workflows/contrib-triage.yml +66 -66
- package/.github/workflows/linked-issue.yml +21 -21
- package/.github/workflows/publish.yml +63 -0
- package/.github/workflows/stale.yml +30 -30
- package/.github/workflows/test.yml +33 -33
- package/.github/workflows/welcome.yml +22 -22
- package/ANALYSIS.md +205 -205
- package/PR-REVIEW.md +74 -74
- package/README.md +335 -335
- package/TODO.md +34 -23
- package/docs/HOST-CONTRACT.md +36 -36
- package/docs/RVC-GUIDE.md +390 -390
- package/docs/USER-GUIDE.md +389 -389
- package/docs/acceptance-checklist.md +147 -147
- package/docs/adaptive-chunked-playback.md +194 -194
- package/docs/macos-test-prompt.md +230 -230
- package/docs/windows-gpu-verify-prompt.md +151 -151
- package/lib/client.js +7164 -7164
- package/lib/index.mjs +3374 -3371
- package/package.json +51 -52
- package/rvc-server.py +564 -564
- package/tests/README.md +45 -45
- package/tests/client-load.mjs +406 -406
- package/tests/e2e-compact-index.mjs +86 -86
- package/tests/e2e-index-ab.mjs +138 -138
- package/tests/e2e-real-rvc.mjs +122 -122
- package/tests/i18n-keys.mjs +82 -82
- package/tests/package-runtime-patch.mjs +88 -88
- package/tests/rvc-server-live.mjs +230 -230
- package/tests/smoke.mjs +1284 -1284
- package/tools/gen-ui-preview.mjs +174 -174
- package/tools/mac-verify.sh +158 -158
- package/tools/package-runtime.py +214 -214
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
name: Bug 反馈
|
|
2
|
-
description: 报告插件使用中遇到的问题
|
|
3
|
-
title: "[Bug] "
|
|
4
|
-
labels: ["bug"]
|
|
5
|
-
body:
|
|
6
|
-
- type: textarea
|
|
7
|
-
id: repro
|
|
8
|
-
attributes:
|
|
9
|
-
label: 复现步骤
|
|
10
|
-
description: 让维护者能复现问题的最简操作,1-2-3 列出来
|
|
11
|
-
placeholder: |
|
|
12
|
-
1. 打开 ……
|
|
13
|
-
2. 点击 ……
|
|
14
|
-
3. 出现报错 ……
|
|
15
|
-
validations:
|
|
16
|
-
required: true
|
|
17
|
-
- type: textarea
|
|
18
|
-
id: actual
|
|
19
|
-
attributes:
|
|
20
|
-
label: 期望结果 vs 实际结果
|
|
21
|
-
description: 你期望发生什么,实际发生了什么
|
|
22
|
-
placeholder: |
|
|
23
|
-
期望: assistant 回复后自动朗读
|
|
24
|
-
实际: 没有任何声音,也没有报错
|
|
25
|
-
validations:
|
|
26
|
-
required: true
|
|
27
|
-
- type: input
|
|
28
|
-
id: env
|
|
29
|
-
attributes:
|
|
30
|
-
label: 环境
|
|
31
|
-
description: 插件版本 / opencode 版本 / 操作系统
|
|
32
|
-
placeholder: "插件 v0.3.0 / opencode 1.18.x / Windows 11"
|
|
33
|
-
validations:
|
|
34
|
-
required: true
|
|
35
|
-
- type: textarea
|
|
36
|
-
id: logs
|
|
37
|
-
attributes:
|
|
38
|
-
label: 日志或报错信息
|
|
39
|
-
description: 相关报错、控制台输出贴进来;确认没有请填"无"
|
|
40
|
-
render: shell
|
|
41
|
-
placeholder: "把报错堆栈粘在这里,没有请填 无"
|
|
42
|
-
validations:
|
|
43
|
-
required: true
|
|
44
|
-
- type: input
|
|
45
|
-
id: code
|
|
46
|
-
attributes:
|
|
47
|
-
label: 相关代码 / 文件(选填)
|
|
48
|
-
description: 出问题的文件路径、配置片段
|
|
49
|
-
placeholder: "如 hooks/useEdgeSpeech.ts,或相关配置"
|
|
50
|
-
validations:
|
|
51
|
-
required: false
|
|
1
|
+
name: Bug 反馈
|
|
2
|
+
description: 报告插件使用中遇到的问题
|
|
3
|
+
title: "[Bug] "
|
|
4
|
+
labels: ["bug"]
|
|
5
|
+
body:
|
|
6
|
+
- type: textarea
|
|
7
|
+
id: repro
|
|
8
|
+
attributes:
|
|
9
|
+
label: 复现步骤
|
|
10
|
+
description: 让维护者能复现问题的最简操作,1-2-3 列出来
|
|
11
|
+
placeholder: |
|
|
12
|
+
1. 打开 ……
|
|
13
|
+
2. 点击 ……
|
|
14
|
+
3. 出现报错 ……
|
|
15
|
+
validations:
|
|
16
|
+
required: true
|
|
17
|
+
- type: textarea
|
|
18
|
+
id: actual
|
|
19
|
+
attributes:
|
|
20
|
+
label: 期望结果 vs 实际结果
|
|
21
|
+
description: 你期望发生什么,实际发生了什么
|
|
22
|
+
placeholder: |
|
|
23
|
+
期望: assistant 回复后自动朗读
|
|
24
|
+
实际: 没有任何声音,也没有报错
|
|
25
|
+
validations:
|
|
26
|
+
required: true
|
|
27
|
+
- type: input
|
|
28
|
+
id: env
|
|
29
|
+
attributes:
|
|
30
|
+
label: 环境
|
|
31
|
+
description: 插件版本 / opencode 版本 / 操作系统
|
|
32
|
+
placeholder: "插件 v0.3.0 / opencode 1.18.x / Windows 11"
|
|
33
|
+
validations:
|
|
34
|
+
required: true
|
|
35
|
+
- type: textarea
|
|
36
|
+
id: logs
|
|
37
|
+
attributes:
|
|
38
|
+
label: 日志或报错信息
|
|
39
|
+
description: 相关报错、控制台输出贴进来;确认没有请填"无"
|
|
40
|
+
render: shell
|
|
41
|
+
placeholder: "把报错堆栈粘在这里,没有请填 无"
|
|
42
|
+
validations:
|
|
43
|
+
required: true
|
|
44
|
+
- type: input
|
|
45
|
+
id: code
|
|
46
|
+
attributes:
|
|
47
|
+
label: 相关代码 / 文件(选填)
|
|
48
|
+
description: 出问题的文件路径、配置片段
|
|
49
|
+
placeholder: "如 hooks/useEdgeSpeech.ts,或相关配置"
|
|
50
|
+
validations:
|
|
51
|
+
required: false
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
blank_issues_enabled: false
|
|
2
|
-
contact_links: []
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links: []
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
name: 功能建议
|
|
2
|
-
description: 给插件提新功能或改进想法
|
|
3
|
-
title: "[Feature] "
|
|
4
|
-
labels: ["enhancement"]
|
|
5
|
-
body:
|
|
6
|
-
- type: textarea
|
|
7
|
-
id: scene
|
|
8
|
-
attributes:
|
|
9
|
-
label: 使用场景
|
|
10
|
-
description: 你在什么情况下需要这个功能,现在是怎么凑合的
|
|
11
|
-
placeholder: "比如:开车时想听长回复,但当前只能手动点朗读……"
|
|
12
|
-
validations:
|
|
13
|
-
required: true
|
|
14
|
-
- type: textarea
|
|
15
|
-
id: proposal
|
|
16
|
-
attributes:
|
|
17
|
-
label: 建议方案
|
|
18
|
-
description: 你希望做成什么样,越具体越好
|
|
19
|
-
placeholder: "比如:加一个超过 200 字自动朗读的开关……"
|
|
20
|
-
validations:
|
|
21
|
-
required: true
|
|
22
|
-
- type: textarea
|
|
23
|
-
id: alt
|
|
24
|
-
attributes:
|
|
25
|
-
label: 替代方案(选填)
|
|
26
|
-
description: 有没有退而求其次也能接受的做法
|
|
27
|
-
validations:
|
|
28
|
-
required: false
|
|
1
|
+
name: 功能建议
|
|
2
|
+
description: 给插件提新功能或改进想法
|
|
3
|
+
title: "[Feature] "
|
|
4
|
+
labels: ["enhancement"]
|
|
5
|
+
body:
|
|
6
|
+
- type: textarea
|
|
7
|
+
id: scene
|
|
8
|
+
attributes:
|
|
9
|
+
label: 使用场景
|
|
10
|
+
description: 你在什么情况下需要这个功能,现在是怎么凑合的
|
|
11
|
+
placeholder: "比如:开车时想听长回复,但当前只能手动点朗读……"
|
|
12
|
+
validations:
|
|
13
|
+
required: true
|
|
14
|
+
- type: textarea
|
|
15
|
+
id: proposal
|
|
16
|
+
attributes:
|
|
17
|
+
label: 建议方案
|
|
18
|
+
description: 你希望做成什么样,越具体越好
|
|
19
|
+
placeholder: "比如:加一个超过 200 字自动朗读的开关……"
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
- type: textarea
|
|
23
|
+
id: alt
|
|
24
|
+
attributes:
|
|
25
|
+
label: 替代方案(选填)
|
|
26
|
+
description: 有没有退而求其次也能接受的做法
|
|
27
|
+
validations:
|
|
28
|
+
required: false
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
### 关联 issue
|
|
2
|
-
|
|
3
|
-
Closes #
|
|
4
|
-
|
|
5
|
-
### 改了什么,为什么
|
|
6
|
-
|
|
7
|
-
### 怎么验证的
|
|
1
|
+
### 关联 issue
|
|
2
|
+
|
|
3
|
+
Closes #
|
|
4
|
+
|
|
5
|
+
### 改了什么,为什么
|
|
6
|
+
|
|
7
|
+
### 怎么验证的
|
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
# 内容初筛:正文过薄的 issue / PR 自动索要信息(只提醒不关闭)。
|
|
2
|
-
# 关闭逻辑在 stale.yml(7 天提醒 + 7 天关闭)。不 checkout 任何代码,
|
|
3
|
-
# pull_request_target 在此是安全的。
|
|
4
|
-
name: contrib-triage
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
issues:
|
|
8
|
-
types: [opened, edited, reopened]
|
|
9
|
-
pull_request_target:
|
|
10
|
-
types: [opened, edited, reopened, ready_for_review]
|
|
11
|
-
|
|
12
|
-
permissions:
|
|
13
|
-
issues: write
|
|
14
|
-
pull-requests: write
|
|
15
|
-
|
|
16
|
-
jobs:
|
|
17
|
-
triage:
|
|
18
|
-
runs-on: ubuntu-latest
|
|
19
|
-
steps:
|
|
20
|
-
- uses: actions/github-script@v8
|
|
21
|
-
with:
|
|
22
|
-
script: |
|
|
23
|
-
const isPR = !!context.payload.pull_request;
|
|
24
|
-
const target = isPR ? context.payload.pull_request : context.payload.issue;
|
|
25
|
-
// 注意:author_association 在 sender 上没有,要从 issue / PR 对象上取
|
|
26
|
-
const assoc = target.author_association ?? "";
|
|
27
|
-
|
|
28
|
-
// 豁免只管"打标"不管"摘标":自己人补了信息也要清标记,
|
|
29
|
-
// 否则标记永远烂在自己人手里,最后被 stale 误关
|
|
30
|
-
const privileged =
|
|
31
|
-
["OWNER", "MEMBER", "COLLABORATOR"].includes(assoc) ||
|
|
32
|
-
context.payload.sender?.type === "Bot" ||
|
|
33
|
-
(isPR && target.draft);
|
|
34
|
-
|
|
35
|
-
// 去掉标题行/空行/注释后看有效字数
|
|
36
|
-
const effective = (target.body ?? "")
|
|
37
|
-
.split("\n")
|
|
38
|
-
.map((l) => l.trim())
|
|
39
|
-
.filter((l) => l && !l.startsWith("#") && !l.startsWith("<!--") && l !== "---")
|
|
40
|
-
.join("\n");
|
|
41
|
-
const thin = effective.length < (isPR ? 30 : 50);
|
|
42
|
-
|
|
43
|
-
const labels = target.labels.map((l) => l.name);
|
|
44
|
-
const hasFlag = labels.includes("needs:info");
|
|
45
|
-
|
|
46
|
-
if (!thin && hasFlag) {
|
|
47
|
-
await github.rest.issues.removeLabel({
|
|
48
|
-
...context.repo,
|
|
49
|
-
issue_number: target.number,
|
|
50
|
-
name: "needs:info",
|
|
51
|
-
});
|
|
52
|
-
} else if (thin && !hasFlag && !privileged) {
|
|
53
|
-
await github.rest.issues.addLabels({
|
|
54
|
-
...context.repo,
|
|
55
|
-
issue_number: target.number,
|
|
56
|
-
labels: ["needs:info"],
|
|
57
|
-
});
|
|
58
|
-
const msg = isPR
|
|
59
|
-
? "感谢贡献!这个 PR 描述有点简单,维护者可能看不懂改了什么,麻烦按模板补一下:关联哪个 issue、改了什么为什么、怎么验证的。直接编辑 PR 正文即可,补好后标记会自动摘掉。"
|
|
60
|
-
: "感谢反馈!这个 issue 信息有点少,维护者可能无法定位问题,麻烦补充一下:1)复现步骤;2)期望结果 vs 实际结果;3)日志或报错信息。直接编辑 issue 正文补上就行,补好后标记会自动摘掉。";
|
|
61
|
-
await github.rest.issues.createComment({
|
|
62
|
-
...context.repo,
|
|
63
|
-
issue_number: target.number,
|
|
64
|
-
body: msg,
|
|
65
|
-
});
|
|
66
|
-
}
|
|
1
|
+
# 内容初筛:正文过薄的 issue / PR 自动索要信息(只提醒不关闭)。
|
|
2
|
+
# 关闭逻辑在 stale.yml(7 天提醒 + 7 天关闭)。不 checkout 任何代码,
|
|
3
|
+
# pull_request_target 在此是安全的。
|
|
4
|
+
name: contrib-triage
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
issues:
|
|
8
|
+
types: [opened, edited, reopened]
|
|
9
|
+
pull_request_target:
|
|
10
|
+
types: [opened, edited, reopened, ready_for_review]
|
|
11
|
+
|
|
12
|
+
permissions:
|
|
13
|
+
issues: write
|
|
14
|
+
pull-requests: write
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
triage:
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
steps:
|
|
20
|
+
- uses: actions/github-script@v8
|
|
21
|
+
with:
|
|
22
|
+
script: |
|
|
23
|
+
const isPR = !!context.payload.pull_request;
|
|
24
|
+
const target = isPR ? context.payload.pull_request : context.payload.issue;
|
|
25
|
+
// 注意:author_association 在 sender 上没有,要从 issue / PR 对象上取
|
|
26
|
+
const assoc = target.author_association ?? "";
|
|
27
|
+
|
|
28
|
+
// 豁免只管"打标"不管"摘标":自己人补了信息也要清标记,
|
|
29
|
+
// 否则标记永远烂在自己人手里,最后被 stale 误关
|
|
30
|
+
const privileged =
|
|
31
|
+
["OWNER", "MEMBER", "COLLABORATOR"].includes(assoc) ||
|
|
32
|
+
context.payload.sender?.type === "Bot" ||
|
|
33
|
+
(isPR && target.draft);
|
|
34
|
+
|
|
35
|
+
// 去掉标题行/空行/注释后看有效字数
|
|
36
|
+
const effective = (target.body ?? "")
|
|
37
|
+
.split("\n")
|
|
38
|
+
.map((l) => l.trim())
|
|
39
|
+
.filter((l) => l && !l.startsWith("#") && !l.startsWith("<!--") && l !== "---")
|
|
40
|
+
.join("\n");
|
|
41
|
+
const thin = effective.length < (isPR ? 30 : 50);
|
|
42
|
+
|
|
43
|
+
const labels = target.labels.map((l) => l.name);
|
|
44
|
+
const hasFlag = labels.includes("needs:info");
|
|
45
|
+
|
|
46
|
+
if (!thin && hasFlag) {
|
|
47
|
+
await github.rest.issues.removeLabel({
|
|
48
|
+
...context.repo,
|
|
49
|
+
issue_number: target.number,
|
|
50
|
+
name: "needs:info",
|
|
51
|
+
});
|
|
52
|
+
} else if (thin && !hasFlag && !privileged) {
|
|
53
|
+
await github.rest.issues.addLabels({
|
|
54
|
+
...context.repo,
|
|
55
|
+
issue_number: target.number,
|
|
56
|
+
labels: ["needs:info"],
|
|
57
|
+
});
|
|
58
|
+
const msg = isPR
|
|
59
|
+
? "感谢贡献!这个 PR 描述有点简单,维护者可能看不懂改了什么,麻烦按模板补一下:关联哪个 issue、改了什么为什么、怎么验证的。直接编辑 PR 正文即可,补好后标记会自动摘掉。"
|
|
60
|
+
: "感谢反馈!这个 issue 信息有点少,维护者可能无法定位问题,麻烦补充一下:1)复现步骤;2)期望结果 vs 实际结果;3)日志或报错信息。直接编辑 issue 正文补上就行,补好后标记会自动摘掉。";
|
|
61
|
+
await github.rest.issues.createComment({
|
|
62
|
+
...context.repo,
|
|
63
|
+
issue_number: target.number,
|
|
64
|
+
body: msg,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
# PR 必须关联 issue(描述里写 Closes #x / Fixes #x)。
|
|
2
|
-
# 贴 no-issue 标签可豁免(如纯文档、发版类 PR)。不 checkout 代码。
|
|
3
|
-
name: linked-issue
|
|
4
|
-
|
|
5
|
-
on:
|
|
6
|
-
pull_request_target:
|
|
7
|
-
types: [opened, edited, reopened, ready_for_review, labeled, unlabeled]
|
|
8
|
-
|
|
9
|
-
permissions:
|
|
10
|
-
issues: read
|
|
11
|
-
pull-requests: write
|
|
12
|
-
|
|
13
|
-
jobs:
|
|
14
|
-
check:
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
steps:
|
|
17
|
-
- uses: nearform-actions/github-action-check-linked-issues@v1.8.3
|
|
18
|
-
with:
|
|
19
|
-
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
20
|
-
exclude-branches: "dependabot/**"
|
|
21
|
-
custom-body-comment: "这个 PR 还没有关联 issue,请在描述里加上 `Closes #xxx`(把 xxx 换成 issue 号)。纯文档/发版类 PR 可贴 `no-issue` 标签跳过此检查。"
|
|
1
|
+
# PR 必须关联 issue(描述里写 Closes #x / Fixes #x)。
|
|
2
|
+
# 贴 no-issue 标签可豁免(如纯文档、发版类 PR)。不 checkout 代码。
|
|
3
|
+
name: linked-issue
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
pull_request_target:
|
|
7
|
+
types: [opened, edited, reopened, ready_for_review, labeled, unlabeled]
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
issues: read
|
|
11
|
+
pull-requests: write
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
check:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: nearform-actions/github-action-check-linked-issues@v1.8.3
|
|
18
|
+
with:
|
|
19
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
20
|
+
exclude-branches: "dependabot/**"
|
|
21
|
+
custom-body-comment: "这个 PR 还没有关联 issue,请在描述里加上 `Closes #xxx`(把 xxx 换成 issue 号)。纯文档/发版类 PR 可贴 `no-issue` 标签跳过此检查。"
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: publish
|
|
2
|
+
|
|
3
|
+
# GitHub -> npm 自动发布:打 tag 即发包(先跑测试,绿了才 publish)。
|
|
4
|
+
# 用法:npm version patch && git push --follow-tags
|
|
5
|
+
# 或:git tag v0.6.7 && git push --tags
|
|
6
|
+
# 前置(一次即可):npmjs.com 打开本包 Settings -> Trusted Publisher,
|
|
7
|
+
# 选 GitHub Actions,填组织/用户 1624318455、仓库 dsh-plugin-tts、
|
|
8
|
+
# workflow 文件名 publish.yml(environment 留空)。配好后无需任何 secret,
|
|
9
|
+
# 发布靠 OIDC 身份 + provenance 直发。
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
push:
|
|
13
|
+
tags: ['v*']
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
id-token: write # npm provenance 需要
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
test:
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
strategy:
|
|
23
|
+
fail-fast: false
|
|
24
|
+
matrix:
|
|
25
|
+
node: [22, 24]
|
|
26
|
+
steps:
|
|
27
|
+
- uses: actions/checkout@v4
|
|
28
|
+
|
|
29
|
+
- uses: actions/setup-node@v4
|
|
30
|
+
with:
|
|
31
|
+
node-version: ${{ matrix.node }}
|
|
32
|
+
|
|
33
|
+
- name: Install deps
|
|
34
|
+
run: npm install --no-audit --no-fund
|
|
35
|
+
|
|
36
|
+
- name: Smoke + i18n + client-load + patch
|
|
37
|
+
run: npm test && npm run test:i18n && npm run test:client && npm run test:patch
|
|
38
|
+
|
|
39
|
+
publish:
|
|
40
|
+
needs: test
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
steps:
|
|
43
|
+
- uses: actions/checkout@v4
|
|
44
|
+
|
|
45
|
+
- uses: actions/setup-node@v4
|
|
46
|
+
with:
|
|
47
|
+
# Trusted publishing 需要 npm >= 11.5.1(见 npm 文档);
|
|
48
|
+
# Node 22 自带 npm 10 不支持 OIDC,所以这里用 Node 24 并再显式升级 npm。
|
|
49
|
+
node-version: 24
|
|
50
|
+
registry-url: 'https://registry.npmjs.org'
|
|
51
|
+
|
|
52
|
+
- name: Upgrade npm for OIDC support
|
|
53
|
+
run: npm install -g npm@latest && npm --version
|
|
54
|
+
|
|
55
|
+
- name: Install deps
|
|
56
|
+
run: npm install --no-audit --no-fund
|
|
57
|
+
|
|
58
|
+
- name: Tag matches package.json version
|
|
59
|
+
run: |
|
|
60
|
+
node -e "const fs=require('fs');const v=require('./package.json').version;const tag=process.env.GITHUB_REF_NAME.replace(/^v/,'');if(v!==tag){console.error('tag '+process.env.GITHUB_REF_NAME+' != package.json '+v);process.exit(1)}else{console.log('version ok: '+v)}"
|
|
61
|
+
|
|
62
|
+
- name: Publish to npm
|
|
63
|
+
run: npm publish --provenance --access public
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
# 只处理被 needs:info 标记的 issue / PR:7 天无更新提醒,再 7 天无更新关闭。
|
|
2
|
-
# 任何回复/编辑都会自动摘标并重启计时。
|
|
3
|
-
name: stale-guard
|
|
4
|
-
|
|
5
|
-
on:
|
|
6
|
-
schedule:
|
|
7
|
-
- cron: "0 1 * * *"
|
|
8
|
-
workflow_dispatch:
|
|
9
|
-
|
|
10
|
-
permissions:
|
|
11
|
-
issues: write
|
|
12
|
-
pull-requests: write
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
stale:
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
steps:
|
|
18
|
-
- uses: actions/stale@v10
|
|
19
|
-
with:
|
|
20
|
-
only-issue-labels: "needs:info"
|
|
21
|
-
only-pr-labels: "needs:info"
|
|
22
|
-
days-before-stale: 7
|
|
23
|
-
days-before-close: 7
|
|
24
|
-
stale-issue-label: "needs:info"
|
|
25
|
-
stale-pr-label: "needs:info"
|
|
26
|
-
exempt-draft-pr: true
|
|
27
|
-
stale-issue-message: "这个 issue 已 7 天没有补充信息,再过 7 天仍无更新将自动关闭。直接编辑正文或回复补充即可(随时可重开)。"
|
|
28
|
-
stale-pr-message: "这个 PR 已 7 天没有补充信息,再过 7 天仍无更新将自动关闭。直接编辑正文或回复补充即可(随时可重开)。"
|
|
29
|
-
close-issue-message: "因长期缺少定位信息自动关闭。如仍有问题,补充信息后可随时重开。"
|
|
30
|
-
close-pr-message: "因长期缺少信息自动关闭。补齐描述后可随时重开。"
|
|
1
|
+
# 只处理被 needs:info 标记的 issue / PR:7 天无更新提醒,再 7 天无更新关闭。
|
|
2
|
+
# 任何回复/编辑都会自动摘标并重启计时。
|
|
3
|
+
name: stale-guard
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
schedule:
|
|
7
|
+
- cron: "0 1 * * *"
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
issues: write
|
|
12
|
+
pull-requests: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
stale:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/stale@v10
|
|
19
|
+
with:
|
|
20
|
+
only-issue-labels: "needs:info"
|
|
21
|
+
only-pr-labels: "needs:info"
|
|
22
|
+
days-before-stale: 7
|
|
23
|
+
days-before-close: 7
|
|
24
|
+
stale-issue-label: "needs:info"
|
|
25
|
+
stale-pr-label: "needs:info"
|
|
26
|
+
exempt-draft-pr: true
|
|
27
|
+
stale-issue-message: "这个 issue 已 7 天没有补充信息,再过 7 天仍无更新将自动关闭。直接编辑正文或回复补充即可(随时可重开)。"
|
|
28
|
+
stale-pr-message: "这个 PR 已 7 天没有补充信息,再过 7 天仍无更新将自动关闭。直接编辑正文或回复补充即可(随时可重开)。"
|
|
29
|
+
close-issue-message: "因长期缺少定位信息自动关闭。如仍有问题,补充信息后可随时重开。"
|
|
30
|
+
close-pr-message: "因长期缺少信息自动关闭。补齐描述后可随时重开。"
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
name: test
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
pull_request:
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
test:
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
strategy:
|
|
12
|
-
fail-fast: false
|
|
13
|
-
matrix:
|
|
14
|
-
# The Edge TTS worker uses the native WebSocket (Node >= 22, see README).
|
|
15
|
-
node: [22, 24]
|
|
16
|
-
steps:
|
|
17
|
-
- uses: actions/checkout@v4
|
|
18
|
-
|
|
19
|
-
- uses: actions/setup-node@v4
|
|
20
|
-
with:
|
|
21
|
-
node-version: ${{ matrix.node }}
|
|
22
|
-
|
|
23
|
-
- name: Install deps
|
|
24
|
-
run: npm install --no-audit --no-fund
|
|
25
|
-
|
|
26
|
-
- name: Smoke + i18n + client-load + patch
|
|
27
|
-
# live layer requires a real local rvc-server; it auto-SKIPs on CI when
|
|
28
|
-
# ~/rvc-work / RVC_URL is absent, so it won't false-fail here.
|
|
29
|
-
run: npm test && npm run test:i18n && npm run test:client && npm run test:patch
|
|
30
|
-
|
|
31
|
-
- name: Live (optional, when RVC runtime available)
|
|
32
|
-
run: npm run test:live
|
|
33
|
-
continue-on-error: true
|
|
1
|
+
name: test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
fail-fast: false
|
|
13
|
+
matrix:
|
|
14
|
+
# The Edge TTS worker uses the native WebSocket (Node >= 22, see README).
|
|
15
|
+
node: [22, 24]
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
|
|
19
|
+
- uses: actions/setup-node@v4
|
|
20
|
+
with:
|
|
21
|
+
node-version: ${{ matrix.node }}
|
|
22
|
+
|
|
23
|
+
- name: Install deps
|
|
24
|
+
run: npm install --no-audit --no-fund
|
|
25
|
+
|
|
26
|
+
- name: Smoke + i18n + client-load + patch
|
|
27
|
+
# live layer requires a real local rvc-server; it auto-SKIPs on CI when
|
|
28
|
+
# ~/rvc-work / RVC_URL is absent, so it won't false-fail here.
|
|
29
|
+
run: npm test && npm run test:i18n && npm run test:client && npm run test:patch
|
|
30
|
+
|
|
31
|
+
- name: Live (optional, when RVC runtime available)
|
|
32
|
+
run: npm run test:live
|
|
33
|
+
continue-on-error: true
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
# 首次贡献者欢迎(每人只打扰一次)。不 checkout 代码。
|
|
2
|
-
name: welcome
|
|
3
|
-
|
|
4
|
-
on:
|
|
5
|
-
issues:
|
|
6
|
-
types: [opened]
|
|
7
|
-
pull_request_target:
|
|
8
|
-
types: [opened]
|
|
9
|
-
|
|
10
|
-
permissions:
|
|
11
|
-
issues: write
|
|
12
|
-
pull-requests: write
|
|
13
|
-
|
|
14
|
-
jobs:
|
|
15
|
-
greet:
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
steps:
|
|
18
|
-
- uses: actions/first-interaction@v3
|
|
19
|
-
with:
|
|
20
|
-
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
21
|
-
issue_message: "欢迎第一次提 issue!如果还没填过信息模板,麻烦按表单把复现步骤和日志补一下,定位会快很多。"
|
|
22
|
-
pr_message: "欢迎第一次贡献代码!麻烦确认 PR 描述里写了关联 issue、改动原因和验证方式,review 会顺利很多。"
|
|
1
|
+
# 首次贡献者欢迎(每人只打扰一次)。不 checkout 代码。
|
|
2
|
+
name: welcome
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
issues:
|
|
6
|
+
types: [opened]
|
|
7
|
+
pull_request_target:
|
|
8
|
+
types: [opened]
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
issues: write
|
|
12
|
+
pull-requests: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
greet:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/first-interaction@v3
|
|
19
|
+
with:
|
|
20
|
+
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
21
|
+
issue_message: "欢迎第一次提 issue!如果还没填过信息模板,麻烦按表单把复现步骤和日志补一下,定位会快很多。"
|
|
22
|
+
pr_message: "欢迎第一次贡献代码!麻烦确认 PR 描述里写了关联 issue、改动原因和验证方式,review 会顺利很多。"
|