Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
8e1139b
wip
hojmark Oct 5, 2025
1dcd43f
featureflags
hojmark Nov 10, 2025
b5ca190
resolve conflicts
hojmark Nov 10, 2025
43c3223
f
hojmark Nov 10, 2025
3799f41
FeatureFlagTest
hojmark Nov 10, 2025
d3f26ac
f
hojmark Nov 10, 2025
d26d0ad
deps bump
hojmark Nov 10, 2025
33ddcf5
f
hojmark Nov 26, 2025
79e6ec4
works
hojmark Dec 1, 2025
1a8a23b
f
hojmark Dec 1, 2025
044c17f
f
hojmark Dec 1, 2025
f4272ff
f
hojmark Dec 1, 2025
3ecbcd9
tests and refactor
hojmark Dec 2, 2025
4b5eca6
f
hojmark Dec 2, 2025
006108b
Clustering -> Cluster
hojmark Dec 2, 2025
446e3e3
f
hojmark Dec 2, 2025
21d2179
subnet source
hojmark Dec 3, 2025
04c906b
f
hojmark Dec 3, 2025
0aedd05
fix test
hojmark Dec 4, 2025
abd0f3a
fix test
hojmark Dec 4, 2025
d5fd4b1
fix most tests
hojmark Dec 4, 2025
19d2cc3
fix subnet discovery via agents
hojmark Dec 22, 2025
823e31b
f
hojmark Dec 22, 2025
6eb9c31
f
hojmark Dec 22, 2025
d807f6c
f
hojmark Dec 22, 2025
27ce5c1
f
hojmark Dec 22, 2025
b1d5522
f
hojmark Dec 29, 2025
23a111f
f
hojmark Dec 29, 2025
ee15c24
remove legacy Grpc.Core references
hojmark Dec 29, 2025
f791c8e
f
hojmark Dec 29, 2025
2c1a2cb
bump packages
hojmark Feb 18, 2026
77cffca
refactor: unify peer message handler interface with stream access
hojmark Feb 18, 2026
4494efd
feat: add scan protocol messages and streaming support
hojmark Feb 18, 2026
89b0d57
test: fix ScanCommandTests DI setup for ISubnetScannerFactory
hojmark Feb 18, 2026
0fa2a57
wip: add DistributedNetworkScanner skeleton
hojmark Feb 18, 2026
214afb8
refactor: improve DistributedNetworkScanner readability
hojmark Feb 18, 2026
23d8cff
Integrate DistributedNetworkScanner into ScanCommand and fix JSON ser…
hojmark Feb 18, 2026
afd3234
Fix ScanCommand to handle missing spec file gracefully
hojmark Feb 18, 2026
6f9ebfc
Fix overlapping subnets and add essential distributed scan tests
hojmark Feb 18, 2026
31d386b
Implement redundant scanning and result merging for overlapping subnets
hojmark Feb 18, 2026
d890f8f
Implement agent identity persistence with file-based UUID storage
hojmark Feb 18, 2026
4f5334e
Add retry logic with exponential backoff and configurable timeouts
hojmark Feb 18, 2026
7c08a51
Add warning logs for failed agents and partial scan results
hojmark Feb 18, 2026
9c30f44
Add containerlab setup for distributed scanning integration tests
hojmark Feb 18, 2026
df15bf9
containerlab: update topologies to use latest dev image
hojmark Feb 18, 2026
3617543
fix(agent): listen on all interfaces instead of localhost only
hojmark Feb 18, 2026
d049d1e
refactor(agent): consolidate agent service configuration
hojmark Feb 18, 2026
f914ef7
fix: remove AgentId prefix duplication in agent operations
hojmark Feb 18, 2026
2382c54
test(containerlab): add passing integration tests for simple-test and…
hojmark Feb 18, 2026
01e9287
fix: resolve failing unit tests and improve distributed scanning
hojmark Feb 18, 2026
f3976da
fix tests
hojmark Feb 19, 2026
6fb5fa5
f
hojmark Feb 19, 2026
7106931
fix warnings
hojmark Feb 19, 2026
e0a5bb5
f
hojmark Feb 19, 2026
89b1c44
fix: preview warnings, silent failure logging, and console debug output
hojmark Mar 2, 2026
ae99609
setup containerlab
hojmark Mar 3, 2026
b6d2cb2
remove extracted code
hojmark Mar 3, 2026
e241063
reduce timeout
hojmark Mar 3, 2026
50518fb
add progress
hojmark Mar 3, 2026
7d0788d
fix project
hojmark Mar 3, 2026
e88192e
fix(ci): route containerlab stderr to Info to suppress GH Actions err…
hojmark Mar 3, 2026
1f6b35c
lower clab logger severity
hojmark Mar 3, 2026
f18b5d9
fix warnings
hojmark Mar 3, 2026
cbf00cf
fix warning
hojmark Mar 3, 2026
f1e3720
f
hojmark Mar 3, 2026
d99401d
fix case no
hojmark Mar 3, 2026
e273527
no log template for ClabLogger
hojmark Mar 3, 2026
0bbaf4f
clab nuke target
hojmark Mar 3, 2026
f915c1c
refactor clab
hojmark Mar 3, 2026
32b0a41
reduce progress spam
hojmark Mar 14, 2026
096a18b
extract progress update policy
hojmark Mar 14, 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
2 changes: 2 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,8 @@ dotnet_diagnostic.SA1502.severity = none
dotnet_diagnostic.SA1508.severity = none
# SA1516 Elements should be separated by blank line (but reports false positives)
dotnet_diagnostic.SA1516.severity = none
# SA1201 An element within a C# code file is out of order in relation to the other elements in the code.
dotnet_diagnostic.SA1201.severity = none


