github shenaba/2s-ui v1.6.4

latest releases: v1.8.3, v1.8.2, v1.8.1...
one month ago

Enhancements

apiv2 node fanout #99, reported in #94

  • POST apiv2/save honours a sync value: push to nodes now, or let the hourly reconcile converge
  • Malformed sync values are rejected instead of silently skipping the fanout
  • Client drawer: links no longer truncated, node links render read-only, copy-all button for bulk import

Bug Fixes

Cluster sync #99

  • Every @cluster client was re-pushed on every reconcile round
  • Node pushes wiped the node's traffic history
  • editbulk silently switched off periodic auto-reset
  • A stale tab stripped every cluster route from a client's subscription
  • Traffic reset left paid-up users rejected for up to an hour
  • Per-client auto-reset re-enable never reached the nodes
  • The [node] link marker had four encodings; now one
  • ConfigService.Save ran commit, notify and core start after a failed request
  • Duplicate client names are rejected — apiv2 bypassed the SPA's only check
  • Transactions take the write lock at BEGIN, ending SQLITE_BUSY on read-modify-write
  • normalizeHost also sanitises the configured web domain
  • The enable/disable toggle no longer rolls back counters the stats job recorded

Subscriptions #95, reported in #89

  • A client on an adopted node inbound got that route twice; sing-box and mihomo reject the whole config on a duplicate tag
  • Adoption clears tls_id, so that second copy also lost flow and could not connect over reality + xtls-rprx-vision
  • Tag uniqueness now settles across every source, not just within the links

Ported from s-ui v1.5.5 #100

  • naive links follow the inbound's network: naive+https / naive+quic next to the legacy http2://
  • ShadowTLS seeds handshake.server_port 443 — without it the inbound failed to start
  • Hand-written rule-sets survive a chip edit
  • Site-Private and IP-Private chips carried each other's value

Found while reviewing that port #100

  • create* handed every new entity the same nested objects: a ShadowTLS handshake port leaked into the next inbound, plus 14 other sites
  • Edits to built-in rule-sets are no longer reset by a chip click
  • A non-array rule_set from the JSON editor crashed the chip setters
  • The naive links per address are named -h2 / -h3 instead of all alike

Chores

  • Dependency bumps: sing-box 1.13.18, frontend group #98, gomod group #97
  • CI runs go test in the backend job #96
  • Test scaffolding for the service and api packages, with an in-memory SQLite fixture #99

Full Changelog: v1.6.3...v1.6.4

Don't miss a new 2s-ui release

NewReleases is sending notifications on new releases.