- Add heartbeat timeout to client control connection using server heartbeats for dead connection detection
- Introduce exponential backoff with jitter for reconnection delays
- Add CLI flags: --no-reconnect to disable auto-reconnect, --max-reconnect-delay to configure backoff cap
- Classify authentication errors as fatal (never retried), all others retried automatically
- Configure TCP keepalive on control connections for OS-level dead connection detection
- Update documentation (README.md, CLAUDE.md) to describe reconnection behavior and new flags
- Add unit tests for backoff logic and error classification
This commit introduces a new option to specify the IP address where tunnels
will listen, which may be different from the control server's IP address.
A new flag `--tunnels-addr` can specify the IP addr to bind to. Default is set
to `0.0.0.0` which is the previous behavior.
This commit adds the ability to bind the control server to a specific network
interface via an additional flag `--control-addr`.
By default it listens on `0.0.0.0` which is the previous behaviour.
This update adds support for the NO_COLOR environment variable in tracing output,
which allows suppressing ANSI color codes in log output. This is particularly
useful when running bore as a Windows service.
Fixes#65
Co-authored-by: devin-ai-integration[bot] <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* Update dependencies
* Bump version to 0.5.1
* Try to deflake tests in GitHub Actions
* Add some retries to e2e_test
* Revert cargo.lock changes
* Update only a couple deps
* Fix CI running twice :(
* Fix typo
* Add GitHub CI/CD
* Add instructions for installing bin from GitHub releases
* Will work after a new version is released
* Add windows jobs for CI/CD
* Only run CI on stable rust
* Use `cargo fmt` instead of `rustfmt`, undo change
* Delete install.sh
* Update README.md
Co-authored-by: Eric Zhang <ekzhang1@gmail.com>
* using stream
* fix tests
* 💄
* 💄 fix review comments
* clean up buffered data
* 💄 fix review comments
* Refactor Delimited to be its own struct
* Add very_long_frame test to ensure behavior
Co-authored-by: Eric Zhang <ekzhang1@gmail.com>
* Deps: use specific Tokio features
* Deps: run `cargo update`
* Refactor: move CLI-parsing outside Tokio runtime
* Fix: use `parse` over `try_parse`
Clap does special things behind the scenes before it exits.
* Refactor: use `tokio::main` macro for convenience