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
8 changes: 6 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,15 @@ public engineering records with dated evidence, not live configuration.
- Current subscription layout is introduction, capacity, unified feedback,
action form, cancellation/unsubscribe, then privacy. Keep feedback above
the actions it explains across signup and signed management states.
Current candidate details are in
Prior iteration details are in
[the normal subscription iteration](docs/iterations/2026-10-13-normal-subscription.md);
[the v14 iteration](docs/iterations/2026-10-13-subscription-polish.md)
records the previous layout and deployment. Do not predeclare deployment,
recipient release or a v1.0.1 tag before their actual evidence/authorization.
recipient release or a tag before their actual evidence/authorization.
The user explicitly authorized v1.0.1 tag, push and deployment on October 13,
2026. This supersedes the earlier wait-for-acceptance release gate, but is not
evidence of fresh inbox acceptance. Consult docs/releases/v1.0.1.md for the
completed tag/deployment mapping; preserve immutable existing tags.
- Preserve accurate tracking and network disclosures. Anonymous Brevo
tracking is not proof that pixels/rewritten links are disabled. Mainland
accessibility is not guaranteed.
Expand Down
291 changes: 155 additions & 136 deletions docs/CURRENT_STATE.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
"requiredCheck": "verify",
"branchProtectionPreserved": true,
"branchPolicy": "Keep only main after completed iterations; temporary PR branches allowed and cleaned after verified merge",
"documentationFollowup": "v16 deployment and request-limit diagnostic receipt; v1.0.1 still awaits user acceptance",
"documentationFollowup": "v1.0.1 authorized; actual tag and deployment evidence will be recorded after completion",
"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 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.",
"refreshRule": "Read live GitHub and Sites before maintenance. User authorized v1.0.1 on 2026-10-13; use release.phase and verified tag/deployment evidence, preserving historical snapshots and v1.0.0.",
"operationsHandoff": {
"scope": "Public maintenance documentation; not production account inspection or deployment",
"index": "docs/operations/README.md",
Expand Down Expand Up @@ -386,138 +386,17 @@
"protectedManagedWorktreeRetained": true
},
"release": {
"version": "1.0.0",
"phase": "completed",
"recordedAt": "2026-10-13T10:21:15Z",
"notes": "docs/releases/v1.0.0.md",
"github": {
"commit": "71ff116e033f0295a44415d13acd92bf1c0b97b6",
"tree": "661f59e806ce2174a33d6d87b9b44d0959400554",
"pullRequest": "https://github.com/AutoGenUI/ag-ui.ai/pull/5",
"mergedAt": "2026-10-13T10:13:52Z",
"pullRequestHead": "04c99295995993c93c0cb3596a55f049369601f7",
"requiredVerify": {
"status": "passed",
"url": "https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38381641758/job/115243248665"
},
"postMergeVerify": {
"status": "passed",
"url": "https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38381929658/job/115244227252"
},
"annotatedTag": "v1.0.0",
"remoteTagVerified": true,
"tagObject": "55ef990ca2a893c5d72e0a67806c2743cc832e6a",
"peeledCommit": "71ff116e033f0295a44415d13acd92bf1c0b97b6",
"releaseUrl": "https://github.com/AutoGenUI/ag-ui.ai/releases/tag/v1.0.0",
"publishedAt": "2026-10-13T10:18:34Z",
"draft": false,
"prerelease": false
},
"sites": {
"projectId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926",
"versionNumber": 13,
"versionId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926~appgver_e5bc604caacc819184c81bd223d5c9ee",
"sourceCommit": "8512d230c7df3bece70c503af02ff2acce0dbe9d",
"sourceTree": "661f59e806ce2174a33d6d87b9b44d0959400554",
"matchesGithubReleaseTree": true,
"deploymentId": "appgdep_6ace04b15f408191ad18bdcbbe4be3d3",
"status": "succeeded",
"completedAt": "2026-10-13T10:15:25.780042+00:00",
"environmentSetRevisionPreserved": 12,
"hasMcp": true,
"active": true,
"audience": "public",
"automationCount": 2
},
"validation": {
"localTests": {
"base": 35,
"newsAndMail": 42,
"subscriptionUi": 10,
"localHttp": 8,
"total": 95
},
"localChecks": [
"typescript",
"content",
"lint",
"build"
],
"localD1Isolated": true,
"localMailDisabled": true,
"localBrowserViewports": [
"390x844",
"1440x900"
],
"localBrowserLanguages": [
"zh",
"en"
],
"focusTest": "Temporary CDP focus emulation; restored after verification; not a second physical-device test",
"audit": {
"moderate": 8,
"high": 0,
"critical": 0,
"unchangedHighSeverityGate": "passed"
},
"bundle": {
"javascriptBytes": 919625,
"javascriptGzipBytes": 267506,
"cssBytes": 115604,
"cssGzipBytes": 22853,
"budgetsPreserved": true,
"javascriptRawMarginBytes": 375
},
"productionReadOnlyChecks": {
"subscriptionPages": {
"zhHttp": 200,
"enHttp": 200
},
"rssHttp": {
"zh": 200,
"en": 200,
"compatibility": 200
},
"anonymousAdminHttp": 403,
"publicStatus": {
"enabled": true,
"confirmedPublic": 1,
"remaining": 249
},
"zhBrowser": {
"status": "passed",
"publicAggregateVisible": true,
"firstPartyStatisticsVisible": true,
"consoleErrors": 0
},
"enBrowser": {
"status": "not-completed",
"evidence": "HTTP and RSS passed; subsequent browser connection timed out, so no additional production English DOM assertion was made; this is not evidence of a site fault"
},
"network": {
"currentConfiguredEgressHttp": 200,
"directEgressHttp": 403,
"allNetworksAccessibleClaim": false
}
},
"links": "Passed in required GitHub verify; local documentation references also validated"
},
"userConfirmationReport": {
"date": "2026-10-13",
"evidence": "User reported a new inbox and active webpage confirmation with public count 1; no email or signed URL retained"
},
"boundaries": {
"schemaChanged": false,
"dnsChanged": false,
"productionMailGatesChanged": false,
"schedulesChanged": false,
"secretValuesReadOrExported": false,
"productionSubscriberRowsRead": false,
"newRealMailSent": false,
"newPaidActions": false
},
"rolloutLimit": "New client requires subscriptionType; use matching client and Worker and refresh open pages after rollback",
"documentationFollowup": "Receipt-only PR after publication does not redeploy Sites or move the immutable v1.0.0 tag; query GitHub for its eventual commit instead of self-reference"
"version": "1.0.1",
"phase": "authorized-preparing-protected-PR-and-deployment",
"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,
"githubReleaseCreated": false,
"realMailSent": false,
"schemaChanged": false,
"configurationChanged": false
},
"subscriptionPolish": {
"recordedOn": "2026-10-13",
Expand Down Expand Up @@ -784,7 +663,9 @@
"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."
"productionBrowserLimit": "No new production DOM claim; previous agent browser navigation blocked. Synthetic desktop/mobile browser proof and native deployment/HTTP evidence are recorded separately.",
"historical": true,
"supersededBy": "release.version 1.0.1 after explicit user authorization on 2026-10-13"
},
"subscriptionThrottleIteration": {
"phase": "deployed-awaiting-user-acceptance",
Expand Down Expand Up @@ -828,6 +709,144 @@
"deploymentCompletedAt": "2026-10-13T13:33:22.540158+00:00",
"diagnosticVerified": true,
"noCountersReset": true,
"noMailSent": true
"noMailSent": true,
"historical": true,
"supersededBy": "release.version 1.0.1 after explicit user authorization on 2026-10-13"
},
"releaseHistory": {
"v1.0.0": {
"version": "1.0.0",
"phase": "completed",
"recordedAt": "2026-10-13T10:21:15Z",
"notes": "docs/releases/v1.0.0.md",
"github": {
"commit": "71ff116e033f0295a44415d13acd92bf1c0b97b6",
"tree": "661f59e806ce2174a33d6d87b9b44d0959400554",
"pullRequest": "https://github.com/AutoGenUI/ag-ui.ai/pull/5",
"mergedAt": "2026-10-13T10:13:52Z",
"pullRequestHead": "04c99295995993c93c0cb3596a55f049369601f7",
"requiredVerify": {
"status": "passed",
"url": "https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38381641758/job/115243248665"
},
"postMergeVerify": {
"status": "passed",
"url": "https://github.com/AutoGenUI/ag-ui.ai/actions/runs/38381929658/job/115244227252"
},
"annotatedTag": "v1.0.0",
"remoteTagVerified": true,
"tagObject": "55ef990ca2a893c5d72e0a67806c2743cc832e6a",
"peeledCommit": "71ff116e033f0295a44415d13acd92bf1c0b97b6",
"releaseUrl": "https://github.com/AutoGenUI/ag-ui.ai/releases/tag/v1.0.0",
"publishedAt": "2026-10-13T10:18:34Z",
"draft": false,
"prerelease": false
},
"sites": {
"projectId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926",
"versionNumber": 13,
"versionId": "appgprj_6a5dcacfcbb4819193bac2b2104ed926~appgver_e5bc604caacc819184c81bd223d5c9ee",
"sourceCommit": "8512d230c7df3bece70c503af02ff2acce0dbe9d",
"sourceTree": "661f59e806ce2174a33d6d87b9b44d0959400554",
"matchesGithubReleaseTree": true,
"deploymentId": "appgdep_6ace04b15f408191ad18bdcbbe4be3d3",
"status": "succeeded",
"completedAt": "2026-10-13T10:15:25.780042+00:00",
"environmentSetRevisionPreserved": 12,
"hasMcp": true,
"active": true,
"audience": "public",
"automationCount": 2
},
"validation": {
"localTests": {
"base": 35,
"newsAndMail": 42,
"subscriptionUi": 10,
"localHttp": 8,
"total": 95
},
"localChecks": [
"typescript",
"content",
"lint",
"build"
],
"localD1Isolated": true,
"localMailDisabled": true,
"localBrowserViewports": [
"390x844",
"1440x900"
],
"localBrowserLanguages": [
"zh",
"en"
],
"focusTest": "Temporary CDP focus emulation; restored after verification; not a second physical-device test",
"audit": {
"moderate": 8,
"high": 0,
"critical": 0,
"unchangedHighSeverityGate": "passed"
},
"bundle": {
"javascriptBytes": 919625,
"javascriptGzipBytes": 267506,
"cssBytes": 115604,
"cssGzipBytes": 22853,
"budgetsPreserved": true,
"javascriptRawMarginBytes": 375
},
"productionReadOnlyChecks": {
"subscriptionPages": {
"zhHttp": 200,
"enHttp": 200
},
"rssHttp": {
"zh": 200,
"en": 200,
"compatibility": 200
},
"anonymousAdminHttp": 403,
"publicStatus": {
"enabled": true,
"confirmedPublic": 1,
"remaining": 249
},
"zhBrowser": {
"status": "passed",
"publicAggregateVisible": true,
"firstPartyStatisticsVisible": true,
"consoleErrors": 0
},
"enBrowser": {
"status": "not-completed",
"evidence": "HTTP and RSS passed; subsequent browser connection timed out, so no additional production English DOM assertion was made; this is not evidence of a site fault"
},
"network": {
"currentConfiguredEgressHttp": 200,
"directEgressHttp": 403,
"allNetworksAccessibleClaim": false
}
},
"links": "Passed in required GitHub verify; local documentation references also validated"
},
"userConfirmationReport": {
"date": "2026-10-13",
"evidence": "User reported a new inbox and active webpage confirmation with public count 1; no email or signed URL retained"
},
"boundaries": {
"schemaChanged": false,
"dnsChanged": false,
"productionMailGatesChanged": false,
"schedulesChanged": false,
"secretValuesReadOrExported": false,
"productionSubscriberRowsRead": false,
"newRealMailSent": false,
"newPaidActions": false
},
"rolloutLimit": "New client requires subscriptionType; use matching client and Worker and refresh open pages after rollback",
"documentationFollowup": "Receipt-only PR after publication does not redeploy Sites or move the immutable v1.0.0 tag; query GitHub for its eventual commit instead of self-reference"
}
}
}
6 changes: 5 additions & 1 deletion docs/PROJECT_CONTEXT.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@

