Skip to content

Add Jitter to Imix Callback#1853

Merged
KCarretto merged 3 commits intomainfrom
imix-jitter-callback-16886886867242433849
Feb 22, 2026
Merged

Add Jitter to Imix Callback#1853
KCarretto merged 3 commits intomainfrom
imix-jitter-callback-16886886867242433849

Conversation

@KCarretto
Copy link
Collaborator

Implemented jitter for imix agent callback.
Added jitter field to Transport protobuf message and Rust struct.
Implemented configuration parsing for jitter from DSN and YAML.
Implemented randomized sleep duration calculation in imix agent loop using the configured jitter.


PR created automatically by Jules for task 16886886867242433849 started by @KCarretto

Added support for configuring jitter in the imix agent callback.
The jitter value represents the maximum percentage of the callback interval
to subtract from the sleep duration, effectively randomizing the callback timing.

Changes:
- Updated `tavern/internal/c2/proto/c2.proto` to include `jitter` field in `Transport`.
- Manually updated `implants/lib/pb/src/generated/c2.rs` to include `jitter` in `Transport` struct.
- Updated `implants/lib/pb/src/config.rs` to parse `jitter` from DSN.
- Updated `implants/lib/pb/build.rs` to support `jitter` in YAML config.
- Updated `implants/imix/src/agent.rs` to expose `get_callback_jitter`.
- Updated `implants/imix/src/run.rs` to use jitter when calculating sleep duration.
- Added `rand` dependency to `implants/imix/Cargo.toml`.

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
@google-labs-jules
Copy link
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 22, 2026

Summary

Tests 📝 Passed ✅ Failed ❌ Skipped ⏭️ Other ❓ Flaky 🍂 Duration ⏱️
2618    ±0 2618    ±0 0    ±0 0    ±0 0    ±0 0    ±0 1ms    ±0

Previous Results

Build 🏗️ Result 🧪 Tests 📝 Passed ✅ Failed ❌ Skipped ⏭️ Other ❓ Flaky 🍂 Duration ⏱️
#1067 2618 2618 0 0 0 0 36.5s

Insights

Average Tests per Run Total Flaky Tests Total Failed Slowest Test (p95)
2618 0 0 5.2s

Slowest Tests

Test 📝 Results 📊 Duration (avg) ⏱️ Duration (p95) ⏱️
eldritch-libsys: std::dll_inject_impl::tests::test_dll_inject_simple 1 5.2s 5.2s
TestDockerExecutor_Build_ContextCancellation 1 5.1s 5.1s
TestInteractiveShell 1 5.1s 5.1s
TestOtherStreamOutput 1 5.0s 5.0s
imix::bin/imix: install::tests::test_install_execution 3 1.2s 3.4s
imix::bin/imix: install::tests::test_install_execution 3 1.2s 3.4s
imix::bin/imix: install::tests::test_install_execution 3 1.2s 3.4s
imix::bin/imix: tests::task_tests::test_task_eprint_behavior 3 3.0s 3.0s
imix::bin/imix: tests::task_tests::test_task_eprint_behavior 3 3.0s 3.0s
imix::bin/imix: tests::task_tests::test_task_eprint_behavior 3 3.0s 3.0s

🎉 No failed tests in this run. | 🍂 No flaky tests in this run.

Github Test Reporter by CTRF 💚

🔄 This comment has been updated

Fixed `error[E0063]: missing field jitter in initializer of pb::c2::Transport`
which occurred in `implants/lib/transport` due to the recent addition of the `jitter` field
to the `Transport` protobuf message.

Changes:
- Updated `implants/lib/transport/src/dns.rs` to initialize `jitter: 0.0` in `Transport` struct.
- Updated `implants/lib/transport/src/lib.rs` to initialize `jitter: 0.0` in `Transport` struct.
- Verified compilation with `cargo check -p transport` and tests with `cargo test -p transport`.

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
@KCarretto KCarretto requested a review from hulto February 22, 2026 18:25
@KCarretto KCarretto marked this pull request as ready for review February 22, 2026 18:25
Fixed `error[E0063]: missing field jitter in initializer of pb::c2::Transport`
in `imix/src/tests/agent_trait_tests.rs`. This was a lingering issue similar
to the previous fix in the `transport` library.

Changes:
- Updated `implants/imix/src/tests/agent_trait_tests.rs` to initialize `jitter: 0.0`
  in `pb::c2::Transport` struct initializations.
- Verified compilation and tests with `cargo check -p imix --tests` and `cargo test -p imix`.

Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
Copy link
Collaborator

@hulto hulto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@KCarretto KCarretto added this pull request to the merge queue Feb 22, 2026
Merged via the queue into main with commit 36622b3 Feb 22, 2026
8 checks passed
@KCarretto KCarretto deleted the imix-jitter-callback-16886886867242433849 branch February 22, 2026 22:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants