Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 92 additions & 20 deletions docs/CURRENT_STATE.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@
"documentsAndCodeIntegrityVerified": true
},
"production": {
"evidence": "Sites v14 deployment/source and public read-only HTTP checks on 2026-10-13; private environment and subscriber rows not read",
"evidence": "Sites v15 source/deployment, authenticated scoped role release and readback, and read-only public HTTP checks; no raw subscriber rows, signatures, mailbox contents or secret values exported",
"url": "https://ag-ui.ai",
"platformUrl": "https://ag-ui-ai.channely.chatgpt.site",
"projectId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926",
"publishedVersion": 14,
"versionId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926~appgver_c60692fd0b988191b251e97a8b7b285e",
"deploymentId": "appgdep_6ace173e29688191b6636567e98e443d",
"publishedVersion": 15,
"versionId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926~appgver_5439f39b4eec8191923b907739149ead",
"deploymentId": "appgdep_6ace27243ef4819182c1308c573c4305",
"deploymentStatus": "succeeded",
"deploymentCompletedAt": "2026-10-13T11:34:36.106757+00:00",
"sourceCommit": "32af985205988054ac77619828f0d5ab0112eee0",
"sourceTree": "545ab7adf8b2a8f5040ba1c8f8d51f4cdcdebd2b",
"deploymentCompletedAt": "2026-10-13T12:42:27.377707+00:00",
"sourceCommit": "40a5fe54ce86e261c031321d8ed823dde94ed178",
"sourceTree": "20002bc90b075a584c4ab883860684e6bd15d3f1",
"githubReleaseCommit": "71ff116e033f0295a44415d13acd92bf1c0b97b6",
"environmentSetRevision": 12,
"hasMcp": true,
Expand All @@ -39,25 +39,25 @@
"existingSchedulesPreserved": true,
"automationCountAtObservation": 2,
"observedOn": "2026-10-13",
"githubIterationCommit": "ce64f39c158e72e06549cde97c6810c77a2ff5d8"
"githubIterationCommit": "5a4ef6df9ad0de3861aabb54ad0e838de83ade7b"
},
"github": {
"observedOn": "2026-10-13",
"repository": "AutoGenUI/ag-ui.ai",
"defaultBranch": "main",
"mainAtObservation": "ce64f39c158e72e06549cde97c6810c77a2ff5d8",
"evidence": "Subscription polish PR7 and main verify succeeded; separate documentation receipt may follow without redeployment",
"mainAtObservation": "5a4ef6df9ad0de3861aabb54ad0e838de83ade7b",
"evidence": "PR9 and main required verify succeeded; public receipt documentation follows without another deployment",
"syncBranch": null,
"pullRequest": "https://github.com/AutoGenUI/ag-ui.ai/pull/7",
"pullRequest": "https://github.com/AutoGenUI/ag-ui.ai/pull/9",
"draftAtObservation": false,
"mergedAtObservation": true,
"mergedAt": "2026-10-13T11:32:18Z",
"validatedPullRequestHead": "96e7930fc0bcef8ba5c11517440031d01099b430",
"validatedTree": "545ab7adf8b2a8f5040ba1c8f8d51f4cdcdebd2b",
"mergedAt": "2026-10-13T12:39:14Z",
"validatedPullRequestHead": "d5b884f07423e311eca8f052b6ced71fab6404bd",
"validatedTree": "20002bc90b075a584c4ab883860684e6bd15d3f1",
"requiredCheck": "verify",
"branchProtectionPreserved": true,
"branchPolicy": "Keep only main after completed iterations; temporary PR branches allowed and cleaned after verified merge",
"documentationFollowup": "Public v14 receipt via protected temporary PR; no further Sites deployment and no movement of v1.0.0 tag",
"documentationFollowup": "Protected temporary PR records v15 and authorized no-send role release; do not create v1.0.1 before user acceptance",
"recoverablePreCleanupBundleVerified": true,
"protectedManagedWorktreeRetained": true
},
Expand Down Expand Up @@ -274,7 +274,7 @@
"Observe real queued cancellation and additional bounce scenarios only under authorized acceptance",
"Before authorized production maintenance, refresh account permissions, full DNS/DKIM inventory, actual Sites deployment, D1 migration ledger and backup/restore capability, schedules and provider allowance"
],
"refreshRule": "Read current GitHub and operations/README.md before maintenance. Subscription polish v14 is dated evidence; docs-only receipts may follow deployed source. GitHub merge does not deploy Sites. Preserve immutable v1.0.0 tag and keep private operational data outside repository.",
"refreshRule": "Read live GitHub and operations docs before maintenance. v15 is deployed with scoped historical test-role release verified; docs-only receipts may follow the matching code tree. v1.0.1 requires explicit user acceptance. Preserve immutable v1.0.0 and private operational data.",
"operationsHandoff": {
"scope": "Public maintenance documentation; not production account inspection or deployment",
"index": "docs/operations/README.md",
Expand Down Expand Up @@ -650,7 +650,7 @@
},
"normalSubscriptionIteration": {
"recordedOn": "2026-10-13",
"phase": "local-verification-complete-awaiting-required-CI-and-Sites",
"phase": "deployed-awaiting-user-acceptance",
"baseMain": "e3df53558f72534a7c6f43909b689b30e8ffb27b",
"notes": "docs/iterations/2026-10-13-normal-subscription.md",
"requestedBehavior": [
Expand All @@ -662,7 +662,9 @@
"releaseGate": {
"plannedTag": "v1.0.1",
"tagCreated": false,
"requiresUserAcceptance": true
"requiresUserAcceptance": true,
"userAccepted": false,
"releaseCreated": false
},
"schemaChanged": false,
"secretsRead": false,
Expand Down Expand Up @@ -709,9 +711,79 @@
"consoleErrors": 0
},
"testStability": "61-case suite passed 20 bounded runs after forced reverse-winner preference regression fix; first truncated 60/61 cause remains unconfirmed",
"httpStartupLimit": "Local ProxyWorker had one connection-lost 500 immediately after restart; direct owner-rejection 403 and subsequent ready 8/8 passed; no production inference"
"httpStartupLimit": "Local ProxyWorker had one connection-lost 500 immediately after restart; direct owner-rejection 403 and subsequent ready 8/8 passed; no production inference",
"links": "passed in PR and main required verify"
},
"ownerStatusRead": "Authenticated sanitized status only; configured test role was unsubscribed, four historical deliveries delivered, no raw subscriber rows, email, signatures or secrets read",
"productionRoleRelease": "pending-deployment"
"productionRoleRelease": {
"status": "released",
"recipientRole": "public",
"independentReadback": "public",
"realMailSent": false
},
"githubCodeCommit": "5a4ef6df9ad0de3861aabb54ad0e838de83ade7b",
"githubTree": "20002bc90b075a584c4ab883860684e6bd15d3f1",
"pullRequest": "https://github.com/AutoGenUI/ag-ui.ai/pull/9",
"requiredVerify": {
"status": "passed",
"url": "https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38398627667/job/115300182530"
},
"mainVerify": {
"status": "passed",
"url": "https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38398882271/job/115301067921"
},
"sites": {
"version": 15,
"versionId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926~appgver_5439f39b4eec8191923b907739149ead",
"sourceCommit": "40a5fe54ce86e261c031321d8ed823dde94ed178",
"sourceTreeMatchesGithub": true,
"deploymentId": "appgdep_6ace27243ef4819182c1308c573c4305",
"status": "succeeded",
"completedAt": "2026-10-13T12:42:27.377707+00:00",
"environmentRevision": 12,
"hasMcp": true,
"existingAutomations": 2
},
"productionDataChanges": "Only owner-authorized configured recipient role release; no automatic opt-in, mail send, history deletion, quota reset or unrelated subscriber changes",
"publicHttp": [
{
"path": "/zh/subscribe",
"http": 200
},
{
"path": "/en/subscribe",
"http": 200
},
{
"path": "/zh/feed.xml",
"http": 200
},
{
"path": "/en/feed.xml",
"http": 200
},
{
"path": "/feed.xml",
"http": 200
},
{
"path": "/api/subscription/status",
"http": 200,
"publicAggregate": {
"enabled": true,
"confirmedCount": 1,
"capacity": 250,
"remaining": 249,
"full": false,
"dailyLimit": 300,
"weeklyLimit": 250
}
},
{
"path": "/api/admin",
"http": 403
}
],
"productionBrowserLimit": "No new production DOM claim; previous agent browser navigation blocked. Synthetic desktop/mobile browser proof and native deployment/HTTP evidence are recorded separately."
}
}
6 changes: 4 additions & 2 deletions docs/PROJECT_CONTEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@