本说明用于在同一个项目中持续迭代。它仅保留可公开的工程事实,未复制私人运营审计、账户、验收邮箱、生产数据或秘密值。机器可读记录见 [CURRENT_STATE.json](CURRENT_STATE.json)。

## 当前迭代:订阅申请限流反馈(2026-10-13)
## 当前发布:v1.0.1(2026-10-13)

用户已明确要求创建 v1.0.1 标签、提交推送及更新部署,覆盖此前等待验收后再打标签的门槛。本轮仅将此前已部署的订阅改进归入版本,更新工程版本为 1.0.1,保留全部运行逻辑、配置、限额及历史标签。标签、CI 与 Sites 的实际完成凭据记入 [v1.0.1 发布回执](releases/v1.0.1.md) 和机器状态;发布授权不等于新增真实收件验收。

## 前一迭代:订阅申请限流反馈(2026-10-13)

普通订阅身份释放后的无效申请已复现为一个独立的申请限流路径:旧版超限也返回“查看邮件”,却不产生待发邮件。修复返回明确 HTTP 429 和下一固定窗口时间,并加入仅 owner、精确匹配固定目标的无发信只读诊断。邮箱的固定日申请窗口在新加坡每天 08:00 更新,用户届时须主动重试;它与每日发信额度不同。

