@eduwork/dsh-mail 0.1.1 → 0.1.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.
@@ -14,4 +14,4 @@ Participants must:
14
14
 
15
15
  Maintainers may edit, hide, reject, or remove contributions and may temporarily or permanently restrict participation when conduct threatens contributors or users. Measures should be proportionate and avoid exposing affected people or security-sensitive material.
16
16
 
17
- General conduct concerns may use an issue without personal information. For confidential harassment, threats, doxxing, or another incident, use GitHub [Private Vulnerability Reporting](https://github.com/freedomkk-qfeng/dsh-mail-assistant/security/advisories/new) and prefix the title with “Code of Conduct”.
17
+ General conduct concerns may use an issue without personal information. For confidential harassment, threats, doxxing, or another incident, use GitHub [Private Vulnerability Reporting](https://github.com/ecnu/EduWork/security/advisories/new) and prefix the title with “Code of Conduct”.
@@ -14,4 +14,4 @@
14
14
 
15
15
  当行为威胁贡献者或用户时,维护者可以编辑、隐藏、拒绝或删除贡献,也可以临时或永久限制参与。措施应适度,并避免暴露受影响者或安全敏感材料。
16
16
 
17
- 一般行为问题可以创建不含个人信息的 Issue。需要保密处理的骚扰、威胁、人肉搜索或其他事件,请使用 GitHub [Private Vulnerability Reporting](https://github.com/freedomkk-qfeng/dsh-mail-assistant/security/advisories/new),并在标题中标注“Code of Conduct”。
17
+ 一般行为问题可以创建不含个人信息的 Issue。需要保密处理的骚扰、威胁、人肉搜索或其他事件,请使用 GitHub [Private Vulnerability Reporting](https://github.com/ecnu/EduWork/security/advisories/new),并在标题中标注“Code of Conduct”。
package/MAINTAINERS.en.md CHANGED
@@ -8,6 +8,6 @@
8
8
  | Security maintainer | [@freedomkk-qfeng](https://github.com/freedomkk-qfeng) | None (recruiting) | Current sole maintainer |
9
9
  | Release manager | [@freedomkk-qfeng](https://github.com/freedomkk-qfeng) | None (recruiting) | Current sole maintainer |
10
10
 
11
- One maintainer currently holds these responsibilities; no backup exists yet. Use [GitHub Private Vulnerability Reporting](https://github.com/freedomkk-qfeng/dsh-mail-assistant/security/advisories/new) for confidential security reports and [GitHub Issues](https://github.com/freedomkk-qfeng/dsh-mail-assistant/issues) for release-recovery requests that contain no sensitive information. Recruiting at least one backup able to handle private reports and release recovery remains a maintenance recommendation and roadmap item. Until then, the project does not claim backup coverage or institutional support. Credential, send-authorization, workspace-boundary, and release-workflow changes should receive independent review whenever possible.
11
+ One maintainer currently holds these responsibilities; no backup exists yet. Use [GitHub Private Vulnerability Reporting](https://github.com/ecnu/EduWork/security/advisories/new) for confidential security reports and [GitHub Issues](https://github.com/ecnu/EduWork/issues) for release-recovery requests that contain no sensitive information. Recruiting at least one backup able to handle private reports and release recovery remains a maintenance recommendation and roadmap item. Until then, the project does not claim backup coverage or institutional support. Credential, send-authorization, workspace-boundary, and release-workflow changes should receive independent review whenever possible.
12
12
 
13
13
  Role responsibilities and review thresholds are defined in [Governance](GOVERNANCE.en.md).
package/MAINTAINERS.md CHANGED
@@ -8,6 +8,6 @@
8
8
  | 安全维护者 | [@freedomkk-qfeng](https://github.com/freedomkk-qfeng) | 无(待招募) | 当前唯一维护者 |
9
9
  | 发布经理 | [@freedomkk-qfeng](https://github.com/freedomkk-qfeng) | 无(待招募) | 当前唯一维护者 |
10
10
 
11
- 项目目前由一名维护者承担上述职责,尚无替补。私密安全报告请使用 [GitHub Private Vulnerability Reporting](https://github.com/freedomkk-qfeng/dsh-mail-assistant/security/advisories/new);不含敏感信息的发布恢复请求请使用 [GitHub Issues](https://github.com/freedomkk-qfeng/dsh-mail-assistant/issues)。招募至少一名能够处理私密报告和发布恢复的替补是维护建议与待办;在此之前,不宣称已具备替补能力或机构支持。邮件凭据、发信授权、工作区边界和发布工作流的变更应尽可能获得独立复核。
11
+ 项目目前由一名维护者承担上述职责,尚无替补。私密安全报告请使用 [GitHub Private Vulnerability Reporting](https://github.com/ecnu/EduWork/security/advisories/new);不含敏感信息的发布恢复请求请使用 [GitHub Issues](https://github.com/ecnu/EduWork/issues)。招募至少一名能够处理私密报告和发布恢复的替补是维护建议与待办;在此之前,不宣称已具备替补能力或机构支持。邮件凭据、发信授权、工作区边界和发布工作流的变更应尽可能获得独立复核。
12
12
 
13
13
  角色职责和审查门槛见[治理规则](GOVERNANCE.md)。
package/README.md CHANGED
@@ -1,12 +1,12 @@
1
- # dsh-mail-assistant
1
+ # DSH Mail Assistant
2
2
 
3
3
  > npm 包:`@eduwork/dsh-mail@0.1.1`。旧无作用域包仅供迁移;安装切换与数据兼容见 [迁移说明](docs/EDUWORK-MIGRATION.md)。
4
4
 
5
- **简体中文** | [English](README.en.md)
5
+ **简体中文** | [English](README_EN.md)
6
6
 
7
7
  面向 [DeepSeek Harness(DSH)](https://github.com/deepseek-ai/deepseek-harness) 的安全型邮件助手插件。它通过标准 IMAP 读取邮件、通过标准 SMTP 发送纯文本邮件,但刻意不成为另一个邮箱客户端。
8
8
 
9
- 当前版本:`0.1.1`,按 DeepSeek Harness `0.1.5-rc.1` 的公开接口和实际运行时完成兼容复核。连接重要邮箱前仍应完成组织自己的安全与合规审查,完整支持矩阵见[兼容性](docs/compatibility.md)。
9
+ 版本 `0.1.1` 面向 DeepSeek Harness `0.1.5-rc.1`,支持范围见[兼容性](docs/compatibility.md)。
10
10
 
11
11
  ## 定位与边界
12
12
 
@@ -48,8 +48,8 @@ dsh plugin --profile web add @eduwork/dsh-mail@0.1.1
48
48
  需要审计、开发或验证尚未发布的改动时,再从源码安装:
49
49
 
50
50
  ```bash
51
- git clone https://github.com/freedomkk-qfeng/dsh-mail-assistant.git
52
- cd dsh-mail-assistant
51
+ git clone https://github.com/ecnu/EduWork.git
52
+ cd EduWork/packages/dsh-mail
53
53
  npm ci
54
54
  npm run check
55
55
  dsh plugin --profile web add .
@@ -58,7 +58,7 @@ dsh plugin --profile web add .
58
58
  从父目录也可以显式传入路径:
59
59
 
60
60
  ```bash
61
- dsh plugin --profile web add ./dsh-mail-assistant
61
+ dsh plugin --profile web add ./EduWork/packages/dsh-mail
62
62
  ```
63
63
 
64
64
  DSH 会链接本地 checkout,不会扫描当前目录;源码安装后请保留这个目录。团队部署应固定上面经复核的精确版本。升级现有安装前先备份 Profile 的 `package.json` 与 `cordis.patch.yml`,并在隔离 Profile 中验收。
@@ -116,10 +116,6 @@ config:
116
116
 
117
117
  二进制写入尚未出现在 DSH `ctx.fs` seam 中,因此 `mail_get_attachment` 在本地 Host 文件系统上通过 `ctx.fs` 完成路径解析与包含性校验后,以独占写方式落盘。远程/非本地 FS Provider 可能不支持该工具;其他读信和发信能力不受影响。详见[兼容性](docs/compatibility.md)。
118
118
 
119
- ## 维护者发布
120
-
121
- 发布前必须完成[公开发布检查表](docs/release-checklist.md)。`Release package` 工作流默认只检查、打包并生成 SHA-256;只有在 npm Trusted Publisher 的仓库、工作流和 Environment 绑定已现场验证后,才能启用 OIDC 发布。否则应从已复核的冻结包使用 npm CLI 与浏览器 2FA 发布,不保存长期 Token。
122
-
123
119
  ## 文档
124
120
 
125
121
  - [快速接入](docs/getting-started.md)
@@ -140,3 +136,5 @@ config:
140
136
  ## License
141
137
 
142
138
  [MIT](LICENSE)
139
+
140
+ 源码、Issue 与 PR 统一在 [EduWork](https://github.com/ecnu/EduWork/tree/main/packages/dsh-mail)。开发命令在 `EduWork/packages/dsh-mail` 中执行,npm 安装保持独立;发布流程见[包维护说明](https://github.com/ecnu/EduWork/blob/main/docs/PACKAGES.md)。
@@ -1,4 +1,4 @@
1
- # dsh-mail-assistant
1
+ # DSH Mail Assistant
2
2
 
3
3
  > npm package: `@eduwork/dsh-mail@0.1.1`. The previous unscoped package is retained only for migration. See [migration and data compatibility](docs/EDUWORK-MIGRATION.en.md).
4
4
 
@@ -48,8 +48,8 @@ dsh plugin --profile web add @eduwork/dsh-mail@0.1.1
48
48
  Use a source checkout for auditing, development, or unpublished changes:
49
49
 
50
50
  ```bash
51
- git clone https://github.com/freedomkk-qfeng/dsh-mail-assistant.git
52
- cd dsh-mail-assistant
51
+ git clone https://github.com/ecnu/EduWork.git
52
+ cd EduWork/packages/dsh-mail
53
53
  npm ci
54
54
  npm run check
55
55
  dsh plugin --profile web add .
@@ -58,7 +58,7 @@ dsh plugin --profile web add .
58
58
  From the parent directory:
59
59
 
60
60
  ```bash
61
- dsh plugin --profile web add ./dsh-mail-assistant
61
+ dsh plugin --profile web add ./EduWork/packages/dsh-mail
62
62
  ```
63
63
 
64
64
  DSH links the checkout; it does not scan the invoking directory. Keep a source checkout in place. Team deployments should pin the reviewed exact version shown above. Before upgrading an existing installation, back up the Profile's `package.json` and `cordis.patch.yml`, then accept the upgrade in an isolated Profile.
@@ -102,10 +102,6 @@ The plugin uses official DSH seams: `ctx.credentials`, `ctx.settings`, `settings
102
102
 
103
103
  DSH `0.1.5-rc.1` has bounded binary reads but no binary-write filesystem seam. `mail_get_attachment` therefore uses `ctx.fs` to resolve and fence the local destination before an exclusive local write. A remote/non-local FS Provider may not support that one tool. See [compatibility](docs/compatibility.en.md).
104
104
 
105
- ## Maintainer release
106
-
107
- Complete the [public release checklist](docs/release-checklist.en.md) before publishing. The `Release package` workflow checks, packs, and emits SHA-256 metadata by default. Enable OIDC publishing only after verifying the npm Trusted Publisher repository, workflow, and Environment binding. Otherwise publish the reviewed frozen artifact with the npm CLI and browser 2FA, without storing a long-lived token.
108
-
109
105
  ## Documentation
110
106
 
111
107
  - [Getting started](docs/getting-started.en.md)
@@ -124,3 +120,5 @@ The integration approach was informed by the MIT-licensed community project [`ST
124
120
  ## License
125
121
 
126
122
  [MIT](LICENSE)
123
+
124
+ Source, issues and PRs are maintained in [EduWork](https://github.com/ecnu/EduWork/tree/main/packages/dsh-mail). Run development commands from `EduWork/packages/dsh-mail`. npm installation remains independent. See [package publication](https://github.com/ecnu/EduWork/blob/main/docs/PACKAGES_EN.md).
package/SECURITY.en.md CHANGED
@@ -4,6 +4,6 @@
4
4
 
5
5
  `@eduwork/dsh-mail@0.1.1` has completed code review, automated tests, and no-network runtime acceptance against DeepSeek Harness `0.1.5-rc.1`. Complete your organization's own security, compliance, and recovery review before connecting a critical mailbox.
6
6
 
7
- Do not open a public issue for authorization bypass, credential disclosure, workspace escape, unexpected message mutation, approval bypass, duplicate sending, or remote-code-execution risk. Use GitHub [Private Vulnerability Reporting](https://github.com/freedomkk-qfeng/dsh-mail-assistant/security/advisories/new).
7
+ Do not open a public issue for authorization bypass, credential disclosure, workspace escape, unexpected message mutation, approval bypass, duplicate sending, or remote-code-execution risk. Use GitHub [Private Vulnerability Reporting](https://github.com/ecnu/EduWork/security/advisories/new).
8
8
 
9
9
  Include only minimal reproduction steps, affected versions, and sanitized protocol facts. Never attach real app passwords, cookies, full messages, personal addresses, or unsanitized diagnostics. High-impact outbound, credential, and workspace-boundary issues receive priority, although the project promises no fixed SLA.
package/SECURITY.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  `@eduwork/dsh-mail@0.1.1` 已面向 DeepSeek Harness `0.1.5-rc.1` 完成代码、自动化测试和无网络运行时验收。连接重要邮箱前,仍应完成组织自己的安全、合规与恢复方案审查。
6
6
 
7
- 如发现授权绕过、凭据泄露、工作区逃逸、邮件状态意外修改、审批绕过、重复发信或远程代码执行风险,请不要公开 issue。请通过 GitHub [Private Vulnerability Reporting](https://github.com/freedomkk-qfeng/dsh-mail-assistant/security/advisories/new) 私密报告。
7
+ 如发现授权绕过、凭据泄露、工作区逃逸、邮件状态意外修改、审批绕过、重复发信或远程代码执行风险,请不要公开 issue。请通过 GitHub [Private Vulnerability Reporting](https://github.com/ecnu/EduWork/security/advisories/new) 私密报告。
8
8
 
9
9
  报告请只包含最小复现步骤、受影响版本和脱敏后的协议事实。不要附上真实授权码、Cookie、完整邮件、个人地址或未清理的诊断包。
10
10
 
package/SUPPORT.en.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](SUPPORT.md) | **English**
4
4
 
5
- Use [GitHub Issues](https://github.com/freedomkk-qfeng/dsh-mail-assistant/issues) for normal installation, compatibility, and protocol questions. Vulnerabilities, app passwords, real messages, and private server information must use the private process in the [security policy](SECURITY.en.md).
5
+ Use [GitHub Issues](https://github.com/ecnu/EduWork/issues) for normal installation, compatibility, and protocol questions. Vulnerabilities, app passwords, real messages, and private server information must use the private process in the [security policy](SECURITY.en.md).
6
6
 
7
7
  For an ordinary defect include:
8
8
 
package/SUPPORT.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **简体中文** | [English](SUPPORT.en.md)
4
4
 
5
- 普通安装、兼容性和协议问题请使用 [GitHub Issues](https://github.com/freedomkk-qfeng/dsh-mail-assistant/issues)。漏洞、授权码、真实邮件或私有服务器信息必须走[安全政策](SECURITY.md)规定的私密流程。
5
+ 普通安装、兼容性和协议问题请使用 [GitHub Issues](https://github.com/ecnu/EduWork/issues)。漏洞、授权码、真实邮件或私有服务器信息必须走[安全政策](SECURITY.md)规定的私密流程。
6
6
 
7
7
  普通缺陷报告请提供:
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](EDUWORK-MIGRATION.md) | **English**
4
4
 
5
- Starting with `0.1.0`, the npm package is `@eduwork/dsh-mail`, replacing `dsh-mail-assistant`. The current installation example pins `0.1.1`. The GitHub repository and checkout directory remain `dsh-mail-assistant`. Consult the npm registry for actual publication status.
5
+ Starting with `0.1.0`, the npm package is `@eduwork/dsh-mail`, replacing `dsh-mail-assistant`. The current installation example pins `0.1.1`. Source is maintained under `EduWork/packages/dsh-mail`.
6
6
 
7
7
  ## Installation and migration
8
8
 
@@ -17,7 +17,3 @@ Back up an existing Profile's package.json and cordis.patch.yml, then update its
17
17
  Keep the Host export name, row id, settings namespace and security scope using `dsh-mail-assistant`, as well as `DSH_MAIL_ASSISTANT_PASSWORD` and `.dsh-mail-assistant/attachments`. The Client ModuleLoader uses the new package name.
18
18
 
19
19
  Storage directories and user configuration content do not change. Product-managed Profiles migrate their owned dependencies through the product upgrader; community plugins remain unchanged.
20
-
21
- ## Release scope
22
-
23
- `0.1.0` was the first stable scoped package; `0.1.1` updates the release baseline to DSH `0.1.5-rc.1`. Migration does not change the settings namespace, Credential Ref, or attachment directory. Release acceptance does not claim sign-in to any institutional account or real mail delivery. Previous packages remain installable with their migration notice.
@@ -2,7 +2,7 @@
2
2
 
3
3
  **简体中文** | [English](EDUWORK-MIGRATION.en.md)
4
4
 
5
- 从 `0.1.0` 起,npm 包使用 `@eduwork/dsh-mail`,替代旧的 `dsh-mail-assistant`。当前安装示例固定为 `0.1.1`;GitHub 仓库和本地 checkout 目录继续使用 `dsh-mail-assistant`。包的实际发布状态以 npm registry 为准。
5
+ 从 `0.1.0` 起,npm 包使用 `@eduwork/dsh-mail`,替代旧的 `dsh-mail-assistant`。当前安装示例固定为 `0.1.1`。源码位于 EduWork 的 `packages/dsh-mail`。
6
6
 
7
7
  ## 安装与迁移
8
8
 
@@ -17,7 +17,3 @@ dsh plugin --profile web add @eduwork/dsh-mail@0.1.1
17
17
  保留 Host 导出名、插件行 id、settings namespace 和安全作用域中的 `dsh-mail-assistant`,保留 `DSH_MAIL_ASSISTANT_PASSWORD` 与 `.dsh-mail-assistant/attachments`;客户端 ModuleLoader 使用新包名。
18
18
 
19
19
  本次迁移不修改存储目录或用户配置内容。产品管理的 Profile 由产品升级逻辑迁移其受管依赖;社区插件保持原状。
20
-
21
- ## 发布范围
22
-
23
- `0.1.0` 是作用域包的首个稳定版本;`0.1.1` 将发布基线更新到 DSH `0.1.5-rc.1`。迁移不要求改动 settings namespace、Credential Ref 或附件目录。发布验收不宣称已完成任意机构账号登录或真实邮件投递;旧包保持可安装并保留迁移提示。
@@ -20,8 +20,8 @@ dsh plugin --profile web add @eduwork/dsh-mail@0.1.1
20
20
  For auditing, development, or unpublished changes, use a source checkout:
21
21
 
22
22
  ```bash
23
- git clone https://github.com/freedomkk-qfeng/dsh-mail-assistant.git
24
- cd dsh-mail-assistant
23
+ git clone https://github.com/ecnu/EduWork.git
24
+ cd EduWork/packages/dsh-mail
25
25
  npm ci
26
26
  npm run check
27
27
  dsh plugin --profile web add .
@@ -20,8 +20,8 @@ dsh plugin --profile web add @eduwork/dsh-mail@0.1.1
20
20
  需要审计、开发或验证尚未发布的改动时,使用源码 checkout:
21
21
 
22
22
  ```bash
23
- git clone https://github.com/freedomkk-qfeng/dsh-mail-assistant.git
24
- cd dsh-mail-assistant
23
+ git clone https://github.com/ecnu/EduWork.git
24
+ cd EduWork/packages/dsh-mail
25
25
  npm ci
26
26
  npm run check
27
27
  dsh plugin --profile web add .
@@ -1,53 +1,11 @@
1
- # Public release checklist
1
+ # Package release checklist
2
2
 
3
3
  [简体中文](release-checklist.md) | **English**
4
4
 
5
- A release pull request or release record captures the maintainer decision, date, command-output links, independent technical-review evidence, and exceptions. A sole maintainer owns publication during the project's initial stage; do not invent a second human approver who does not exist. Any applicable incomplete security or publication check blocks a stable release. Additional maintainers and multi-person review remain future governance goals.
5
+ Source and publication are maintained in EduWork. Follow [the shared package workflow](https://github.com/ecnu/EduWork/blob/main/docs/PACKAGES_EN.md); this package retains its independent npm name and SemVer.
6
6
 
7
- ## Authority and metadata
8
-
9
- - [ ] The current maintainer approved public release and the MIT license and recorded technical-review evidence and remaining risk.
10
- - [ ] GitHub repository, npm name, homepage, issues, and private security-report URLs are correct.
11
- - [ ] Version, changelog, compatibility, and install commands agree.
12
- - [ ] Chinese is the default language and every Markdown document has an English mirror with reciprocal entries.
13
- - [ ] Publishable history and content contain no real accounts, messages, app passwords, servers, personal paths, or unauthorized branding.
14
-
15
- ## Mail and authorization boundary
16
-
17
- - [ ] IMAP mailbox locks remain read-only; no `STORE`, `COPY`, `MOVE`, `EXPUNGE`, or flag mutation exists.
18
- - [ ] Reading and sending default off and remain independent.
19
- - [ ] `mail_send` enters DSH permission handling before credentials, attachments, or SMTP access.
20
- - [ ] Ordinary permissions ask per call; Full Access only skips that prompt and never enables sending.
21
- - [ ] Missing Agent sessions, rejection, cancellation, and unavailable approval channels fail closed.
22
- - [ ] Mail remains untrusted data and cannot authorize sending, request secrets, or change system policy.
23
- - [ ] Ambiguous SMTP DATA results return `unknown` and are never automatically retried.
24
-
25
- ## Credentials, transport, and attachments
26
-
27
- - [ ] App passwords only enter a DSH Credential Provider; the browser sees configuration state only.
28
- - [ ] Credentials are resolved for every call and not cached across operations.
29
- - [ ] Only implicit TLS or STARTTLS is accepted; certificate validation is fixed on and protocol logging is off.
30
- - [ ] Addresses reject CR/LF injection and body, message, and attachment limits are enforced.
31
- - [ ] Outbound attachments are regular files inside the current session workspace.
32
- - [ ] Downloaded attachments use random names, exclusive writes, and real-path containment; symlink/junction escape checks pass.
33
- - [ ] Source maps and normalized errors expose no credentials, message content, server responses, or personal paths.
34
-
35
- ## Functional acceptance
36
-
37
- - [ ] Run `npm run accept:dsh-015-rc1` against the exact current DSH version declared by the manifest, and confirm that the runtime contains no mixed older DSH packages.
38
- - [ ] `mail_list_folders` returns server folders without mutation.
39
- - [ ] `mail_find` covers both directions, pagination, dates, folders, stale UIDVALIDITY, and `hasMore=false`.
40
- - [ ] `mail_read` preserves unread state; truncation and HTML fallback match documentation.
41
- - [ ] `mail_get_attachment` works on local FS and fails clearly for a remote/non-shared Host path.
42
- - [ ] A real test mailbox covers ordinary approve/reject, Full Access send, and outside-workspace attachment rejection.
43
- - [ ] OAuth2, multiple accounts, Sent-copy behavior, and complex MIME limitations remain explicit.
44
-
45
- ## Supply chain and publication
46
-
47
- - [ ] Clean `npm ci` and `npm run check` pass on Windows and Linux with Node 22/24.
48
- - [ ] `npm audit`, CodeQL, direct/transitive licenses, and install scripts receive human review.
49
- - [ ] GitHub Actions use immutable commits; Dependabot and branch protection are active.
50
- - [ ] `npm pack --dry-run` and the extracted tarball contain only expected files; the Host bundle has no bare IMAP/SMTP imports.
51
- - [ ] Tag, release notes, tarball checksum, deprecation, and rollback are ready.
52
- - [ ] Enable OIDC/provenance only after verifying that npm Trusted Publishing is bound to this repository, `.github/workflows/release.yml`, and environment `npm`.
53
- - [ ] When Trusted Publishing is not verified, publish the reviewed frozen artifact with the npm CLI and browser 2FA; make no provenance claim and store no long-lived token.
7
+ - Review the changed behavior, version, changelog, compatibility and package lock.
8
+ - Run npm ci and npm run check in this package directory, plus relevant real Host or browser acceptance when behavior changes. Use synthetic test data.
9
+ - Inspect the actual tarball, public documentation, licenses and exported entries. Never ship credentials or user data.
10
+ - Select this package in packages-release.yml; publish=false only produces artifacts. Explicit publication runs from the matching package version tag, using the npm environment and this repository's trusted publisher.
11
+ - Verify registry bytes before updating a product lock. Publishing npm does not publish a desktop Release or deploy a client.
@@ -1,53 +1,11 @@
1
- # 公开发布检查表
1
+ # 包发布检查表
2
2
 
3
3
  **简体中文** | [English](release-checklist.en.md)
4
4
 
5
- 发布 Pull Request 或发布记录应记维护者决策、日期、命令输出链接、独立技术复核证据和例外。项目初期由单一维护者负责发布;不得虚构尚不存在的第二位人工批准人。任何适用且未完成的安全或发布检查都会阻止稳定发布;未来增加替补和多人审查作为治理目标记录。
5
+ 源码与发布入口统一在 EduWork;遵循[公共包发布流程](https://github.com/ecnu/EduWork/blob/main/docs/PACKAGES.md),本包保留独立的 npm 名称和 SemVer。
6
6
 
7
- ## 授权与元数据
8
-
9
- - [ ] 当前维护者确认公开发布和 MIT 许可证,并记录技术复核证据与剩余风险。
10
- - [ ] GitHub 仓库、npm 包名、主页、Issue 和安全报告地址准确。
11
- - [ ] 版本、Changelog、兼容性和安装命令一致。
12
- - [ ] 默认文档为中文,每份 Markdown 文档都有英文镜像和双向入口。
13
- - [ ] Git 历史和发布内容不含真实邮箱、邮件、授权码、服务器、个人路径或未授权品牌。
14
-
15
- ## 邮件与权限边界
16
-
17
- - [ ] IMAP mailbox lock 仍固定为只读,代码没有 `STORE`、`COPY`、`MOVE`、`EXPUNGE` 或 flags 写入。
18
- - [ ] 读信和发信能力默认关闭,并且彼此独立。
19
- - [ ] `mail_send` 在读取凭据、附件和访问 SMTP 前进入 DSH 权限通路。
20
- - [ ] 普通权限逐次审批;Full Access 只免除逐次弹窗,不能自动开启发信能力。
21
- - [ ] 无 Agent 会话、拒绝、取消和不可用审批通路均失败关闭。
22
- - [ ] 邮件数据持续标记为不可信,不能成为发信授权、密钥请求或系统指令。
23
- - [ ] SMTP DATA 阶段的不确定结果返回 `unknown`,不会自动重试。
24
-
25
- ## 凭据、传输和附件
26
-
27
- - [ ] 授权码只进入 DSH Credential Provider,浏览器只能看到配置状态。
28
- - [ ] 每次工具调用重新解析凭据,不跨操作缓存。
29
- - [ ] 只允许隐式 TLS 或 STARTTLS,证书校验不可关闭,协议日志关闭。
30
- - [ ] 地址拒绝 CR/LF 注入;正文、消息和附件大小上限有效。
31
- - [ ] 发送附件限定为当前会话工作区普通文件。
32
- - [ ] 下载附件使用随机名、独占写和真实路径包含性复核;符号链接/目录联接逃逸测试通过。
33
- - [ ] Source map 和错误归一化不泄露凭据、邮件内容、服务器响应或个人路径。
34
-
35
- ## 功能验收
36
-
37
- - [ ] 使用 manifest 声明的当前 DSH 精确版本运行 `npm run accept:dsh-015-rc1`,并确认 Runtime 没有混入旧版 DSH 包。
38
- - [ ] `mail_list_folders` 返回真实目录且不修改状态。
39
- - [ ] `mail_find` 的正序/倒序、多页、日期、目录、UIDVALIDITY 失效和 `hasMore=false` 均测试。
40
- - [ ] `mail_read` 不改变已读状态,正文截断和 HTML 降级符合文档。
41
- - [ ] `mail_get_attachment` 在本地 FS 成功,在远程/不共享 Host 路径时明确失败。
42
- - [ ] 普通权限下发信批准/拒绝、Full Access 发信、工作区外附件拒绝均通过真实测试邮箱验收。
43
- - [ ] 不支持的 OAuth2、多账号、Sent 副本和复杂 MIME 行为仍清楚记录。
44
-
45
- ## 供应链与发布
46
-
47
- - [ ] Windows 与 Linux 使用 Node 22/24 完成干净 `npm ci` 和 `npm run check`。
48
- - [ ] `npm audit`、CodeQL、直接/间接许可证和安装脚本已人工审查。
49
- - [ ] GitHub Actions 固定到不可变 commit,Dependabot 与分支保护有效。
50
- - [ ] `npm pack --dry-run` 和解压后的 tarball 只包含预期文件;Host bundle 没有外部 IMAP/SMTP 裸导入。
51
- - [ ] tag、发布说明、tarball checksum、弃用和回滚方案已准备。
52
- - [ ] 已现场验证 npm Trusted Publisher 绑定本仓库、`.github/workflows/release.yml` 与 Environment `npm` 后,才启用 OIDC/provenance 发布路径。
53
- - [ ] Trusted Publisher 未验证时,从经复核的冻结包使用 npm CLI 和浏览器 2FA 发布,不声明 provenance,也不保存长期 Token。
7
+ - 核对变更行为、版本、变更记录、兼容范围和依赖锁。
8
+ - 在当前包目录执行 npm ci、npm run check;有行为变化时补对应 Host 或浏览器实测,使用合成测试数据。
9
+ - 检查实际 tarball、公开文档、许可证和导出入口,不携带凭据或用户数据。
10
+ - 在 packages-release.yml 中选择本包;publish=false 仅产出候选。明确发布时从匹配包版本的 tag 运行,使用 npm environment 与本仓库的 Trusted Publisher。
11
+ - 核验 registry 中的实际字节后再更新产品锁。发布 npm 不会发布桌面 Release 或替换客户端。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eduwork/dsh-mail",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Standards-based IMAP/SMTP mail assistant for DeepSeek Harness with explicit read/send controls and approval-aware delivery",
5
5
  "keywords": [
6
6
  "deepseek-harness",
@@ -23,7 +23,7 @@
23
23
  "lib/**/*.js",
24
24
  "docs/**/*.md",
25
25
  "README.md",
26
- "README.en.md",
26
+ "README_EN.md",
27
27
  "CHANGELOG.md",
28
28
  "CHANGELOG.en.md",
29
29
  "CODE_OF_CONDUCT.md",
@@ -86,12 +86,13 @@
86
86
  },
87
87
  "repository": {
88
88
  "type": "git",
89
- "url": "git+https://github.com/freedomkk-qfeng/dsh-mail-assistant.git"
89
+ "url": "git+https://github.com/ecnu/EduWork.git",
90
+ "directory": "packages/dsh-mail"
90
91
  },
91
92
  "bugs": {
92
- "url": "https://github.com/freedomkk-qfeng/dsh-mail-assistant/issues"
93
+ "url": "https://github.com/ecnu/EduWork/issues"
93
94
  },
94
- "homepage": "https://github.com/freedomkk-qfeng/dsh-mail-assistant#readme",
95
+ "homepage": "https://github.com/ecnu/EduWork/tree/main/packages/dsh-mail#readme",
95
96
  "peerDependencies": {
96
97
  "@deepseek-ai/cordis": "4.0.2",
97
98
  "@deepseek-ai/dsh-api-remotes": "0.1.2-rc.1 || 0.1.3-alpha.1 || 0.1.3-alpha.2 || 0.1.5-alpha.1 || 0.1.5-rc.1",