Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
b0ed287
Allow daemon to respect custom config so you can run more than one
madhavajay Sep 11, 2025
830964d
Merge branch 'main' into madhava/daemon_config
shubham3121 Sep 15, 2025
208f346
adding better dev tooling to the repo
madhavajay Nov 27, 2025
dd62342
Adding profiling and better dev tooling
madhavajay Nov 27, 2025
9ce9927
Merge branch 'main' into madhava/sbdev_state
madhavajay Nov 28, 2025
65ff32e
moving this to its own PR
madhavajay Nov 28, 2025
406e0f6
fixing websocket issue
madhavajay Nov 28, 2025
1af0017
fixed a bunch of stuff
madhavajay Nov 29, 2025
c7373c8
more tweaks
madhavajay Nov 30, 2025
f9f670d
fast sync start and backoff
madhavajay Nov 30, 2025
ac4e783
fixed test
madhavajay Nov 30, 2025
ec1435a
low latency websocket notify
madhavajay Nov 30, 2025
fea42fa
fixed datasite path reversion
madhavajay Dec 1, 2025
ecd19a3
more fixes and changelog updates
madhavajay Dec 2, 2025
64a3599
Merge branch 'main' into madhava/fuzz
madhavajay Dec 2, 2025
f2adac7
Added more edge cases to the tests and the chaos test
madhavajay Dec 2, 2025
31d0d93
Added a write conflict test we can solve later
madhavajay Dec 2, 2025
939ad34
added benchmark (#92)
madhavajay Dec 3, 2025
b6389fd
started on large uploads
madhavajay Dec 10, 2025
37e3e89
adding large uploads
madhavajay Dec 10, 2025
f64cf99
Allow controlplane in non daemon mode
madhavajay Dec 11, 2025
a1537c8
added progress api and pause / resume large uploads
madhavajay Dec 11, 2025
cd996ad
Merge branch 'madhava/daemon_config' into madhava/biovault
madhavajay Dec 11, 2025
e21a98e
fixing bug on public convention
madhavajay Dec 11, 2025
891b86a
Merge branch 'madhava/progress-api' into madhava/biovault
madhavajay Dec 11, 2025
dd73355
missing files due to gitignore on binaries
madhavajay Dec 11, 2025
ca2bbb1
Merge branch 'madhava/progress-api' into madhava/biovault
madhavajay Dec 11, 2025
e448cee
some more tests
madhavajay Dec 11, 2025
2726685
fixing timeouts in the chaos test
madhavajay Dec 11, 2025
d25468f
chore(deps): bump golang.org/x/crypto from 0.40.0 to 0.45.0 (#85)
dependabot[bot] Dec 11, 2025
cc559f0
merge
madhavajay Dec 11, 2025
718d023
fixed bug where small files (including ACLs) were using multipart upload
madhavajay Dec 11, 2025
6d481bd
marking broken edge case as skip
madhavajay Dec 11, 2025
9235aaf
Merge branch 'madhava/biovault' into madhava/rust
madhavajay Dec 11, 2025
4c3582b
upload progress
madhavajay Dec 11, 2025
e6566f1
initial port
madhavajay Dec 11, 2025
4fd89c5
Adding ability to control url and token for controlplane via env and …
madhavajay Dec 11, 2025
eb6e44d
fixed conflicting sync tests
madhavajay Dec 11, 2025
9598c18
Merge branch 'madhava/divergent-sync' into madhava/biovault
madhavajay Dec 11, 2025
88fc15a
Merge branch 'main' into madhava/biovault
madhavajay Dec 11, 2025
b73e685
run go and rust in all tests
madhavajay Dec 11, 2025
6ca34dc
Merge branch 'madhava/biovault' into madhava/rust
madhavajay Dec 11, 2025
bb4e3ea
make tests faster by re-using the stack
madhavajay Dec 12, 2025
28ed740
adding msgpack for websockets
madhavajay Dec 12, 2025
0c54800
Merge branch 'madhava/websocket-encoding' into madhava/biovault
madhavajay Dec 12, 2025
004c212
rust now passes conflict test
madhavajay Dec 12, 2025
69560fc
adding some go coverage
madhavajay Dec 12, 2025
7825d85
make the test harness stricter on startup checks
madhavajay Dec 12, 2025
8c5cb75
more rust
madhavajay Dec 12, 2025
5297f32
Merge branch 'madhava/biovault' into madhava/rust
madhavajay Dec 12, 2025
65f1397
added large upload logic into daemon
madhavajay Dec 12, 2025
205f742
Merge branch 'madhava/biovault' into madhava/stability
madhavajay Dec 12, 2025
2f05efc
dont re-upload files that are the same
madhavajay Dec 12, 2025
ed21831
rejection fixes
madhavajay Dec 12, 2025
f549621
etag issues
madhavajay Dec 12, 2025
18a2d07
adding local etag
madhavajay Dec 12, 2025
29a7481
checking bytes transferred is reported correctly
madhavajay Dec 15, 2025
a8e2445
more coverage
madhavajay Dec 15, 2025
3ae3061
Merge branch 'madhava/biovault' into madhava/rust
madhavajay Dec 15, 2025
3984db1
added large resumeable uploads
madhavajay Dec 15, 2025
bbfbb02
fixed race condition when journal is missing files that are on disk
madhavajay Dec 15, 2025
451900f
fix: correct indentation in handleLocalWrites download result processing
madhavajay Dec 15, 2025
185bc65
more rust port
madhavajay Dec 15, 2025
037c6ec
Merge branch 'madhava/biovault' into madhava/rust
madhavajay Dec 15, 2025
1d236a7
fixing bug in test
madhavajay Dec 16, 2025
7b1951c
Merge branch 'madhava/biovault' into madhava/rust
madhavajay Dec 16, 2025
ae6be00
rust passes tests
madhavajay Dec 16, 2025
7c63795
more coverage
madhavajay Dec 16, 2025
3bfc799
more coverage
madhavajay Dec 16, 2025
b67d172
more parity
madhavajay Dec 17, 2025
7e16b53
more coverage
madhavajay Dec 17, 2025
1fd5a50
more rust progress
madhavajay Dec 18, 2025
b08bc5d
sync all files
madhavajay Dec 18, 2025
dd5dfae
root sync
madhavajay Dec 18, 2025
ec0d18f
adding minio for windows
madhavajay Dec 18, 2025
29f056a
minio.exe for windows
madhavajay Dec 18, 2025
95589fe
more windows minio
madhavajay Dec 18, 2025
09c5a6a
added lib and option to disable syftbox go client in stack
madhavajay Dec 18, 2025
1ad9311
Merge branch 'madhava/rust' into madhava/biovault
madhavajay Dec 19, 2025
8fac223
handle reject files on non owner datasites
madhavajay Dec 19, 2025
9091e0e
linting
madhavajay Dec 19, 2025
e481c72
docs: refresh docs and update Go deps (#95)
madhavajay Jan 8, 2026
00f2420
fixing the localhost issue (#96)
madhavajay Jan 15, 2026
44dd129
fix(test): check native path format in login_cli stdout assertion (#97)
madhavajay Jan 15, 2026
163fe2e
Madhava/fix windows (#98)
madhavajay Jan 15, 2026
aec5a86
process fix (#100)
madhavajay Jan 15, 2026
e8104d2
windows fix (#101)
madhavajay Jan 16, 2026
dc7da0c
fix: increase MinIO download timeout from 15s to 120s
madhavajay Jan 17, 2026
6188db0
Madhava/biovault fixes (#102)
madhavajay Jan 19, 2026
7dad230
hunting windows bugs (#104)
madhavajay Jan 20, 2026
c7061f3
Madhava/more windows fixes (#105)
madhavajay Jan 20, 2026
d56517c
Madhava/sub (#106)
madhavajay Jan 23, 2026
ac04bec
fix wrong path
madhavajay Jan 23, 2026
5055879
cargo
madhavajay Feb 6, 2026
4b4785c
Madhava/hotlink (#107)
madhavajay Feb 7, 2026
8c05b52
Madhava/hotlink (#109)
madhavajay Feb 8, 2026
ef50d42
force it on
madhavajay Feb 9, 2026
e1f5ee1
webrtc
madhavajay Feb 8, 2026
7b73a45
webrtc
madhavajay Feb 8, 2026
ad48648
adding webrtc
madhavajay Feb 8, 2026
ac6a868
updating
madhavajay Feb 9, 2026
7f3e815
more
madhavajay Feb 9, 2026
d8bcee0
webrtc worked
madhavajay Feb 9, 2026
6703057
added webrtc
madhavajay Feb 9, 2026
21dcdae
replace QUIC with WebRTC in hotlink_manager
madhavajay Feb 9, 2026
8f78c39
more stable added deplomyment distributed test passes
madhavajay Feb 9, 2026
77a7024
fix
madhavajay Feb 9, 2026
bfafa11
fix
madhavajay Feb 9, 2026
2d37de4
fixing stalled health check
madhavajay Feb 9, 2026
126c494
Merge pull request #110 from OpenMined/madhava/webrtc2
madhavajay Feb 9, 2026
c1a131d
small fixes
madhavajay Feb 10, 2026
1db0205
lint fix
madhavajay Feb 10, 2026
a468428
Merge pull request #111 from OpenMined/madhava/small-fix
madhavajay Feb 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,5 +82,26 @@ jobs:
exit 1
;;
esac

just deploy $REMOTE

- name: Deploy TURN server
if: env.TURN_USER != '' && env.TURN_PASS != ''
env:
TURN_USER: ${{ secrets.TURN_USER }}
TURN_PASS: ${{ secrets.TURN_PASS }}
run: |
case "${{ inputs.environment }}" in
"dev")
REMOTE="${{ secrets.SSH_USER_DEV }}@${{ secrets.SSH_HOST_DEV }}"
;;
"stage")
REMOTE="${{ secrets.SSH_USER_STAGE }}@${{ secrets.SSH_HOST_STAGE }}"
;;
*)
echo "Unknown environment: ${{ inputs.environment }}"
exit 1
;;
esac

just deploy-turn $REMOTE "$TURN_USER" "$TURN_PASS"
29 changes: 0 additions & 29 deletions .github/workflows/devstack-integration.yml

This file was deleted.

46 changes: 46 additions & 0 deletions .github/workflows/flapping-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Flapping Tests

on:
workflow_dispatch:

jobs:
flapping-tests:
name: ${{ matrix.mode }} ${{ matrix.group }} (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
mode: [ rust ]
group: [ transfer1, transfer2 ]
runs-on: ${{ matrix.os }}
timeout-minutes: 20

steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24.3'
cache: ${{ matrix.os != 'windows' }}

- name: Download Go dependencies
if: matrix.os == 'windows'
run: go mod download

- name: Set up Rust
if: matrix.mode == 'rust'
uses: dtolnay/rust-toolchain@stable

- name: Rust cache
if: matrix.mode == 'rust'
uses: Swatinem/rust-cache@v2
with:
workspaces: rust

- name: Install just
uses: extractions/setup-just@v2

- name: Run ${{ matrix.group }} tests (${{ matrix.mode }} client)
run: just sbdev-test-group ${{ matrix.group }} mode=${{ matrix.mode }}
shell: bash
61 changes: 55 additions & 6 deletions .github/workflows/go-test.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
name: Go Tests
name: Tests

on:
workflow_dispatch:
push:
branches: [ main ]
branches: [ main, madhava/biovault ]
pull_request:
branches: [ main ]
branches: [ main, madhava/biovault ]

jobs:
test:
name: unit tests
go-test:
name: Go Tests
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
Expand All @@ -29,5 +29,54 @@ jobs:
if: matrix.os == 'windows-latest'
run: go mod download

- name: Run Tests
- name: Run Go Tests
run: go test -v -cover ./...

rust-test:
name: Rust Tests
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4

- name: Set up Rust
uses: dtolnay/rust-toolchain@stable

- name: Rust cache
uses: Swatinem/rust-cache@v2
with:
workspaces: rust

- name: Run Rust Tests
working-directory: rust
# NOTE: Some tests have isolation issues, run single-threaded for reliability
run: cargo test -- --test-threads=1

rust-lint:
name: Rust Lint
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy

- name: Rust cache
uses: Swatinem/rust-cache@v2
with:
workspaces: rust

- name: Check formatting
working-directory: rust
run: cargo fmt --all -- --check

- name: Run Clippy
working-directory: rust
run: cargo clippy --all-targets --all-features -- -D warnings
95 changes: 95 additions & 0 deletions .github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Integration Tests

on:
workflow_dispatch:
push:
branches: [ main, madhava/biovault, madhava/hotlink ]
pull_request:
branches: [ main, madhava/biovault, madhava/hotlink ]

jobs:
integration-tests:
name: ${{ matrix.mode }} ${{ matrix.group }} (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
mode: [ go, rust ]
group: [ core, acl, state1, state2, transfer1, transfer2, chaos ]
runs-on: ${{ matrix.os }}
timeout-minutes: 20

steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24.3'
cache: ${{ matrix.os != 'windows' }}

- name: Download Go dependencies
if: matrix.os == 'windows'
run: go mod download

- name: Set up Rust
if: matrix.mode == 'rust'
uses: dtolnay/rust-toolchain@stable

- name: Rust cache
if: matrix.mode == 'rust'
uses: Swatinem/rust-cache@v2
with:
workspaces: rust

- name: Install just
uses: extractions/setup-just@v2

- name: Run ${{ matrix.group }} tests (${{ matrix.mode }} client)
run: just sbdev-test-group ${{ matrix.group }} mode=${{ matrix.mode }}
shell: bash

stress-tests:
name: ${{ matrix.mode }} stress (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
mode: [ go, rust ]
runs-on: ${{ matrix.os }}
timeout-minutes: 30

steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24.3'
cache: ${{ matrix.os != 'windows' }}

- name: Download Go dependencies
if: matrix.os == 'windows'
run: go mod download

- name: Set up Rust
if: matrix.mode == 'rust'
uses: dtolnay/rust-toolchain@stable

- name: Rust cache
if: matrix.mode == 'rust'
uses: Swatinem/rust-cache@v2
with:
workspaces: rust

- name: Install just
uses: extractions/setup-just@v2

- name: Run stress tests (${{ matrix.mode }} client) with retry
uses: nick-fields/retry@v3
with:
timeout_minutes: 15
max_attempts: 3
retry_wait_seconds: 10
command: just sbdev-test-group stress mode=${{ matrix.mode }}
shell: bash
56 changes: 56 additions & 0 deletions .github/workflows/nat-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: NAT Traversal Test

on:
workflow_dispatch:
push:
branches: [ main, madhava/biovault, madhava/hotlink ]
paths:
- 'rust/src/hotlink*.rs'
- 'docker/docker-compose-nat-test.yml'
- 'docker/Dockerfile.client.rust'
- 'docker/nat-test.sh'
- 'docker/entrypoint-nat-test.sh'
pull_request:
branches: [ main, madhava/biovault, madhava/hotlink ]
paths:
- 'rust/src/hotlink*.rs'
- 'docker/docker-compose-nat-test.yml'
- 'docker/Dockerfile.client.rust'
- 'docker/nat-test.sh'
- 'docker/entrypoint-nat-test.sh'

jobs:
nat-traversal:
name: WebRTC NAT traversal (Docker)
runs-on: ubuntu-latest
timeout-minutes: 20

steps:
- uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Run NAT traversal test
run: bash docker/nat-test.sh
env:
NAT_TEST_TIMEOUT: 90

- name: Collect logs on failure
if: failure()
run: |
echo "=== Alice logs ==="
docker logs nat-alice 2>&1 | tail -50 || true
echo ""
echo "=== Bob logs ==="
docker logs nat-bob 2>&1 | tail -50 || true
echo ""
echo "=== Server logs ==="
docker logs nat-server 2>&1 | tail -30 || true
echo ""
echo "=== TURN logs ==="
docker logs nat-turn 2>&1 | tail -20 || true

- name: Cleanup
if: always()
run: docker compose -f docker/docker-compose-nat-test.yml down -v --remove-orphans 2>/dev/null || true
11 changes: 10 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,16 @@ jobs:
run: |
REMOTE="${{ secrets.SSH_USER_PROD }}@${{ secrets.SSH_HOST_PROD }}"
just deploy $REMOTE


- name: Deploy TURN server
if: env.TURN_USER != '' && env.TURN_PASS != ''
env:
TURN_USER: ${{ secrets.TURN_USER }}
TURN_PASS: ${{ secrets.TURN_PASS }}
run: |
REMOTE="${{ secrets.SSH_USER_PROD }}@${{ secrets.SSH_HOST_PROD }}"
just deploy-turn $REMOTE "$TURN_USER" "$TURN_PASS"

- name: Create release
uses: ncipollo/release-action@v1
with:
Expand Down
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ dist/

# Go-specific Files
*.test
.gomodcache/

# Go coverage tool output
*.out
Expand Down Expand Up @@ -55,3 +56,9 @@ server.dev.yaml
sandbox/*
cmd/devstack/profiles/*
cmd/sandbox/*
cmd/devstack/.gocache/*
.test-sandbox/*
cmd/devstack/.test-sandbox/
.devstack
.cache/*
licenses/cache/*
Loading
Loading