Compare commits

..

3 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
bc637912d6 docs: align heartbeat defaults note
Co-authored-by: fatedier <7346661+fatedier@users.noreply.github.com>
2026-02-03 03:23:40 +00:00
copilot-swe-agent[bot]
1bbbbaac85 docs: clarify heartbeat vs tcpMux keepalive
Co-authored-by: fatedier <7346661+fatedier@users.noreply.github.com>
2026-02-03 03:21:26 +00:00
copilot-swe-agent[bot]
d823f7e98b Initial plan 2026-02-03 02:53:10 +00:00
9 changed files with 33 additions and 57 deletions

View File

@ -23,10 +23,10 @@ jobs:
with: with:
node-version: '22' node-version: '22'
- name: Build web assets (frps) - name: Build web assets (frps)
run: make build run: make install build
working-directory: web/frps working-directory: web/frps
- name: Build web assets (frpc) - name: Build web assets (frpc)
run: make build run: make install build
working-directory: web/frpc working-directory: web/frpc
- name: golangci-lint - name: golangci-lint
uses: golangci/golangci-lint-action@v8 uses: golangci/golangci-lint-action@v8

View File

@ -20,10 +20,10 @@ jobs:
with: with:
node-version: '22' node-version: '22'
- name: Build web assets (frps) - name: Build web assets (frps)
run: make build run: make install build
working-directory: web/frps working-directory: web/frps
- name: Build web assets (frpc) - name: Build web assets (frpc)
run: make build run: make install build
working-directory: web/frpc working-directory: web/frpc
- name: Make All - name: Make All
run: | run: |

View File

@ -133,8 +133,10 @@ transport.tls.enable = true
# transport.tls.disableCustomTLSFirstByte = true # transport.tls.disableCustomTLSFirstByte = true
# Heartbeat configure, it's not recommended to modify the default value. # Heartbeat configure, it's not recommended to modify the default value.
# The default value of heartbeatInterval is 10 and heartbeatTimeout is 90. Set negative value # If tcpMux is enabled (default), heartbeat is disabled and tcp mux keepalive
# to disable it. # interval controls the liveness detection instead.
# When tcpMux is disabled, the defaults are heartbeatInterval = 30 and heartbeatTimeout = 90.
# Set negative value to disable it.
# transport.heartbeatInterval = 30 # transport.heartbeatInterval = 30
# transport.heartbeatTimeout = 90 # transport.heartbeatTimeout = 90

View File

@ -22,7 +22,9 @@ kcpBindPort = 7000
# transport.quic.maxIdleTimeout = 30 # transport.quic.maxIdleTimeout = 30
# transport.quic.maxIncomingStreams = 100000 # transport.quic.maxIncomingStreams = 100000
# Heartbeat configure, it's not recommended to modify the default value # Heartbeat configure, it's not recommended to modify the default value.
# If tcpMux is enabled (default), heartbeat is disabled and tcp mux keepalive
# interval controls the liveness detection instead.
# The default value of heartbeatTimeout is 90. Set negative value to disable it. # The default value of heartbeatTimeout is 90. Set negative value to disable it.
# transport.heartbeatTimeout = 90 # transport.heartbeatTimeout = 90

View File

