Qiu Yuzhou
85197d8172
docs(research): assess age encryption for sslocal runtime
2026-10-19 00:21:44 +08:00
Qiu Yuzhou
d8a11f7b6b
feat: encrypt persistent server library
2026-10-18 07:57:10 +08:00
Qiu Yuzhou
7ab774fcfd
chore(legacy): 移除 Legacy/ 旧版源码,归档到 legacy-v1 分支
...
旧版实现已由 shadowsocks/ShadowsocksX-NG 的 legacy-v1 分支跟踪,本仓库不再
保留同一份代码副本。删除 Legacy/ 下 603 个跟踪文件,被 gitignore 的
.DS_Store 一并清理。
删除前核对:Legacy/ShadowsocksX-NG/PACUtils.swift 的 blob hash 与
upstream/legacy-v1 的同名文件完全相同,且工作区在 Legacy/ 下无未提交改动。
配套改动:
- 根 README、AGENTS.md、ShadowsocksX-NG2/README.md:目录结构只留
ShadowsocksX-NG2/;旧版说明改为指向 shadowsocks/ShadowsocksX-NG 的
legacy-v1 分支(含其 README);pre-commit 说明去掉 Legacy/。
- codegraph.json 删除 "exclude": ["Legacy/"];.gitignore 与 .zcodeignore
删除 Legacy 构建产物与依赖条目;.swiftlint.yml 删除 ../Legacy 排除项;
.githooks/pre-commit 头部注释去掉冻结目录表述。
- docs/research 的 4 份历史研究报告(issue 7/11/12/17)中 129 处
../../Legacy/... 相对链接改写为 legacy-v1 的 GitHub blob 链接,正文未改;
把新 URL 反替换回原相对路径后与 HEAD 版本逐字节相同,证明只动了链接。
验证:全仓库不再有指向 Legacy/ 的路径引用;剩余 Legacy 字样均为概念性用法
(Legacy 导入功能、ADR 与术语表、历史报告正文中的冻结陈述)。本次未改任何
NG2 源码或构建配置,暂存区无 NG2 .swift 文件,pre-commit 直接放行。
2026-10-05 21:39:06 +08:00
Qiu Yuzhou
a8cd6262c2
feat(proxy): remove PAC and accept ACL system proxy path
...
Remove the PAC product feature entirely: PAC HTTP service, port, health
probe, runtime extension, PAC URL system proxy projection, PAC rule
editing, and GFWList URL settings. The product now exposes rule / global /
direct modes only, all projected as a local SOCKS system-proxy target.
First-run defaults are rule + proxyWhenUnmatched, agent on, system proxy
off. Homepage and status menu share one ProxyControlSnapshot showing the
three modes and rule sub-options. Manual servers, subscriptions, Legacy
import, and independent SOCKS/HTTP inbounds are retained.
Fix: include verbose in SslocalListenFingerprint so a verbose-only
contract change restarts sslocal instead of leaving RUST_LOG stale.
Revise CONTEXT.md vocabulary, ADR-0007, and ADR-0009. Record GFWList
exception shadowing, IPv6 system-exception, DNS, and traffic-coverage
boundaries. Add host acceptance evidence document.
Closes #67
2026-09-26 21:58:12 +08:00
Qiu Yuzhou
1c5e4e5e23
feat(docs): add research on sslocal password handling via environment variables
2026-09-25 00:51:05 +08:00
Qiu Yuzhou
620c929450
docs(research): survey proxy rule sources
2026-09-24 21:41:33 +08:00
Qiu Yuzhou
fb6be460b8
docs(research): assess sslocal ACL as PAC alternative
...
Document routing, reload, DNS, UDP, and compatibility boundaries
before considering an NG2 runtime migration.
2026-09-24 21:40:51 +08:00
Qiu Yuzhou
8d1cdf27d1
feat(ng2): Legacy 交接第二阶段(#37)
...
与导入分离的「切换到 2.0」确认流程(spec #21 D12):
- Domain/LegacyHandoff:硬编码白名单三个 Legacy label(.local/.http/.kcptun),
bootout 按 service target(覆盖 plist 缺失错位形态),print 退出码验证
(0/113),`launchctl kill SIGTERM` 有文档后备,绝不泛匹配、不 pkill;
残留 plist(含 KeepAlive 形态)读内容判活跃性后 disable,阻止下次登录复活;
系统代理按特征值判定归属(Legacy 自身 off 模式的判定镜像:本地 PAC URL
http://localhost :<port>/proxy.pac、SOCKS/HTTP 地址端口),仅清理归属为
Legacy 的服务,未知所有者点名保留;端口释放门禁用无复用选项的 bind 探测
(Legacy ss-local 带 --reuse-port),未释放不启动 2.0;Legacy 数据零删除。
- App 层:SystemConfigurationLegacyProxyCleaner(授权在最前、失败零影响、
事务回滚);WorkspaceLegacyAppController(共享 bundle id 需排除自身进程);
LegacyHandoffSheet 确认/进度/报告呈现,含旧登录项人工指引与残留提示;
主窗口工具栏入口 + 导入完成后「切换到 2.0」入口;交接成功经正常启停入口
启动 2.0(健康门禁走 #29 路径)。
- bootout 实弹验证(Further Notes #5)闭环:docs/research/
legacy-handoff-bootout-live-fire.md——bootout 未加载 label 退出码为 3
(非 print 的 113),KeepAlive 残留 kill 后复活、bootout 后不再加载,
结论已回写产品代码与测试。
2026-09-21 12:49:49 +08:00
Qiu Yuzhou
5e13c1716f
feat(ng2): managed plugins end to end ( #38 )
...
- 受管插件静态事实表(v2ray-plugin v1.3.2,来源/许可证/版本/重签)与
BundleManagedPluginProvider:受管集内且 bundle 内可执行文件在位才返回
绝对路径;与 Vendor 清单双向锚定(D6/D10)
- 服务器编辑器插件区:受管选择器(无 + 受管列表),选中受管项才显示
供应链事实与参数输入;集外引用显式「本版本未提供」并原样保留
- updateServer 插件落盘语义:「无」整体清除、参数写删钥匙串、集外不漂移
- wrapper 监听建立判定:3 秒未建立本地监听记 error 日志,监管继续(D10)
- 诊断导出新增受管插件清单(名称/版本/提供状态,无参数)
- 功能级兼容实测记录(docs/research/plugin-compat-record.md)与端到端
冒烟:契约插件路径 → sslocal 拉起 → v2ray-plugin 进程建立 → 停止链
2026-09-21 10:38:30 +08:00
Qiu Yuzhou
72f9a45a74
feat(ng2): add system proxy modes and health gate ( #29 )
2026-09-20 23:31:33 +08:00
Qiu Yuzhou
252b1a631a
docs(research): add Wayfinder Issue 7 — Legacy configuration migration and legacy feature boundaries audit
2026-09-20 07:25:24 +08:00
Qiu Yuzhou
1a4b96fe83
docs(research): wayfinder issue 18 — SIP003 plugin distribution and verification boundary
2026-09-20 07:19:05 +08:00
Qiu Yuzhou
5acd4f1256
docs(research): wayfinder issue 17 — legacy runtime safe handoff APIs
2026-09-20 07:14:52 +08:00
Qiu Yuzhou
6218944b29
docs(research): wayfinder issue 16 — app firewall × non-loopback listen
...
实测结论(macOS 27.0,HITL 确认):回环零交互;launchd 语境按二进制
归属,官方 sslocal(adhoc,linker-signed)主机地址态必弹裸名弹窗;
DevID 重签静默放行为首选缓解;应答按路径落库、升级不重弹;拒绝后
本机自连不可见,需 --getappblocked 检测与定向修复文案。原型在
research/firewall-nwlistener @ 94829fe。
2026-09-20 06:12:47 +08:00
Qiu Yuzhou
6b58925bbd
docs: Add research for wayfinder issue 12 (PAC HTTP server)
2026-09-20 03:43:15 +08:00
Qiu Yuzhou
d9adfdc31f
docs: research PAC implementation options
2026-09-20 02:37:37 +08:00
Qiu Yuzhou
9ab38063d4
docs: Add research documents for Wayfinder issues 4 and 6
...
- Introduced "wayfinder-issue-4.md" detailing SIP-008 nested grouping extension and subscription compatibility boundaries, including decision summaries, evidence sources, and compliance constraints.
- Added "wayfinder-issue-6.md" outlining the approach for XcodeGen, SwiftPM, and external binary packaging release, covering official release facts, XcodeGen project structure, signing procedures, and CI validation requirements.
2026-09-20 01:10:29 +08:00