diff --git a/docs/CURRENT_STATE.json b/docs/CURRENT_STATE.json index 72f22d0..fc40a28 100644 --- a/docs/CURRENT_STATE.json +++ b/docs/CURRENT_STATE.json @@ -13,18 +13,18 @@ "documentsAndCodeIntegrityVerified": true }, "production": { - "evidence": "Sites v16 terminal succeeded; exact scoped read-only diagnosis validated request-limit cause, without publication of personal records", + "evidence": "Sites v17 terminal succeeded; exact release tree and read-only public HTTP verified", "url": "https://ag-ui.ai", "platformUrl": "https://ag-ui-ai.channely.chatgpt.site", "projectId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926", - "publishedVersion": 16, - "versionId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926~appgver_f7abc864d99c8191a6482bde72aa5821", - "deploymentId": "appgdep_6ace3312371881918fd20416f1bc40fc", + "publishedVersion": 17, + "versionId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926~appgver_e9520e6fde348191a354c9847bc078b5", + "deploymentId": "appgdep_6ace369800908191869b5b0e3df5297d", "deploymentStatus": "succeeded", - "deploymentCompletedAt": "2026-10-13T13:33:22.540158+00:00", - "sourceCommit": "dd7ca226a4fa106a5a6005be28674fc8b5cdcb95", - "sourceTree": "ea724ec5720479c84155222216926aca226c9bd4", - "githubReleaseCommit": "71ff116e033f0295a44415d13acd92bf1c0b97b6", + "deploymentCompletedAt": "2026-10-13T13:48:23.323550+00:00", + "sourceCommit": "88a840a2052d312dbd5b1a04a3f5cb7c36422744", + "sourceTree": "93352d2871a89b8c9b398bc5aaf2e8bae0c88861", + "githubReleaseCommit": "fae53ff09c26ca10985e5a48d04a76fc1511046b", "environmentSetRevision": 12, "hasMcp": true, "publicAccessMetadataVerified": true, @@ -39,25 +39,25 @@ "existingSchedulesPreserved": true, "automationCountAtObservation": 2, "observedOn": "2026-10-13", - "githubIterationCommit": "618f661dbaac21f43a49576bcaf480b41f131511" + "githubIterationCommit": "fae53ff09c26ca10985e5a48d04a76fc1511046b" }, "github": { "observedOn": "2026-10-13", "repository": "AutoGenUI/ag-ui.ai", "defaultBranch": "main", - "mainAtObservation": "618f661dbaac21f43a49576bcaf480b41f131511", - "evidence": "PR11 required verify passed; publication receipt follows through protected PR", + "mainAtObservation": "fae53ff09c26ca10985e5a48d04a76fc1511046b", + "evidence": "PR13 verify passed; main initial HTTP failure preserved, exact-commit attempt 2 passed; immutable tag and Sites v17 verified", "syncBranch": null, - "pullRequest": "https://github.com/AutoGenUI/ag-ui.ai/pull/11", + "pullRequest": "https://github.com/AutoGenUI/ag-ui.ai/pull/13", "draftAtObservation": false, "mergedAtObservation": true, - "mergedAt": "2026-10-13T13:32:53Z", - "validatedPullRequestHead": "26f3bd6d5c73c0832be2e8b09c20a6564f5a023c", - "validatedTree": "ea724ec5720479c84155222216926aca226c9bd4", + "mergedAt": "2026-10-13T13:47:08Z", + "validatedPullRequestHead": "542ee0457738e11f344ad5528166a514f4859938", + "validatedTree": "93352d2871a89b8c9b398bc5aaf2e8bae0c88861", "requiredCheck": "verify", "branchProtectionPreserved": true, "branchPolicy": "Keep only main after completed iterations; temporary PR branches allowed and cleaned after verified merge", - "documentationFollowup": "v1.0.1 authorized; actual tag and deployment evidence will be recorded after completion", + "documentationFollowup": "Receipt-only protected PR after publication; does not redeploy Sites or move v1.0.1; query current GitHub main for its final SHA", "recoverablePreCleanupBundleVerified": true, "protectedManagedWorktreeRetained": true }, @@ -336,7 +336,7 @@ "productionConfigurationChanges": false, "rolloutLimit": "New client requires subscriptionType; use matching client and Worker and refresh open pages after rollback", "historical": true, - "archivedBy": "release.version 1.0.0; original candidate evidence retained without rewriting its phase" + "archivedBy": "releaseHistory.v1.0.0; original candidate evidence retained without rewriting its phase" }, "productionV12Snapshot": { "historical": true, @@ -387,16 +387,158 @@ }, "release": { "version": "1.0.1", - "phase": "authorized-preparing-protected-PR-and-deployment", + "phase": "completed", "authorizedOn": "2026-10-13", "baseMain": "b0dbe4bd2a41be7c8908425050d8d275fc86e6c7", "notes": "docs/releases/v1.0.1.md", "authorization": "User explicitly requested v1.0.1 tag, code push and updated deployment; this supersedes earlier release waiting gates, not new inbox acceptance", - "tagCreated": false, + "tagCreated": true, "githubReleaseCreated": false, "realMailSent": false, "schemaChanged": false, - "configurationChanged": false + "configurationChanged": false, + "recordedAt": "2026-10-13T13:51:50.500997+00:00", + "github": { + "commit": "fae53ff09c26ca10985e5a48d04a76fc1511046b", + "tree": "93352d2871a89b8c9b398bc5aaf2e8bae0c88861", + "pullRequest": "https://github.com/AutoGenUI/ag-ui.ai/pull/13", + "mergedAt": "2026-10-13T13:47:08Z", + "pullRequestHead": "542ee0457738e11f344ad5528166a514f4859938", + "requiredVerify": { + "status": "passed", + "url": "https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38407234999/job/115329927797" + }, + "postMergeVerify": { + "status": "passed", + "url": "https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38407815213/job/115333188937", + "attempt": 2, + "initialFailure": "Attempt 1: first anonymous local /mcp request returned 500 instead of 403; later MCP test passed. Exact-commit rerun passed. Initial worker log unavailable; transient local runtime is plausible, not proven." + }, + "annotatedTag": "v1.0.1", + "tagObject": "986027696d707dfc023fa411c9cb6e8e66a011d7", + "peeledCommit": "fae53ff09c26ca10985e5a48d04a76fc1511046b", + "remoteTagVerified": true, + "tagUrl": "https://github.com/AutoGenUI/ag-ui.ai/tree/v1.0.1", + "previousTagUnchanged": true + }, + "sites": { + "projectId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926", + "versionNumber": 17, + "versionId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926~appgver_e9520e6fde348191a354c9847bc078b5", + "sourceCommit": "88a840a2052d312dbd5b1a04a3f5cb7c36422744", + "sourceTree": "93352d2871a89b8c9b398bc5aaf2e8bae0c88861", + "matchesGithubReleaseTree": true, + "deploymentId": "appgdep_6ace369800908191869b5b0e3df5297d", + "status": "succeeded", + "completedAt": "2026-10-13T13:48:23.323550+00:00", + "environmentSetRevisionPreserved": 12, + "hasMcp": true, + "active": true, + "audience": "public", + "automationCount": 2 + }, + "validation": { + "ciTests": { + "base": 35, + "newsAndMail": 64, + "subscriptionUi": 12, + "localHttp": 8, + "total": 119 + }, + "ciChecks": [ + "security:audit", + "content:validate", + "typescript", + "lint", + "build", + "check:bundle", + "links" + ], + "localSitesBuild": "passed", + "localD1Isolated": true, + "localMailDisabled": true, + "browserEvidence": "Prior v14/v15/v16 local synthetic browser evidence reused; release changes metadata/docs only. No new production DOM or real-inbox assertion.", + "audit": { + "moderate": 8, + "high": 0, + "critical": 0 + }, + "lintWarnings": 2, + "bundle": { + "javascriptBytes": 919961, + "javascriptGzipBytes": 267637, + "cssBytes": 116185, + "cssGzipBytes": 23035, + "budgetsPreserved": true, + "javascriptRawMarginBytes": 39 + }, + "productionReadOnlyChecks": { + "observedAt": "2026-10-13T13:49:03.665784+00:00", + "checks": [ + { + "path": "/zh/subscribe", + "status": 200, + "contentType": "text/html; charset=utf-8", + "bytes": 20767 + }, + { + "path": "/en/subscribe", + "status": 200, + "contentType": "text/html; charset=utf-8", + "bytes": 20801 + }, + { + "path": "/zh/feed.xml", + "status": 200, + "contentType": "application/rss+xml; charset=utf-8", + "bytes": 19996 + }, + { + "path": "/en/feed.xml", + "status": 200, + "contentType": "application/rss+xml; charset=utf-8", + "bytes": 19604 + }, + { + "path": "/feed.xml", + "status": 200, + "contentType": "application/rss+xml; charset=utf-8", + "bytes": 19604 + }, + { + "path": "/api/subscription/status", + "status": 200, + "contentType": "application/json", + "bytes": 114, + "publicStatus": { + "enabled": true, + "confirmedCount": 1, + "capacity": 250, + "remaining": 249, + "full": false, + "dailyLimit": 300, + "weeklyLimit": 250 + } + }, + { + "path": "/api/admin", + "status": 403 + } + ], + "scope": "Read-only HTTP. QA user agent. No signup, signed-link navigation, owner write or real mail." + }, + "network": "Current configured egress HTTP passed; no new direct-network test or all-networks claim." + }, + "boundaries": { + "schemaChanged": false, + "dnsChanged": false, + "productionMailGatesChanged": false, + "schedulesChanged": false, + "subscriberDataRead": false, + "newRealMailSent": false, + "newPaidActions": false + }, + "documentationFollowup": "Receipt-only protected PR may lead the immutable release commit. No redeployment or tag movement for this documentation update." }, "subscriptionPolish": { "recordedOn": "2026-10-13", diff --git a/docs/PROJECT_CONTEXT.md b/docs/PROJECT_CONTEXT.md index 86261e5..aae952c 100644 --- a/docs/PROJECT_CONTEXT.md +++ b/docs/PROJECT_CONTEXT.md @@ -4,13 +4,13 @@ ## 当前发布:v1.0.1(2026-10-13) -用户已明确要求创建 v1.0.1 标签、提交推送及更新部署,覆盖此前等待验收后再打标签的门槛。本轮仅将此前已部署的订阅改进归入版本,更新工程版本为 1.0.1,保留全部运行逻辑、配置、限额及历史标签。标签、CI 与 Sites 的实际完成凭据记入 [v1.0.1 发布回执](releases/v1.0.1.md) 和机器状态;发布授权不等于新增真实收件验收。 +已完成 [v1.0.1 标签](https://github.com/AutoGenUI/ag-ui.ai/tree/v1.0.1) 推送,固定至发布提交 `fae53ff09c26ca10985e5a48d04a76fc1511046b`,由 [PR #13](https://github.com/AutoGenUI/ag-ui.ai/pull/13) 正常合入。Sites **v17** 于 13:48:23 UTC 正式部署成功,源码 tree 与标签提交一致;env revision 12、公开权限、MCP、两项任务及邮件额度不变。119 项 CI、构建及原预算通过;main 首次本地 HTTP 失败与同提交重跑通过均保留在 [发布回执](releases/v1.0.1.md)。中英订阅页、RSS、公开状态 200,匿名管理 403。工程版本为 1.0.1,本轮不改运行逻辑、不新增真实收件或生产 DOM 验收。下文等待标签的表述均为当时的历史门槛,已由用户本次明确授权覆盖。 ## 前一迭代:订阅申请限流反馈(2026-10-13) 普通订阅身份释放后的无效申请已复现为一个独立的申请限流路径:旧版超限也返回“查看邮件”,却不产生待发邮件。修复返回明确 HTTP 429 和下一固定窗口时间,并加入仅 owner、精确匹配固定目标的无发信只读诊断。邮箱的固定日申请窗口在新加坡每天 08:00 更新,用户届时须主动重试;它与每日发信额度不同。 -[PR #11](https://github.com/AutoGenUI/ag-ui.ai/pull/11) 已正常合入 `618f661dbaac21f43a49576bcaf480b41f131511`,PR 与 main required verify 均成功。119 项本地测试、TypeScript、内容、审计、lint、构建、预算及本地中英浏览器通过;JS 919961/gzip267637,原预算仅余39字节。Sites **v16** 于 2026-10-13 13:33:22 UTC 部署成功,源码 `dd7ca226a4fa106a5a6005be28674fc8b5cdcb95` 的 tree `ea724ec5720479c84155222216926aca226c9bd4` 与 GitHub 验证版本一致,环境 revision12、MCP 与原公开权限保留。部署后的精确只读诊断确认申请限流是本次阻塞原因;公众中英页面和状态 HTTP200、匿名管理403。未读取私有邮箱或密钥,未发邮件、未重置任何计数,也没有替用户完成订阅。逐人诊断不写入公开文档;v1.0.1 继续等用户验收。详细证据见 [本轮记录](iterations/2026-10-13-subscription-throttle.md)。 +[PR #11](https://github.com/AutoGenUI/ag-ui.ai/pull/11) 已正常合入 `618f661dbaac21f43a49576bcaf480b41f131511`,PR 与 main required verify 均成功。119 项本地测试、TypeScript、内容、审计、lint、构建、预算及本地中英浏览器通过;JS 919961/gzip267637,原预算仅余39字节。Sites **v16** 于 2026-10-13 13:33:22 UTC 部署成功,源码 `dd7ca226a4fa106a5a6005be28674fc8b5cdcb95` 的 tree `ea724ec5720479c84155222216926aca226c9bd4` 与 GitHub 验证版本一致,环境 revision12、MCP 与原公开权限保留。部署后的精确只读诊断确认申请限流是本次阻塞原因;公众中英页面和状态 HTTP200、匿名管理403。未读取私有邮箱或密钥,未发邮件、未重置任何计数,也没有替用户完成订阅。逐人诊断不写入公开文档;当时 v1.0.1 等待用户验收,现已由上述明确发布授权覆盖。详细证据见 [本轮记录](iterations/2026-10-13-subscription-throttle.md)。 ## 前一迭代:普通订阅身份与统一卡片顺序(2026-10-13) @@ -22,7 +22,7 @@ Sites 平台版本 **15** 于 12:42:27 UTC 部署成功,version ID `appgprj_6a5dcacfcbb4819193bac2b2104ed926~appgver_5439f39b4eec8191923b907739149ead`,deployment `appgdep_6ace27243ef4819182c1308c573c4305`;源码 `40a5fe54ce86e261c031321d8ed823dde94ed178`,tree `20002bc90b075a584c4ab883860684e6bd15d3f1` 与 GitHub 已验版本一致。env revision 12、public、active、MCP 和原 2 项任务保留;无 schema、DNS、邮件开关或计划修改。公开中英订阅与三个 RSS HTTP 200、匿名管理 403、人数仍 1/250,余位249。没有新生产 DOM 验收结论;本地浏览器与生产 native/HTTP 证据分开记录。 -`v1.0.1` 标签须等待用户验收确认,本轮只部署供验收;不创建该标签、GitHub Release 或移动 `v1.0.0`。详细记录见 [本轮维护说明](iterations/2026-10-13-normal-subscription.md)。 +该迭代当时只部署供验收,尚未创建 `v1.0.1`;现已由上述明确发布授权覆盖,历史 `v1.0.0` 仍未移动。详细记录见 [本轮维护说明](iterations/2026-10-13-normal-subscription.md)。 ## 历史:订阅体验优化 v14(2026-10-13) @@ -59,7 +59,7 @@ Sites 数字版本 **14** 于 11:34:36 UTC 部署成功,version ID `appgprj_6a 本次修复突出邮件落地页的最后一步主动确认、明确邮件两步说明,并保留签名页语言切换与回到原页刷新。发布前用户报告新邮箱已主动确认、公众人数为 1;此真实成功案例只归因用户报告,不扩大为本地验收的跨物理设备证据。没有读取秘密或订阅行,也没有新增真实邮件或付费调用。当前配置出口访问为 200、直连出口仍为 403,不承诺全网络或中国大陆可达。 -完整 [版本回执](releases/v1.0.0.md) 与机器状态的 `release` 保存最终映射。生产 v12、73/90 项旧验证和发布候选在下文及 JSON 中保留为历史;旧段落的“本轮”“尚未部署”只描述此前 GitHub 同步/维护阶段,不能覆盖本节正式发布状态。下一轮重新核对实时状态和授权,不将本说明当作配置值。 +完整 [版本回执](releases/v1.0.0.md) 与机器状态的 `releaseHistory.v1.0.0` 保存该版本映射。生产 v12、73/90 项旧验证和发布候选在下文及 JSON 中保留为历史;旧段落的“本轮”“尚未部署”只描述此前 GitHub 同步/维护阶段,不能覆盖本节正式发布状态。下一轮重新核对实时状态和授权,不将本说明当作配置值。 ## 历史交接:证据时间与状态区分 diff --git a/docs/operations/README.md b/docs/operations/README.md index 63abc16..6ea664e 100644 --- a/docs/operations/README.md +++ b/docs/operations/README.md @@ -11,7 +11,7 @@ ## 当前主线与证据 -2026-10-13 用户已授权 **v1.0.1 标签、代码推送及更新部署**,此前等待验收的门槛由此覆盖。最新完成状态、源码、tag 和 Sites 映射以 [v1.0.1 回执](../releases/v1.0.1.md) 与 [CURRENT_STATE.json](../CURRENT_STATE.json) 的 `release` 为准。以下 v1.0.0 项保留为历史证据,不作为最新运行版本;当前发布不新增真实收件验收或改变邮件额度。 +2026-10-13 **v1.0.1 标签已推送、正式站点已更新为 Sites v17**;发布提交 `fae53ff09c26ca10985e5a48d04a76fc1511046b`,部署 13:48:23 UTC 成功,119 项 CI 与原构建预算通过。首次本地 HTTP 失败及同提交重跑成功均保留。最新完成状态、源码、tag 和 Sites 映射见 [v1.0.1 回执](../releases/v1.0.1.md) 与 [CURRENT_STATE.json](../CURRENT_STATE.json) 的 `release`。以下 v1.0.0 项保留为历史证据,不作为最新运行版本;当前发布不新增真实收件验收或改变邮件额度。 - GitHub 主线为 [AutoGenUI/ag-ui.ai 的 main](https://github.com/AutoGenUI/ag-ui.ai)。[PR #5](https://github.com/AutoGenUI/ag-ui.ai/pull/5) 已正常合并,远端带注释 tag [v1.0.0 / 正式 Release](https://github.com/AutoGenUI/ag-ui.ai/releases/tag/v1.0.0) 指向 `71ff116e033f0295a44415d13acd92bf1c0b97b6`;[PR verify](https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38381641758/job/115243248665) 和 [main verify](https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38381929658/job/115244227252) 通过。每次迭代可使用临时 PR 分支,合并并核对内容后清理,长期仅保留 main,不改主分支保护。 - 正式 v1.0.0 已于 2026-10-13 10:15:25.780042 UTC 部署至原 Sites 项目,数字版本序号 13,deployment `appgdep_6ace04b15f408191ad18bdcbbe4be3d3` 终态 succeeded。Sites source `8512d230c7df3bece70c503af02ff2acce0dbe9d` 的 tree 与 release tree `661f59e806ce2174a33d6d87b9b44d0959400554` 一致。完整 version_id、tag 对象及验收见 [发布回执](../releases/v1.0.0.md)。GitHub 合并仍不自动代表 Sites 部署;本次两者各有独立凭据。 @@ -41,7 +41,7 @@ ## 尚需后续验证 -- 8 项 moderate 依赖问题与 v1.0.0 JS 原始体积仅 375 字节余量(919625 / 920000):未来依赖/页面修改重新审计和构建,不降门槛。旧 CI 修复的 1169 字节余量仅属于历史构建。 +- 8 项 moderate 依赖问题与 v1.0.1 JS 原始体积仅 39 字节余量(919961 / 920000):未来依赖/页面修改重新审计和构建,不降门槛。旧 CI 修复的 1169 字节余量仅属于历史构建。 - 邮件匿名跟踪已按交接接受并披露;完全关闭像素与链接改写尚未验证。中国大陆可访问性不保证。 - 当前账户权限、完整 DNS 清单、DKIM selector、实际部署版本、迁移 ledger、托管 D1 备份/恢复方式、实时任务状态与 provider 剩余额度均需在授权的生产维护中刷新。 - 真实 queued cancellation 与完整退信场景未全部观察;本地测试和历史验收不能扩写为所有生产情形都已验收。 diff --git a/docs/releases/v1.0.1.md b/docs/releases/v1.0.1.md index 0a08655..7650fe5 100644 --- a/docs/releases/v1.0.1.md +++ b/docs/releases/v1.0.1.md @@ -1,6 +1,27 @@ # AG-UI.AI v1.0.1 发布回执 -2026-10-13 用户明确授权 v1.0.1 标签、提交推送及更新部署。本记录初始阶段为发布候选;正式 tag、GitHub SHA、CI 和 Sites 对应版本在实际完成后补录。授权覆盖此前的等待发布门槛,但不代表新增邮箱收件成功证据。 +2026-10-13 已按用户授权完成 v1.0.1 标签、提交推送及正式部署。该授权覆盖此前等待发布的门槛,不代表新增邮箱收件成功证据。 + +## 正式发布证据 + +| 项目 | 已核验结果 | +| --- | --- | +| 发布提交 | `fae53ff09c26ca10985e5a48d04a76fc1511046b`,由 [PR #13](https://github.com/AutoGenUI/ag-ui.ai/pull/13) 于 13:47:08 UTC 正常合入 main | +| 发布 tree | `93352d2871a89b8c9b398bc5aaf2e8bae0c88861` | +| 远端带注释标签 | [v1.0.1](https://github.com/AutoGenUI/ag-ui.ai/tree/v1.0.1),对象 `986027696d707dfc023fa411c9cb6e8e66a011d7`,解析至上述发布提交;13:51:50 UTC 读回确认 | +| Sites 数字版本 | **17**,原项目 `appgprj_6a5dcacfcbb4819193bac2b2104ed926` | +| Saved version | `appgprj_6a5dcacfcbb4819193bac2b2104ed926~appgver_e9520e6fde348191a354c9847bc078b5` | +| Sites source | `88a840a2052d312dbd5b1a04a3f5cb7c36422744`,tree 与 GitHub 发布 tree 完全相同 | +| 正式部署 | `appgdep_6ace369800908191869b5b0e3df5297d`,13:48:23 UTC 终态 **succeeded**;[ag-ui.ai](https://ag-ui.ai) | +| 配置与服务 | env revision **12**、public、active、MCP、原两项任务保留 | + +[PR required verify](https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38407234999/job/115329927797) 通过。[main verify 第 2 次执行](https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38407815213/job/115333188937) 在同一提交上通过全部 119 项检查(35 基础、64 新闻/邮件、12 订阅 UI、8 隔离 HTTP),以及审计、TypeScript、内容、lint、构建、预算与链接检查。Sites 源码另行本地构建打包通过。 + +main 首次执行在刚启动的本地 Worker 的首个 `/mcp` 请求得到 500,断言要求 403;后续 MCP 匿名请求通过。同一提交重跑全部通过,无代码、断言或门槛更改。首次失败被保留;原运行未输出 Worker 错误日志,本地开发代理瞬断只是可能解释,不能写成已证实原因。若复现,应先补齐失败日志再诊断。 + +13:49 UTC 只读公开检查:中英订阅页、三个 RSS 和订阅状态均 HTTP 200,匿名管理 API 403;公开聚合为已确认 1、容量 250、剩余 249。请求使用 QA 标识,不提交订阅或真实邮件;本轮不新增生产 DOM 或邮箱客户端验收结论。当前配置出口可访问,未重新验证所有网络。 + +未创建独立 GitHub Release 页面;用户要求的 annotated tag 已推送并读回。原 `v1.0.0` 标签对象与解析提交保持不变。 ## 相对 v1.0.0 的变化 @@ -15,7 +36,7 @@ ## 验证与保留边界 -既有 v16 改进通过 119 项本地检查及 required CI;本次发布再次通过对应候选 CI 与 Sites 构建后才推送正式标签。保留原 920000 字节 JS 门槛,上一版实测 919961,仅余 39 字节;8 项 moderate 依赖问题与两项 lint 警告仍为已知限制。 +本次 CI 与 Sites 构建均通过。JS 919961 / 920000、gzip 267637 / 275000;CSS 116185 / 125000、gzip 23035 / 24000 字节。原预算不变,JS 仅余 39 字节;8 项 moderate 依赖问题(0 high、0 critical)与两项 lint 警告仍为已知限制。 保留原 Sites 项目、公开域名、D1、MCP、环境配置及两项任务。无 schema、DNS、发信开关、配额或订阅身份变更,不发送真实邮件、不读取私有邮箱或密钥、不新增付费 API。提供商 submitted、delivered 与读者实际收件仍分开记录。当前发布不自动补发被限流的申请,读者须在允许时间后重新提交。