By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Adds a sync method and config version for each websocket message to be able to sync state with server when it drifts
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/fosrl/olm/pull/77
**Author:** [@oschwartz10612](https://github.com/oschwartz10612)
**Created:** 1/16/2026
**Status:** ❌ Closed
**Base:** `main` ← **Head:** `msg-delivery`
---
### 📝 Commits (10+)
- [`52273a8`](https://github.com/fosrl/olm/commit/52273a81c8d2498768511768beaefb4c5ac71043) Add version and send it down
- [`e355d8d`](https://github.com/fosrl/olm/commit/e355d8db5fb9d629a2155640121d265287cf41fe) Fix go mod
- [`4deb3e0`](https://github.com/fosrl/olm/commit/4deb3e07b0a5f7b0701091885477534262be04e2) Merge branch 'dev' into msg-delivery
- [`d01f180`](https://github.com/fosrl/olm/commit/d01f180941c6c854f73274c86c281260bd653875) Add sync message
- [`6d2afb4`](https://github.com/fosrl/olm/commit/6d2afb4c72f7956ccb9509e8aed018636070d1d7) fix(ci): add back missing docker build local image rule
- [`8152d41`](https://github.com/fosrl/olm/commit/8152d4133f1ae85b2632c48983aeb3ea68f0fd2a) add content-length header to status payload
- [`ece4239`](https://github.com/fosrl/olm/commit/ece4239aaa70318a0246c0b2e17b4e3e8d306e7d) Add stub
- [`adf4c21`](https://github.com/fosrl/olm/commit/adf4c21f7b280f50e5356325b202be2e554d9333) Use a different method on android
- [`6be0958`](https://github.com/fosrl/olm/commit/6be095888755c22f8cc6621688e75f7c040eaf57) Try to make the tun replacable
- [`c85fcc4`](https://github.com/fosrl/olm/commit/c85fcc434ba4059a2952ecd0a3d54916f8bebc29) Middle device working but not closing
### 📊 Changes
**29 files changed** (+2637 additions, -1314 deletions)
<details>
<summary>View changed files</summary>
📝 `.github/workflows/test.yml` (+1 -1)
📝 `Makefile` (+3 -0)
📝 `api/api.go` (+78 -19)
📝 `device/middle_device.go` (+495 -163)
📝 `device/tun_darwin.go` (+2 -2)
➕ `device/tun_linux.go` (+50 -0)
📝 `dns/dns_proxy.go` (+37 -54)
📝 `dns/dns_records.go` (+1 -1)
📝 `dns/dns_records_test.go` (+34 -34)
➕ `dns/override/dns_override_android.go` (+16 -0)
📝 `dns/override/dns_override_darwin.go` (+2 -7)
➕ `dns/override/dns_override_ios.go` (+15 -0)
📝 `dns/override/dns_override_unix.go` (+7 -12)
📝 `dns/override/dns_override_windows.go` (+2 -7)
📝 `dns/platform/darwin.go` (+1 -1)
📝 `go.mod` (+2 -0)
📝 `go.sum` (+0 -2)
📝 `main.go` (+9 -4)
➕ `olm/connect.go` (+223 -0)
➕ `olm/data.go` (+347 -0)
_...and 9 more files_
</details>
### 📄 Description
## Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
## Description
Adds a sync method and config version for each websocket message to be able to sync state with server when it drifts
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/fosrl/olm/pull/77
Author: @oschwartz10612
Created: 1/16/2026
Status: ❌ Closed
Base:
main← Head:msg-delivery📝 Commits (10+)
52273a8Add version and send it downe355d8dFix go mod4deb3e0Merge branch 'dev' into msg-deliveryd01f180Add sync message6d2afb4fix(ci): add back missing docker build local image rule8152d41add content-length header to status payloadece4239Add stubadf4c21Use a different method on android6be0958Try to make the tun replacablec85fcc4Middle device working but not closing📊 Changes
29 files changed (+2637 additions, -1314 deletions)
View changed files
📝
.github/workflows/test.yml(+1 -1)📝
Makefile(+3 -0)📝
api/api.go(+78 -19)📝
device/middle_device.go(+495 -163)📝
device/tun_darwin.go(+2 -2)➕
device/tun_linux.go(+50 -0)📝
dns/dns_proxy.go(+37 -54)📝
dns/dns_records.go(+1 -1)📝
dns/dns_records_test.go(+34 -34)➕
dns/override/dns_override_android.go(+16 -0)📝
dns/override/dns_override_darwin.go(+2 -7)➕
dns/override/dns_override_ios.go(+15 -0)📝
dns/override/dns_override_unix.go(+7 -12)📝
dns/override/dns_override_windows.go(+2 -7)📝
dns/platform/darwin.go(+1 -1)📝
go.mod(+2 -0)📝
go.sum(+0 -2)📝
main.go(+9 -4)➕
olm/connect.go(+223 -0)➕
olm/data.go(+347 -0)...and 9 more files
📄 Description
Community Contribution License Agreement
By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.
Description
Adds a sync method and config version for each websocket message to be able to sync state with server when it drifts
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.