# TODO TBD
Expand Down
4 changes: 4 additions & 0 deletions .github/actions/setup-runner/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,7 @@ runs:
- name: Restore .NET tools
shell: bash
run: dotnet tool restore

- name: Install Containerlab
shell: bash
run: bash -c "$(curl -sL https://get.containerlab.dev)"
2 changes: 1 addition & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
test:
name: Test
runs-on: ubuntu-latest
timeout-minutes: 5
timeout-minutes: 10
env:
# https://docs.github.com/en/actions/how-tos/monitor-workflows/enable-debug-logging
ACTIONS_RUNNER_DEBUG: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prerelease.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: write # Required by Release target
timeout-minutes: 5
timeout-minutes: 10
steps:
- name: Checkout repository
uses: actions/checkout@v6
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: write # Required by Release target
timeout-minutes: 5
timeout-minutes: 10
steps:
- name: Checkout repository
uses: actions/checkout@v6
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ obj/
#*.idea
.idea/.idea.Drift/.idea/watcherTasks.xml
.idea/.idea.Drift/.idea/encodings.xml
.idea/.idea.Drift.Build/.idea/encodings.xml
*.DotSettings
*.received.*
artifacts/
Expand All @@ -14,4 +15,5 @@ TestResults/
build.binlog
build.binlog-warnings-only.log
publish.binlog
publish.binlog-warnings-only.log
publish.binlog-warnings-only.log
containerlab/*/
13 changes: 13 additions & 0 deletions .nuke/build.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"ReleaseContainer",
"Restore",
"Test",
"TestClab",
"TestE2E",
"TestLocal",
"TestSelf",
Expand Down Expand Up @@ -117,6 +118,10 @@
"allOf": [
{
"properties": {
"ClabTopology": {
"type": "string",
"description": "Run only this topology (e.g. 'simple-test'). Runs all topologies if not specified"
},
"Commit": {
"type": "string",
"description": "Commit - e.g. '4c16978aa41a3b435c0b2e34590f1759c1dc0763'"
Expand All @@ -143,10 +148,18 @@
"description": "GitHubToken - GitHub token used to create releases",
"default": "Secrets must be entered via 'nuke :secrets [profile]'"
},
"KeepClabRunning": {
"type": "boolean",
"description": "Keep Containerlab topology running after tests"
},
"MsBuildVerbosity": {
"type": "string",
"description": "MsBuildVerbosity - Console output verbosity - Default is 'normal'"
},
"SkipClabDeploy": {
"type": "boolean",
"description": "Skip Containerlab deployment (useful for debugging when topology is already running)"
},
"Solution": {
"type": "string",
"description": "Path to a solution file that is automatically loaded"
Expand Down
8 changes: 8 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Google.Protobuf" Version="3.33.5" />
<PackageVersion Include="Grpc.AspNetCore" Version="2.76.0" />
<PackageVersion Include="Grpc.Core.Api" Version="2.76.0" />
<PackageVersion Include="Grpc.Net.Client" Version="2.76.0" />
<PackageVersion Include="Grpc.Tools" Version="2.78.0" />
<PackageVersion Include="HLabs.Containers" Version="1.0.0-preview.1" />
<PackageVersion Include="HLabs.ImageReferences" Version="1.0.0-preview.3" />
<PackageVersion Include="HLabs.ImageReferences.Extensions.Nuke" Version="1.0.0-preview.3" />
<PackageVersion Include="Humanizer" Version="3.0.1" />
Expand All @@ -13,6 +19,7 @@
<PackageVersion Include="JsonSchema.Net.Generation" Version="7.1.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.BannedApiAnalyzers" Version="4.14.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.3" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.3" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.3" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.3" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.3" />
Expand All @@ -35,6 +42,7 @@
<PackageVersion Include="StyleCop.Analyzers" Version="1.1.118" />
<PackageVersion Include="System.CommandLine" Version="2.0.3" />
<PackageVersion Include="System.Text.Json" Version="10.0.3" />
<PackageVersion Include="System.Threading.Channels" Version="10.0.3" />
<PackageVersion Include="System.Threading.RateLimiting" Version="10.0.3" />
<PackageVersion Include="Testcontainers" Version="4.10.0" />
<PackageVersion Include="TngTech.ArchUnitNET.NUnit" Version="0.13.2" />
Expand Down
8 changes: 5 additions & 3 deletions Drift.Build.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@
<Solution>
<Folder Name="/Workflows/">
<File Path=".github\workflows\ci.yaml" />
<File Path=".github\workflows\codeql.yml" />
<File Path=".github\workflows\prerelease.yaml" />
<File Path=".github\workflows\release.yaml" />
<File Path=".github\workflows\renovate.yaml" />
</Folder>
<Folder Name="/Workflows/Actions/" />
<Folder Name="/Workflows/Actions/runner-setup/">
<File Path=".github\actions\setup-runner\action.yml" />
</Folder>
<Project Path="build\_build.csproj" Type="Classic C#" />
<Project Path="build-utils\Build.Utilities.Tests\Build.Utilities.Tests.csproj" Type="Classic C#" />
<Project Path="build-utils\Build.Utilities\Build.Utilities.csproj" Type="Classic C#" />
<Project Path="build\_build.csproj" Type="C#" />
<Project Path="build-utils\Build.Utilities.Tests\Build.Utilities.Tests.csproj" Type="C#" />
<Project Path="build-utils\Build.Utilities\Build.Utilities.csproj" Type="C#" />
</Solution>
69 changes: 69 additions & 0 deletions Drift.sln
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,28 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cli.Settings.SchemaGenerato
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Schemas", "src\Common.Schemas\Common.Schemas.csproj", "{BAC0F9AF-CAE2-43FB-AF47-B9AC7B62544B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Networking.PeerStreaming.Grpc", "src\Networking.PeerStreaming.Grpc\Networking.PeerStreaming.Grpc.csproj", "{8ED3FF22-90D2-4F08-A079-55FE7127D1C7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Networking.Cluster", "src\Networking.Cluster\Networking.Cluster.csproj", "{091D3DCE-F062-4D40-A8F6-5B6F123ED713}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Networking.PeerStreaming.Core", "src\Networking.PeerStreaming.Core\Networking.PeerStreaming.Core.csproj", "{80445644-7342-4C6D-88E5-BF27126FE9A2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Agent.Hosting", "src\Agent.Hosting\Agent.Hosting.csproj", "{655124DB-312F-4135-B104-20518CAFDA82}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Networking.PeerStreaming.Server", "src\Networking.PeerStreaming.Server\Networking.PeerStreaming.Server.csproj", "{A26B4527-6EBF-4A20-8E75-945CCD59016B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Networking.PeerStreaming.Client", "src\Networking.PeerStreaming.Client\Networking.PeerStreaming.Client.csproj", "{E69772D3-8A07-414F-8F9A-30370D81A972}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Networking", "Networking", "{75F8AA01-64B6-4EF6-A1B2-CC6E8745A2CC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Networking.PeerStreaming.Core.Abstractions", "src\Networking.PeerStreaming.Core.Abstractions\Networking.PeerStreaming.Core.Abstractions.csproj", "{ED4522C5-C32B-4FDB-B1BA-82D40D1EC403}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Networking.PeerStreaming.Tests", "src\Networking.PeerStreaming.Tests\Networking.PeerStreaming.Tests.csproj", "{9DFDD692-22F8-4F9A-8808-94E318863D23}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Agent.PeerProtocol", "src\Agent.PeerProtocol\Agent.PeerProtocol.csproj", "{7C72C2AE-2888-47A0-AAA4-61CC66B9F941}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Agent.PeerProtocol.Tests", "src\Agent.PeerProtocol.Tests\Agent.PeerProtocol.Tests.csproj", "{C4576156-BD24-463F-88F2-8A4378855BCC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -177,11 +199,58 @@ Global
{BAC0F9AF-CAE2-43FB-AF47-B9AC7B62544B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BAC0F9AF-CAE2-43FB-AF47-B9AC7B62544B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BAC0F9AF-CAE2-43FB-AF47-B9AC7B62544B}.Release|Any CPU.Build.0 = Release|Any CPU
{8ED3FF22-90D2-4F08-A079-55FE7127D1C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8ED3FF22-90D2-4F08-A079-55FE7127D1C7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8ED3FF22-90D2-4F08-A079-55FE7127D1C7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8ED3FF22-90D2-4F08-A079-55FE7127D1C7}.Release|Any CPU.Build.0 = Release|Any CPU
{091D3DCE-F062-4D40-A8F6-5B6F123ED713}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{091D3DCE-F062-4D40-A8F6-5B6F123ED713}.Debug|Any CPU.Build.0 = Debug|Any CPU
{091D3DCE-F062-4D40-A8F6-5B6F123ED713}.Release|Any CPU.ActiveCfg = Release|Any CPU
{091D3DCE-F062-4D40-A8F6-5B6F123ED713}.Release|Any CPU.Build.0 = Release|Any CPU
{80445644-7342-4C6D-88E5-BF27126FE9A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80445644-7342-4C6D-88E5-BF27126FE9A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{80445644-7342-4C6D-88E5-BF27126FE9A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80445644-7342-4C6D-88E5-BF27126FE9A2}.Release|Any CPU.Build.0 = Release|Any CPU
{655124DB-312F-4135-B104-20518CAFDA82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{655124DB-312F-4135-B104-20518CAFDA82}.Debug|Any CPU.Build.0 = Debug|Any CPU
{655124DB-312F-4135-B104-20518CAFDA82}.Release|Any CPU.ActiveCfg = Release|Any CPU
{655124DB-312F-4135-B104-20518CAFDA82}.Release|Any CPU.Build.0 = Release|Any CPU
{A26B4527-6EBF-4A20-8E75-945CCD59016B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A26B4527-6EBF-4A20-8E75-945CCD59016B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A26B4527-6EBF-4A20-8E75-945CCD59016B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A26B4527-6EBF-4A20-8E75-945CCD59016B}.Release|Any CPU.Build.0 = Release|Any CPU
{E69772D3-8A07-414F-8F9A-30370D81A972}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E69772D3-8A07-414F-8F9A-30370D81A972}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E69772D3-8A07-414F-8F9A-30370D81A972}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E69772D3-8A07-414F-8F9A-30370D81A972}.Release|Any CPU.Build.0 = Release|Any CPU
{ED4522C5-C32B-4FDB-B1BA-82D40D1EC403}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED4522C5-C32B-4FDB-B1BA-82D40D1EC403}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED4522C5-C32B-4FDB-B1BA-82D40D1EC403}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED4522C5-C32B-4FDB-B1BA-82D40D1EC403}.Release|Any CPU.Build.0 = Release|Any CPU
{9DFDD692-22F8-4F9A-8808-94E318863D23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9DFDD692-22F8-4F9A-8808-94E318863D23}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DFDD692-22F8-4F9A-8808-94E318863D23}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9DFDD692-22F8-4F9A-8808-94E318863D23}.Release|Any CPU.Build.0 = Release|Any CPU
{7C72C2AE-2888-47A0-AAA4-61CC66B9F941}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C72C2AE-2888-47A0-AAA4-61CC66B9F941}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C72C2AE-2888-47A0-AAA4-61CC66B9F941}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C72C2AE-2888-47A0-AAA4-61CC66B9F941}.Release|Any CPU.Build.0 = Release|Any CPU
{C4576156-BD24-463F-88F2-8A4378855BCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C4576156-BD24-463F-88F2-8A4378855BCC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C4576156-BD24-463F-88F2-8A4378855BCC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C4576156-BD24-463F-88F2-8A4378855BCC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{8523E9E0-F412-41B7-B361-ADE639FFAF24} = {C0698EF0-61C8-403E-8E93-1F1D34C5B910}
{FEA2FBBE-785F-4187-8242-FD348F9E78AF} = {C0698EF0-61C8-403E-8E93-1F1D34C5B910}
{272166CF-E425-45F8-984F-FAFD3CE953C9} = {C0698EF0-61C8-403E-8E93-1F1D34C5B910}
{DD70FBC7-8367-45B3-8D3D-757F1CDF6531} = {C0698EF0-61C8-403E-8E93-1F1D34C5B910}
{091D3DCE-F062-4D40-A8F6-5B6F123ED713} = {75F8AA01-64B6-4EF6-A1B2-CC6E8745A2CC}
{8ED3FF22-90D2-4F08-A079-55FE7127D1C7} = {75F8AA01-64B6-4EF6-A1B2-CC6E8745A2CC}
{80445644-7342-4C6D-88E5-BF27126FE9A2} = {75F8AA01-64B6-4EF6-A1B2-CC6E8745A2CC}
{A26B4527-6EBF-4A20-8E75-945CCD59016B} = {75F8AA01-64B6-4EF6-A1B2-CC6E8745A2CC}
{E69772D3-8A07-414F-8F9A-30370D81A972} = {75F8AA01-64B6-4EF6-A1B2-CC6E8745A2CC}
{ED4522C5-C32B-4FDB-B1BA-82D40D1EC403} = {75F8AA01-64B6-4EF6-A1B2-CC6E8745A2CC}
{9DFDD692-22F8-4F9A-8808-94E318863D23} = {75F8AA01-64B6-4EF6-A1B2-CC6E8745A2CC}
EndGlobalSection
EndGlobal
4 changes: 4 additions & 0 deletions README_dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@
One or more addresses (MAC, IPv4, IPv6, and/or hostname) that together serve as a unique identifier for a network
device.

- **Agent**
A running instance of Drift in agent mode that reports network state to other Drift peers.
Agents help ensure full network visibility by uncovering state that's only observable when scanning from specific subnets.

## Concepts

### Device ID
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">

<ItemGroup>
<PackageReference Include="TUnit" />
<ProjectReference Include="..\Build.Utilities\Build.Utilities.csproj" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Build.Utilities\Build.Utilities.csproj" />
<PackageReference Include="TUnit" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion build/NukeBuild.Test.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

sealed partial class NukeBuild {
Target Test => _ => _
.DependsOn( TestSelf, TestUnit, TestE2E );
.DependsOn( TestSelf, TestUnit, TestE2E, TestClab );

Target TestSelf => _ => _
.Before( BuildInfo )
Expand Down
Loading