Skip to content

Bump Tmds.DBus from 0.14.0 to 0.94.2 - #41

Closed
dependabot[bot] wants to merge 42 commits into
mainfrom
dependabot/nuget/Tmds.DBus-0.94.2
Closed

Bump Tmds.DBus from 0.14.0 to 0.94.2#41
dependabot[bot] wants to merge 42 commits into
mainfrom
dependabot/nuget/Tmds.DBus-0.94.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jun 22, 2026

Copy link
Copy Markdown

Updated Tmds.DBus from 0.14.0 to 0.94.2.

Release notes

Sourced from Tmds.DBus's releases.

0.94.2

Tmds.DBus.Generator

  • Support interfaces with more than 64 readable properties (#​447).

0.94.1

Tmds.DBus.Generator

  • Fixed DBusHandler code only being generated for the last interface when generating handler types for multiple interfaces (#​445).

0.94.0

Tmds.DBus.Protocol

  • Func<ValueTask> handler overloads added to avoid async void in user code (#​440).

Tmds.DBus.Generator

  • [Breaking] IReadableXxxProperties has been replaced with a unified IXxxProperties interface. Write-only properties are uncommon and the separate interface made explicit interface implementations more verbose (#​441).
  • Fix code generation for single-field D-Bus structs (#​439).
  • DBusHandler.ParseInterface now ignores missing interface string on Properties requests (#​442).

Documentation

  • Documentation rewritten into a single guide (#​443).

0.93.0

0.93.0

Tmds.DBus.Protocol

  • [Breaking] Previously obsoleted types and APIs have been removed (#​426):
    • Connection - use DBusConnection instead.
    • ConnectionOptions - use DBusConnectionOptions instead.
    • ClientConnectionOptions - use DBusConnectionOptions instead.
    • ClientSetupResult - use DBusConnectionOptions.SetupResult instead.
    • Address - use DBusAddress instead.
    • ActionException - use ObserverHandler instead.
    • IMethodHandler - use IPathMethodHandler instead.
    • DBusException - use DBusErrorReplyException instead.
    • DisconnectedException - use DBusConnectionClosedException instead.
    • ConnectException - use DBusConnectFailedException instead.
    • ProtocolException - use DBusUnexpectedValueException instead.
    • MethodContext.Connection - use MethodContext.DBusConnection instead.
  • AddMatchAsync overloads that accept Action<Exception?, T, object?, object?> are marked Obsolete. Use the new Action<Notification<T>> overloads instead (#​427).
  • Notification<T> / Notification / NotificationType: new callback API for signal observers, replacing the Action<Exception?, T, ...> pattern. Notifications distinguish between value, owner change, and completion events (#​427).
  • NameOwnerWatcher: tracks name ownership changes when calling methods and watching signals, enabling detection of service restarts. A DBusOwnerChangedException
    is thrown when a method call targets an owner identifier from NameOwnerWatcher and the owner has changed (#​425).
  • OnException handler on DBusConnectionOptions: provides exception reporting and disconnect control via the new ExceptionContext / ExceptionSource types (#​431).

Tmds.DBus.Generator

  • The generator can now produce handler (server-side) types for implementing D-Bus interfaces. To generate handlers, set the DBusGeneratorMode property to Handler, to generate proxies set it to Proxy. (#​429, #​433)
  • [Breaking] Instead of a single action overload that accepts Action<Exception?, T>, the generator generates a simple overload that accepts Action<T> for users that are not interested in completion notifications, and an Action<Notification<T>> overload to be notified of completions. (#​427)
  • [Breaking] To enable handler code to generate an IXxxProperties interface, the generated proxy code changed as follows:
    • The GetPropertiesAsync method now returns the concrete XxxProperties class. When trying to get properties that were not set the get accessor throws. Alternatively, users can call GetNullablePropertiesAsync which returns an INullableXxxProperties interface which returns null for properties that are not set.
    • The WatchPropertiesChanged methods use a new IChangedXxxProperties interface.

0.92.0

This release addresses vulnerabilities from malicious senders in Tmds.DBus and Tmds.DBus.Protocol:

  • Check the signal sender is the owner of the well-known name (fb41b95, b429873)
  • Prevent spilling of unix fds to the next message and limit the number to 16 per message (4800917, f90642d)
  • Prevent unhandled exceptions on SynchronizationContext due to a malformed body sent by a malicious sender. (f0d9d0b, a64b8b9)

Advisory: GHSA-xrw6-gwf8-vvr9

0.91.1

Tmds.DBus.Generator/Tmds.DBus.Tool:

0.91.0

Changes:

Bug fixes/improvements:

0.90.3

0.90.2

Tmds.DBus.Generator/Tmds.DBus.Tool:

0.90.1

Tmds.DBus.Generator:

0.90.0

Tmds.DBus.Protocol

This release does some refactoring which requires changes from the user. The version is binary compatible with the previous version. Obsolete attributes indicate what changes a user should make.

  • These types have been renamed to be less generic:
`Connection` -> `DBusConnection` (https://github.com/tmds/Tmds.DBus/pull/373)
`Address` -> `DBusAddress` (https://github.com/tmds/Tmds.DBus/pull/372)
`ActionException` -> `ObserverHandler` (https://github.com/tmds/Tmds.DBus/pull/371)

When you have code that requires the Connection type, you can call DBusConnection.AsConnection().

DBusExceptionBase
├── DBusConnectionException
│   ├── DBusConnectionClosedException
│   │   └── DisconnectedException (obsolete -> DBusConnectionClosedException)
│   └── DBusConnectFailedException
│       └── ConnectException (obsolete -> DBusConnectFailedException)
└── DBusMessageException
    ├── DBusReadException
    ├── DBusErrorReplyException
    │   └── DBusException (obsolete -> DBusErrorReplyException)
    └── DBusUnexpectedValueException
        └── ProtocolException (obsolete -> DBusUnexpectedValueException)

Behavioral changes:

New APIs:

Tmds.DBus.Generator

Documentation

... (truncated)

0.23.0

Tmds.DBus.Protocol:

  • Protocol: add hierarchical path support and improved async handling for method handling. (#​360)
  • Protocol: use non-blocking SynchronizationContext.Post instead of Send for callbacks. (#​361)

0.22.0

Tmds.DBus:

Tmds.DBus.Protocol:

Tmds.DBus.Tool:

0.21.3

This release backports the fixes from 0.92.0 to Tmds.DBus.Protocol.

Advisory: GHSA-xrw6-gwf8-vvr9

0.21.2

Tmds.DBus.Protocol:

0.21.1

Removes public API that was added in 0.21.0:

0.21.0

Tmds.DBus.Protocol

In v0.17.0 support for NativeAOT safe variant handling was enabled through two types: VariantValue for reading variants,
and Variant for writing variants. The focus on this release is to support both reading and writing using the VariantValue type.
This enables writing back variants that were previously read.

The Variant type has been marked obsolete. Users should now be able to use the VariantValue type as a direct replacement.
Note that the Dict/Array/Struct types are not obsolete. They can be used for creating composite VariantValues.

The VariantValue type now behaves different for variants that hold other variants. Such variants are not common because
usually a variant will directly hold an actual (that is: non-variant) value. Variants that hold other variants are represented
as their own VariantValue instance with a Type of Variant. The nested variant value can be obtained by calling GetVariantValue.

There are some additional breaking API changes which shouldn't affect most users because involve low-level APIs for D-Bus marshalling and signature handling.

  • The Utf8Span type has been removed. APIs use ReadOnlySpan<byte> instead.
  • VariantValue.GetSignature returns a Signature (instead of a string).
  • VariantValue.GetArray<T> requires a T of Signature (instead of a string) for getting arrays of signature.
  • Reader.ReadSignature returns Signature instead of Utf8Span. ReadSignatureAsSignature has been removed. The new ReadSignatureAsSpan returns ReadOnlySpan<byte>.

Tmds.DBus.Tool

The following fixes have been made to the codegen command for the protocol API (in tmds/Tmds.DBus#307):

  • Generate writable properties for Set-methods only.
  • PropertyChanges: invalidated and changed are swapped.

0.20.0

Tmds.DBus.Protocol:

Tmds.DBus:

0.19.0

Tmds.DBus.Protocol:

0.18.0

Tmds.DBus.Protocol:

Tmds.DBus:

0.17.0

Main feature:
The focus of this release is improve trimming/NativeAOT support in the protocol library. Non-compatible members have been annotated and obsoleted. The library adds AOT-friendly types for reading and writing variants: VariantValue and Variant.

Other changes:

0.16.0

0.15.0

Commits viewable in compare view.

Add null guard on ServiceLog.Message in the search-term filter to
prevent NullReferenceException when log entries have null messages.
Add comprehensive XML documentation for the ApplyFilter method
explaining the level comparison semantics.
… 100% (closes #16)

Replaced the per-service CPU usage calculation in GetServiceResourceMetricsAsync
so that the raw cgroup cpu.stat / cpuacct.usage delta is divided by the number
of logical CPU cores (Environment.ProcessorCount) before being expressed as a
percentage.  A service that saturates one core on a 4-core host now reports 25 %
instead of 100 %; a service that saturates all cores reports 100 %.

Also replaced the if-check cap with Math.Clamp(value, 0m, 100m) so the result
is guaranteed to stay in the 0-100 range regardless of floating-point rounding.
…loses #15)

Replaced the Lazy<Task<Connection>> field in DBusConnectionManager with a plain
nullable Task<Connection> field protected by a SemaphoreSlim.

Previously, when a D-Bus call failed the faulted Task was cached forever by
Lazy<T>, meaning every subsequent call was handed the same failed object.
After enough failures (~50-100 polls) no new connections could be established
and the application returned 503 until restarted.

The new implementation discards the cached task whenever it is faulted or
cancelled before issuing a fresh CreateConnectionAsync() call, so transient
failures auto-recover on the next request.  ReconnectAsync also explicitly
disposes any live connection before retrying, and Dispose() properly cleans up
both the connection and the semaphore.
 #19)

Added a new installation section (§5) covering all steps needed to run the
dashboard under a dedicated low-privilege account instead of root:

* Create a system account (useradd --system)
* Add it to the systemd-journal group for journal log access
* Create a D-Bus policy file (/etc/dbus-1/system.d/) that allows listing,
  querying, and optionally controlling units via org.freedesktop.systemd1
* Create a polkit rule (/etc/polkit-1/rules.d/) to authorise service control
  operations without elevated privileges
* Provide a sample systemd unit file using User=svcmonitor,
  SupplementaryGroups=systemd-journal, and NoNewPrivileges=true
* Add verification commands (id, dbus-send, journalctl) to confirm the setup

Updated the Table of Contents to link to the new section.
Added BulkRestartAsync to IServiceControlService and ServiceControlService.
The implementation accepts a list of unit names and a configurable concurrency
limit (default 3, clamped 1-20).  It fans out RestartUnit D-Bus calls using a
SemaphoreSlim so that only maxConcurrency restarts run simultaneously, then
returns a BulkOperationResult with per-service success/failure details
(SuccessCount, FailureCount, AllSucceeded).

Exposed the feature as:
  POST /api/services/bulk-restart
with JSON body { "serviceNames": [...], "maxConcurrency": 3 }

Added BulkRestartRequest model and BulkOperationResult class.
- Add Pages/Index.razor Blazor dashboard page with:
  - Text search input that filters services by name (client-side, case-insensitive)
  - Status filter buttons: All / Active / Failed / Inactive
  - Results count summary
  - Service table with name, state badge, sub-state, description, PID, uptime
  - Error state with retry button and loading indicator
- Add App.razor, Routes.razor, _Imports.razor to enable Blazor Server
- Add wwwroot/css/dashboard.css with clean responsive dashboard styles
- Register AddRazorComponents/AddInteractiveServerComponents in Program.cs
- Add UseAntiforgery and MapRazorComponents pipeline in Program.cs
- Move Swagger UI from root to /swagger path to avoid route conflict

closes #33
Sarmkadan added 9 commits May 25, 2026 22:31
…Api 10.0 in favor of Swashbuckle

Microsoft.AspNetCore.OpenApi 10 requires Microsoft.OpenApi 2.0 which breaks
Swashbuckle.AspNetCore 7.x that expects the Models namespace from 1.x.
Removed the duplicate DatabaseOptions class that caused CS0101.
… headers

ASP0019 requires IHeaderDictionary indexer instead of .Add() to avoid
ArgumentException on duplicate keys. All three middleware classes were also
missing the RequestDelegate next parameter needed to call the next handler.
…controllers

- Add LoadState, CpuUsagePercent, MemoryUsageMb to ServiceInfo
- Add resource snapshot fields to ServiceMetric for MetricsController
- Fix ServiceMonitorService: IsConnected is bool (not Task), GetAllAsync arity,
  unassigned pattern variables, decimal/double cast for AverageCpuUsage
- Fix DBusConnectionManager: use new Connection(Address.System) instead of
  non-existent GetSessionConnectionAsync; remove State property references
- Fix IProperties.GetAllAsync call to single-argument overload
- Fix AttributeUsage on non-Attribute filter classes (CS0641)
- Fix MemoryCacheProvider constructor parameter order (CS1737)
- Fix Index.razor rendermode to InteractiveServerRenderMode
- Fix LogsController: materialize IEnumerable before .Count
Tests for AlertRulesEngine, ApiIntegration, ConcurrencyEdgeCases,
ResourceMonitor, ServiceControl, ServiceLog, and WorkflowIntegration all
referenced types and properties that do not exist in the codebase.
Kept PaginationHelper, ValidationHelper, ServiceMonitorService,
ServiceDependencyGraph, ServiceHealthChecker, and AlertsController tests.
Removed build.yml (235 lines with 7 jobs including CodeQL, Trivy, Docker),
codeql.yml, docker.yml, nuget-publish.yml, and release.yml. The single
ci.yml does restore, build, and test on every push/PR to main.
Old README was ~400 lines of filler. New one has quick start, config
reference, systemd unit example, and API table. Removed CODE_OF_CONDUCT,
CONTRIBUTING, SECURITY, and empty CHANGELOG.
Pipeline/RequestPipeline.cs was never referenced. Events/ServiceEventPublisher.cs
was fully commented out in ServiceExtensions.cs. Removed docs/ directory
(7 markdown files) - README covers all essential information.
76 files had a 4-line banner comment block. Removed them all - author
attribution belongs in the LICENSE file, not repeated in every source file.
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Jun 22, 2026
Sarmkadan and others added 3 commits June 29, 2026 08:19
---
updated-dependencies:
- dependency-name: Tmds.DBus
  dependency-version: 0.94.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/nuget/Tmds.DBus-0.94.2 branch from 272768c to 699acc4 Compare June 29, 2026 10:55
@Sarmkadan Sarmkadan closed this Jul 11, 2026
@dependabot @github

dependabot Bot commented on behalf of github Jul 11, 2026

Copy link
Copy Markdown
Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/nuget/Tmds.DBus-0.94.2 branch July 11, 2026 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant