3x-ui/internal
n0ctal f5e50038f0
fix(nodes): block node delete while inbounds are still attached (#5394)
NodeService.Delete dropped the node row (and its per-node child rows) without
checking for inbounds still referencing it via node_id, leaving orphaned
inbounds with a dangling node_id that confuse node sync, subscriptions and
cleanup. Refuse the delete with a clear error when inbounds are still attached,
and remove the per-node child rows before the node row inside one transaction.
Delete stays tolerant of a missing node row so it can still clean up orphaned
rows. Regression test covers the blocked and clean-delete paths.
2026-06-20 01:09:53 +02:00
..
config Test-quality audit: fix 2 prod bugs, strengthen weak tests, add mutation/fuzz/CI tooling (#5345) 2026-06-15 15:17:03 +02:00
database refactor(frontend): move form-item hints from extra to tooltip 2026-06-17 17:24:16 +02:00
eventbus feat(notifications): event bus architecture with Telegram and SMTP subscribers (#5326) 2026-06-15 21:03:41 +02:00
logger refactor(frontend): move form-item hints from extra to tooltip 2026-06-17 17:24:16 +02:00
mtproto refactor(frontend): move form-item hints from extra to tooltip 2026-06-17 17:24:16 +02:00
sub fix(sub): preserve non-default scMinPostsIntervalMs and use per-inbound xmux in JSON subscriptions (#5393) 2026-06-20 00:57:47 +02:00
util fix(jobs): isolate per-node background goroutines from panics (#5397) 2026-06-20 00:38:25 +02:00
web fix(nodes): block node delete while inbounds are still attached (#5394) 2026-06-20 01:09:53 +02:00
xray fix(xray): guard process lifecycle fields against concurrent access (#5395) 2026-06-20 00:37:03 +02:00