|
|
e59feb82c1
|
feat(M6): token-ring incremental log sync — append-only op log, delta rides token round-2, nodes converge on identical history (e2e verified join events)
|
2026-08-18 08:59:59 +08:00 |
|
|
|
f6c4b91a96
|
feat(M6): token ring data plane + engine — pending adds disappear on claim, topology written back for full cluster view (per authoritative design)
|
2026-08-18 08:24:37 +08:00 |
|
|
|
5bd70b90c0
|
feat: M3 cluster page (LB groups + health check status) e2e-verified failover; M6 cache API + version path hardening + frontend cluster methods
|
2026-08-17 22:44:04 +08:00 |
|
|
|
a842198447
|
feat: docker cluster demo (frps+3 nodes, M6 auto binary pull, tunnel e2e) + fix SelfAddr/W4F_HOST/bootstrap retry, -frpc flag
|
2026-08-17 21:57:00 +08:00 |
|
|
|
fd7604cb9c
|
feat: M6 stage B - cluster heartbeat, new-node bootstrap auto-pull, peer-first install (e2e verified)
|
2026-08-17 18:05:01 +08:00 |
|
|
|
79e0b3da79
|
feat: M6 cluster binary registry + peer exchange (stage A)
|
2026-08-17 17:53:07 +08:00 |
|
|
|
467c7124ab
|
feat: M3 load balancing + health check (model/render/admin API status/UI)
|
2026-08-17 17:45:03 +08:00 |
|
|
|
bd3a62a017
|
fix: worker 进程并发 double-close panic + 状态页连接语义重构 + 集群页骨架
- process: spawn 不再重复起 supervise goroutine(Restart 触发旧 supervise close doneCh 后再 close → panic);新增 closeOnce/supervising 守卫;Start 首次起 supervise,重启循环在同一 goroutine 内
- httpapi: status 增加 connState(connected/connecting/failed/not_started/disabled),由 worker 日志探测真实 frps 连接(不再把本地 worker 状态误当远程 frps 状态)
- StatusView: 远程卡片主状态改为连接状态徽标;启停按钮标注为控制本地 frpc worker;本地转发区保留 worker 状态显示
- 新增 ClusterView 集群页骨架(M3 LB+健康检查载体)+ App.vue 导航接入
- render: bandwidthLimit 从 proxy 顶层移入 transport 段(frpc 0.61 正确 schema,修复真实连不上的 bug)
|
2026-08-17 15:13:25 +08:00 |
|
|
|
58906c5a81
|
feat: M2 HTTP/HTTPS 完善
- store: Local 增加 customDomains/subdomain/locations/hostHeaderRewrite/httpHeaders/basicAuth;Remote 增加 vhostHttpPort;migrate() 补列;CRUD 读写(JSOm 编解码)
- render: http/https proxy 输出 customDomains/subdomain/locations/hostHeaderRewrite/httpHeaders/basicAuth
- main: renderRemote 透传 M2 字段(customDomains 逗号拆分 splitCSV)
- web: LocalNode 折叠 HTTP 路由高级区;RemoteNode vhostHTTPPort;StatusView 显示 HTTP 访问端口
- 测试: TestRenderHTTPAdvanced / TestRenderHTTPSUsesCustomDomains;端到端 PUT canvas→config 验证通过
|
2026-08-17 12:59:12 +08:00 |
|
|
|
07f25ea067
|
feat: M1 高级传输参数(P0)
- store: Local 增加 useEncryption/useCompression/bandwidthLimit/poolCount/metadatas/annotations;Remote 增加 transportProtocol/transportTls/transportPool/transportTlsServerName;新增 migrate() ALTER TABLE 迁移旧库
- render: 输出 transport 段(protocol/tls/poolCount)与 proxy 高级字段;补 TestRenderTransportAdvanced/OmittedWhenEmpty
- main: renderRemote 闭包透传 M1 字段到 render.Proxy
- web: LocalNode/RemoteNode 折叠高级区表单,types.ts 接口扩展
- 验证:go test 全绿、vue-tsc/build 通过、端到端 PUT canvas→frpc JSON 输出完整
|
2026-08-17 12:28:54 +08:00 |
|
|
|
e73bd834a1
|
style(web): 保持 vite.config.ts 单引号风格
|
2026-08-17 12:11:30 +08:00 |
|
|
|
7128a8c041
|
chore(web): tsconfig 显式声明 node 类型供 vite.config.ts 使用
types: [node, vite/client] 替代 @vue/tsconfig 默认的空 types(避免 process 未定义);@types/node 已加入 devDependency
|
2026-08-17 12:10:00 +08:00 |
|
|
|
45346405c2
|
fix: vite dev proxy 端口对齐 7500(支持 VITE_PROXY_TARGET 覆盖)
原指向 127.0.0.1:17650 与后端默认 -addr 127.0.0.1:7500 不符;同步 @types/node devDependency 并纳入 tsconfig
|
2026-08-17 12:07:14 +08:00 |
|
|
|
5237e3b594
|
fix: 注册 PUT /api/manager/settings 使设置保存生效
server.go NewServeMux 按方法分发到 handleSettingsPut(原仅注册 GET,PUT 静默返回旧值)
新增 TestSettingsPutRoundTrip 回归测试;gofmt 清理历史格式问题
|
2026-08-17 12:00:34 +08:00 |
|
|
|
1cd0ab8ad1
|
docs: 记录代码审查结果与已知问题;忽略 .pi/ 本地代理状态
|
2026-08-17 11:56:30 +08:00 |
|
|
|
c1936887a2
|
webui4frpc: 独立可用的可视化 frpc 控制器 (M0)
- 零 frp 源码依赖,单二进制 (Go + Vue3 + VueFlow + Element Plus)
- 画布多对多连线,渲染 tcp/udp/http/https frpc 配置
- worker 进程管理:自愈、日志轮转、崩溃退避重启
- frpc 一键安装 (GitHub Releases) + 手动指定路径
- 三页 UI:状态(默认)/连接配置/设置
- 状态页实时节点/转发状态,节点可增删改启停
- 画布冲突检查:端口/域名冲突标红 + 弹窗拦截保存
- backend 单测覆盖 store/render/process/httpapi/install
- plan.md + FRPC_FEATURES_AUDIT.md 文档
|
2026-08-17 11:00:26 +08:00 |
|