merge: Flutter 逐屏还原 + iPad 断点 [tsk_gpPXi-icyeOE]

# Conflicts:
#	client/lib/widgets/connect_button.dart
#	client/lib/widgets/home_shell.dart
#	todo/todo.html
#	todo/todo.json
This commit is contained in:
wangjia
2026-06-13 17:30:36 +08:00
40 changed files with 3399 additions and 433 deletions
+154 -2
View File
@@ -260,6 +260,14 @@ ul.todo-list { list-style: none; margin: 0; padding: 0; }
<div class="stat-pill"><strong>0</strong>待验收</div>
<div class="stat-pill"><strong>0</strong>已验收</div>
<div class="stat-pill gate-stat"><strong>4</strong>待确认</div>
<div class="header-meta">生成于 2026-06-13 · 真相源 todo/todo.json</div>
<div class="stats">
<div class="stat-pill"><strong>19</strong>全部</div>
<div class="stat-pill"><strong>18</strong>待开始</div>
<div class="stat-pill"><strong>0</strong>开发中</div>
<div class="stat-pill"><strong>1</strong>待验收</div>
<div class="stat-pill"><strong>0</strong>已验收</div>
</div>
</div>
</header>
@@ -307,6 +315,64 @@ ul.todo-list { list-style: none; margin: 0; padding: 0; }
<div class="section-list-wrap " id="list-wrap-open">
<ul class="todo-list" id="list-open">
<li class="todo-card s-open"
data-id="1"
data-level="high"
data-status="open"
data-tier="1"
data-tags="后端,数据库">
<div class="card-header">
<span class="item-title">OpenAPI 契约 + MySQL migration 基线</span>
<div class="card-badges">
<span class="tag status-badge s-open">待开始</span>
<span class="tag t-block">高优 · 紧急</span>
<span class="tag tier-1">一级</span>
</div>
</div>
<div class="item-desc">依据 doc/02、doc/03openapi.yaml 展开全部 /v1 契约(connect 返回 sing-box 凭证而非 WG peer);MySQL 8 全量 DDLusers/devices/plans/subscriptions/codes/usage_daily/audit_log + providers/node_events/directory_version)。后端各模块的共同前置。</div>
<div class="card-footer">
<div class="tag-row"><span class="tag t-tag" data-tag="后端">后端</span> <span class="tag t-tag" data-tag="数据库">数据库</span></div>
<div class="item-meta">
<span class="meta-date">🕐 2026-06-11</span>
</div>
</div>
</li>
<li class="todo-card s-open"
data-id="5"
data-level="high"
data-status="open"
data-tier="1"
data-tags="后端">
<div class="card-header">
<span class="item-title">nodes 模块 + agent gRPC 协议设计</span>
<div class="card-badges">
<span class="tag status-badge s-open">待开始</span>
<span class="tag t-block">高优 · 紧急</span>
<span class="tag tier-1">一级</span>
</div>
</div>
<div class="item-desc">proto 定义(注册/心跳/凭证下发与回收/用量上报,mTLS 双向)、节点目录 version 灰度(if_version 304)、connect/disconnect 下发 REALITY/Hy2 参数、free 凭证 TTL。依赖 #1。</div>
<div class="card-footer">
<div class="tag-row"><span class="tag t-tag" data-tag="后端">后端</span></div>
<div class="item-meta">
<span class="meta-date">🕐 2026-06-11</span>
</div>
</div>
</li>
<li class="todo-card s-open"
data-id="9"
data-level="high"
@@ -336,6 +402,64 @@ ul.todo-list { list-style: none; margin: 0; padding: 0; }
</div>
</li>
<li class="todo-card s-open"
data-id="11"
data-level="high"
data-status="open"
data-tier="1"
data-tags="前端,iOS,Android,mac,Windows">
<div class="card-header">
<span class="item-title">sing-box libbox 桥接 PoC(三端隧道)</span>
<div class="card-badges">
<span class="tag status-badge s-open">待开始</span>
<span class="tag t-block">高优 · 紧急</span>
<span class="tag tier-1">一级</span>
</div>
</div>
<div class="item-desc">gomobile AAR/XCFramework + iOS NetworkExtension / Android VpnService / 桌面 TUN 子进程;URLTest 智能选线、Kill-switch。全项目最大技术风险,应尽早并行启动。</div>
<div class="card-footer">
<div class="tag-row"><span class="tag t-tag" data-tag="前端">前端</span> <span class="tag t-tag" data-tag="iOS">iOS</span> <span class="tag t-tag" data-tag="Android">Android</span> <span class="tag t-tag" data-tag="mac">mac</span> <span class="tag t-tag" data-tag="Windows">Windows</span></div>
<div class="item-meta">
<span class="meta-date">🕐 2026-06-11</span>
</div>
</div>
</li>
<li class="todo-card s-open"
data-id="15"
data-level="high"
data-status="open"
data-tier="1"
data-tags="后端">
<div class="card-header">
<span class="item-title">探针判封 + 自动更换 scheduler</span>
<div class="card-badges">
<span class="tag status-badge s-open">待开始</span>
<span class="tag t-block">高优 · 紧急</span>
<span class="tag tier-1">一级</span>
</div>
</div>
<div class="item-desc">境内多 ISP 拨测 + 境外对照 + 流量骤降三路互证;blocked_suspect/confirmed 状态机、阈值与熔断、池水位告警、自动补新。依赖 #5、#14。</div>
<div class="card-footer">
<div class="tag-row"><span class="tag t-tag" data-tag="后端">后端</span></div>
<div class="item-meta">
<span class="meta-date">🕐 2026-06-11</span>
</div>
</div>
</li>
<li class="todo-card s-open"
data-id="2"
data-level="mid"
@@ -1069,12 +1193,40 @@ ul.todo-list { list-style: none; margin: 0; padding: 0; }
</div>
<div class="section-block" id="section-done">
<div class="section-title st-done" data-toggle="done">
🔍 待验收 <span class="s-count">0</span>
🔍 待验收 <span class="s-count">1</span>
<span class="s-arrow">▴ 收起</span>
</div>
<div class="section-list-wrap " id="list-wrap-done">
<ul class="todo-list" id="list-done">
<p class="empty-tip">暂无条目</p>
<li class="todo-card s-done"
data-id="19"
data-level="mid"
data-status="done"
data-tier=""
data-tags="">
<div class="card-header">
<span class="item-title">Flutter 逐屏还原+iPad断点: l10n/Riverpod/三态连接/推荐卡/额度卡/Tab滑动/≥900分栏/golden/CI红线</span>
<div class="card-badges">
<span class="tag status-badge s-done">待验收</span>
<span class="tag t-high">重要</span>
<button class="reject-btn" data-id="19" data-title="Flutter 逐屏还原+iPad断点: l10n/Riverpod/三态连接/推荐卡/额度卡/Tab滑动/≥900分栏/golden/CI红线">拒绝验收</button>
</div>
</div>
<div class="card-footer">
<div class="tag-row"></div>
<div class="item-meta">
<span class="meta-date">🕐 2026-06-13</span>
</div>
</div>
</li>
</ul>
</div>
</div>
+15 -1
View File
@@ -2,8 +2,9 @@
"meta": {
"title": "doc — 项目 TODO",
"updated_at": "2026-06-11T16:33:27.008Z"
"updated_at": "2026-06-13T06:32:11.161Z"
},
"seq": 18,
"seq": 19,
"items": [
{
"id": 1,
@@ -588,6 +589,19 @@
"done": false,
"completed_at": null,
"version": null
},
{
"id": 19,
"title": "Flutter 逐屏还原+iPad断点: l10n/Riverpod/三态连接/推荐卡/额度卡/Tab滑动/≥900分栏/golden/CI红线",
"desc": null,
"level": "mid",
"tier": null,
"tags": [],
"status": "done",
"created_at": "2026-06-13T06:08:14.230Z",
"done": false,
"completed_at": null,
"version": null
}
]
}