Commit Graph

  • f727d04f65 v3.7.0 main v3.7.0 Sanaei 2026-08-24 15:07:15 +02:00
  • fcf60eb2e2 chore: bump dependencies and clear deprecated frontend APIs dev-latest Sanaei 2026-08-24 14:56:40 +02:00
  • 103b0dfe8d fix(job): expire stored client IPs of offline clients Sanaei 2026-08-24 13:27:40 +02:00
  • 2d30ab3ada fix(panel): stop one poisoned DNS answer from blocking outbound tests Sanaei 2026-08-24 13:27:40 +02:00
  • d175050f2e fix(job): force-disconnect over-limit Hysteria2 clients Sanaei 2026-08-24 13:27:40 +02:00
  • 7a595cb46d fix(sub): keep Hysteria2 mport on external-proxy links Sanaei 2026-08-24 13:27:39 +02:00
  • f13baa9af5 fix(tgbot): split long messages at line boundaries (#6293) Sangeeth Thilakarathna 2026-08-24 16:33:37 +05:30
  • 9408424959 fix(panel): forward the panel's proxy to update.sh's own downloads (#6259) Kuzz007 2026-08-24 04:01:56 +03:00
  • f204997c98 chore(i18n): update tr-TR translations (#6288) Turan 2026-08-24 03:47:45 +03:00
  • effcccceac feat(amneziawg): add native AmneziaWG protocol support (#6105) Kuzz007 2026-08-24 03:41:15 +03:00
  • d9b599b9aa fix(sub): forward tlsSettings.cipherSuites into the JSON subscription Sanaei 2026-08-24 02:38:40 +02:00
  • cc245a908e style: format struct literals and whitespace Sanaei 2026-08-24 00:06:01 +02:00
  • c26ff59b47 chore(sub): drop the inlined externalLinkEnabled test helper Sanaei 2026-08-23 23:18:49 +02:00
  • 6f7a305239 fix(node): stop stale expiry sync from undoing client extensions (#6228) (#6231) mrchatam 2026-08-24 00:47:56 +03:30
  • da01b7637d feat(sub): client-side balancers for the JSON subscription (#6243) DIMFLIX 2026-08-23 23:34:20 +03:00
  • 81fcacab11 chore(build): bump Go toolchain to 1.27.0 Sanaei 2026-08-23 21:51:39 +02:00
  • 02002dc1c3 feat(routing): add client picker to user rules (#6271) Zane 2026-08-23 05:13:34 +08:00
  • 326009e9d3 fix(traffic): clear cross-panel rows only for clients actually renewed (#6263) n0ctal 2026-08-23 02:12:33 +05:00
  • 585f4ecdc0 fix: reject Hysteria inbound updates with empty client auth (#6268) Matt Van Horn 2026-08-22 22:11:42 +01:00
  • bd6a6aba43 feat(pia): add PIA login-and-add WireGuard outbounds (#6272) Masterain 2026-08-23 05:11:06 +08:00
  • a3e617215c fix(ci): pin the head the review job checks out Sanaei 2026-08-22 21:09:24 +02:00
  • a255ab7c65 fix(node): don't stamp InboundsAdoptedAt when the sync adopted nothing (#6284) yzxcj797 2026-08-23 02:37:55 +08:00
  • af3e6c11b6 docs(api): document WireGuard and mtproto secret generation on clients/add (#6282) ilyusha 2026-08-22 21:37:39 +03:00
  • b73ceae081 fix(frontend): refresh subscription settings after save (#6287) dawn 2026-08-23 02:11:51 +08:00
  • 1250fbb734 feat(clients): allow removing a single HWID device (#6265) Kuzz007 2026-08-21 15:17:05 +03:00
  • 5321665d5b feat(ci): give the review bot a severity scale and a tally Sanaei 2026-08-21 03:19:33 +02:00
  • 73a971c2d1 fix(ci): give the review bot the pull request's own code and CI verdict Sanaei 2026-08-20 23:12:35 +02:00
  • 19a2c23c01 fix(ci): repair the review comment and the conflict-resolution guard Sanaei 2026-08-20 20:14:24 +02:00
  • e4798a027c chore(lint): adapt to staticcheck v0.8.0 under golangci-lint v2.13.1 Sanaei 2026-08-20 19:37:40 +02:00
  • 845abc380e fix(ci): make the review bot post its findings and acknowledge mentions Sanaei 2026-08-20 15:59:51 +02:00
  • 58669f6146 refactor(ci): replace the in-house review lanes with the official code-review skill Sanaei 2026-08-20 15:08:04 +02:00
  • 19e71d9acc refactor(ci): move the bot's repository briefing into versioned files a test pins Sanaei 2026-08-20 05:18:13 +02:00
  • f7db247b07 perf(clients): write client_inbounds deltas and check identity from the clients table Sanaei 2026-08-20 04:09:57 +02:00
  • c8a3a2d723 fix(security): require a 2FA code to replace the stored TOTP secret Sanaei 2026-08-19 19:54:15 +02:00
  • b51f09768b fix(netsafe): classify IPv6 transition and CGNAT ranges as internal Sanaei 2026-08-19 19:37:14 +02:00
  • 3c087f6fd9 chore(docs): update dependencies and adapt to zbsearch 4 Sanaei 2026-08-19 18:38:40 +02:00
  • ce63bf3e66 fix(frontend): restore the two rolldown bindings npm dropped from the lockfile Sanaei 2026-08-19 18:18:49 +02:00
  • b9eda09da9 chore(frontend): update dependencies and adapt to oxlint 1.79 Sanaei 2026-08-19 17:48:28 +02:00
  • 92fb94d856 Move to TypeScript 7 and the oxc toolchain (oxlint + oxfmt) (#6262) Sanaei 2026-08-19 15:36:27 +02:00
  • 380aff4d82 Add remote routing URL support (#6168) Duxxie 2026-08-18 17:02:11 +03:00
  • 3a2f9b48da feat(web): add network-only PWA installability (#6190) korsun009 2026-08-18 16:33:20 +03:00
  • 3f1dd4bf5a fix: follow-ups from the post-merge reviews of #6221, #6227, #6230 and #6239 (#6250) n0ctal 2026-08-18 18:24:59 +05:00
  • abd320994a Add per-client external link controls (#5650) jason zhang 2026-08-18 19:55:04 +08:00
  • 708a69acde fix(reality): make the REALITY target check usable on a private network (#6242) shustovTE 2026-08-18 14:47:59 +03:00
  • f75ea08ab4 fix(frontend): keep the MSW worker in step with the lockfile (#6222) n0ctal 2026-08-18 16:44:55 +05:00
  • 5c7ca5b579 feat(clients): give each client its own traffic reset cycle (#6240) n0ctal 2026-08-18 16:08:44 +05:00
  • b8903fadf4 feat(clients): renew on a calendar day instead of a rolling interval (#6239) n0ctal 2026-08-18 15:46:00 +05:00
  • 1872659d83 chore(gitignore): fully ignore internal/web/dist, build stub included Sanaei 2026-08-18 12:42:49 +02:00
  • 6638ac4a1e i18n: translate importKeepHostSettings keys Sanaei 2026-08-18 12:27:33 +02:00
  • d6472740dc feat(limitip): let operators exempt trusted addresses from the IP limit (#6230) n0ctal 2026-08-18 15:23:10 +05:00
  • 6e80a468e3 feat(server): keep this machine's own settings when importing a database (#6227) n0ctal 2026-08-18 15:03:52 +05:00
  • e940f30bb8 feat(clients): cap how many times a client may auto-renew (#6238) n0ctal 2026-08-18 14:53:11 +05:00
  • 6a674c7f0c fix(node): keep disabled inbounds the node snapshot cannot report (#6221) n0ctal 2026-08-18 14:50:09 +05:00
  • 81cfd8570e fix(inbounds): close the port check-and-claim race on the serial writer (#6225) n0ctal 2026-08-18 14:48:40 +05:00
  • 5c9268c431 feat(i18n): translate the log levels, access events and calendar labels (#6226) n0ctal 2026-08-18 14:43:59 +05:00
  • 2b1fe1fd02 ci: actually run the PostgreSQL schema and migration tests (#6224) n0ctal 2026-08-18 14:38:14 +05:00
  • dc1979a14c ci(release): stamp released binaries with their source revision (#6223) n0ctal 2026-08-18 14:37:03 +05:00
  • 8cec47a8a5 fix(ci): resync the bot prompts with the repo and close the gaps an audit found Sanaei 2026-08-17 02:28:24 +02:00
  • 4b0e9f9b60 fix(nodes): log the inbound the node snapshot removes centrally (#6219) n0ctal 2026-08-16 17:02:50 +05:00
  • 5d6d98d1f9 fix(warp): preserve WARP Plus license key when changing IP (#6218) Rouzbeh† 2026-08-16 15:30:16 +03:30
  • b53a5515d6 fix(frontend): make the jalali expiry clear button actually clear Sanaei 2026-08-15 23:35:00 +02:00
  • 3fa88adbd7 fix(inbounds): surface form validation errors (#6084) sonic 2026-08-16 05:09:48 +08:00
  • 930a0ed59d feat(inbound): DisableFlow — opt an inbound out of auto XTLS Vision (#5689) (#5698) Farhan Zare 2026-08-15 17:09:16 -04:00
  • f22df49a71 fix(sub): restore the subscription info page for browser visits Sanaei 2026-08-15 22:11:21 +02:00
  • b4e4478699 feat(inbounds): add a narrow endpoint for subscription sort order (#6179) n0ctal 2026-08-16 00:48:24 +05:00
  • bab39393f1 fix(nodes): validate every certificate in the node mTLS trust bundle (#6188) n0ctal 2026-08-16 00:31:31 +05:00
  • 338822ab07 fix(sub): keep copy page within mobile viewport Sanaei 2026-08-15 21:16:13 +02:00
  • 43bc915397 fix(sub): serve a copy-only page when a subscription URL is opened in a browser (#6183) n0ctal 2026-08-15 21:18:03 +05:00
  • dafd3c0e64 feat(sub): warn when salamander settings cannot reach the client (#6177) n0ctal 2026-08-15 21:15:19 +05:00
  • acbf09e710 fix(frontend): restore responsive table height Sanaei 2026-08-15 18:13:10 +02:00
  • be70535b94 feat(inbounds): improve multi-node online attribution (#6164) isultanov99 2026-08-15 17:40:35 +02:00
  • 2d669fa4b7 feat(sub): add template variables to subscription metadata (#6163) isultanov99 2026-08-15 17:38:29 +02:00
  • 8c8556ab32 feat(frontend): multi-node cloning initial implementation (#6216) Lex Rivera 2026-08-15 18:36:25 +03:00
  • 03950b1295 fix(frontend): disable table virtualization Sanaei 2026-08-15 17:33:56 +02:00
  • d7698ec7aa feat(xray): browse geosite/geoip categories from routing rules (#6165) Grigoriy 2026-08-15 18:12:59 +03:00
  • 7c8a9a6909 ci: attach provenance and SBOM attestations to the published images (#6130) Kobi Hikri 2026-08-15 17:59:11 +03:00
  • 694ad6deae feat(sub): add per-client subscription HWID limits (#5802) Rouzbeh† 2026-08-15 18:20:20 +03:30
  • 1793a9b8b4 feat(nodes): opt-in encryption at rest for the outbound node API token (#6186) n0ctal 2026-08-15 19:48:50 +05:00
  • 8e7fb144ee perf(frontend): replace blank Suspense fallbacks with Spin, switch to matchMedia hook, add virtual table scrolling (#6187) PathGao 2026-08-15 22:44:08 +08:00
  • 0f14ce7551 fix(web): fallback to default secret when database setting is empty (#6189) Dan Liutko 2026-08-15 19:40:22 +05:00
  • 7ecd88b9e3 fix(nodes): apply a rotated master mTLS certificate without restarting the panel (#6194) n0ctal 2026-08-15 19:03:42 +05:00
  • 1230559e69 feat(api): scoped, optionally expiring API tokens (#6201) n0ctal 2026-08-15 18:31:49 +05:00
  • aecbad3ab1 test(tgbot): detect open-coded keypad transitions (#6214) n0ctal 2026-08-15 18:27:02 +05:00
  • 2217213e9f feat(sub): expose last subscription fetch time (#6217) Maxim Myalin 2026-08-15 16:22:11 +03:00
  • ad32144c42 fix(sub): use a fullwidth percent in USAGE_PERCENTAGE (#6174) n0ctal 2026-08-14 23:13:15 +05:00
  • 34c248bb79 fix(cli): stop -getApiToken accumulating admin tokens (#6175) n0ctal 2026-08-14 23:12:43 +05:00
  • 17fea2f656 fix(database): keep IP limits when the fail2ban probe is inconclusive (#6176) n0ctal 2026-08-14 23:12:07 +05:00
  • c5dec64d36 fix(clients): push bulk client changes to nodes only after the commit lands (#6181) n0ctal 2026-08-14 23:11:19 +05:00
  • b56b087254 fix(migration): stop a half-applied startup migration from committing silently (#6182) n0ctal 2026-08-14 23:10:39 +05:00
  • 3bb87e80aa fix(db): harden unrestricted freedom outbounds (#6184) n0ctal 2026-08-14 23:07:30 +05:00
  • 60453bf523 fix(nodes): persist the master mTLS credential atomically and stop silent reissue (#6195) n0ctal 2026-08-14 23:03:54 +05:00
  • bb29b6afec fix(node): adopt a matching deployed inbound instead of recreating it (#6197) n0ctal 2026-08-14 23:01:35 +05:00
  • 3b19091547 fix(sub): render the full remark once per subscription, not once per credential (#6198) n0ctal 2026-08-14 23:00:51 +05:00
  • 0496c23a26 fix(groups): report changed bulk moves without restarting xray (#6199) n0ctal 2026-08-14 22:50:06 +05:00
  • 1396005082 fix(traffic): apply maintenance side effects only after the commit lands (#6200) n0ctal 2026-08-14 22:42:09 +05:00
  • b70c5abce8 fix(outbounds): propagate allocation query failures (#6208) n0ctal 2026-08-14 22:41:24 +05:00
  • 20b3f84f77 fix(web): report unexpected HTTP serve failures (#6210) n0ctal 2026-08-14 22:40:53 +05:00
  • d291e1c5ee Bump Go toolchain and x dependencies Sanaei 2026-08-14 17:02:17 +02:00
  • ecadfd0e60 fix(clients): stop recomputing the summary badges from the client_stats snapshot (#6169) Mr. Nickson 2026-08-14 17:45:31 +03:00
  • d05e44e401 fix(outbound): import Hysteria2 salamander properly from standard obfs params (#6166) MMX 2026-08-14 17:43:29 +03:00