Commit Graph

  • 092cbd55e4 fix(x-ui.sh): read the service state without scanning the journal MHSanaei 2026-09-27 18:19:48 +02:00
  • c8a182b6fb fix(wireguard): reject allowedIPs that overlap another client's range MHSanaei 2026-09-27 18:18:50 +02:00
  • 4df570b3b0 fix(tgbot): build a client's individual links in-process MHSanaei 2026-09-27 18:07:33 +02:00
  • 3308c816db fix(i18n): scope the empty Min Client Ver hint to cores that honour it MHSanaei 2026-09-27 17:59:39 +02:00
  • 09617f04f5 feat(panel): let a sponsor slot start at a scheduled time MHSanaei 2026-09-27 16:30:20 +02:00
  • 044e2926a0 fix(amneziawg): let the wrapped bind build peer endpoints MHSanaei 2026-09-27 16:14:45 +02:00
  • 75f3702dd3 fix(amneziawg): fall back to a free egress port when 64900 is refused MHSanaei 2026-09-27 16:09:54 +02:00
  • 8f47b53879 style(settings): fold the Happ settings into four tabs MHSanaei 2026-09-27 16:06:42 +02:00
  • a33b2341e9 style(clients): put Traffic Reset and Auto renewal on one row MHSanaei 2026-09-27 16:06:36 +02:00
  • 3fc3992a46 fix(nodetoken): stop refusing every node-token key file on Windows MHSanaei 2026-09-27 15:55:42 +02:00
  • ff322f901a fix(panel): skip the proxy env forwarding test on Windows MHSanaei 2026-09-27 15:32:22 +02:00
  • 249b38e156 fix(logger): reuse the open log rotator when InitLogger runs again MHSanaei 2026-09-27 15:32:20 +02:00
  • 18b337d131 fix(database): close the pool a second InitDB replaces MHSanaei 2026-09-27 15:32:17 +02:00
  • f6a1a3bbd1 chore(git): check out every text file with LF, not only Go and scripts MHSanaei 2026-09-27 15:17:34 +02:00
  • a579357343 refactor(logger): choose the console backend with build tags MHSanaei 2026-09-27 15:05:01 +02:00
  • 7aa5fc085f feat(tgbot): access levels and /start account binding (#6518) pcxzs 2026-09-27 15:03:29 +03:30
  • 6f40a75909 feat(inbound): excludeFromSub hides links without disabling (#6463) mrchatam 2026-09-27 13:56:37 +03:30
  • 12d51d7195 perf(tests): copy a migrated template DB instead of migrating per test MHSanaei 2026-09-27 03:04:50 +02:00
  • 33a469315a feat(clients): preserve traffic counters in portable export/import (#6469) mrchatam 2026-09-27 04:18:40 +03:30
  • ac43b19cfa chore(ci): stop release and CodeQL runs on PRs, drop deploy smoke tests MHSanaei 2026-09-27 02:44:14 +02:00
  • 0ef94b686e feat(tgbot): add /broadcast to relay an admin message to all clients (#6510) DIMFLIX 2026-09-27 02:43:32 +03:00
  • 71e38367c1 feat(sub): add Incy app-management parameters (#6650) DIMFLIX 2026-09-27 02:06:17 +03:00
  • bd9ccde1f4 feat(sub): make external subscription fetch User-Agent configurable (#6613) mrchatam 2026-09-27 01:06:33 +03:30
  • 9672249edb feat(clients): add calendar weekly renewal and schedule previews (#6524) Jack 2026-09-27 04:59:23 +08:00
  • 5e15120cec feat(happ): add routing editor, optional ad blocking, and LAN bypass preset (#6545) NgaiYeanCoi 2026-09-27 04:57:01 +08:00
  • 94fa317e76 chore(gen): regenerate types for addrFamily MHSanaei 2026-09-26 22:46:04 +02:00
  • 788b76c544 fix(amneziawg): sniff the relay with routeOnly; scope the v6 egress to IPv6 (#6654) Kirill Rudenko 2026-09-26 23:04:08 +03:00
  • 6ac0c88084 fix(xray): hot-apply Hysteria client changes without replacing the inbound (#6606) SERGE BLCHV 2026-09-27 01:03:43 +05:00
  • 6ab718f813 fix(sub): make Happ require auth on its local SOCKS/HTTP proxy (#6628) Kirill Rudenko 2026-09-26 23:03:20 +03:00
  • 8979072bd9 fix(amneziawg): bound S1-S3 by the receive buffer, reject overlapping H (#6642) Kirill Rudenko 2026-09-26 23:02:49 +03:00
  • f3b100282a fix: allow IPv4 and IPv6 inbounds to share a port (#6603) Xinny Lin 2026-09-27 04:02:22 +08:00
  • bd01f923fb fix(tgbot): unstick the add-client wizard's inbound picker (#6621) Roman Chesnakov 2026-09-27 03:01:56 +07:00
  • b3a5be9da4 fix(amneziawg): stop AAAA fallback on v4-only tunnels and expose I2–I5 (#6611) mrchatam 2026-09-26 23:31:04 +03:30
  • 8f1201553e fix(ip-limit): CAS-retry inbound_client_ips merges under Postgres (#6612) mrchatam 2026-09-26 23:30:40 +03:30
  • d42e2133c7 fix(sub): keep serverDescription literal in external link fragments (#6580) sdhfsl 2026-09-27 04:00:09 +08:00
  • a2ca023336 fix(sub): send panel guid as X-HWID on outbound subscription fetch (#6579) sdhfsl 2026-09-27 03:59:29 +08:00
  • 3fe92df7ad docs: adopt correct-fix-over-small-fix and TDD policy MHSanaei 2026-09-26 21:58:25 +02:00
  • 169cd86e00 fix(sub): never use X-Real-IP as the subscription host (#6608) mrchatam 2026-09-26 22:43:46 +03:30
  • 66df77665f test(database): give each package its own schema when tests run on PostgreSQL (#6594) n0ctal 2026-09-27 00:13:42 +05:00
  • c54c28d92d fix(sub): drop legacy freedom.domainStrategy from JSON sub template (#6609) mrchatam 2026-09-26 22:43:39 +03:30
  • 5d41e65a3c fix(sub): preserve external VLESS encryption in Clash subscriptions (#6576) SakikoTogawa 2026-09-27 02:31:50 +08:00
  • 0dec3d65ba fix(sub): preserve per-inbound tunnel identity in subscriptions (#6653) Matt Van Horn 2026-09-26 11:31:47 -07:00
  • 07ee638a50 fix(sub): emit Hysteria certificate pin for Mihomo (#6651) libmur-dev 2026-09-26 21:31:42 +03:00
  • ee2ff48c81 fix(tgbot): scope the add-client wizard to the admin, not the chat (#6604) sdhfsl 2026-09-27 02:31:39 +08:00
  • 3b9ca47a4e fix(database): keep the legacy tag cleanup from colliding with an existing tag (#6592) n0ctal 2026-09-26 23:30:25 +05:00
  • c0c0136037 fix(hwid): serialize the device-limit write with its trim (#6591) n0ctal 2026-09-26 23:30:22 +05:00
  • d86a3def85 fix(ip-limit): append fail2ban lines only after the scan commits (#6590) n0ctal 2026-09-26 23:30:18 +05:00
  • dcaadd4857 fix(panel): validate sponsor logo name before any file or network use MHSanaei 2026-09-26 12:40:31 +02:00
  • fd7b3559bc feat(panel): add sponsor slots fed from sponsors.sanaei.dev MHSanaei 2026-09-26 03:31:51 +02:00
  • 89e200ead4 fix(frontend): key geo entries by page position and clear test-suite noise MHSanaei 2026-09-25 21:21:03 +02:00
  • a03228c455 ci: update Claude workflow model settings MHSanaei 2026-09-25 19:19:50 +02:00
  • 86302d2f2d chore(deps): update toolchains and dependencies MHSanaei 2026-09-25 17:23:55 +02:00
  • 95f19b192f fix(nodes): stop a restarting panel from reporting itself as down Farhan Zare 2026-09-18 06:25:24 -04:00
  • 1c0ce80e8e fix(ci): keep a refused Claude credential from reddening a pull request (#6585) BlindMaster24 2026-09-17 10:54:12 +03:00
  • f8db7f6c29 fix(nodes): say which half of node mTLS failed, and say it as an error (#6565) n0ctal 2026-09-16 15:30:44 +05:00
  • 536f9a6338 fix(tgbot): localize QR caption via I18nBot (#6564) sdhfsl 2026-09-16 18:23:42 +08:00
  • d59b77bcdb fix(sub): send stable X-HWID on external subscription fetch (#6567) sdhfsl 2026-09-16 18:16:26 +08:00
  • 17e89db979 feat(hosts): add a cipher suites override and accept custom suites Sanaei 2026-09-16 11:56:20 +02:00
  • 040d01c5dc fix(clients): list HWID devices when the HWID limit is 0 Sanaei 2026-09-16 11:50:49 +02:00
  • b78dd82869 fix(nodes): chart node net throughput in KB/s, not percent Sanaei 2026-09-16 11:48:55 +02:00
  • 7ef22f94c9 fix(logger): fix data race in InitLogger v3.8.5 Sanaei 2026-09-16 02:29:42 +02:00
  • ec9fbae645 v3.8.5 Sanaei 2026-09-16 02:08:08 +02:00
  • e26cf1d3ed feat(sub): redesign the subscription page around usage, tabs and app imports Sanaei 2026-09-16 01:17:04 +02:00
  • 01ce2bcecb feat(api-docs): split the API docs page into tabs Sanaei 2026-09-15 23:01:15 +02:00
  • c9e62451e6 fix(outbounds): keep subscription tags on their server when reality params rotate Sanaei 2026-09-15 22:39:59 +02:00
  • 5008906c4c feat(clients): filter the client list by clicking a summary stat card Sanaei 2026-09-15 22:06:22 +02:00
  • 5fe4f241c1 style(logs): widen the row-count selector in the log modals Sanaei 2026-09-15 22:06:21 +02:00
  • e8bab17c2f fix(clients): stop the Edit Client modal showing a stray light scrollbar Sanaei 2026-09-15 22:04:00 +02:00
  • 14b92fbcff fix(nodes): stop flagging a node on the other update channel as outdated Sanaei 2026-09-15 21:21:36 +02:00
  • 1d85ef138e fix(sub): prevent default profile page URL disclosure (#6538) NgaiYeanCoi 2026-09-16 03:13:29 +08:00
  • 3fa44915c1 perf(nodes): keep the node table element across unrelated re-renders Sanaei 2026-09-15 21:06:32 +02:00
  • 7fc86f87de perf(inbounds): keep unchanged rows and online sets across websocket pushes Sanaei 2026-09-15 21:06:32 +02:00
  • 3c1498d806 fix(ldap): apply LDAP enable, disable and cleanup through the bulk paths Sanaei 2026-09-15 21:06:32 +02:00
  • d1c4e0261b chore(node): cover the sync tick's online prune from the job package Sanaei 2026-09-15 20:39:32 +02:00
  • bc49c1a68f fix(node): release a deleted node's metric series and HTTP client Sanaei 2026-09-15 20:39:32 +02:00
  • 3c8cf35734 perf(node): sync up to 32 nodes at once, like the heartbeat Sanaei 2026-09-15 20:22:19 +02:00
  • dea7cd9cc1 fix(traffic): reset due inbounds and clients concurrently Sanaei 2026-09-15 20:07:19 +02:00
  • 56bb876d8d fix(node): send one alert for a burst of node transitions Sanaei 2026-09-15 20:07:19 +02:00
  • eb11e8c85a fix(node): fan out operations that call every node Sanaei 2026-09-15 20:07:18 +02:00
  • a84bbeab2e fix(node): drop online clients and sub-nodes of nodes no longer synced Sanaei 2026-09-15 19:27:38 +02:00
  • ea66aa4971 fix(traffic): push depletion changes to nodes off the serial writer Sanaei 2026-09-15 19:04:55 +02:00
  • cfa8350d10 fix(clients): keep a vless reverse client's handler across a re-add (#6558) BlindMaster24 2026-09-15 18:00:54 +03:00
  • af466b6a24 fix(node): push a node only the client IPs it hosts Sanaei 2026-09-15 16:28:31 +02:00
  • 789a03065a chore(docs): bump dependencies and adapt to fumadocs-core 16.15.11 Sanaei 2026-09-15 15:58:33 +02:00
  • bc424f0968 fix(xray): stop a lone dns qType 0 from matching every query Sanaei 2026-09-15 15:45:01 +02:00
  • ac3fc12077 fix(ports): refuse an inbound on a port an AmneziaWG peer forwards (#6554) BlindMaster24 2026-09-15 16:58:21 +03:00
  • d9c7c76fb0 fix(limit-ip): leave a reverse client out of the temporary disconnect (#6553) BlindMaster24 2026-09-15 16:57:23 +03:00
  • d440c2b932 fix(panel): accept 2FA codes from adjacent TOTP windows (#6546) sdhfsl 2026-09-15 20:42:30 +08:00
  • e790f46757 fix(xray): restart when a diff strands a client's live session (#6550) BlindMaster24 2026-09-15 15:39:40 +03:00
  • d089adeeea docs(limit-ip): correct what the temporary disconnect can actually do (#6551) BlindMaster24 2026-09-15 15:30:55 +03:00
  • 4a8fdceed6 perf(nodes): reuse one pooled client per node instead of rebuilding it (#6548) BlindMaster24 2026-09-15 15:29:49 +03:00
  • 574caa63e9 fix(inbounds): check ports when an inbound is enabled, not only when it is saved (#6549) BlindMaster24 2026-09-15 15:29:32 +03:00
  • baef3cdd07 fix(xray): refuse a config the running core cannot bind (#6547) BlindMaster24 2026-09-15 15:27:28 +03:00
  • 43e64993fc fix(amneziawg): refuse a row's own relay port and keep a disabled row's slot reserved (#6544) BlindMaster24 2026-09-15 13:31:07 +03:00
  • d52b598abf fix(amneziawg): reserve the relay port before an AmneziaWG inbound has a peer (#6542) BlindMaster24 2026-09-15 11:49:18 +03:00
  • 2d8d304850 fix(amneziawg): stop a disabled inbound's relay slot from being taken (#6540) BlindMaster24 2026-09-15 11:33:02 +03:00
  • a036ddd66f fix(amneziawg): wrap the relay port window instead of refusing ids past it (#6539) BlindMaster24 2026-09-15 10:07:14 +03:00
  • 78ab7a9246 fix(amneziawg): read the outbound pseudo-protocol id like the core (#6531) BlindMaster24 2026-09-15 08:23:18 +03:00
  • a810f497e6 fix(xray): read the last two inboundTag protocol ids like the core (#6530) BlindMaster24 2026-09-14 21:18:31 +03:00
  • 837addf66e v3.8.0 v3.8.0 Sanaei 2026-09-14 19:11:03 +02:00