chore: 整理——gitignore android/.gradle 构建缓存 + 同步 todo 看板
- client/.gitignore 加 /android/.gradle/(gradle 构建缓存,不该入 git)。 - 同步 todo.json/html 到当前状态。 注:server/internal/pb/agent/v1 是 stray 生成产物(未被任何代码 import,代码用手写的 agentv1),未跟踪、不影响合并;清理需 rm,留给用户(! rm -rf server/internal/pb/agent)。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+80
-14
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "feature+windows — 项目 TODO",
|
||||
"updated_at": "2026-06-29T00:04:33.913Z"
|
||||
"updated_at": "2026-06-30T14:47:39.344Z"
|
||||
},
|
||||
"seq": 12,
|
||||
"seq": 17,
|
||||
"items": [
|
||||
{
|
||||
"id": 1,
|
||||
@@ -106,10 +106,10 @@
|
||||
"tags": [
|
||||
"后端"
|
||||
],
|
||||
"status": "done",
|
||||
"status": "accepted",
|
||||
"created_at": "2026-06-28T00:26:44.498Z",
|
||||
"done": false,
|
||||
"completed_at": null,
|
||||
"done": true,
|
||||
"completed_at": "2026-06-30T14:44:35.082Z",
|
||||
"version": null
|
||||
},
|
||||
{
|
||||
@@ -137,10 +137,10 @@
|
||||
"前端",
|
||||
"后端"
|
||||
],
|
||||
"status": "done",
|
||||
"status": "accepted",
|
||||
"created_at": "2026-06-28T09:32:26.008Z",
|
||||
"done": false,
|
||||
"completed_at": null,
|
||||
"done": true,
|
||||
"completed_at": "2026-06-30T14:44:34.810Z",
|
||||
"version": null
|
||||
},
|
||||
{
|
||||
@@ -152,10 +152,10 @@
|
||||
"tags": [
|
||||
"前端"
|
||||
],
|
||||
"status": "done",
|
||||
"status": "accepted",
|
||||
"created_at": "2026-06-28T09:32:26.080Z",
|
||||
"done": false,
|
||||
"completed_at": null,
|
||||
"done": true,
|
||||
"completed_at": "2026-06-30T14:44:34.991Z",
|
||||
"version": null
|
||||
},
|
||||
{
|
||||
@@ -167,10 +167,10 @@
|
||||
"tags": [
|
||||
"前端"
|
||||
],
|
||||
"status": "open",
|
||||
"status": "accepted",
|
||||
"created_at": "2026-06-28T11:27:56.637Z",
|
||||
"done": false,
|
||||
"completed_at": null,
|
||||
"done": true,
|
||||
"completed_at": "2026-06-30T14:47:39.343Z",
|
||||
"version": null
|
||||
},
|
||||
{
|
||||
@@ -188,6 +188,72 @@
|
||||
"done": false,
|
||||
"completed_at": null,
|
||||
"version": null
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"title": "数据面故障韧性:节点健康上报+客户端连通看门狗",
|
||||
"desc": "agent 心跳带 sing-box 健康(clash_api /version)→控制面 effectiveNodeStatus 标 down(列表置灰+connect拦截);客户端连上后 HTTP 204 看门狗,连续失败:智能选择自动切节点/手动只提示断开。plan: crystalline-exploring-lerdorf.md",
|
||||
"level": "high",
|
||||
"tier": 1,
|
||||
"tags": [
|
||||
"后端",
|
||||
"前端",
|
||||
"gRPC"
|
||||
],
|
||||
"status": "accepted",
|
||||
"created_at": "2026-06-29T04:55:46.733Z",
|
||||
"done": true,
|
||||
"completed_at": "2026-06-29T16:59:39.926Z",
|
||||
"version": null
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"title": "移动端真·常连:Android Always-on + iOS/iPad On-Demand(无UI自连)",
|
||||
"desc": "系统在 app 未开时拉起隧道:Android Always-on VPN(系统设置开启+VpnService 支持 onStartCommand 无UI拉起+配置缓存)、iOS/iPad On-Demand(NEOnDemandRule + PacketTunnelProvider 用缓存 lastConfigJson 自连)。难点:paid 凭证 TTL 仅24h,长期常连需原生侧刷新配置/凭证。桌面自启+全平台自动连接已在另一轮做(plan crystalline-exploring-lerdorf)。",
|
||||
"level": "mid",
|
||||
"tier": 1,
|
||||
"tags": [
|
||||
"Android",
|
||||
"iOS",
|
||||
"后端"
|
||||
],
|
||||
"status": "open",
|
||||
"created_at": "2026-06-29T09:36:14.004Z",
|
||||
"done": false,
|
||||
"completed_at": null,
|
||||
"version": null
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"title": "iOS/iPad 实时统计+urltest 延迟与 macOS 对齐",
|
||||
"desc": "移植 macOS 已验证的统计架构:扩展注入 clash_api + StatsCollector(clash 取 urltest),app StatsClient 改 sendProviderMessage 轮询;前置生成 iOS Libbox.xcframework。Dart 侧已对齐(共用 VpnNativeBridge)。",
|
||||
"level": "mid",
|
||||
"tier": 2,
|
||||
"tags": [
|
||||
"iOS",
|
||||
"前端"
|
||||
],
|
||||
"status": "accepted",
|
||||
"created_at": "2026-06-30T10:56:48.894Z",
|
||||
"done": true,
|
||||
"completed_at": "2026-06-30T14:44:34.900Z",
|
||||
"version": null
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"title": "启用设备数量限制 + 超限 UX(踢旧/选择移除,非硬拒登)",
|
||||
"desc": "现状:plans.max_devices(free1/pro5/team10)+ devices/service.go:216 强制逻辑 + DEVICE_LIMIT_EXCEEDED 错误码 + 账户API DevicesMax 都在,但 main.go:534 登录注册传 MaxDevices:0(不启用)。原因:free 用户重装会换 device UUID,登录硬卡会把人锁外面。需:① 登录/注册从套餐读 max_devices 传入 RegisterIfAbsent;② 超限不直接拒登,改为'踢最旧设备/让用户选哪台下线'的 UX(客户端弹窗 + 设备管理页操作);③ 处理 free 重装 churn(同机复用而非每次新增)。tier-1:涉及登录接口 + 跨后端/前端 + 策略设计。",
|
||||
"level": "mid",
|
||||
"tier": 1,
|
||||
"tags": [
|
||||
"后端",
|
||||
"前端"
|
||||
],
|
||||
"status": "open",
|
||||
"created_at": "2026-06-30T14:33:48.996Z",
|
||||
"done": false,
|
||||
"completed_at": null,
|
||||
"version": null
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user