Skip to content

fix: add DaprInvokeHttpClient.encodePath for URI path encoding - #1774

Merged
cicoyle merged 1 commit into
dapr:masterfrom
javier-aliaga:fix/invoke-http-client-path-encoding
Jun 30, 2026
Merged

cicoyle merged 1 commit into
dapr:masterfrom
javier-aliaga:fix/invoke-http-client-path-encoding

Conversation

@javier-aliaga

@javier-aliaga javier-aliaga commented Jun 29, 2026 •

Copy link
Copy Markdown
Contributor

Description

newRequestBuilder resolves relativePath raw and now rethrows IllegalArgumentException on illegal chars (e.g. spaces), pointing at encodePath. encodePath percent-encodes each path segment, preserving separators and a leading slash and appending any query unchanged, mirroring DaprHttp/invokeMethod.

Issue reference

We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.

Please reference the issue this PR will close: #[issue number]

Checklist

Please make sure you've completed the relevant tasks for this PR, out of the following list:

  • Code compiles correctly
  • Created/updated tests
  • Extended the documentation

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a public helper for safely encoding URI path segments for Dapr HTTP invocation, and improves the error guidance when callers pass an illegal relativePath into newRequestBuilder.

Changes:

  • Add DaprInvokeHttpClient.encodePath(String) to percent-encode each /-delimited path segment while preserving separators and leading slashes.
  • Update newRequestBuilder(String) to resolve the path “as-is” and rethrow IllegalArgumentException with guidance pointing callers to encodePath.
  • Add unit tests covering encodePath behavior and the new newRequestBuilder error guidance.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
sdk/src/main/java/io/dapr/client/DaprInvokeHttpClient.java Adds encodePath and wraps invalid-URI failures from URI.resolve with a guidance message.
sdk/src/test/java/io/dapr/client/DaprInvokeHttpClientTest.java Adds tests for path encoding behavior and for the new error guidance behavior in newRequestBuilder.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread sdk/src/main/java/io/dapr/client/DaprInvokeHttpClient.java Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

@javier-aliaga
javier-aliaga marked this pull request as ready for review June 29, 2026 15:03
@javier-aliaga
javier-aliaga requested review from a team as code owners June 29, 2026 15:03
artur-ciocanu
artur-ciocanu previously approved these changes Jun 30, 2026

@artur-ciocanu artur-ciocanu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM, I have left a tiny comment regarding extracting an URI utils.

Comment thread sdk/src/main/java/io/dapr/client/DaprInvokeHttpClient.java Outdated
newRequestBuilder resolves relativePath raw and now rethrows
IllegalArgumentException on illegal chars (e.g. spaces), pointing at
encodePath. encodePath percent-encodes each path segment, preserving
separators and a leading slash and appending any query unchanged,
mirroring DaprHttp/invokeMethod.

Signed-off-by: Javier Aliaga <[email protected]>
@codecov

codecov Bot commented Jun 30, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 87.50000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.86%. Comparing base (0c4590c) to head (07d0d8f).

Files with missing lines Patch % Lines
sdk/src/main/java/io/dapr/utils/UriUtils.java 86.95% 1 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff            @@
##             master    #1774   +/-   ##
=========================================
  Coverage     76.86%   76.86%           
- Complexity     2298     2306    +8     
=========================================
  Files           243      244    +1     
  Lines          7141     7163   +22     
  Branches        745      753    +8     
=========================================
+ Hits           5489     5506   +17     
- Misses         1287     1289    +2     
- Partials        365      368    +3     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cicoyle
cicoyle merged commit f42e0d2 into dapr:master Jun 30, 2026
11 checks passed
javier-aliaga added a commit that referenced this pull request Jun 30, 2026
#1776)

newRequestBuilder resolves relativePath raw and now rethrows
IllegalArgumentException on illegal chars (e.g. spaces), pointing at
encodePath. encodePath percent-encodes each path segment, preserving
separators and a leading slash and appending any query unchanged,
mirroring DaprHttp/invokeMethod.


(cherry picked from commit f42e0d2)

