Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
fc3ec99
feat: remove auto-updater module and upgrade `sing` and `sing-box` de…
kyson-dev Mar 1, 2026
cdc7186
refactor: comprehensive project restructuring
kyson-dev Mar 1, 2026
1ed2a65
refactor: optimize architecture organization and naming
kyson-dev Mar 1, 2026
2100507
refactor: restructure engine package into config and module subpackages
kyson-dev Mar 1, 2026
02afdbe
refactor: restructure into DDD-inspired core, sys, proxy, and app layers
kyson-dev Mar 1, 2026
7d91c26
refactor: move logger bridge from sys/logger to proxy/engine
kyson-dev Mar 1, 2026
09fb0cc
refactor: extract daemon lock from env and rename env to paths
kyson-dev Mar 1, 2026
cea831b
refactor: extract daemon runtime meta out of sys/paths
kyson-dev Mar 1, 2026
04b0e2a
refactor: simplify runtime meta path management
kyson-dev Mar 1, 2026
30e5da5
refactor: reorganize proxy configuration into a dedicated `config` pa…
kyson-dev Mar 1, 2026
9902ac1
refactor(proxy): abstract outbound nodes into NodeProvider
kyson-dev Mar 1, 2026
bad2b3b
refactor(proxy): abstract subscription parsing into ProtocolAdapters
kyson-dev Mar 1, 2026
c652146
refactor(proxy): abstract routing constants and default rule fragments
kyson-dev Mar 1, 2026
6dccd17
refactor(proxy): decouple adapter from subscription to solve import c…
kyson-dev Mar 1, 2026
ce7db18
refactor: Restructure config parsing and module utilities, moving par…
kyson-dev Mar 1, 2026
1c8f39b
refactor(proxy): centralize global deduplication pipeline in Outbound…
kyson-dev Mar 1, 2026
6210ff7
fix(proxy): inject rule_set format for backward compatibility with si…
kyson-dev Mar 1, 2026
44c7ab4
refactor: Migrate core models and versioning to `sys` and `proxy/conf…
kyson-dev Mar 2, 2026
958bd9c
refactor: Consolidate mixed and tun inbound logic into a new inbounds…
kyson-dev Mar 2, 2026
a89caa4
feat: introduce dedicated DNS and Inbounds modules, refactor Outbound…
kyson-dev Mar 2, 2026
6f43712
feat: Implement conditional `tun.address` downgrade for version compa…
kyson-dev Mar 2, 2026
390ae61
refactor: explicitly support sing-box 1.11.4 and latest for config ex…
kyson-dev Mar 2, 2026
b4f0b8d
chore: update .gitignore and remove temporary log file
kyson-dev Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 0 additions & 100 deletions .agent/DIRECTORY_STRUCTURE.md

This file was deleted.

18 changes: 0 additions & 18 deletions .agent/task_analyze_memory_leak.md

This file was deleted.

6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@

# Test binary, built with `go test -c`
*.test
refactor.md
serve_log.txt

# Output of the go coverage tool, specifically when used with Litmus
*.out
Expand All @@ -19,6 +21,7 @@
# Build artifacts
bin/


# IDEs and editors
.idea/
.vscode/
Expand Down Expand Up @@ -46,3 +49,6 @@ geoip.db
geosite.db
cache.db
sing-helm

.gemini/
gha-creds-*.json
40 changes: 40 additions & 0 deletions .tmp/check_serve_config.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package main

import (
"encoding/json"
"fmt"

"github.com/kyson-dev/sing-helm/internal/proxy/config"
"github.com/kyson-dev/sing-helm/internal/proxy/config/export"
"github.com/kyson-dev/sing-helm/internal/proxy/config/model"
"github.com/kyson-dev/sing-helm/internal/sys/paths"
)

func main() {
_ = paths.Init("")
runops := model.DefaultRunOptions()
runops.ProxyMode = model.ProxyModeTUN
runops.RouteMode = model.RouteModeRule
runops.APIPort = 9090
runops.MixedPort = 7890
opts, err := config.BuildOptions(&runops)
if err != nil { panic(err) }
data, err := export.Export(opts, export.Target{Version: "1.11.4", Platform: "ios"})
if err != nil { panic(err) }

var root map[string]any
if err := json.Unmarshal(data, &root); err != nil { panic(err) }

route, _ := root["route"].(map[string]any)
fmt.Println("route.final=", route["final"])

outbounds, _ := root["outbounds"].([]any)
for _, o := range outbounds {
ob, _ := o.(map[string]any)
tag, _ := ob["tag"].(string)
if tag == "proxy" || tag == "auto" || tag == "direct" || tag == "block" {
b, _ := json.Marshal(ob)
fmt.Println(string(b))
}
}
}
15 changes: 15 additions & 0 deletions .tmp/validate_export.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package main

import (
"context"
"fmt"
"github.com/kyson-dev/sing-helm/internal/proxy/config"
)

func main() {
_, err := config.LoadOptionsWithContext(context.Background(), "bin/singbox-config-1.11.4-ios.json")
if err != nil {
panic(err)
}
fmt.Println("ok")
}
2 changes: 1 addition & 1 deletion cmd/sing-helm/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package main
import (
"os"

"github.com/kyson-dev/sing-helm/internal/cli"
"github.com/kyson-dev/sing-helm/internal/app/cli"
_ "github.com/sagernet/sing-box/include"
)

Expand Down
Loading
Loading