## 当前迭代:普通订阅身份与统一卡片顺序(2026-10-13)

用户最新要求覆盖上一轮的表单/反馈位置:容量卡片靠上,状态反馈统一在操作表单与取消/退订卡片之前。当前候选基线 main `e3df53558f72534a7c6f43909b689b30e8ffb27b`。完成本地检查、受保护 PR 合并和既有 Sites 发布后,将单独记录公开凭据;下节 v14 仅为前一轮发布。
用户最新要求覆盖上一轮的表单/反馈位置:容量卡片靠上,状态反馈统一在操作表单与取消/退订卡片之前。迭代基线 main `e3df53558f72534a7c6f43909b689b30e8ffb27b`。[PR #9](https://github.com/AutoGenUI/ag-ui.ai/pull/9) 正常合入 `5a4ef6df9ad0de3861aabb54ad0e838de83ade7b`,[PR verify](https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38398627667/job/115300182530) 与 [main verify](https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38398882271/job/115301067921) 全通过。下节 v14 仅为前一轮发布。

用户已明确授权让历史固定测试收件人通过正常读者流程订阅。采用仅 owner 可调用、精确匹配固定配置目标且无发信的角色释放:保留测试历史与安全抑制,使旧签名失效;释放后仅为普通退订身份,仍需用户自己申请并完成邮件确认。不能把确认过的测试身份自动计为公众订阅,不能匿名释放任意测试地址或清零配额。公共仓库不记录真人邮箱、秘密或签名。

本轮最终本地 35 基础 + 61 新闻/邮件 + 11 订阅 UI + 8 HTTP,共 115 项通过,TypeScript、内容、lint、审计、构建与原预算通过;JS 919522/gzip267400,CSS116185/gzip23035。双语桌面和手机验证统一卡片顺序;signup 布局用本地响应 mock,未发送邮件。补测强制反向赢家修复有效 pending 的语言/主题被重复申请覆盖问题,修复后 61 项连续 20 轮通过;初次截断失败与本地启动连接瞬断的界限保留在迭代记录。已读取获授权的脱敏 owner 状态,但生产角色释放仍需匹配版本部署后执行。
本轮最终本地 35 基础 + 61 新闻/邮件 + 11 订阅 UI + 8 HTTP,共 115 项通过,TypeScript、内容、lint、审计、构建与原预算通过;JS 919522/gzip267400,CSS116185/gzip23035。双语桌面和手机验证统一卡片顺序;signup 布局用本地响应 mock,未发送邮件。补测强制反向赢家修复有效 pending 的语言/主题被重复申请覆盖问题,修复后 61 项连续 20 轮通过;初次截断失败与本地启动连接瞬断的界限保留在迭代记录。部署后已执行获授权的精确目标角色释放,返回 released/public;独立 owner status 再次确认 public。该操作不发信、不替用户确认;用户必须重新申请并使用新邮件确认,旧测试签名失效。未将真人地址或订阅行提交到公共仓库。

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)。