@ -133,6 +133,8 @@ type ClientTransportConfig struct {
// HeartBeatTimeout specifies the maximum allowed heartbeat response delay // HeartBeatTimeout specifies the maximum allowed heartbeat response delay
// before the connection is terminated, in seconds. It is not recommended // before the connection is terminated, in seconds. It is not recommended
// to change this value. By default, this value is 90. Set negative value to disable it. // to change this value. By default, this value is 90. Set negative value to disable it.
// Note: When TCPMux is enabled (default), heartbeat checks are disabled and
// the TCP mux keepalive interval controls liveness instead.
HeartbeatTimeout int64 `json:"heartbeatTimeout,omitempty"` HeartbeatTimeout int64 `json:"heartbeatTimeout,omitempty"`
// TLS specifies TLS settings for the connection to the server. // TLS specifies TLS settings for the connection to the server.
TLS TLSClientConfig `json:"tls,omitempty"` TLS TLSClientConfig `json:"tls,omitempty"`

View File

@ -172,6 +172,8 @@ type ServerTransportConfig struct {
// HeartBeatTimeout specifies the maximum time to wait for a heartbeat // HeartBeatTimeout specifies the maximum time to wait for a heartbeat
// before terminating the connection. It is not recommended to change this // before terminating the connection. It is not recommended to change this
// value. By default, this value is 90. Set negative value to disable it. // value. By default, this value is 90. Set negative value to disable it.
// Note: When TCPMux is enabled (default), heartbeat checks are disabled and
// the TCP mux keepalive interval controls liveness instead.
HeartbeatTimeout int64 `json:"heartbeatTimeout,omitempty"` HeartbeatTimeout int64 `json:"heartbeatTimeout,omitempty"`
// QUIC options. // QUIC options.
QUIC QUICOptions `json:"quic,omitempty"` QUIC QUICOptions `json:"quic,omitempty"`

View File

@ -3,7 +3,7 @@
install: install:
@npm install @npm install
build: install build:
@npm run build @npm run build
dev: dev:

View File

@ -1611,9 +1611,7 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
"version": "2.0.2", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -2054,9 +2052,7 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/brace-expansion": { "node_modules/brace-expansion": {
"version": "1.1.12", "version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -2065,13 +2061,11 @@
} }
}, },
"node_modules/braces": { "node_modules/braces": {
"version": "3.0.3", "version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"fill-range": "^7.1.1" "fill-range": "^7.0.1"
}, },
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@ -2262,9 +2256,7 @@
} }
}, },
"node_modules/cross-spawn": { "node_modules/cross-spawn": {
"version": "6.0.6", "version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz",
"integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -2279,9 +2271,7 @@
} }
}, },
"node_modules/cross-spawn/node_modules/semver": { "node_modules/cross-spawn/node_modules/semver": {
"version": "5.7.2", "version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"bin": { "bin": {
@ -2969,9 +2959,7 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/eslint/node_modules/cross-spawn": { "node_modules/eslint/node_modules/cross-spawn": {
"version": "7.0.6", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -3194,9 +3182,7 @@
} }
}, },
"node_modules/fill-range": { "node_modules/fill-range": {
"version": "7.1.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -3739,8 +3725,6 @@
}, },
"node_modules/is-number": { "node_modules/is-number": {
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@ -3866,9 +3850,7 @@
} }
}, },
"node_modules/js-yaml": { "node_modules/js-yaml": {
"version": "4.1.1", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -3967,15 +3949,11 @@
} }
}, },
"node_modules/lodash": { "node_modules/lodash": {
"version": "4.17.23", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
"integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/lodash-es": { "node_modules/lodash-es": {
"version": "4.17.23", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz",
"integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==",
"license": "MIT" "license": "MIT"
}, },
"node_modules/lodash-unified": { "node_modules/lodash-unified": {
@ -4024,13 +4002,11 @@
} }
}, },
"node_modules/micromatch": { "node_modules/micromatch": {
"version": "4.0.8", "version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"braces": "^3.0.3", "braces": "^3.0.2",
"picomatch": "^2.3.1" "picomatch": "^2.3.1"
}, },
"engines": { "engines": {
@ -4165,9 +4141,7 @@
} }
}, },
"node_modules/normalize-package-data/node_modules/semver": { "node_modules/normalize-package-data/node_modules/semver": {
"version": "5.7.2", "version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"bin": { "bin": {
@ -5144,8 +5118,6 @@
}, },
"node_modules/to-regex-range": { "node_modules/to-regex-range": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -5370,9 +5342,7 @@
} }
}, },
"node_modules/unplugin-auto-import/node_modules/brace-expansion": { "node_modules/unplugin-auto-import/node_modules/brace-expansion": {
"version": "2.0.2", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -5534,9 +5504,7 @@
} }
}, },
"node_modules/unplugin-vue-components/node_modules/brace-expansion": { "node_modules/unplugin-vue-components/node_modules/brace-expansion": {
"version": "2.0.2", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {

View File

@ -3,7 +3,7 @@
install: install:
@npm install @npm install
build: install build:
@npm run build @npm run build
dev: dev: