sagit
1d19d68019
Merge pull request #22 from Sagit-chu/feat/failover-debug-logging
...
feat(gost): add debug logging for failover mechanism analysis
2.0.13-beta4
2026-02-05 09:09:09 +08:00
root
09c58e2298
feat(gost): add debug logging for failover mechanism analysis
...
Add debug logs to trace failover behavior:
- FailFilter.Filter(): log node name, fail count, maxFails, timeSince, failTimeout
- hop.Select(): log excludeNodes list, node selection results
- handler retry loop: log maxRetries, selected nodes, dial failures
This helps diagnose issues where failover between multiple target nodes
is not working as expected.
2026-02-05 01:06:56 +00:00
sagit
583905b7ed
Merge pull request #21 from Sagit-chu/opencode/neon-nebula
...
fix(gost): use chain.NewNode() to properly initialize marker for fail…
2.0.13-beta3
2026-02-05 07:29:15 +08:00
sagit
6e3f045b9b
Merge branch 'main' into opencode/neon-nebula
2026-02-05 07:26:49 +08:00
root
ec41202b3c
fix(gost): use chain.NewNode() to properly initialize marker for failover
...
When creating temporary Node instances with struct literals like
&chain.Node{Addr: host}, the marker field was not initialized.
Only chain.NewNode() properly initializes marker = selector.NewFailMarker().
Without a valid marker:
- Failed nodes cannot be marked (marker.Mark() is no-op on nil)
- Subsequent selections cannot filter out failed nodes
- Failover mechanism completely fails
Fixed locations:
- sniffer.go dial(): &chain.Node{Addr: host} -> chain.NewNode("", host)
- sniffer.go dialTLS(): &chain.Node{Addr: host} -> chain.NewNode("", host)
- local/handler.go: target := &chain.Node{} -> var target *chain.Node
- remote/handler.go: &chain.Node{Addr: host} -> chain.NewNode("", host)
2026-02-04 23:10:56 +00:00
sagit
1ee7dea8b4
Merge pull request #20 from Sagit-chu/Sagit-chu-patch-1
...
change beta to main
2026-02-04 16:55:44 +08:00
sagit
2d69350bab
change beta to main
2026-02-04 16:54:15 +08:00
sagit
c984e5b62a
docs: remove stable installation instructions
...
docs: remove stable installation instructions
2026-02-04 16:53:06 +08:00
sagit
5b79b11101
Merge branch 'beta' into opencode/calm-sailor
2026-02-04 16:50:28 +08:00
root
2c22e600f7
docs: remove stable installation instructions
2026-02-04 08:46:41 +00:00
sagit
aef284c474
Merge pull request #18 from Sagit-chu/opencode/sunny-wizard
...
fix(gost): sync agent version with release tag
2026-02-04 16:29:24 +08:00
root
0443cd9ceb
fix(gost): sync agent version with release tag
...
- Change version.go default to 'dev' for local development
- Use version variable in WebSocket reporter instead of hardcoded '2.0.2'
- Inject version via -ldflags in CI build from tag name
2026-02-04 08:22:37 +00:00
sagit
3337422775
Merge pull request #17 from Sagit-chu/opencode/curious-nebula
...
fix(gost): add fallback when FailFilter excludes all nodes
2.0.13-beta2
2026-02-04 15:52:19 +08:00
root
3e046fc80e
fix(gost): restore single-node bypass and preserve FailFilter backoff
...
Address reviewer feedback from PR #14 fix:
1. Single-node case: Bypass selector/FailFilter to ensure availability.
This matches upstream go-gost/x behavior - single nodes should always
be attempted regardless of recent failures.
2. Multi-node case: Preserve FailFilter's backoff contract. When all nodes
are marked as failed, return nil to signal 'no healthy nodes' rather
than falling back to a known-bad node. This prevents hammering unhealthy
nodes and respects the failTimeout window.
The handler's retry loop with ExcludeNodes context handles the multi-node
failover properly - this change ensures hop.Select() provides correct
information about node health status.
Fixes intermittent forwarding failures introduced by #14 .
2026-02-04 07:46:40 +00:00
root
0273bc6921
docs: add AGENTS.md for go-gost/x/registry
2026-02-04 06:36:03 +00:00
sagit
be095057bd
Merge pull request #14 from Sagit-chu/opencode/cosmic-pixel
...
fix(gost): implement failover for multi-node forwarding rules
2.0.13-beta1
2026-02-04 12:30:49 +08:00
root
a98057d06a
fix(gost): implement failover for multi-node forwarding rules ( #12 )
...
When a forwarding rule has multiple backend nodes configured, the first
node failure would cause the entire forward to fail instead of trying
the next available node.
Root causes fixed:
- FailFilter skipped filtering when only 1 node remained
- hop.Select() bypassed selector for single-node hops
- Handlers only attempted one node before giving up
Changes:
- selector/filter.go: Remove len<=1 early return, always filter failed nodes
- hop/hop.go: Remove single-node bypass, add ExcludeNodes context support
- ctx/value.go: Add ContextWithExcludeNodes/ExcludeNodesFromContext helpers
- handler/forward/local: Add maxRetries config, implement retry loop
- handler/forward/remote: Add maxRetries config, implement retry loop
- forwarder/sniffer.go: Add retry logic to dial() and dialTLS()
Closes #12
2026-02-04 04:12:38 +00:00
root
7d47903541
fix(ci): use legacy-peer-deps and add react-is dependency
...
- Use --legacy-peer-deps to resolve heroui peer dependency conflicts
- Add react-is required by recharts
2026-02-04 02:42:46 +00:00
root
a7aabdd1dd
fix(ci): remove npm cache to fix missing package-lock.json error
2026-02-04 02:34:08 +00:00
root
0357a92960
fix: 修复limit.tsx和forward.tsx的JSX语法错误
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2.0.12-beta5
2026-02-04 02:31:26 +00:00
root
8ff41c962e
ci: add build check workflow and restrict release to tags only
...
- Add ci-build.yml for frontend/backend/agent compilation checks on push/PR
- Modify docker-build.yml to trigger only on version tags (not branches)
2026-02-04 02:27:29 +00:00
root
6f6fececa8
style: 美化用户隧道权限分配表单UI并统一代码格式
...
- 使用HeroUI Checkbox组件替换原生checkbox
- 重构隧道列表为card-based tile风格
- 添加选中/未选中/已分配状态视觉区分
- 应用eslint --fix代码格式统一
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-04 02:22:28 +00:00
root
72c2e28667
fix: 移除未使用的变量修复TypeScript编译错误
2.0.12-beta4
2026-02-03 15:55:30 +00:00
sagit
74c78851ca
Merge pull request #11 from Sagit-chu/opencode/neon-rocket
...
feat: 简化用户隧道权限分配,支持多选隧道批量分配 (#8 )
2026-02-03 23:28:55 +08:00
root
42732f844a
fix: 为嵌套的TunnelAssignItem添加@Valid注解确保校验生效
2026-02-03 15:16:43 +00:00
root
99b8ac206a
fix: 批量分配时对请求中的重复tunnelId进行去重
...
防止同一请求中包含重复tunnelId导致创建多条权限记录
2026-02-03 14:43:34 +00:00
root
0e5cd86ed1
feat: 简化用户隧道权限分配,支持多选隧道批量分配 ( #8 )
...
- 新增批量分配接口 POST /tunnel/user/batch-assign
- 支持一次选择多个隧道进行分配
- 每个隧道可单独设置限速规则
- flow/num/flowResetTime/expTime 自动从用户设置继承
- 前端表单简化为隧道多选列表+限速选择
- 已分配的隧道显示'已分配'标记且不可重复选择
2026-02-03 13:59:05 +00:00
root
60fc80b6ac
fix: 节点更新时serverIpV4/V6/域名字段无法正确清空的问题
...
使用LambdaUpdateWrapper替代updateById以确保null值能正确更新到数据库
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2.0.12-beta3
2026-02-03 12:57:39 +00:00
root
c8f0c55fda
fix: 隧道新增入口节点后转发管理的入口IP不自动更新
2.0.12-beta2
2026-02-03 11:30:31 +00:00
root
bfdaa47ea5
修复隧道编辑新增入口节点后转发规则不生效的问题 ( #9 )
...
当编辑隧道添加新入口节点时,现有转发规则的ForwardPort和GOST服务未同步更新,
导致新入口节点的端口实际不可用。
修复方案:在updateTunnel成功更新节点后,同步更新所有使用该隧道的转发规则:
- 对移除的入口节点:删除ForwardPort记录和GOST服务
- 对新增的入口节点:分配端口、创建ForwardPort记录和GOST服务
2.0.12-beta1
2026-02-03 09:28:38 +00:00
sagit
d7b76b4590
Update README.md
2026-02-02 15:51:24 +08:00
root
2c2262b55d
完善分层 AGENTS.md,便于快速定位代码
2.0.11
2026-02-02 07:41:27 +00:00
root
7ca01aba5d
修复转发管理隧道下拉顺序不同步
2.0.11-beta6
2026-02-02 06:28:45 +00:00
sagit
0f57ec58b3
Merge pull request #10 from Sagit-chu/opencode/silent-falcon
...
优化拖拽排序顺滑度
2.0.11-beta5
2026-02-02 12:55:09 +08:00
root
ac30f0172f
修复平铺模式用户切换与图表TS构建
2026-02-02 04:50:22 +00:00
root
531ba0bfed
新建隧道默认追加到末尾
2026-02-02 03:29:47 +00:00
root
d787e4b07a
优化拖拽排序顺滑度
2026-02-02 03:14:18 +00:00
root
68e5d0ac0b
修复节点监控进度条频繁重置
2.0.11-beta4
2026-02-01 15:39:23 +00:00
root
38b70821c5
节点监控离线延迟去抖
2.0.11-beta3
2026-02-01 14:41:23 +00:00
root
936158dd32
节点地址输入支持域名
2.0.11-beta2
2026-02-01 12:34:31 +00:00
root
e0d0553fd3
修复v6-only入口优先选择出口IPv6
2026-02-01 12:34:31 +00:00
root
78aa86b23c
前端版本号从tag注入并提交本地配置
2026-02-01 12:10:17 +00:00
root
1f850593dd
节点管理页支持填写IPv4/IPv6
2.0.11-beta
2026-02-01 11:14:19 +00:00
root
c4519c243a
组隧道链路按地址族自动匹配节点IP(v4优先)
2026-02-01 11:14:19 +00:00
root
31ccc48436
启动时迁移并回填节点双栈IP列
2026-02-01 11:14:19 +00:00
root
1c4914ec77
支持节点双栈IP字段
2026-02-01 11:14:19 +00:00
sagit
71c40127d5
Merge pull request #2 from Sagit-chu/opencode/sunny-island
...
fix: fix some bugs
2.0.10
2026-01-31 13:56:12 +08:00
root
aac1d63ac0
feat: enable drag-sort in node monitoring
2026-01-31 05:52:52 +00:00
root
8222b31917
feat: enable drag-sort in tunnel management
2026-01-31 05:52:39 +00:00
root
81c9c117a2
feat: add tunnel/node update-order API clients
2026-01-31 05:52:26 +00:00