Expand Down
20 changes: 14 additions & 6 deletions docs/iterations/2026-10-13-normal-subscription.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 2026-10-13 名额、反馈布局与正常订阅候选
# 2026-10-13 名额、反馈布局与正常订阅

本文记录 [订阅打磨 v14](2026-10-13-subscription-polish.md) 之后的新一轮用户授权:容量靠上,统一反馈放在表单及取消/退订动作上方;历史固定测试身份可由 owner 安全释放,再由读者自己走正常订阅确认。本页记录时是工作树候选,没有宣称正式目标已释放、下一次 Sites 部署已完成或真实邮件已送达。当前 GitHub/Sites 映射以 [PROJECT_CONTEXT.md](../PROJECT_CONTEXT.md) 和 [CURRENT_STATE.json](../CURRENT_STATE.json) 为准,不在文档中预填尚不存在的 SHA 或平台版本。
本文记录 [订阅打磨 v14](2026-10-13-subscription-polish.md) 之后的新一轮用户授权:容量靠上,统一反馈放在表单及取消/退订动作上方;历史固定测试身份可由 owner 安全释放,再由读者自己走正常订阅确认。Sites v15 已部署,owner 无发信操作已释放指定历史测试角色并读回确认;正常读者的新邮件使用仍由用户验收,v1.0.1 等待用户确认。当前 GitHub/Sites 映射以 [PROJECT_CONTEXT.md](../PROJECT_CONTEXT.md) 和 [CURRENT_STATE.json](../CURRENT_STATE.json) 为准,不记录真人邮箱或签名。

## 统一阅读顺序

Expand Down Expand Up @@ -30,7 +30,7 @@ release 不调用提供商/drain、不发送邮件、不关闭或开启公众邮

