889cff4556
新增 docs/superpowers/plans/2026-06-29-device-session-management.md(执行真相, checkbox) + docs/device-session-management-plan.html(阅读版);登记进 index.html 「实现计划」;总方案顶部加「→ 实现计划」链接。P1 设备注册打通→P2 sessions表+ 在线→P3 强制退出/清除→P4 每设备流量→P5 2FA(future)→P6 UI重做。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
167 lines
11 KiB
HTML
167 lines
11 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Pangolin 文档索引</title>
|
||
<style>
|
||
:root{
|
||
--bg:#0f1117; --panel:#171a22; --panel2:#1d2129; --fg:#e6e8ee; --fg2:#a8afbd;
|
||
--accent:#e0884f; --accent2:#5fb0c9; --ok:#5ec27a; --bad:#e06a6a; --warn:#e0b84f;
|
||
--border:#272c36; --mono:"SF Mono",ui-monospace,Menlo,Consolas,monospace;
|
||
--sans:-apple-system,"PingFang SC","Helvetica Neue",Arial,sans-serif;
|
||
}
|
||
*{box-sizing:border-box}
|
||
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);line-height:1.7;font-size:15px}
|
||
.wrap{max-width:920px;margin:0 auto;padding:48px 24px 96px}
|
||
h1{font-size:30px;line-height:1.3;margin:0 0 8px;letter-spacing:-.01em}
|
||
.sub{color:var(--fg2);font-size:15px;margin:0 0 32px}
|
||
h2{font-size:21px;margin:40px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border)}
|
||
p{margin:10px 0}
|
||
code{font-family:var(--mono);font-size:.88em;background:var(--panel2);padding:1px 6px;border-radius:5px;color:#f0d9c4}
|
||
a{color:var(--accent2);text-decoration:none}
|
||
a:hover{text-decoration:underline}
|
||
.lead{background:linear-gradient(180deg,rgba(224,136,79,.10),transparent);border:1px solid var(--border);border-radius:12px;padding:18px 20px;margin:0 0 8px}
|
||
.small{color:var(--fg2);font-size:13px}
|
||
.tag{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;vertical-align:middle;margin-left:6px}
|
||
.tag.html{background:rgba(94,194,122,.16);color:var(--ok)}
|
||
.tag.md{background:rgba(168,175,189,.16);color:var(--fg2)}
|
||
.doc{display:block;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin:10px 0;transition:border-color .15s}
|
||
.doc:hover{border-color:var(--accent2);text-decoration:none}
|
||
.doc .t{font-size:16px;font-weight:600;color:var(--fg)}
|
||
.doc .d{color:var(--fg2);font-size:13px;margin-top:3px}
|
||
.doc .path{font-family:var(--mono);font-size:11px;color:#6b7385;margin-top:4px}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="wrap">
|
||
|
||
<h1>Pangolin 文档索引</h1>
|
||
<p class="sub">全部设计 / 调研 / 排障文档汇总 · 单一入口</p>
|
||
|
||
<div class="lead">
|
||
<strong>约定:</strong>新的<b>设计文档 / 调研文档</b>统一以 <b>HTML</b> 形式输出(深色家族风格,可直接 <code>file://</code> 打开),并登记到本索引。历史 <code>.md</code> 文档保留原状、逐步迁移。
|
||
</div>
|
||
|
||
<h2>设计方案 / Specs</h2>
|
||
<a class="doc" href="device-session-management-design.html">
|
||
<div class="t">设备 & 会话管理 + 每设备流量归因 <span class="tag html">HTML</span></div>
|
||
<div class="d">「我的设备」管理(名称/平台/客户端版本/在线/最后登录 + 强制退出/清除登录信息)+ 控制面 sessions 表绑设备 + 数据面每设备 dp_uuid 记账。核心洞察:后端大半已建但 RegisterIfAbsent 未接线致 devices 表空。P1–P5 路线。</div>
|
||
<div class="path">docs/device-session-management-design.html</div>
|
||
</a>
|
||
<a class="doc" href="android-client-design.html">
|
||
<div class="t">Pangolin Android 客户端设计方案 <span class="tag html">HTML</span></div>
|
||
<div class="d">把 M2 纸面 PoC 推到真机端到端连通 + 切节点 + KillSwitch(清 TODO 11G)。里程碑 A–F、三处定调。</div>
|
||
<div class="path">docs/android-client-design.html</div>
|
||
</a>
|
||
<a class="doc" href="ios-ipad-support-design.html">
|
||
<div class="t">iOS + iPad 支持设计方案 <span class="tag html">HTML</span></div>
|
||
<div class="d">iOS 隧道从 PoC 桩推到真机连通 + TestFlight;五条工作线 + NE 50MB 内存闸门;iPad 横屏侧栏布局适配。</div>
|
||
<div class="path">docs/ios-ipad-support-design.html</div>
|
||
</a>
|
||
<a class="doc" href="superpowers/specs/2026-06-21-windows-client-design.md">
|
||
<div class="t">Windows 客户端设计 <span class="tag md">MD</span></div>
|
||
<div class="d">Windows 端 sing-box 子进程 + wintun 隧道客户端设计。</div>
|
||
<div class="path">docs/superpowers/specs/2026-06-21-windows-client-design.md</div>
|
||
</a>
|
||
|
||
<h2>实现计划 / Plans</h2>
|
||
<a class="doc" href="device-session-management-plan.html">
|
||
<div class="t">设备 & 会话管理 + 每设备流量归因 实现计划(P1–P6)<span class="tag html">HTML</span></div>
|
||
<div class="d">阅读版;执行真相源为 <code>docs/superpowers/plans/2026-06-29-device-session-management.md</code>(含 checkbox)。P1 设备注册打通 → P2 sessions表+在线/最后登录 → P3 强制退出/清除 → P4 每设备流量 → P5 2FA信任(future) → P6 UI重做。</div>
|
||
<div class="path">docs/device-session-management-plan.html</div>
|
||
</a>
|
||
<a class="doc" href="superpowers/plans/2026-06-22-android-client.md">
|
||
<div class="t">Android 客户端实现计划 <span class="tag md">MD</span></div>
|
||
<div class="d">11 个任务:Go 1.24.3 工具链 → 构建 libbox.aar → 解析真实 API → Dart 接线 → 修原生编译 → 模拟器端到端 → 统计 → 切节点 → KillSwitch → 真机验证。</div>
|
||
<div class="path">docs/superpowers/plans/2026-06-22-android-client.md</div>
|
||
</a>
|
||
<a class="doc" href="ios-ipad-support-plan.html">
|
||
<div class="t">iOS + iPad 支持 实现计划 <span class="tag html">HTML</span></div>
|
||
<div class="d">阅读版;执行真相源为 <code>docs/superpowers/plans/2026-06-22-ios-ipad-support.md</code>(含 checkbox)。6 阶段 12 任务。</div>
|
||
<div class="path">docs/ios-ipad-support-plan.html</div>
|
||
</a>
|
||
<a class="doc" href="superpowers/plans/2026-06-21-windows-client.md">
|
||
<div class="t">Windows 客户端实现计划 <span class="tag md">MD</span></div>
|
||
<div class="d">Windows 客户端的分步实现计划。</div>
|
||
<div class="path">docs/superpowers/plans/2026-06-21-windows-client.md</div>
|
||
</a>
|
||
<a class="doc" href="stats-overhaul-plan.html">
|
||
<div class="t">统计体系整改 实现计划(#5)<span class="tag html">HTML</span></div>
|
||
<div class="d">阅读版;执行真相源为 <code>docs/superpowers/plans/2026-06-24-stats-overhaul.md</code>(含 checkbox)。三期:四端实时统计修复 → 每设备归因+GB综合配额 → 统计页重设计(上聚合·下分设备)。</div>
|
||
<div class="path">docs/stats-overhaul-plan.html</div>
|
||
</a>
|
||
|
||
<h2>知识库 / 调研</h2>
|
||
<a class="doc" href="dev-conventions.html">
|
||
<div class="t">开发规范 · 可测试性五支柱 <span class="tag html">HTML</span></div>
|
||
<div class="d">「怎么写才好测」——开发规范作为可测试性前置条件。五支柱(接缝即接口/契约单源/纯逻辑分离/错误是值/可观测)+ 支柱↔测试层咬合矩阵图 + 反例→真实bug→对应支柱对照表。与测试框架文档咬合。</div>
|
||
<div class="path">docs/dev-conventions.html</div>
|
||
</a>
|
||
<a class="doc" href="test-architecture.html">
|
||
<div class="t">统一测试框架 · 架构说明 <span class="tag html">HTML</span></div>
|
||
<div class="d">多端项目可复用的分层测试方法论(L0 契约→L4 E2E)+ 四类诉求(界面一致/交互/数值/后端记账)→层→工具→量化指标映射 + 五张架构图(金字塔/契约接缝/CI 流水线/E2E 拓扑)+ ⑩「已知缺口/测试盲区」单一跟踪源(没测什么·为什么·何时补)。</div>
|
||
<div class="path">docs/test-architecture.html</div>
|
||
</a>
|
||
<a class="doc" href="feature-test-coverage-checklist.html">
|
||
<div class="t">功能 × 测试覆盖清单 <span class="tag html">HTML</span></div>
|
||
<div class="d">逐功能盘点验证五端是否正确:A 共享逻辑+后端(控制面 21 包/数据面渲染+记账/Flutter 共享),每行「现有能力→已覆盖+怎么覆盖→欠缺→只能人工」;B 平台隧道层五端矩阵 + 每端真连通验收清单(出口IP变化/DNS劫持/分流/记账对账/KillSwitch/切节点)。配套 test-architecture.html 的「逐功能」视角。</div>
|
||
<div class="path">docs/feature-test-coverage-checklist.html</div>
|
||
</a>
|
||
<a class="doc" href="killswitch-design.html">
|
||
<div class="t">KillSwitch 设计与跨平台能力矩阵 <span class="tag html">HTML</span></div>
|
||
<div class="d">断网保护 L0–L3 分级模型 + 各平台能力天花板 / 当前实现矩阵。KillSwitch 决策依据。</div>
|
||
<div class="path">docs/killswitch-design.html</div>
|
||
</a>
|
||
<a class="doc" href="技术方案.md">
|
||
<div class="t">技术方案(总) <span class="tag md">MD</span></div>
|
||
<div class="d">Pangolin 整体技术选型与架构方案。</div>
|
||
<div class="path">docs/技术方案.md</div>
|
||
</a>
|
||
<a class="doc" href="vpn-core-embedding.md">
|
||
<div class="t">VPN 内核内嵌 <span class="tag md">MD</span></div>
|
||
<div class="d">sing-box 内核在各端的内嵌方式调研。</div>
|
||
<div class="path">docs/vpn-core-embedding.md</div>
|
||
</a>
|
||
<a class="doc" href="vpn-testing-research.md">
|
||
<div class="t">VPN 测试调研 <span class="tag md">MD</span></div>
|
||
<div class="d">VPN 黑盒测试方法与口径调研。</div>
|
||
<div class="path">docs/vpn-testing-research.md</div>
|
||
</a>
|
||
<a class="doc" href="vpn-test-plan.md">
|
||
<div class="t">VPN 测试计划 <span class="tag md">MD</span></div>
|
||
<div class="d">国内外站点矩阵 + 延迟/连通性测试计划。</div>
|
||
<div class="path">docs/vpn-test-plan.md</div>
|
||
</a>
|
||
|
||
<h2>排障 / Runbook</h2>
|
||
<a class="doc" href="ci-runner.md">
|
||
<div class="t">CI Runner 设置记录 <span class="tag md">MD</span></div>
|
||
<div class="d">gitea Actions self-hosted runner 记录:决定用 1 个(mac-pangolin-2,项目级·mac host·label nas·复用 jiu relay)、已删 orphan 的清理命令、launchd 持久化 + 单点韧性(runner 离线 Telegram 告警)。CI 首跑 run #298。</div>
|
||
<div class="path">docs/ci-runner.md</div>
|
||
</a>
|
||
<a class="doc" href="macos-sysext-realize-troubleshooting.html">
|
||
<div class="t">macOS 系统扩展 realize 失败(code=4)踩坑复盘 <span class="tag html">HTML</span></div>
|
||
<div class="d">PacketTunnel 系统扩展无法激活的三个叠加配置 bug 排查与修复。</div>
|
||
<div class="path">docs/macos-sysext-realize-troubleshooting.html</div>
|
||
</a>
|
||
<a class="doc" href="p1-macos-system-extension.md">
|
||
<div class="t">P1 macOS 系统扩展 <span class="tag md">MD</span></div>
|
||
<div class="d">macOS 原生 System Extension 隧道方案说明。</div>
|
||
<div class="path">docs/p1-macos-system-extension.md</div>
|
||
</a>
|
||
<a class="doc" href="node-rebuild-checklist.md">
|
||
<div class="t">节点重建检查单 <span class="tag md">MD</span></div>
|
||
<div class="d">节点重装/重建的操作检查清单。</div>
|
||
<div class="path">docs/node-rebuild-checklist.md</div>
|
||
</a>
|
||
<a class="doc" href="runbook-scheduler.md">
|
||
<div class="t">Scheduler Runbook <span class="tag md">MD</span></div>
|
||
<div class="d">调度器运维手册。</div>
|
||
<div class="path">docs/runbook-scheduler.md</div>
|
||
</a>
|
||
|
||
</div>
|
||
</body>
|
||
</html>
|