Expand Down
2 changes: 2 additions & 0 deletions docs/operations/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

## 当前主线与证据

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 项保留为历史证据,不作为最新运行版本;当前发布不新增真实收件验收或改变邮件额度。

- 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 部署;本次两者各有独立凭据。
- 原公众邮件开关和既有采编任务保留,`env_set_revision=12`,平台元数据仍有 2 项任务。本次发布没有 schema、DNS、邮件开关或任务修改,没有读取秘密/订阅行或新增真实邮件。本轮收尾只补充文档,不再次部署或移动 `v1.0.0` 标签;v12 交接和旧 CI 数据保留为历史。
Expand Down
22 changes: 22 additions & 0 deletions docs/releases/v1.0.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# AG-UI.AI v1.0.1 发布回执

2026-10-13 用户明确授权 v1.0.1 标签、提交推送及更新部署。本记录初始阶段为发布候选;正式 tag、GitHub SHA、CI 和 Sites 对应版本在实际完成后补录。授权覆盖此前的等待发布门槛,但不代表新增邮箱收件成功证据。

## 相对 v1.0.0 的变化

- 调整下拉箭头留白;订阅页统一为介绍、容量、反馈、操作表单、取消/退订、隐私说明。
- 优化中英确认邮件和周报 HTML/纯文本,区分确认入口与管理/退订区域;移除误导性的返回填写按钮。
- 有效确认页实际可见且就绪时自动 POST 确认;GET、HEAD、SSR、预取不确认,取消/退订仍需主动操作。能执行页面 JavaScript 的扫描器仍可能触发确认,不声称防住全部扫描。
- 普通退订身份可以经新同意重新申请;保留新旧链接代际、历史、抑制、不确定提交与防重复投递。
- 仅 owner 精确匹配固定目标可释放历史测试角色,仍需普通用户自行申请确认;仅 owner 的诊断不发信、不改状态、不导出地址或签名。
- 申请超限显示 HTTP 429、明确未发新邮件及下一固定窗口时间;邮箱每日两次请求窗口在新加坡 08:00 切换,原计数与发送额度不变。

完整实现和既有验证见 [体验优化](../iterations/2026-10-13-subscription-polish.md)、[普通身份与布局](../iterations/2026-10-13-normal-subscription.md)、[申请限流](../iterations/2026-10-13-subscription-throttle.md)。本次版本提交仅修改工程元数据与公开说明,不再修改这些运行逻辑。

## 验证与保留边界

既有 v16 改进通过 119 项本地检查及 required CI;本次发布再次通过对应候选 CI 与 Sites 构建后才推送正式标签。保留原 920000 字节 JS 门槛,上一版实测 919961,仅余 39 字节;8 项 moderate 依赖问题与两项 lint 警告仍为已知限制。

保留原 Sites 项目、公开域名、D1、MCP、环境配置及两项任务。无 schema、DNS、发信开关、配额或订阅身份变更,不发送真实邮件、不读取私有邮箱或密钥、不新增付费 API。提供商 submitted、delivered 与读者实际收件仍分开记录。当前发布不自动补发被限流的申请,读者须在允许时间后重新提交。

GitHub 标签与 Sites 递增版本号是独立标识;正式标签固定在已验证的发布提交。后续补录文档可以领先该提交,但不得移动标签或混称为一次新部署。历史 v1.0.0 保持不变。
Loading
Loading