| 项目 | 本页当前记录状态 |
| --- | --- |
| 布局与角色释放代码 | 候选;独立只读复核未发现具体阻塞,发布与真实释放另行核验 |
| 布局与角色释放代码 | 已部署;独立只读复核未发现具体阻塞,实际 owner 角色释放已读回确认 |
| 隔离本地测试 | 基础 35、新闻/邮件 57 + 模板 4 = 61、订阅 UI 11、HTTP 8,共 115 项通过;新闻/邮件/模板修复后连续 20 轮完整通过;合成身份、隔离数据库和 mock 提供商,无真实投递 |
| release 回归 | 新增 6 组:状态操作不发信/历史和额度保留、精确固定目标、抑制与未知提交及事务重查、并发 winner/幂等、预加载 producer/claim/签名管理、事务内历史时钟与跨代际回调;匿名 admin/MCP release 在调用数据库前拒绝,隔离 HTTP 覆盖匿名 403 |
| TypeScript、lint 与依赖审计 | TypeScript 通过;lint 0 错误、2 条既有警告;audit 8 moderate、0 high、0 critical,原门槛保留 |
Expand All @@ -40,9 +40,9 @@ release 不调用提供商/drain、不发送邮件、不关闭或开启公众邮
| 申请 UI-only mock | CDP 只 mock status/signup,表单保留、反馈在表单上方、容量在反馈上方,返回按钮数量 0;未真实收集地址或发送邮件 |
| 退订与 pending 取消 | 合成英文订阅主动退订后公众人数为 0、表单数量 0,容量仍在反馈之前;合成中文 pending 管理 GET 的状态在取消按钮上方,GET 不取消,明确点击后进入退订终态 |
| 浏览器范围与控制台 | 桌面 1440px、手机 390px;本轮上述本地浏览器控制台错误为 0。合成身份和 UI-only mock 不等于真实邮箱/生产 DOM 验收 |
| required GitHub verify、PR 合并 | 待本轮结果;本地构建不等于 CI 通过 |
| 本轮 Sites 部署、源码树与配置保留 | 待发布回执;不预设下一数字版本或声称 GitHub 自动部署 |
| 真实固定目标释放 | 尚未记录执行结果;不能从 mock 推断已完成 |
| required GitHub verify、PR 合并 | PR #9 正常合入 main,PR 与 main required verify 均通过 |
| 本轮 Sites 部署、源码树与配置保留 | Sites v15 succeeded,源码树匹配;env revision12、public、MCP和2项任务保留 |
| 真实固定目标释放 | owner release 返回 released/public,另一次 owner status 确认 public;无发信或自动订阅 |
| 读者正常申请/确认或新真实投递 | 未记录本轮真实验收;须区分用户报告、provider 提交、回调与实际收件 |

隔离 HTTP 首轮在新启动的本地 dev ProxyWorker 请求 `/mcp` 时出现一次 `Network connection lost`/500,失败日志已保留。后续直接请求返回预期匿名 403,ready 后完整 8 项通过;这是本地开发代理瞬断观察,没有为此修改源码,也不能用后续通过抹去首次失败或推断生产故障。
Expand All @@ -52,3 +52,11 @@ schema、DNS、生产邮件开关、秘密、定时任务和免费预算应保
本轮先供用户验收,不创建 `v1.0.1` tag 或 GitHub Release;用户确认后才能另行标记版本。不可变 `v1.0.0` 与 v14 公开回执保留为历史,不移动旧标签。受保护 main 通过临时 PR 分支正常合并;完成核对后恢复长期仅 main 的策略。

Brevo 既有跟踪披露、提交/送达/收件区别和部分网络 Cloudflare 拦截继续保留;本地 mock、邮件合成预览或 HTTP 200 不扩大为真实投递/全网络可达证据。维护入口为 [邮件维护](../operations/email-subscriptions.md)、[owner 管理](../operations/owner-management.md)、[部署维护](../operations/deployment-maintenance.md) 与 [采编合同](../../public/automation.md)。

## 发布与角色释放回执

[PR #9](https://github.com/AutoGenUI/ag-ui.ai/pull/9) 与合并后 main 的 required verify 全通过。Sites 平台 v15 于 2026-10-13 12:42:27 UTC succeeded;源码与 GitHub tree 一致,env revision12、public、MCP、原2项任务保留。完整 SHA、opaque ID 与检查链接见 PROJECT_CONTEXT/CURRENT_STATE。

部署后 owner 使用精确匹配的 expectedRecipient 执行无发信 release,返回 released/public,另一次 status 确认 public。它不直接确认订阅或发送邮件;用户仍须申请并使用新确认邮件。公开人数仍1/250、余位249;中英订阅、三个RSS与状态200,匿名管理403。未读取秘密、实际邮箱内容或其他订阅行,未触发真实发送,也未新获生产DOM验收。

v1.0.1 标签与 GitHub Release 尚未创建,等待用户确认部署结果;v1.0.0 未移动。后续公开回执为文档提交,不追加一次部署。
Loading