Signed-off-by: Javier Aliaga <[email protected]>
Co-authored-by: Javier Aliaga <[email protected]>
siri-varma pushed a commit that referenced this pull request Jul 5, 2026
* fix: add DaprInvokeHttpClient.encodePath for URI path encoding (#1774)

newRequestBuilder resolves relativePath raw and now rethrows
IllegalArgumentException on illegal chars (e.g. spaces), pointing at
encodePath. encodePath percent-encodes each path segment, preserving
separators and a leading slash and appending any query unchanged,
mirroring DaprHttp/invokeMethod.

Signed-off-by: Javier Aliaga <[email protected]>
(cherry picked from commit f42e0d2)

* fix: replace instanceof pattern matching for Java 11 compatibility

release-1.17 compiles with -source 11; pattern matching in instanceof
requires Java 16+. Replace with an explicit cast.

Signed-off-by: Javier Aliaga <[email protected]>

---------

Signed-off-by: Javier Aliaga <[email protected]>
alicejgibbons pushed a commit to dapr/docs that referenced this pull request Sep 18, 2026
newRequestBuilder no longer encodes the path; document that callers must
encode segments containing URI-illegal characters (e.g. spaces) with
UriUtils.encodePath, and that passing them raw throws IllegalArgumentException.
Reflects dapr/java-sdk#1774.

Signed-off-by: Javier Aliaga <[email protected]>
yaron2 added a commit to dapr/docs that referenced this pull request Oct 1, 2026
* Updated .NET SDK package list

Signed-off-by: Whit Waldo <[email protected]>

* Fixed bad link

Signed-off-by: Whit Waldo <[email protected]>

* fix(conversation): update api docs + drive more clarity

Signed-off-by: Samantha Coyle <[email protected]>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Signed-off-by: Mark Fussell <[email protected]>

* docs(redis): document Valkey 8.x/9.x support for Redis state store and pub/sub

Signed-off-by: Nelson Parente <[email protected]>

* docs(redis): add Valkey support for bindings and lock; reconcile pub/sub version table

- supported-bindings/redis.md: add "Supported servers and versions" table
  (Redis 6.x/7.x, Valkey 8.x/9.x); remove outdated "does not support
  Redis >= 7" note
- supported-locks/redis-lock.md: add "Supported servers and versions"
  table mirroring same style (no query-API caveat — lock does not use
  RediSearch)
- setup-redis-pubsub.md: reconcile prose and table — drop the unclaimed
  "5.x" from the prose description so it matches the table (6.x, 7.x
  for Redis; 8.x, 9.x for Valkey). Both the table and the prose now
  reference only conformance-tested versions.

No configuration-store Valkey documentation added (coverage was removed
from the code PR as a no-op).

Signed-off-by: Nelson Parente <[email protected]>

* docs(redis): scope Valkey support wording and fix Query API module requirements (Copilot review)

Signed-off-by: Nelson Parente <[email protected]>

* docs(redis): soften Valkey Query API limitation and align pubsub wording (Copilot review)

Signed-off-by: Nelson Parente <[email protected]>

* docs: Add '--all' flag to purge all completed workflows

Updated command to include '--all' flag for purging all completed workflows.

Signed-off-by: Tsonglew <[email protected]>

* actors: document app-initiated gRPC event streams (Alpha1)

Add documentation for SubscribeActorEventsAlpha1, the new bidirectional
gRPC stream that lets actor-hosting apps receive all callbacks (invoke,
reminder, timer, deactivate) over an app-initiated connection to daprd,
without exposing an inbound server port.

Closes dapr/dapr#927. Introduced in Dapr v1.18 via dapr/dapr#9812.

Files added/changed:
- actors-app-initiated-streams.md: concept page explaining the protocol,
  the motivation, how it differs from traditional callbacks, and
  NetworkPolicy / firewall guidance for operators.
- howto-actors-app-initiated-streams.md: how-to guide with step-by-step
  instructions and raw gRPC code examples in Go.
- actors_api.md: new SubscribeActorEventsAlpha1 gRPC section with full
  proto reference tables for all request/response message types.
- alpha-beta-apis.md: add row for the new alpha API.

Signed-off-by: Nelson Parente <[email protected]>

* actors: tighten app-initiated streams docs (review pass)

Signed-off-by: Nelson Parente <[email protected]>

* docs: address review feedback on actor app-initiated streams

- Convert the how-to protocol summary to a mermaid sequence diagram
- Surface SDK support near the concept intro and in the comparison table
- Move the why-summary sentence above the comparison table
- Correct the SDK support section: the Go SDK helper
  (client.SubscribeActorEvents) has landed, so the no-SDK-support note
  was inaccurate; point to it and note other SDKs use the generated
  gRPC client. Drop the release-tracking sentence.

Signed-off-by: Nelson Parente <[email protected]>

* docs: pin actor streams proto link to the v1.18 backport commit

The alpha-beta-apis row linked to an unrelated version-skew CI commit.
Repoint to the v1.18 backport merge commit (dapr/dapr#9964), where the
SubscribeActorEventsAlpha1 RPC is defined in dapr.proto at the same line
(L125), so the permalink is stable and points at v1.18 content.

Signed-off-by: Nelson Parente <[email protected]>

* Document Pulsar topicsPattern regex subscriptions

Add documentation for the new topicsPattern and autoDiscoveryPeriod
metadata fields on the Pulsar pub/sub component, which enable subscribing
to multiple topics within a tenant/namespace by regular expression with
automatic discovery of newly created matching topics.

Relates to dapr/components-contrib#2566

Signed-off-by: Justin Slatten <[email protected]>

* Align Pulsar autoDiscoveryPeriod default with component behavior

Document the default as "0" (defers to the Pulsar client's own interval,
currently 1m) instead of "1m", matching what the component sets when the
field is unset.

Relates to dapr/components-contrib#2566

Signed-off-by: Justin Slatten <[email protected]>

* Fix RabbitMQ pubsub exchangeKind allowed values

The RabbitMQ pubsub component accepts four exchange kinds (fanout,
topic, direct, headers) per exchangeKindValid in components-contrib,
but the reference table only listed fanout and topic. Add the missing
direct and headers values.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Signed-off-by: MyMirelHub <[email protected]>

* docs: add .NET actor unit testing guide

Add dotnet-actors-unit-testing.md covering:
- Unit testing actors in isolation with lightweight ActorHost
- Mocking IActorStateManager and IActorProxyFactory
- Testing timers and reminders
- Integration testing with Dapr sidecar
- Best practices for dependency injection and test isolation

Co-authored-by: wynx1123 <[email protected]>
Signed-off-by: wynx1123 <[email protected]>

* docs: document UriUtils.encodePath for Java client service invocation

newRequestBuilder no longer encodes the path; document that callers must
encode segments containing URI-illegal characters (e.g. spaces) with
UriUtils.encodePath, and that passing them raw throws IllegalArgumentException.
Reflects dapr/java-sdk#1774.

Signed-off-by: Javier Aliaga <[email protected]>

* perf: add version-agnostic performance results page

Render the Dapr performance results on the docs site from the charts and
manifest published to the dapr/dapr perf-charts branch, for whichever
Dapr version the docs set represents.

- Add the dapr-perf-results shortcode: read the minor version from
  params.version, fetch <minor>/manifest.json from the perf-charts branch
  (via jsDelivr) at build time, and render the throughput-per-resource
  tables and charts. Fails soft to a "not yet published" notice when a
  version has no results.
- Group the output so the page stays navigable: each API is a
  collapsible section (collapsed by default) with a scenario count, each
  scenario is collapsible with a chart count, and a "Jump to" nav links
  to each API and expands it on click.
- Add the perf-results page that calls the shortcode. Nothing is
  hard-coded per version; publishing a new run to perf-charts is all that
  is needed for the page to update.

Signed-off-by: joshvanl <[email protected]>

* docs: address review feedback on path-encoding section

Drop the alert wrapper in favor of a plain paragraph, reword per review,
and group the URL path encoding row with the user-responsibility rows.

Signed-off-by: Javier Aliaga <[email protected]>

* Adding documentation exploring Dapr.Actors.Next from a high-level how-to perspective

Signed-off-by: Whit Waldo <[email protected]>

* Updating source generators documentation to reflect the new analyzers and code fixes

Signed-off-by: Whit Waldo <[email protected]>

* Added root document detailing what's changed and why

Signed-off-by: Whit Waldo <[email protected]>

* Committing serialization document for Dapr.Actors.Next

Signed-off-by: Whit Waldo <[email protected]>

* Committing documentation for pubsub streams with `Dapr.Actors.Next`

Signed-off-by: Whit Waldo <[email protected]>

* Committing state migration documentation

Signed-off-by: Whit Waldo <[email protected]>

* Added state machine actor documentation

Signed-off-by: Whit Waldo <[email protected]>

* Adding docs for dynamic actor invocation

Signed-off-by: Whit Waldo <[email protected]>

* Added documentation about testing the Dapr.Actors.Next implementation using the deterministic scheduler, using Coyote or with `Dapr.Testcontainers`

Signed-off-by: Whit Waldo <[email protected]>

* add community integrations

Signed-off-by: yaron2 <[email protected]>

* add MS agents

Signed-off-by: yaron2 <[email protected]>

* Updating documentation to reflect change to reminder/timer data signatures

Signed-off-by: Whit Waldo <[email protected]>

* Renamed "FlushState" to "EvictState" for clarity in SDK and documentation

Signed-off-by: Whit Waldo <[email protected]>

* Added functionality to save state between turns for parity with Dapr.Actors

Signed-off-by: Whit Waldo <[email protected]>

* Implemented first pass of the migration documentation

Signed-off-by: Whit Waldo <[email protected]>

* Added tutorial introduction for Dapr.Actors.Next

Signed-off-by: Whit Waldo <[email protected]>

* Adding tutorial 1

Signed-off-by: Whit Waldo <[email protected]>

* Adding tutorial for state migration functionality

Signed-off-by: Whit Waldo <[email protected]>

* Added tutorial demonstrating streaming actor support

Signed-off-by: Whit Waldo <[email protected]>

* Added example documentation demonstrating the state machine functionality

Signed-off-by: Whit Waldo <[email protected]>

* Added tutorial for the dynamic state machine actors

Signed-off-by: Whit Waldo <[email protected]>

* Added tutorial meant to show combination of actors and workflows into a single solution

Signed-off-by: Whit Waldo <[email protected]>

* Updating documentation to reflect new analyzers for reminder type/operation name value verification at dev time.

Signed-off-by: Whit Waldo <[email protected]>

* Added new package to list

Signed-off-by: Whit Waldo <[email protected]>

* Replaced mentions of the Dapr.Actors.Next.* packages as namespaces within the `Dapr.Actors.Next` package

Signed-off-by: Whit Waldo <[email protected]>

* Rebalanced all the index weights for .NET SDK documentation headers

Signed-off-by: Whit Waldo <[email protected]>

* Added note about the distinction between the singular NuGet package and the many package references in the tutorials and source code

Signed-off-by: Whit Waldo <[email protected]>

* Modified some less-formal language

Signed-off-by: Whit Waldo <[email protected]>

* Modified maintenance message about `Dapr.Actors.Next` and added to the .NET Actors page

Signed-off-by: Whit Waldo <[email protected]>

* Reconfigured index weights once more

Signed-off-by: Whit Waldo <[email protected]>

* Fix baseUrl for current (#5242)

Signed-off-by: Marc Duiker <[email protected]>
Co-authored-by: Marc Duiker <[email protected]>
Co-authored-by: Mark Fussell <[email protected]>

* Workflow docs: instance ID reuse requires the whole workflow tree to be terminal

The workflow identity docs added for the 1.18 reuse policy removal
stated that creating a workflow whose instance ID already exists is
rejected in any state, including completed. That never matched the
runtime: recreating an instance in a terminal state has been allowed
since the workflow engine was introduced, and remains so.

Document the contract as enforced from 1.18.2: an instance ID is
reusable only once the existing workflow and every child workflow it
created, checked recursively, has reached a terminal state (COMPLETED,
FAILED, or TERMINATED); otherwise the create request is rejected with
a 409 conflict naming the child workflow that is not yet terminal.
Purging a workflow (or a retention policy) frees its instance ID.
During a rolling upgrade, children hosted by older sidecars are
verified only for their own status, so the recursive guarantee applies
once all sidecars run a version with the check.

Also update the breaking-changes page: the 1.18.0 removal entry now
notes that SDK options still exposing the reuse policy (such as
reuse_id_policy in the Python SDK) are deprecated and silently ignored
by 1.18+ runtimes, and a new 1.18.2 entry records the terminal-tree
requirement.

Signed-off-by: joshvanl <[email protected]>

* Update for new Diagrid Dev Dashboard

Signed-off-by: Marc Duiker <[email protected]>

* Document updating trust bundle ConfigMap when rotating certs via kubectl

Signed-off-by: MyMirelHub <[email protected]>

* Docs restyle (#5253)

* docs: add Dapr docs restyle design spec and implementation plan

Structured design direction, SCSS-first hybrid architecture on Docsy v0.12.0,
mermaid via Hugo Pipes, upgrade-safe override ladder. See spec + plan under
docs/superpowers/.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* docs: document working local preview (hugo server on macOS)

Task 1 of restyle plan. Confirms hugo server v0.162.0 serves + compiles SCSS
locally on macOS; npm run serve / prod build hit the PostCSS --permission error.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* style: establish SCSS structure, design tokens, and dark-mode wiring

* feat: enable dark mode with a persisted theme toggle (data-bs-theme)

* style: content typography, links, code, blockquote, lists

* style: compact underline code/OS tabs (Docsy tabpane restyle)

* style: callout/alert variants

* style: tables and component compatibility tables

* style: buttons and CTA

* style: self-host Geist/Inter/Geist Mono and set typography base

Task 3. Vendored OFL woff2 (Geist, Inter, Geist Mono) into static/fonts,
@font-face + --font-* tokens in _typography.scss, Bootstrap font vars, head
preloads. Completed after the implementer hit a transient 529 post-work.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* fix(style): disable Docsy Google Fonts CDN; tokenize on-accent/success/danger colors

Adds $td-enable-google-fonts: false to disable the CDN import since fonts are
self-hosted. Introduces semantic color tokens (--d-on-accent, --d-on-sky,
--d-success, --d-danger) and replaces raw hex values in button and callout styles.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* docs: add Task 2b (enable dark mode) to restyle plan

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* fix(style): blend code-tab content with page; make copy-code icon visible

Review feedback on Task 5:
- .tab-content dropped its distinct --d-code-bg panel + border; now transparent
  so it reads as regular td-content (code blocks keep their own .highlight bg).
- copy-code icon was hard-coded white in copy-code-button.js (invisible on light
  code backgrounds). Removed the inline white; .copy-icon is now positioned
  top-right and colored via --d-muted/--d-heading tokens, visible in both themes.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* fix(style): dedupe copy button, restore code-block spacing, strengthen active tab

Root causes (systematic debugging):
- Duplicate copy buttons: Docsy already injects its own button.td-click-to-copy
  via scripts.html/click-to-copy.js; our custom /js/copy-code-button.js added a
  second one (the 'strange character' beside it). Removed the custom script +
  file; kept Docsy's single button and tinted it via tokens (+font-weight:900 so
  the Font Awesome solid glyph renders).
- Code blocks crowded: our _content.scss set .highlight margin 0.5rem, overriding
  Docsy's 2rem. Restored generous spacing (1.75-2rem); tab-embedded code stays 0.
- Active tab unclear: strengthened the indicator to a 3px orange underline +
  weight 600 (the underline rule was already correct and wins the cascade).

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* fix(style): stop CTA button rule from breaking Docsy's copy icon

Root cause (confirmed via computed style = Geist on the button): our Task 8 rule
'.td-content .btn { font-family: var(--font-head) }' matched Docsy's icon-only
copy button (button.td-click-to-copy is also .btn), specificity 0,2,0 beating
Font Awesome's .fas (0,1,0). The FA copy glyph (\f0c5) then rendered in Geist =
tofu, and the CTA padding/radius bloated the button. Excluded .td-click-to-copy
from the CTA rule so it keeps the FA font (and Docsy's own sizing).

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* feat(style): themeable code highlighting (class-based Chroma, light+dark)

Root cause: markup.highlight used noClasses (inline styles) + style=tango, baking
a light background and fixed tango token colors into the HTML as inline styles,
which CSS cannot re-theme -> code blocks stayed light in dark mode.

Fix: switch to class-based highlighting (pygmentsUseClasses:true /
markup.highlight.noClasses:false) and add _chroma.scss with a light palette
(tango, unchanged look) plus a dark palette (github-dark) scoped to
[data-bs-theme=dark]. Baked backgrounds stripped; code-block background now comes
from the --d-code-bg token so it matches the design in both themes.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* style: navbar

* style: sidebar navigation

* style: right-hand TOC with scrollspy

* style: breadcrumbs, pager, footer

* fix(style): sidebar nav — indentation, spacing, single active highlight

Review feedback on Task 10:
1. Halved nested indentation (Docsy default 1.5em -> 0.75em).
2. Zeroed top/bottom margin on sidebar li items.
3+4. Active item had TWO highlights: a block-level .td-sidebar-link.active
   background AND an inline .td-sidebar-nav-active-item span background (added by
   sidebar-nav.js). The inline span highlight didn't cover wrapped multi-line
   titles. Removed the span highlight (background:none); the block link's
   background now spans the full width including multi-line.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* fix(style): sidebar li padding 2px; move active accent to the <li>

Review feedback on Task 10:
1. Sidebar link top/bottom padding 4px -> 2px.
2. Moved the blue active-accent from the <a> to the active item's <li>.
   sidebar-nav.js already locates that <li> (#<mid>-li); it now tags it with
   .td-sidebar-active-li, styled with an inset 2px shadow (a left border that
   doesn't shift layout). Removed the border-left from .td-sidebar-link.active.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* style: card component (Docsy cards + project .d-card)

* feat(layout): card-forward section landing pages

* fix(style): theme-aware brand logo (dark-blue on light, white on dark)

The white logo.svg was invisible on the new light navbar. A dark-blue mark
already existed (assets/icons/logo-blue.svg, #0D2192). navbar.html now inlines
both (logo-blue for light, logo.svg for dark) and _navbar.scss shows the right
one per data-bs-theme. No new asset needed.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* fix(style): align navbar logo with wordmark, use Geist for 'Dapr Docs'

.navbar-brand was baseline-aligning inline elements (with an invalid
text-align:middle). Made it an inline-flex row with align-items:center + gap so
the logo SVG and the wordmark are vertically centered, and set the brand
font-family to var(--font-head) (Geist) so 'Dapr Docs' matches the heading font.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* fix(style): right aside — page-meta font size + active-only TOC border

1. .td-page-meta (sibling of .td-toc in .td-sidebar-toc) now uses .8rem, matching
   the TOC font size (was larger). Moved the rule to top level since it is not
   nested under .td-toc.
2. TOC items no longer show a border on every item — non-active use a transparent
   border (no layout shift); only the active item shows the orange border, like
   the left nav.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Remove temp file

Signed-off-by: Marc Duiker <[email protected]>

* style: search, 404, blog, banners, feedback, perf, print

Task 20 (Phase 5): peripheral pages & partials.

- Search input + Algolia DocSearch modal tokenized in _search.scss
  (--docsearch-* vars; :root:root specificity bump so our brand color
  wins over @docsearch/css's later-loading defaults; dark-mode modal
  overrides so it isn't a white box on a dark page).
- New daprdocs/layouts/404.html override: heading + message + a
  .d-card-grid of top-level sections (built from .Site.Sections, not
  hardcoded paths).
- Blog: no local blog content in this repo (blog lives at
  blog.dapr.io); added minimal tokenized rules for Docsy's blog list
  classes that fall outside .td-content (byline/article-meta/list
  items/pagination) — single.html already inherits global styling.
- Version/preview banners (.pageinfo, rendered above .td-content) and
  the dormant feedback widget (currently disabled via
  params.ui.feedback.enable) restyled through tokens in
  _page-extras.scss.
- Announcement + cookie banners: retokenized the static
  daprdocs/static/css/*.css files directly (they load outside the SCSS
  pipeline and after our compiled bundle, so overriding from
  _page-extras.scss alone wouldn't win the cascade). Announcement
  banner gets an explicit dark-mode treatment to avoid a low-contrast
  pastel-blue-on-white combination.
- dapr-perf-results shortcode: moved its inline <style> block (raw
  Bootstrap var()-with-hex-fallback) into _page-extras.scss as
  tokenized rules.
- @media print block forces light tokens and hides
  .td-sidebar/.td-sidebar-toc/.td-navbar for direct browser printing.
- Added Docsy-override header comments to search-input.html,
  feedback.html, and version-banner.html (real Docsy shadows); left
  announcement-banner.html, cookie-banner.html, and
  dapr-perf-results.html without one (custom, no Docsy equivalent).
- No banner scheduling/consent logic changed; no daprdocs/content or
  sdkdocs files touched.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* fix(style): print-mode dark tokens + cookie Accept button dark contrast

Review of Task 20:
- @media print now also forces --d-panel/--d-code-bg/--d-muted/--d-blue/--d-link
  to light. [data-bs-theme=dark] stays active when printing a page viewed in dark
  mode, so without this inline code + table headers printed black-on-near-black.
- Cookie Accept button had no dark override (--d-blue pastel + white ~2.7:1).
  Dark mode now uses --d-sky + --d-on-sky for a legible, prominent CTA.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* docs: OVERRIDES index of Docsy layout forks with risk tiers

* fix(style): scope light Chroma palette to prevent black code in dark mode

Final-review Critical: the tango (light) palette was emitted UNSCOPED
(.chroma .p/.n = #000), while only github-dark was scoped to
[data-bs-theme=dark]. github-dark doesn't redefine punctuation/plain-identifier
classes, so in dark mode braces/colons/commas/identifiers rendered black on the
near-black code background across ~every code block.

Fix: scope BOTH palettes — tango under [data-bs-theme=light], github-dark under
[data-bs-theme=dark]. Tokens github-dark omits now inherit the dark .chroma base
color (#e6edf3, light) instead of the leaked #000. The head no-flash script
always sets data-bs-theme before paint, so scoping light is safe.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* fix(style): stop announcement banner from overlapping the right aside

Pre-existing since the banner was introduced. The banner is in-flow at the top
and announcement-banner.js pushes the fixed navbar down by the banner height (at
page top), but the sticky sidebars used a static top:4rem (navbar height only) —
so the pushed-down navbar overlapped the top of the right aside (page-meta).

announcement-banner.js now publishes --dapr-header-bottom = the navbar's actual
bottom edge (banner + navbar, shrinking to just the navbar as the banner scrolls
away), kept in sync on load/scroll/resize/dismiss. Both sticky sidebars
(.td-sidebar-toc, .td-sidebar) offset by that var, falling back to 4rem when no
banner is present.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* docs: remove internal restyle spec and plan from PR

Internal planning artifacts (design spec + implementation plan) are not part of
the docs-site deliverable. Removed from the branch; preserved outside the repo
for the follow-up Phase 4 (mermaid/diagrams) work.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Update homepage styling and some content

Signed-off-by: Marc Duiker <[email protected]>

---------

Signed-off-by: Marc Duiker <[email protected]>
Co-authored-by: Marc Duiker <[email protected]>
Co-authored-by: Claude Opus 4.8 <[email protected]>

* fix(style): mobile/tablet sidebar as a hamburger menu below lg

The restyle merged (#5253) exposed a Docsy 'sidebar_search_disable' breakpoint
mismatch: Docsy force-shows .td-sidebar-nav at md (>=768px) while the mobile
menu container (#content-mobile) and toggle only appear below lg, and the
hamburger button was d-md-none (hidden >=768px). So at 768-992px (tablets /
landscape phones) the full sidebar showed with no toggle.

Fix (layouts + CSS only, no content):
- sidebar.html: hamburger toggle d-md-none -> d-lg-none (visible below lg).
- _sidebar.scss: below lg, keep .td-sidebar-nav collapsed until the hamburger
  opens it (override the md force-show), and stack the sidebar + main full-width
  so the sidebar reads as a collapsible menu bar (bottom border) instead of a
  cramped 25% side column. Force the hamburger's Font Awesome weight so the
  fa-bars glyph renders.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* fix(style): theme-aware .alert-heading color (fix dark mode)

Docsy sets fixed light-theme colors on .alert-* .alert-heading (e.g.
.alert-primary .alert-heading { color:#0D2192 }); the dark-blue primary heading
was illegible on the dark callout background. Re-mapped to --d-* tokens that
flip per theme — light values match Docsy's (no light-mode change), dark values
stay legible. Also covers the matching .pageinfo-* headings.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Reposition to durable execution

Signed-off-by: Marc Duiker <[email protected]>

* Add design spec for Diagrid commercial offerings docs update

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Reorder Diagrid pages: Dev Dashboard, Conductor, Catalyst, Support

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Add implementation plan for Diagrid commercial offerings docs update

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Correct plan verification commands (repo-root headless hugo build)

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Promote Integrations to a top-level docs section with URL aliases

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Add Diagrid Dev Dashboard integration page

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Refresh Diagrid Conductor integration page

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Add Diagrid Catalyst integration page

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Add Dapr enterprise support integration page

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Add dedicated documentation-section for Flock Multi-Agent Framework.

Signed-off-by: tilman-sattler <[email protected]>

* Update Diagrid integrations landing page

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Added documentation for the Flock Multi-Agent Framework. Update documentation style

Signed-off-by: tilman-sattler <[email protected]>

* Cross-link enterprise support landing to Diagrid integration pages

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Clarify 24x7 coverage is Premium-tier on Dapr support page

Addresses final-review minor finding: intro overclaimed blanket 24/7.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Use 'durable agentic execution' in Catalyst descriptions

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Remove planning scratch files from branch

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Title-case 'Dapr Enterprise Support' in Diagrid list

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Trim Catalyst blurb and drop landing cross-link line

Co-Authored-By: Claude Opus 4.8 <[email protected]>

* Update integrations and enterprise support

Signed-off-by: Marc Duiker <[email protected]>

* update wording, make page override less extensive

Signed-off-by: tilman-sattler <[email protected]>

* change install command to pip instead of uv

Signed-off-by: tilman-sattler <[email protected]>

* change wording, make documentation less extensive for Flock

Signed-off-by: tilman-sattler <[email protected]>

* missing semicolon

Signed-off-by: tilman-sattler <[email protected]>

* Fix top margin for headings

Signed-off-by: Marc Duiker <[email protected]>

* Fix overlapping tabs and code blocks

Signed-off-by: Marc Duiker <[email protected]>

* Add anchor link copy functionality

Signed-off-by: Marc Duiker <[email protected]>

* Update the overrides to Docsy

Signed-off-by: Marc Duiker <[email protected]>

* docs(cli): add mcpservers reference and refresh the command list

`dapr mcpservers` ships in CLI v1.18.0 but has no page under the CLI
reference, and the overview's pasted `dapr --help` output predates it.
`scheduler` and `workflow` have pages that the overview never links to
either.

Add the mcpservers page in the shape the other command pages use, with
the flags, defaults and examples taken from `dapr mcpservers --help` on
v1.18.0, and bring the overview back in sync with that release: the
three missing commands, the `--runtime-path` global flag, the `dapr
[flags]` usage line, and the reworded `upgrade` description.

Signed-off-by: ihopenre-eng <[email protected]>

* Update terminology

Signed-off-by: Marc Duiker <[email protected]>

* Add new OG image and re-order Diagrid services

Signed-off-by: Marc Duiker <[email protected]>

* Adds backport label

Signed-off-by: joshvanl <[email protected]>

* Bump postcss from 8.5.15 to 8.5.23

Bumps [postcss](https://github.com/postcss/postcss) from 8.5.15 to 8.5.23.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.5.15...8.5.23)

---
updated-dependencies:
- dependency-name: postcss
  dependency-version: 8.5.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

* docs: restructure dapr agents integrations and add drasi extension

Signed-off-by: Jeffrey Zhang <[email protected]>

* Document azureAuthMethods metadata field for Azure authentication

Adds documentation for the azureAuthMethods component metadata field,
which controls the set and order of authentication methods Dapr attempts
for Azure (Microsoft Entra ID) components. The field has existed since
Dapr 1.13 but was previously only referenced in release notes and source.

Documents the default credential chain order, the field's accepted values
and aliases, and an example.

Closes #5268

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Signed-off-by: MyMirelHub <[email protected]>

* Address review: imperative heading, trim links and CLI note, remove aliases note

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Signed-off-by: MyMirelHub <[email protected]>

* Merge pull request #5234 from acroca/kube-secrets-reload

hot-reload components referencing k8s secrets

(cherry picked from commit 07dc559)
Signed-off-by: dapr-bot <[email protected]>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Signed-off-by: Jeffrey Zhang <[email protected]>

* code review suggestions + vector store snippet updates

Signed-off-by: Jeffrey Zhang <[email protected]>

* Clarify that retry status-code matching doesn't apply to bulk subscribe RETRY

matching.httpStatusCodes/gRPCStatusCodes filter on the transport-level
status code of the call, but a bulk subscribe handler's per-entry RETRY
status isn't carried as an HTTP or gRPC status code, so it's always
retried regardless of the configured matching filter.

Co-Authored-By: Claude Sonnet 5 <[email protected]>

* Updates

Signed-off-by: Alice Gibbons <[email protected]>

* chore: remove reodev (#5263)

Signed-off-by: Mike Nguyen <[email protected]>

* Hot reloading of the actor state store

Since Dapr 1.18.3, the actor state store is no longer excluded from hot
reloading. The actors runtime now reconciles actor hosting with the
configured store at runtime: adding a store enables actor hosting and
the workflow APIs, removing it drains hosted actors until a store
returns, and in-place updates (such as a rotated secret) swap the store
instance without interrupting actor hosting.

Added in dapr/dapr#10309, backported to release-1.18 (v1.18.3) in
dapr/dapr#10325.

Signed-off-by: joshvanl <[email protected]>

* fix: repair broken click targets on docs.dapr.io

Correct the metrics error-codes href, footer YouTube handle, hhttps:// quickstart sample links, and resiliency overview double slash.

Signed-off-by: Harkirat S <[email protected]>

* docs: document conversation API max_tokens, remove dead parameters field (#5275)

* docs: document conversation API max_tokens, remove dead parameters field

The alpha2 conversation API reference advertised the parameters field
("Parameters for all custom fields") and its tool-calling example even
showed passing max_tokens through it, but the runtime never read the
field, so those examples silently did nothing (dapr/dapr#10317).

Now that dapr 1.19 adds a first-class maxTokens request field and every
conversation component supports a maxTokens metadata default:

- Document maxTokens in the request body table (provider mapping,
  precedence over the component default, and the length finish reason).
- Drop the parameters field from the table and both request examples;
  the model override in the tool-calling example moves to metadata,
  which is the functional mechanism.
- Add the maxTokens spec metadata row to anthropic, aws-bedrock,
  googleai, hugging-face, mistral, ollama, and openai; refresh the
  deepseek wording to the new default-plus-override semantics; document
  echo's word-based cap for local testing.

Signed-off-by: Casper Nielsen <[email protected]>

# Conflicts:
#	daprdocs/content/en/reference/api/conversation_api.md

* docs: document the maxTokens default

Signed-off-by: Casper Nielsen <[email protected]>

---------

Signed-off-by: Casper Nielsen <[email protected]>

* Fixing some inconsistencies in the docs/implementation + adding descriptions about List/Purge support

Signed-off-by: Whit Waldo <[email protected]>

* Merge pull request #5289 from cicoyle/docs-timeout-for-bindings

docs for app-binding-options-timeout

(cherry picked from commit b63ce3a)
Signed-off-by: dapr-bot <[email protected]>

* [1.18] Fix actor drain timeout and placement dissemination docs

The actor runtime configuration page claimed drainOngoingCallTimeout
defaults to 60 seconds; the runtime default has been 2 seconds since
v1.17.0 (DefaultOngoingCallTimeout in pkg/actors/api/config.go). The
drain timeout clamp also shipped in v1.17.7, not v1.18 as stated.

Rewrite the drain timeout clamping section to distinguish the two
dissemination timeouts: the daprd-side --actors-disseminate-timeout
(default 30s, which the clamp compares against) and the Placement
service --disseminate-timeout (Helm dapr_placement.disseminateTimeout,
default 8s, the deadline after which Placement kicks a non-responsive
sidecar from the round). Add guidance to keep drain values below the
Placement dissemination timeout, since values that pass the clamp can
still delay the table update acknowledgement past the 8s deadline.

Correct the kubernetes-production description of disseminateTimeout:
it is the dissemination round failure deadline, not a dissemination
delay; the default is 8s, and there is no enforced 1s-3s range.

Document the --actors-disseminate-timeout daprd argument and the
dapr.io/actors-disseminate-timeout annotation, which were previously
missing from the arguments and annotations overview.

Update example drainOngoingCallTimeout values (60s, 1m, 35s, 30s) to
5s across the runtime config page, actors API reference, and .NET and
JavaScript SDK docs, so the examples are no longer silently clamped
and stay within the Placement dissemination budget. Add the 2 second
default to the API reference tables.

Signed-off-by: joshvanl <[email protected]>

* Improve docs about timings

Signed-off-by: joshvanl <[email protected]>

* docs(pulsar): clarify enableTLS does not switch transport to TLS

enableTLS only toggles Pulsar client certificate validation
(TLSAllowInsecureConnection). Whether the connection actually uses
TLS is determined by the scheme in the host field (e.g.
pulsar+ssl://); without a TLS scheme/port on host, enableTLS has no
effect and the connection stays plaintext.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Signed-off-by: Alice Gibbons <[email protected]>

* docs(pulsar): trim enableTLS description

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Signed-off-by: Alice Gibbons <[email protected]>

* Update daprdocs/content/en/reference/components-reference/supported-pubsub/setup-pulsar.md

Signed-off-by: Alice Gibbons <[email protected]>

* docs(influxdb): add example for create operation

The binding support section lists create and query as supported
operations but only query had a usage example. Add one for create,
matching the measurement, tags, and values fields the component
actually reads off the request data.

Signed-off-by: Akanksha Trehun <[email protected]>

* Bump browserslist from 4.25.1 to 4.28.9

Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.25.1 to 4.28.9.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](browserslist/browserslist@4.25.1...4.28.9)

---
updated-dependencies:
- dependency-name: browserslist
  dependency-version: 4.28.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

* Workflow: warn to not reuse instance IDs

Signed-off-by: joshvanl <[email protected]>

* Apply batched suggestions from code review

Co-authored-by: Alice Gibbons <[email protected]>
Signed-off-by: Josh van Leeuwen <[email protected]>

* Fix header refs

Signed-off-by: joshvanl <[email protected]>

* Add Elastic how-tos for tracing, metrics and logging

Dapr's only Elastic-specific page today is the FluentD logging how-to.
There is no Elastic page under tracing or metrics, while comparable
backends have one in each section. These three pages cover sending
Dapr's traces, metrics and logs to Elastic using the Elastic
Distribution of OpenTelemetry Collector, which is the Elastic Agent
running in otel mode reading a standard collector configuration.

A single collector can carry all three signals, so the pages share a
deployment shape and one credentials secret.

Each page is scoped to what is specific to Elastic. General tracing
behaviour stays in the tracing overview and the generic collector
how-to, and the metrics page links to the scrape jobs already
documented in the Prometheus how-to rather than restating them.

Two requirements of this pipeline are noted, because in both cases data
otherwise arrives incomplete rather than absent:

- cumulativetodelta on the metrics pipeline. Dapr's histograms are
  cumulative and the Elasticsearch exporter accepts only delta
  temporality, so the dapr_*_latency and *_bytes distributions are
  dropped without it while counters are unaffected.
- json_parser after the container parser on the logs pipeline,
  otherwise each line stays an escaped string in body.text and Dapr's
  fields are not queryable.

Verified against Dapr 1.18.4 and elastic-agent 9.5.3 on Kubernetes with
Elasticsearch 9.1.2.

Signed-off-by: MyMirelHub <[email protected]>

* Updating source generators documentation to reflect new pubsub analyzers/codefixes

Signed-off-by: Whit Waldo <[email protected]>

* docs: remove duplicate 'the' in Zipkin tracing howto

Signed-off-by: mrchatam <[email protected]>

* Updating NET documentation to reflect changes to Dapr.Messaging best practices and implementation using new package

Signed-off-by: Whit Waldo <[email protected]>

* Updated documentation to include tutorial documentation going through implementation, unit and integration testing for Dapr.Messaging

Signed-off-by: Whit Waldo <[email protected]>

* Address review feedback

Applies the suggestions from review and the structural changes asked for:

- `## Installation` on each page with the steps as `###` subheadings
- each page creates its own credentials secret, so none of them depends
  on the reader having run another first
- the ServiceAccount, ClusterRole and ClusterRoleBinding for the logging
  collector are spelled out rather than described in prose
- the alert moves above the apply command on all three pages
- `## Verify the installation` and `## Related links/References`
- links added for Elastic, Elastic Cloud, kubectl and the Helm install
- "Elastic" used throughout the prose, with "Elasticsearch" left only in
  component names such as the `elasticsearch/otel` exporter
- the stray `isSecure` paragraph on the tracing page folded into the YAML
  as a comment, where it has some context

Signed-off-by: MyMirelHub <[email protected]>

* Tweaks to catch any deviations from most recent PR to dapr/dotnet-sdk

Signed-off-by: Whit Waldo <[email protected]>

* Updating Actors documentation to reflect latest changes

Signed-off-by: Whit Waldo <[email protected]>

* Rename conductor and update links

Signed-off-by: Marc Duiker <[email protected]>

* Update images and links

Signed-off-by: Marc Duiker <[email protected]>

* Updata the Dev Dashboard naming

Signed-off-by: Marc Duiker <[email protected]>

* Add old name as reference

Signed-off-by: Marc Duiker <[email protected]>

* Correct Redis pub/sub redeliverInterval and processingTimeout reference

The documented defaults for the two settings were swapped: the component sets
ProcessingTimeout to 60s and RedeliverInterval to 15s.

redeliverInterval was also documented as accepting a Go duration string, with
"30s" as its first example. Settings.RedeliverInterval is tagged
mapstructure:"-", so only a bare milliseconds number is parsed and a duration
string is silently discarded in favour of the default. processingTimeout,
documented identically, does accept both forms.

Tracked in dapr/components-contrib#4600.

Signed-off-by: MyMirelHub <[email protected]>

* Fixed missing formatting ticks

Signed-off-by: Whit Waldo <[email protected]>

* Update daprdocs/content/en/integrations/Diagrid/dapr-ops-dashboard.md

Signed-off-by: Alice Gibbons <[email protected]>

* Update daprdocs/content/en/integrations/Diagrid/dapr-ops-dashboard.md

Signed-off-by: Alice Gibbons <[email protected]>

* Update daprdocs/content/en/reference/components-reference/supported-bindings/influxdb.md

Signed-off-by: Alice Gibbons <[email protected]>

* Tweaking the description to clarify actual support

Signed-off-by: Whit Waldo <[email protected]>

* docs(dapr-agents): document the Anthropic chat client

Signed-off-by: Casper Nielsen <[email protected]>

* Add new Dapr Dev Dashboard page and links

Signed-off-by: Marc Duiker <[email protected]>

---------

Signed-off-by: Whit Waldo <[email protected]>
Signed-off-by: Samantha Coyle <[email protected]>
Signed-off-by: Mark Fussell <[email protected]>
Signed-off-by: Nelson Parente <[email protected]>
Signed-off-by: Tsonglew <[email protected]>
Signed-off-by: Justin Slatten <[email protected]>
Signed-off-by: MyMirelHub <[email protected]>
Signed-off-by: wynx1123 <[email protected]>
Signed-off-by: Javier Aliaga <[email protected]>
Signed-off-by: joshvanl <[email protected]>
Signed-off-by: yaron2 <[email protected]>
Signed-off-by: Marc Duiker <[email protected]>
Signed-off-by: tilman-sattler <[email protected]>
Signed-off-by: ihopenre-eng <[email protected]>
Signed-off-by: Marc Duiker <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Jeffrey Zhang <[email protected]>
Signed-off-by: dapr-bot <[email protected]>
Signed-off-by: Jeffrey Zhang <[email protected]>
Signed-off-by: Alice Gibbons <[email protected]>
Signed-off-by: Mike Nguyen <[email protected]>
Signed-off-by: Harkirat S <[email protected]>
Signed-off-by: Casper Nielsen <[email protected]>
Signed-off-by: Akanksha Trehun <[email protected]>
Signed-off-by: Josh van Leeuwen <[email protected]>
Signed-off-by: mrchatam <[email protected]>
Signed-off-by: Alice Gibbons <[email protected]>
Co-authored-by: Whit Waldo <[email protected]>
Co-authored-by: Marc Duiker <[email protected]>
Co-authored-by: Samantha Coyle <[email protected]>
Co-authored-by: Mark Fussell <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Co-authored-by: Nelson Parente <[email protected]>
Co-authored-by: Tsonglew <[email protected]>
Co-authored-by: Justin Slatten <[email protected]>
Co-authored-by: MyMirelHub <[email protected]>
Co-authored-by: Claude Opus 4.8 <[email protected]>
Co-authored-by: wynx1123 <[email protected]>
Co-authored-by: Javier Aliaga <[email protected]>
Co-authored-by: joshvanl <[email protected]>
Co-authored-by: 热衷遇你 <[email protected]>
Co-authored-by: Marc Duiker <[email protected]>
Co-authored-by: Alice Gibbons <[email protected]>
Co-authored-by: tilman-sattler <[email protected]>
Co-authored-by: Tilman Sattler <[email protected]>
Co-authored-by: ihopenre-eng <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jeffrey Zhang <[email protected]>
Co-authored-by: Jeffrey Zhang <[email protected]>
Co-authored-by: Nico Meisenzahl <[email protected]>
Co-authored-by: Mike Nguyen <[email protected]>
Co-authored-by: Harkirat S <[email protected]>
Co-authored-by: Casper Nielsen <[email protected]>
Co-authored-by: Akanksha Trehun <[email protected]>
Co-authored-by: Alice Gibbons <[email protected]>
Co-authored-by: mrchatam <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants