Skip to content

Sync juanjole/zenoh:master with eclipse-zenoh/zenoh:main via merge (no history rewrite)#2

Merged
juanjole merged 1946 commits into
masterfrom
copilot/sync-upstream-main-to-master
Apr 5, 2026
Merged

Sync juanjole/zenoh:master with eclipse-zenoh/zenoh:main via merge (no history rewrite)#2
juanjole merged 1946 commits into
masterfrom
copilot/sync-upstream-main-to-master

Conversation

Copilot AI commented Apr 5, 2026

Copy link
Copy Markdown

Description

Brings juanjole/zenoh:master up to date with eclipse-zenoh/zenoh:main using a merge commit, preserving full history.

What does this PR do?

  • Adds upstream remote → https://github.com/eclipse-zenoh/zenoh.git
  • Fetches upstream/main (tip: 1ef59de9)
  • Merges upstream/main into this branch via git merge (merge commit b57bffbf, 'ort' strategy)
  • No conflicts — clean merge

Why is this change needed?

The fork juanjole/zenoh:master was significantly behind eclipse-zenoh/zenoh:main. This sync uses a non-destructive merge (no reset --hard, no force push) so fork history is preserved.

Related Issues

Original prompt

Crear una PR en el repositorio juanjole/zenoh que actualice la rama master del fork con los cambios más recientes del repositorio padre eclipse-zenoh/zenoh (rama main) sin sobrescribir el historial.

Requisitos:

  • No reescribir historial (no usar reset --hard + force push).
  • Actualizar master incorporando upstream/main mediante un merge (merge commit) o estrategia equivalente que preserve historial.
  • Pasos esperados:
    1. Configurar remoto upstream apuntando a https://github.com/eclipse-zenoh/zenoh.git.
    2. Obtener los cambios (fetch).
    3. Traer upstream/main dentro de master (merge), resolver conflictos si aparecen.
    4. Empujar a origin.
    5. Abrir PR desde la rama de actualización hacia master en juanjole/zenoh (si el flujo necesita una rama intermedia, crearla).
  • Incluir en la PR una descripción clara con:
    • Qué upstream se sincronizó (eclipse-zenoh/zenoh:main),
    • Qué rama destino se actualiza (juanjole/zenoh:master),
    • Notas de conflictos/resoluciones si las hubo.

Comandos sugeridos (si aplica):

  • git remote add upstream https://github.com/eclipse-zenoh/zenoh.git
  • git fetch upstream
  • git checkout master
  • git merge upstream/main

Resultado:

  • PR lista para revisión que actualiza master sin reescritura de historial.

The following is the prior conversation context from the user's chat exploration (may be truncated):

User: Quiero sincronizar este repositorio con la ultima version de su repositorio padre, como debo hacer?

Assistant: Para “sincronizar” tu fork juanjole/zenoh con la última versión del repo padre (upstream), básicamente tienes dos caminos: desde la web de GitHub (más simple) o con Git (más control). Te dejo ambos.

Opción A (más fácil): desde GitHub (Sync fork)

  1. Entra a tu repo: juanjole/zenoh
  2. Busca el botón Sync fork (o “Sync fork / Update branch”) en la parte superior (cerca de “Fetch upstream” en algunos diseños).
  3. Elige Update branch.

Esto trae los cambios del repo padre a la rama por defecto de tu fork (normalmente main o master) sin usar la terminal.

Opción B (recomendada si trabajas con Git): con git (fetch + merge o rebase)

1) Asegura que tienes configurado el remoto upstream

En tu copia local del repo:

cd zenoh
git remote -v

Si no ves upstream, agrégalo (necesitas la URL del repo padre). Ejemplo:

git remote add upstream https://github.com/<OWNER_PADRE>/zenoh.git

Luego:

git remote -v

2) Trae lo último del repo padre

git fetch upstream

3) Sincroniza tu rama (elige una)

Variante 3.1: Merge (seguro y común)

git checkout main
git merge upstream/main
git push origin main

Variante 3.2: Rebase (historial más “lineal”)

git checkout main
git rebase upstream/main
git push --force-with-lease origin main

Nota: rebase reescribe historial; úsalo si sabes lo que implica (especialmente si otra gente usa tu fork).


Antes de darte los comandos exactos, necesito 2 datos

  1. ¿Cuál es el repo padre exacto (owner/repo)? (por ejemplo eclipse-zenoh/zenoh u otro)
  2. ¿Tu rama principal se llama main o master?

Si me dices esos dos datos, te doy la secuencia exacta de comandos para tu caso (incluyendo qué hacer si hay conflictos).

User: El repo padre es eclipse-zenoh/zenoh, pero lo que me indicas no lo sincroniza con el estado actual de master original

Assistant: Si el repo padre eclipse-zenoh/zenoh usa master como rama principal, entonces para que tu fork quede exactamente al estado actual de ese master necesitas apuntar tu rama local (y luego tu fork) a upstream/master (no a main).

1) Configura upstream y trae lo último

cd zenoh
git remote add upstream https://github.com/eclipse-zenoh/zenoh.git 2>/dev/null || true
git fetch upstream --prune

2) Verifica cuál es la rama por defecto del upstream (debe aparecer master)

git branch -r | grep upstream

Deberías ver algo como upstream/master.


Caso A: Quieres que TU master quede igual que upstream/master (idéntico)

Esto “resetea” tu master al commit exacto del upstream. Úsalo si tu fork no debe conservar commits propios en master.

git checkout master
git reset --hard upstream/master
git push --force-with-lease origin master

Con esto, tu rama master en juanjole/zenoh queda bit a bit igual al master actual del repo original.


Caso B: Quieres conservar tus commits y “ponerte al día”

Entonces haces merge o rebase:

Merge:

git checkout master
git merge upstream/master
git push origin master

Rebase (más limpio, pero reescribe historial):

git checkout master
git rebase upstream/master
git push --force-with-lease origin master

Importante: si tu fork usa main pero el upstream usa master

Puede que tu fork tenga main como default. En ese caso sincroniza main contra `ups...

This pull request was created from Copilot chat.

diogomatsubara and others added 30 commits October 17, 2025 09:01
* ci: add job to build docs similar to docs.rs

* fix: update doc_auto_cfg to doc_cfg

* chore: review comments

* chore: rustc suggestions

* chore: add dead_code to LinkState and LinkStateList
* Precommit SHM pages

* Update windows.rs

* rustfmt

* try to fix flacky test

* try to debug CI

* try to debug CI

* Log errors in LazyShmProvider

* - mprove logging
- reduce arena size in tests

* Update shm.rs

* try to turn off memory limits

* Update ci.yml

* Update ci.yml

* Update ci.yml

* Update ci.yml

* Update ci.yml and shm.rs

* Update ci.yml

* Update ci.yml

* Update ci.yml

* Update ci.yml

* tune SHM Segment error messages

* fix: typos

* Add VirtualLock to windows SHM implementation

* - review fixfor SAFETY comment
- add VirtualUnlock for Windows

* add more safety comments

* Update windows.rs

* Update windows.rs

* Update Cargo.toml and windows.rs

* Update windows.rs

* Update windows.rs

* Update windows.rs

* Update windows.rs

* Update Cargo.toml

* disable VirtualLock on windows because we cannot test it on the CI

---------

Co-authored-by: Yuyuan Yuan <az6980522@gmail.com>
* chore: pin toml to 0.9.6

* chore: pin serde_spanned to 1.0.1

* chore: pin toml_writer to 1.0.2
* chore: update petgraph to 0.8.3

petgraph 0.8.2 has a dependency on indexmap 2.5.0 but it was recently
updated to 2.11.4

* chore: update Cargo.lock
…zenoh#2225)

* ignore commit check if it is unspecified for plugin or host

* explain commit hash check logic
* fix subscriber aggregate for routers

* make local resources generic in resource state/id

* fix queryable aggregate for routers

* Add shm infos in adminspace and stats (eclipse-zenoh#2193)

* Add shm bool to adminspace session object

* Fix rx_n_msgs stats

* Make n_msgs stats shm discriminated

* Renaming

* Address review comment

* Renaming

* chore: Bump version to `1.6.1`

* chore: Bump zenoh.* dependencies to `1.6.1`

* chore: Update Cargo lockfile

* take zenoh version from CARGO_PKG_VERSION instead of git tag (eclipse-zenoh#2203)

* Implement Display for GenericConfig and make IConfig Send+Sync (eclipse-zenoh#2207)

* add to_string method and make IConfig Send+Sync

* rename to_string to to_json and implement display for GenericConfig

* ci: add job to build docs similar to docs.rs (eclipse-zenoh#2206)

* ci: add job to build docs similar to docs.rs

* fix: update doc_auto_cfg to doc_cfg

* chore: review comments

* chore: rustc suggestions

* chore: add dead_code to LinkState and LinkStateList

* fix queryable info update for case of connection loss (eclipse-zenoh#2205)

* simplify remove_simple_resource_interest

* fix Current without Future

* introduce fake interest

* fix aggregation logic for p2p

* fix aggregation logic for linkstate p2p

* fix lints and typo

* add unit-tests

* rename merge -> aggregate

* use implicit/initial interest instead of None

* rename ResourceState -> ResourceInfo

* rename ILocalResource(Info) -> LocalResource(Info)Trait

* rename IMPLICIT_INTEREST_ID -> INITIAL_INTEREST_ID

* precise type of interests we need to pass when inserting/removing simple or aggregated resources

---------

Co-authored-by: OlivierHecart <olivier@zettascale.tech>
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
Co-authored-by: Diogo Matsubara <diogo.matsubara@zettascale.tech>
* allowed CDLA-PERMISSIVE-2.0 license

* licens name correcred
- Move out Disabled ProviderInitState to higher-level Option (will not require to dereference an Arc to check if LazyShmProvider is disabled)
- optmize transport SHM provider concurrent initialization code
- make this provider available through Runtime and Session API
- add Error state for provider init
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
* ci: add workflow to trigger sync lock workflow

sync cargo lock changes with dependant repositories

* chore: fix ident and use bot token
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
…oh#2245)

* chore: use secrets inherit

* chore: run apt-get update before install

* chore: only trigger sync lock for push on main
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
* add cancellation for get

* do not initiate query if token is already cancelled

* fix test

* test cancelled token automatically cancels operation

* add doc examples

* Add unstable_doc markers

---------

Co-authored-by: OlivierHecart <olivier.hecart@adlinktech.com>
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
OlivierHecart and others added 18 commits March 30, 2026 10:56
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
…e-zenoh#2528)

* clean session containers before closing runtime

* add integration test

* make concurrent session.close() only return once all callbacks finish execution
…2525)

* Create the TestScenario to use random ports for test.

Signed-off-by: ChenYing Kuo <evshary@gmail.com>

* Fix the clippy issue.

Signed-off-by: ChenYing Kuo <evshary@gmail.com>

* Support the new testframework on session and callback_drop_on_undeclare.

Signed-off-by: ChenYing Kuo <evshary@gmail.com>

* Try new framework to avoid TOCTOU.

Signed-off-by: ChenYing Kuo <evshary@gmail.com>

* Update test_session_from_cloned_config in session.rs

Signed-off-by: ChenYing Kuo <evshary@gmail.com>

* Refactor the test framework.

Signed-off-by: ChenYing Kuo <evshary@gmail.com>

* Incorporate the Copilot review comment.

Signed-off-by: ChenYing Kuo <evshary@gmail.com>

---------

Signed-off-by: ChenYing Kuo <evshary@gmail.com>
Signed-off-by: ChenYing Kuo <evshary@gmail.com>
* stage0: Base

- Propagate `self: &HatCode` in hat call tree

`HatCode` strucs are currently empty, which makes it hard to introduce
multiple hats within a runtime router, as there is no way to distinguish
hats.

- Move `HatTables` into `HatCode`

This patch splits the Tables struct into data (shared data) and hat and
moves hat logic and trait objects out of TablesData. Note that it's
always possible to mutably borrow both the hat and the tables because
they're two different struct fields.

- Remove `linkstate_peer` network and hat

This change also removes peer failover brokering in the router hat and
scraps the router election mechanism used to avoid duplicate PUSHs. The
rationale behind this is that the reduced router hat would rely on a
linkstate-enabled peer hat to fulfill these functionalities.

- Add handshake remote bound extension

This patch informs a node of its bound in a remote gateway.

This commit also removes peer failover brokering in the router hat and
scraps the router election mechanism used to avoid duplicate PUSHs. The
rationale behind this is that the reduced router hat would rely on a
linkstate-enabled peer hat to fulfill these functionalities.

Co-Authored-By: OlivierHecart <olivier.hecart@adlinktech.com>

* stage1: Broker, peer, pub/sub (w/ interests)

Feature set:
- pub/sub w/ interests
- broker hat
- peer hat

Limitations:
- no client hat
- no router hat
- no query/reply
- no liveliness
- no multicast scouting
- no adminspace
- no failover brokering
- no multicast routing
- single region gateway
- no router subregions of non-router regions

* stage2: Client, query/reply (w/ interests)

Feature set:
- broker hat
- pub/sub w/ interests
- peer hat
- client hat
- query/reply w/ interests

Limitations:
- no client hat
- no query/reply
- no router hat
- no liveliness
- no multicast scouting
- no adminspace
- no failover brokering
- no multicast routing
- single region gateway
- no router subregions of non-router regions

* stage3: Router, liveliness

* stage4.1: Adminspace

Feature set:
- broker hat
- pub/sub w/ interests
- peer hat
- client hat
- query/reply w/ interests
- router hat
- liveliness
- adminspace

Limitations:
- no failover brokering
- no multicast scouting
- no multicast routing
- single region gateway
- no router subregions of non-router regions

* fix: Resolve failing unit tests

- test_acl_liveliness_query_egress_deny
- test::test_authentication_lowlatency
- test::test_authentication_subject_combinations
- test::test_authentication_tls
- keyexpr_test_dummy
- test_liveliness_issue_1470
- test_liveliness_query_local
- test_liveliness_regression_2
- test_liveliness_sub_history_conflict
- test_liveliness_subget_client_history_before
- test_liveliness_subget_client_history_middle
- test_liveliness_subget_client_middle
- test_liveliness_subget_peer_before
- test_liveliness_subget_peer_history_before
- test_liveliness_subget_peer_history_middle
- test_liveliness_subget_peer_middle
- test_liveliness_subscriber_double_client_history_before
- test_liveliness_subscriber_double_client_history_middle
- test_liveliness_subscriber_double_clientviapeer_before
- test_liveliness_subscriber_double_clientviapeer_history_before
- test_liveliness_subscriber_double_clientviapeer_history_middle
- test_liveliness_subscriber_double_clientviapeer_middle
- test_liveliness_subscriber_double_peer_before
- test_liveliness_subscriber_double_peer_history_before
- test_liveliness_subscriber_double_peer_history_middle
- test_liveliness_subscriber_double_peer_middle
- test_liveliness_subscriber_double_router_history_before
- test_liveliness_subscriber_double_router_history_middle
- test_liveliness_subscriber_local
- three_node_combination
- zenoh_session_multicast
- zenoh_shm_multicast
- zenoh_shm_multicast_with_buffer_shrink_relayout

* stage5.1: Multiple gateways

Feature set:
- broker hat
- pub/sub w/ interests
- peer hat
- client hat
- query/reply w/ interests
- router hat
- liveliness
- adminspace
- multiple (peer) gateways

Limitations:
- no multicast scouting
- no router subregions of non-router regions

* stage5.2: Improved configuration

Feature set:
- broker hat
- pub/sub w/ interests
- peer hat
- client hat
- query/reply w/ interests
- router hat
- liveliness
- adminspace
- multiple (peer) gateways
- region names

Limitations:
- no regionalized multicast scouting
- no router subregions of non-router regions

* fix: Make data/query routes depend on source bound

* fix: Batch of patches

- Fix region handing of multicast transports and multicast peers
- Fix bug in `RouterBuilder` where client subregions were assigned the wrong hat
- Fix bug in `HatBaseTrait::init` where the wrong WhatAmI was used
- Fix typo in `MULTICAST_LIMITATION_NOTICE`
- Fix `test_region_name_err`

* fix: Remove `GossipNet` failover brokering logic

* fix: Batch of patches

- Improve instrumentation coherence
- Handle `InfoUpdate` case in routers' `unregister_queryable`

* A workaround for eclipse-zenoh#2409

* Regions tests (eclipse-zenoh#2365)

* fix: Batch of patches

- Fix region handing of multicast transports and multicast peers
- Fix bug in `RouterBuilder` where client subregions were assigned the wrong hat
- Fix bug in `HatBaseTrait::init` where the wrong WhatAmI was used

* Fix DEFAULT_CONFIG.json5 to properly reflect defaults

* Allow clients to open listeners

* Add region tests

* Add more region tests

* Update regions tests to new logging

* Add regions tests scenario2

* Format

* Replace serial_test with nextest groups

* Add scenarios

* Add regions tests scenario 3

* Regions tests use multicast scouting

* Use IPv4 addresses for github CI

* Simplify config of regions tests

* Add scenarios

* Update scenario2 to new conf

* Update timeouts and fix scenario1 config

* Robustify regions tests

* Update tracing event matching

It turns out that tracing-capture contains a `predicates` mod with
primitives for searching tracing logs. However, the following
contructs don't work with Object tracing values:
- `field("res", "test/**")`: type mismatch
- `field("res", value(eq("test/**"))`: `value` doesn't convert object values to str.

Thus I added `DebugObjectEqPredicate` to compare Object values with
strings using their `Debug` impl.

This patch includes changes from the following commits: 252f073, 92e6247.

* Use IPv4 unspecified addresses

Becuase IPV6_V6ONLY is set by default on Windows and test clients pick
an IPv4 locator to connect to their north-bound remotes, client
connections are refused systematically.

See https://learn.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options

* Use ipv4 listeners by default in regions tests

---------

Co-authored-by: Mahmoud Mazouz <hello@fuzzypixelz.com>

* Change autoconnect defaults

* Change multicast listening default

* Fix log message

* Add queries regions tests

* Fix borker route computation to include src face

Remove the `src_face.id != ctx.face.id` exclusion in
`compute_data_route` and `compute_query_route` for the broker hat,
allowing a face to receive its own publications and query responses.

Protection against routing loops is handled in `egress_filter`.

* Update regions tests to use the same key_expr

* Add queries tests

* Rename regions tests vars

* Add liveliness regions tests

* Fix liveliness issues

first, consider the following sequence diagram:

```d2
shape: sequence_diagram

N -> G1: Open

N -> G1.x1: Interest id=X mode=CF
G1.x1 -> N: DeclareFinal iid=X

G1 -> G0: Open

G1 -> G0: Interest id=X' mode=CF

N -> G1.x3: Interest id=Y mode=C
G1.x3 -> G0: Interest id=Y' mode=CF

G0 -> G1.x2: Declare iid=X'
G1.x2 -> N: Declare iid=None

G0 -> G1.x4: Declare iid=Y'
G1.x4 -> N: Declare iid=Y
G1.x4 -> N: DeclareFinal iid=Y
```

From the perspective of G1, declaration w/ interest id does not imply
a breadcrumb. This observation led to a correction of the previous
model where token declarations with interest set where expected to
correspond to a pending current interest. This is codified into the
`RouteCurrentEntityResult` data structure.

Second, upstream nodes would only send current tokens if they've never
been declared downstream. This caused an issue where a middle gateway
(i.e. a peer sitting between south-bound clients and a north-bound
router) would forward two different interests upstream but only
receive on set of responses. This issue ought to have been fixed by
checking all pending current interests for every inbound current
token; except for the fact that this behavior is fundamentally
backward incompatible with Zenoh 1.7.2 where retransmission is always
expected.

* Add liveliness regions tests

* Fix more liveliness issues

```d2
shape: sequence_diagram

C1 -> R: Interest id=1 mode=F

C2 -> R.1: DeclareToken iid=None
R.1 -> C1: DeclareToken iid=None

C1 -> R.2: Interest id=2 mode=C
R.2 -> C1: DeclareToken iid=2
R.2 -> C1: DeclareFinal iid=2
```

In c4e833c, I concluded that tokens should always be re-transmitted
for `Current` and `CurrentFuture` mode (I1).

Now I have a situation where C1 knows about a token because it had
sent an `Future` interest for it.

Then C1 sends a `Current` interest to R and duplicates the token as a
consequence of (I1).

Either C1's broker should not send the token to the session or R's
broker shouldn't. How did this work under 1.7.2 ?

- `declare_token_interest` sends current tokens without looking at `local_tokens`.
- `propagate_simple_token_to` checks `local_tokens`.

So the intent behind 1.7.2 routing is:

> R always sends current tokens; C1 checks before propagating them.

This patch corrects this so that `propagate_current_token` checks
`local_tokens`.

Moreover, the "declaration w/ interest id does not imply a breadcrumb"
rule was only applied to `DeclareToken` and not `DeclareFinal`. This
patch also corrects this.

Lastly, this patch introduces the `unbounded_sink` handler to replace
the `SubUtils` ext trait as the latter was falsely assuming that
flume's `try_iter` consumes channel values.

* Review TODO/FIXME/REVIEW comments

* Use IPv4 unspecified addresses

Becuase IPV6_V6ONLY is set by default on Windows and test clients pick
an IPv4 locator to connect to their north-bound remotes, client
connections are refused systematically.

See https://learn.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options

* Add tests for single-gateway router regions (eclipse-zenoh#2457)

* add tests for single-gateway router regions

* Use IPv4 unspecified addresses

Becuase IPV6_V6ONLY is set by default on Windows and test clients pick
an IPv4 locator to connect to their north-bound remotes, client
connections are refused systematically.

See https://learn.microsoft.com/en-us/windows/win32/winsock/ipproto-ipv6-socket-options

* add liveliness tests

---------

Co-authored-by: Mahmoud Mazouz <hello@fuzzypixelz.com>

* Fix copyright

* Add regions tests scenario6

* Fix formatting

* Rework route computation and invalidation

One major issue with the previous implementation is that is I
previously assumed routes to only depend on the source bound; this is
false.

This commit also makes route invalidation more precise: the
dependencies of `compute_data_routes` are better understood, although
this needs testing.

* Add scaffolding for routing integation tests

* Add multiple gateway tests

* Resolve clippy lints and fix nextest filter

* Add r2r & c2c inter-subregion routing test cases

* Fix formatting

* Add duplicates checks to regions pubsub tests

* Add scenario7

* Add scenario8

* Add regions gossip test

* Reject interests from north-bound peers

Peer-to-peer current token interests were being incorrectly propagated
back to peers with unfinalized initial interests when the source was
itself a north-bound face. This caused a regression in RMW Zenoh,
which sends a liveliness GET immediately after opening a session in
peer mode.

Additionally, DeclareFinal messages without an interest id are now
treated as errors rather than silently ignored, since every legitimate
send site always supplies one. The test helper declare_final in the
mock harness reflects this by taking a plain InterestId instead of
Option<InterestId>.

* Add more interest regression tests

* Optimize route caching, `RegionMap` and tracing instrumentation  (eclipse-zenoh#2520)

* Data routes caches

* Optimize RegionsMap

* Optimize `ZenohIdProto::short` and pub/sub hot path spans

* Explain `RegionMap` region-index mapping

---------

Co-authored-by: Mahmoud Mazouz <hello@fuzzypixelz.com>

* Remove `kind` arg in `HatBaseTrait::info`

* Fix `private_intra_doc_links` in unicast transport test helpers

* Implement inter-region filtering

- We log a warning in custom peer gateways if `scouting.gossip.enabled` is `false`.
- Filtering only happens for data that travel upstream or downstream by electing a primary gateway.
- All this should be done independently of per-hat routes.

How do 1.8 routers filter declarations in case of router/linkstate-peer topologies?

```d2
shape: sequence_diagram
# N, G0 and G1 are routers, S is a linkstate peer

N -> G0: Open
N -> G1: Open
S -> G0: Open
S -> G1: Open

S.note: "S session declares a subscriber on K"
S -> G0: DeclareSubscriber expr=K
S -> G1: DeclareSubscriber expr=K

G0 -> N: DeclareSubscriber expr=K
G1 -> N: DeclareSubscriber expr=K

N -> G1: DeclareSubscriber expr=K
N -> G0: DeclareSubscriber expr=K

G1 -> S: DeclareSubscriber expr=K
G0 -> S: DeclareSubscriber expr=K

S -> G0: DeclareSubscriber expr=K
S -> G1: DeclareSubscriber expr=K
```

This (problematic) behavior is left as is. Moreover:

- Routers operating in peer-linkstate mode use election to decide who routes data/queries
  upstream/downstream. But there is still filtering at the dispatcher level (why?).
- Linkstate peers send data to _all_ routers.
- Peer-to-peer peers send data to _all_ routers.

This patch only generalizes the pre-existing behavior.

For liveliness however, we re-use the `InterRegionFilter` logic to
filter tokens that travel between router regions (either upstream or
downstream). Otherwise we get "ghost" tokens that are undeclarable.

* Make `regions_gossip` test less flaky

This was failing locally for me because some transports were taking
too long to be established.

* Extract wire-expr resolution helpers on `Face` to deduplicate declare paths

Also `RegionMap::partition(_mut)` return an `Option` as the caller
should be responsible for ensuring the `region` arg exists exists.

* Don't process `SendDeclare` in `new_local_face`

* Implement `Sync` on `ChunkHeaderType`

The compiler fails to evaluate the `Sync` requirement on
`ChunkHeaderType`'s fields.

* Fix `std` usage in zenoh-protocol

* Add `zenoh::net::tests::regions::HarnessBuilder`

* Trace warning instead of failing on removed config options

* Add `test_push_message_consumption` regression test

* Remove unused dependency

* Fix typo in test_regions_scenario7_order1_getque

* Add `zenoh::net::tests::regions::adminspace::test_sourced_entities_and_interests`

* Second round of resolving TODO/FIXMEs

* Improve `zenoh_protocol::core::region` test coverage

* Replace `unreachable` w/ `bug` for disabled hat methods

* Improve `hat::client::token` coverage

* Third round of resolving TODOs/FIXMEs

---------

Co-authored-by: OlivierHecart <olivier.hecart@adlinktech.com>
Co-authored-by: OlivierHecart <olivier@zettascale.tech>
Co-authored-by: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
* Move current quic module to quic/utils

* Refactor QUIC connect logic

* Refactor QUIC server logic

* Remove unused utils.rs file

* Refactor QUIC acceptor task

* Rename quic_conn field

* Add QuicStreams wrapper

* Merge multistream support

* Merge branch 'quic-streams'

Squashed commit of the following:

commit 22273fa
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Tue Jan 20 10:15:09 2026 +0100

    Fix imports for tls test

commit da8acff
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Jan 19 17:53:03 2026 +0100

    Fix clippy warnings

commit 6b02632
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Jan 19 14:50:22 2026 +0100

    Remove unused imports

commit ea427f9
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Jan 19 14:44:41 2026 +0100

    Change multistream tests to check for multiple RX task IDs

    Blocking one of the RX runtime threads works when running one test at a time,
    running them concurrently is an issue since all tests share the same static RX
    runtime which currently defaults to 2 threads.

commit 31c9533
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Fri Jan 16 18:01:33 2026 +0100

    Add multistream tests based on blocking operations

commit 276b34e
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Jan 13 17:29:27 2026 +0100

    Parse arbitrary bool

commit 44f5cc7
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Jan 13 16:55:09 2026 +0100

    Fix rx Priority::Background task not being started

commit 6f34bcd
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 08:52:43 2025 +0100

    Apply PR reviews

commit 8e48abd
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 08:48:06 2025 +0100

    Apply PR reviews

commit db75790
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 08:34:27 2025 +0100

    Apply PR review

commit 565af6a
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 02:00:39 2025 +0100

    Fix lint

commit d31fb8e
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 16 10:11:10 2025 +0100

    Add comment

commit 4fd6e3b
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 22:53:08 2025 +0100

    add comments

commit 8c560ad
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:57:37 2025 +0100

    Fix typo

commit 7988e95
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:55:59 2025 +0100

    Remove useless Default implementation

commit f152943
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:54:06 2025 +0100

    Rename ALPN protocols

commit 84f80c3
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:15:06 2025 +0100

    use quic ALPN

commit 5267081
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 07:48:07 2025 +0100

    lint

commit b3df242
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 02:07:14 2025 +0100

    add link extension

commit e9da647
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Mon Nov 3 23:21:04 2025 +0100

    fix bugs

commit 8a28945
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Mon Nov 3 22:50:00 2025 +0100

    finish implementation

commit 4caaa48
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Mon Nov 3 14:54:25 2025 +0100

    timeout tracker

commit 02d5875
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Fri Oct 24 17:55:28 2025 +0200

    latest message tracker tmp

commit 4d12bf2
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Fri Oct 24 13:10:26 2025 +0200

    use select_all instead of manual implementation

commit 00e4ac2
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Fri Oct 10 17:04:57 2025 +0200

    fix compression hack

commit ead2235
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 20:38:56 2025 +0200

    sort accepted streams per priority

commit e000af7
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 13:17:49 2025 +0200

    ensure priority is always control when not supported by link

commit 096dfbe
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 12:23:53 2025 +0200

    simplify code

commit aa66e34
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 11:03:07 2025 +0200

    add missing import

commit 74356ff
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Wed Oct 8 07:47:52 2025 +0200

    support quic streams per priority

    Links' internal design has been modified to take priority in arguments.
    For link supporting priorities, like Quic, read/write have been split by
    priority.
    Quic implement stream per priority using a single bidirectional stream
    for control messages (and opening), and unidirectional streaming for
    the other priorities.

* Fix QUIC ALPN for datagram mode

* Refactor QUIC acceptor

* Improve stream limit configuration

* Fix acceptor task stopping on link error

* Rename QuicLink acceptor method

* Add MTU config to QuicTransportConfigurator

* Further factorize the QUIC acceptor

* Remove redundant warning log

* Replace returned tuples with structs

* Refactor QUIC's UDP socket config parsing and initialization

* Remove redundant code

* Add missing MTU config to QUIC client

* Remove unused imports

* Update error message

* Remove unnecessary impl

* Remove unused dependencies

* Fix clippy warning

* Correct typo

* Remove unused dependencies

* Squashed commit of the following:

commit b9f2a82
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Wed Mar 11 17:19:10 2026 +0100

    Fix tests after parsing fix

commit da9935f
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Wed Mar 11 16:26:24 2026 +0100

    Set stream limit in config before connection

commit 9857e3b
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Wed Mar 11 16:17:41 2026 +0100

    Fix multistream parsing

commit a4b4cdd
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Wed Mar 11 16:16:16 2026 +0100

    Update io/zenoh-link-commons/src/quic.rs

    Co-authored-by: Oussama Teffahi <70609372+oteffahi@users.noreply.github.com>

commit b5383ef
Merge: 22273fa 1ccdaf9
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Wed Mar 11 16:12:41 2026 +0100

    Merge branch 'main' into quic-streams

commit 1ccdaf9
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Wed Mar 11 15:29:44 2026 +0100

    make cancellation of rx/tx tasks more explicit (eclipse-zenoh#2464)

commit 80097dd
Author: Michael Ilyin <milyin@gmail.com>
Date:   Wed Mar 11 10:04:16 2026 +0100

    no need to use ZResult in accepts_replies (eclipse-zenoh#2473)

    * no need to use ZResult in accepts_replies

    * cargo fmt

    * build fix

    * rustfmt

commit 8ab9bdb
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Wed Mar 11 01:42:01 2026 +0100

    build: Recreate lockfile of 1e7edc6 from 2026-03-10 (eclipse-zenoh#2474)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 1e7edc6
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Tue Mar 10 16:21:22 2026 +0100

    fix race condition that could lead to having more links per transport than allowed by config (eclipse-zenoh#2471)

commit 9f8dff1
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Mar 10 11:04:33 2026 +0100

    Remove callback generic parameter (eclipse-zenoh#2469)

    This was an unwanted and useless breaking change

commit f645011
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Tue Mar 10 01:43:33 2026 +0100

    build: Recreate lockfile of f855a2d from 2026-03-09 (eclipse-zenoh#2468)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit f855a2d
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Mon Mar 9 16:50:12 2026 +0100

    remove unstable tags from allowed_destination setter of put and get (eclipse-zenoh#2466)

commit 195a4b5
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Mon Mar 9 01:44:24 2026 +0100

    build: Recreate lockfile of 674da72 from 2026-03-07 (eclipse-zenoh#2462)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 674da72
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Sat Mar 7 01:46:10 2026 +0100

    build: Recreate lockfile of 0dba151 from 2026-03-06 (eclipse-zenoh#2460)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 0dba151
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Fri Mar 6 01:50:19 2026 +0100

    build: Recreate lockfile of 74e8bb9 from 2026-03-05 (eclipse-zenoh#2459)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 74e8bb9
Author: Julian Antonielli <julianantonielli@gmail.com>
Date:   Thu Mar 5 18:01:22 2026 +0000

    Update documentation for Parameters (eclipse-zenoh#2195)

    - Remove documentation saying `\n` is a valid separator, as this was a
      remnant from https://github.com/eclipse-zenoh/zenoh/blob/9d564148e438390137d7360014a29cf34779f755/commons/zenoh-cfg-properties/src/lib.rs#L155-L166,
    - Mention that keys can have multiple values using `|` as a separator,
    - Fix typo in `Parameters::insert` and `Parameters::is_ordered`: extra
      `\``,
    - Add test/comments for `Parameters::values` returning empty iterator.

commit 4e38e73
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Thu Mar 5 01:45:04 2026 +0100

    build: Recreate lockfile of 28171a6 from 2026-03-04 (eclipse-zenoh#2458)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 28171a6
Author: Diogo Matsubara <diogo.matsubara@zettascale.tech>
Date:   Wed Mar 4 17:34:36 2026 +0100

    chore: update pre-commit rustfmt to use nightly (eclipse-zenoh#2456)

commit 4a19369
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Wed Mar 4 01:47:01 2026 +0100

    build: Recreate lockfile of 30dc038 from 2026-03-03 (eclipse-zenoh#2455)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 30dc038
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Tue Mar 3 15:25:07 2026 +0100

    remove redundant del_transport_unicast from TransportUnicastLowLatency::delete() (eclipse-zenoh#2453)

commit 608fb05
Author: konnta0 <68390856+konnta0@users.noreply.github.com>
Date:   Tue Mar 3 20:20:30 2026 +0900

     fix: add iOS support to set_bind_to_device functions (eclipse-zenoh#2405)

    iOS target_os was not included in the cfg conditions for
    set_bind_to_device_tcp_socket and set_bind_to_device_udp_socket,
    causing compilation errors when building for iOS targets.

    This fix adds target_os = "ios" to the cfg conditions alongside
    macOS and Windows, as iOS also doesn't support socket binding
    to specific network interfaces.

    Signed-off-by: konnta0 <konnta0@gmail.com>

commit 460faec
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Tue Mar 3 01:48:15 2026 +0100

    build: Recreate lockfile of 7d92339 from 2026-03-02 (eclipse-zenoh#2452)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 7d92339
Author: Diogo Matsubara <diogo.matsubara@zettascale.tech>
Date:   Mon Mar 2 09:51:25 2026 +0100

    chore: fix formatting for scouting.rs (eclipse-zenoh#2448)

commit d743df5
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Sat Feb 28 01:44:00 2026 +0100

    build: Recreate lockfile of a7667dc from 2026-02-27 (eclipse-zenoh#2446)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit a7667dc
Author: Diogo Matsubara <diogo.matsubara@zettascale.tech>
Date:   Fri Feb 27 20:44:35 2026 +0100

    chore: unpin nightly version (eclipse-zenoh#2445)

    In eclipse-zenoh#2440 nightly was pinned
    due to a version of shellexpand (3.1.1) not working with the current
    version. A new version of shellexpand has been released which should
    address the nighly failures.

    Fix eclipse-zenoh#2441

commit fcce5bc
Author: Mahmoud Mazouz <hello@fuzzypixelz.com>
Date:   Fri Feb 27 18:06:20 2026 +0100

    Fix blocking calls in async transport callback invocations (eclipse-zenoh#2442)

    Partially addresses eclipse-zenoh#2409.

commit be96ecf
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Fri Feb 27 01:47:26 2026 +0100

    build: Recreate lockfile of f5f1e6a from 2026-02-26 (eclipse-zenoh#2444)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit f5f1e6a
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Feb 26 15:04:50 2026 +0100

    Force the response QoS to the original query QoS (eclipse-zenoh#2382)

    * Force the response QoS to the original query QoS

    * Remove replies from qos overwrite interceptor

    * Hide QoS builder methods for reply except express

    * Update documentation

    * Fix tests

    * Update semver check

    * Assign query QoS to response

    * Update deprecation message

    ---------

    Co-authored-by: OlivierHecart <olivier.hecart@adlinktech.com>

commit b867164
Author: OlivierHecart <olivier@zettascale.tech>
Date:   Thu Feb 26 12:38:30 2026 +0100

    Stabilize accept_replies (eclipse-zenoh#2443)

commit c714d46
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Wed Feb 25 09:35:45 2026 +0100

    ensure that no new transports to the same zid can be established while the current one is not fully closed (eclipse-zenoh#2438)

commit 96621f2
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Wed Feb 25 09:34:30 2026 +0100

    Use TaskController in TransportLinkUnicastUniversal (eclipse-zenoh#2424)

    * use TaskController in link

    * disable pipeline after task termination

    * fix behaviour upon tx task termination

    ---------

    Co-authored-by: OlivierHecart <olivier.hecart@adlinktech.com>

commit 53f802f
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Wed Feb 25 01:48:13 2026 +0100

    build: Recreate lockfile of 23d26aa from 2026-02-22 (eclipse-zenoh#2437)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 8ed1898
Author: Michael Ilyin <milyin@gmail.com>
Date:   Mon Feb 23 17:43:48 2026 +0100

    Allow to set explicit nigltly compiler version in CI (eclipse-zenoh#2440)

    * explicit nigltly version

    * install rustfmt

    * formatting

commit 38627dd
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Mon Feb 23 13:47:20 2026 +0100

    Rollback reply keyexpr optimization (eclipse-zenoh#2431)

    eclipse-zenoh#2383 is backward-incompatible protocol-wise.

commit 22273fa
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Tue Jan 20 10:15:09 2026 +0100

    Fix imports for tls test

commit da8acff
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Jan 19 17:53:03 2026 +0100

    Fix clippy warnings

commit 6b02632
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Jan 19 14:50:22 2026 +0100

    Remove unused imports

commit ea427f9
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Jan 19 14:44:41 2026 +0100

    Change multistream tests to check for multiple RX task IDs

    Blocking one of the RX runtime threads works when running one test at a time,
    running them concurrently is an issue since all tests share the same static RX
    runtime which currently defaults to 2 threads.

commit 31c9533
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Fri Jan 16 18:01:33 2026 +0100

    Add multistream tests based on blocking operations

commit 276b34e
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Jan 13 17:29:27 2026 +0100

    Parse arbitrary bool

commit 44f5cc7
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Jan 13 16:55:09 2026 +0100

    Fix rx Priority::Background task not being started

commit 6f34bcd
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 08:52:43 2025 +0100

    Apply PR reviews

commit 8e48abd
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 08:48:06 2025 +0100

    Apply PR reviews

commit db75790
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 08:34:27 2025 +0100

    Apply PR review

commit 565af6a
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 02:00:39 2025 +0100

    Fix lint

commit d31fb8e
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 16 10:11:10 2025 +0100

    Add comment

commit 4fd6e3b
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 22:53:08 2025 +0100

    add comments

commit 8c560ad
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:57:37 2025 +0100

    Fix typo

commit 7988e95
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:55:59 2025 +0100

    Remove useless Default implementation

commit f152943
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:54:06 2025 +0100

    Rename ALPN protocols

commit 84f80c3
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:15:06 2025 +0100

    use quic ALPN

commit 5267081
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 07:48:07 2025 +0100

    lint

commit b3df242
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 02:07:14 2025 +0100

    add link extension

commit e9da647
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Mon Nov 3 23:21:04 2025 +0100

    fix bugs

commit 8a28945
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Mon Nov 3 22:50:00 2025 +0100

    finish implementation

commit 4caaa48
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Mon Nov 3 14:54:25 2025 +0100

    timeout tracker

commit 02d5875
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Fri Oct 24 17:55:28 2025 +0200

    latest message tracker tmp

commit 4d12bf2
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Fri Oct 24 13:10:26 2025 +0200

    use select_all instead of manual implementation

commit 00e4ac2
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Fri Oct 10 17:04:57 2025 +0200

    fix compression hack

commit ead2235
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 20:38:56 2025 +0200

    sort accepted streams per priority

commit e000af7
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 13:17:49 2025 +0200

    ensure priority is always control when not supported by link

commit 096dfbe
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 12:23:53 2025 +0200

    simplify code

commit aa66e34
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 11:03:07 2025 +0200

    add missing import

commit 74356ff
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Wed Oct 8 07:47:52 2025 +0200

    support quic streams per priority

    Links' internal design has been modified to take priority in arguments.
    For link supporting priorities, like Quic, read/write have been split by
    priority.
    Quic implement stream per priority using a single bidirectional stream
    for control messages (and opening), and unidirectional streaming for
    the other priorities.

* Remove unnecessary IntoFuture implementation
* Move current quic module to quic/utils

* Refactor QUIC connect logic

* Refactor QUIC server logic

* Remove unused utils.rs file

* Refactor QUIC acceptor task

* Rename quic_conn field

* Add QuicStreams wrapper

* Merge multistream support

* Merge branch 'quic-streams'

Squashed commit of the following:

commit 22273fa
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Tue Jan 20 10:15:09 2026 +0100

    Fix imports for tls test

commit da8acff
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Jan 19 17:53:03 2026 +0100

    Fix clippy warnings

commit 6b02632
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Jan 19 14:50:22 2026 +0100

    Remove unused imports

commit ea427f9
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Jan 19 14:44:41 2026 +0100

    Change multistream tests to check for multiple RX task IDs

    Blocking one of the RX runtime threads works when running one test at a time,
    running them concurrently is an issue since all tests share the same static RX
    runtime which currently defaults to 2 threads.

commit 31c9533
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Fri Jan 16 18:01:33 2026 +0100

    Add multistream tests based on blocking operations

commit 276b34e
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Jan 13 17:29:27 2026 +0100

    Parse arbitrary bool

commit 44f5cc7
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Jan 13 16:55:09 2026 +0100

    Fix rx Priority::Background task not being started

commit 6f34bcd
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 08:52:43 2025 +0100

    Apply PR reviews

commit 8e48abd
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 08:48:06 2025 +0100

    Apply PR reviews

commit db75790
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 08:34:27 2025 +0100

    Apply PR review

commit 565af6a
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 23 02:00:39 2025 +0100

    Fix lint

commit d31fb8e
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Dec 16 10:11:10 2025 +0100

    Add comment

commit 4fd6e3b
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 22:53:08 2025 +0100

    add comments

commit 8c560ad
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:57:37 2025 +0100

    Fix typo

commit 7988e95
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:55:59 2025 +0100

    Remove useless Default implementation

commit f152943
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:54:06 2025 +0100

    Rename ALPN protocols

commit 84f80c3
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 16:15:06 2025 +0100

    use quic ALPN

commit 5267081
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 07:48:07 2025 +0100

    lint

commit b3df242
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Nov 4 02:07:14 2025 +0100

    add link extension

commit e9da647
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Mon Nov 3 23:21:04 2025 +0100

    fix bugs

commit 8a28945
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Mon Nov 3 22:50:00 2025 +0100

    finish implementation

commit 4caaa48
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Mon Nov 3 14:54:25 2025 +0100

    timeout tracker

commit 02d5875
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Fri Oct 24 17:55:28 2025 +0200

    latest message tracker tmp

commit 4d12bf2
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Fri Oct 24 13:10:26 2025 +0200

    use select_all instead of manual implementation

commit 00e4ac2
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Fri Oct 10 17:04:57 2025 +0200

    fix compression hack

commit ead2235
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 20:38:56 2025 +0200

    sort accepted streams per priority

commit e000af7
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 13:17:49 2025 +0200

    ensure priority is always control when not supported by link

commit 096dfbe
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 12:23:53 2025 +0200

    simplify code

commit aa66e34
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Oct 9 11:03:07 2025 +0200

    add missing import

commit 74356ff
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Wed Oct 8 07:47:52 2025 +0200

    support quic streams per priority

    Links' internal design has been modified to take priority in arguments.
    For link supporting priorities, like Quic, read/write have been split by
    priority.
    Quic implement stream per priority using a single bidirectional stream
    for control messages (and opening), and unidirectional streaming for
    the other priorities.

* Fix QUIC ALPN for datagram mode

* Refactor QUIC acceptor

* Improve stream limit configuration

* Fix acceptor task stopping on link error

* Rename QuicLink acceptor method

* Add MTU config to QuicTransportConfigurator

* Further factorize the QUIC acceptor

* Remove redundant warning log

* Replace returned tuples with structs

* Refactor QUIC's UDP socket config parsing and initialization

* Remove redundant code

* Add missing MTU config to QUIC client

* Remove unused imports

* Update error message

* Add unsecure QUIC backbone

* Add reliable UDP link via unsecure QUIC

* Add missing multistream trait method implem

* Add tests for reliable multistream UDP

* Add builder API and feature-gate unsecure QUIC

* Remove unnecessary mut

* Fix typo in tests

* Change self-signed certificate to lazy static

* Remove todo comment

* Remove done todo comment

* Squashed commit of the following:

commit f41edec
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Fri Feb 20 10:35:57 2026 +0100

    Remove unused dependencies

commit 27e7010
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Fri Feb 20 10:35:17 2026 +0100

    Remove unnecessary impl

* Fix test port number overlap

* Fix clippy warnings

* Correct typo

* Fix more clippy warnings

* Squashed commit of the following:

commit 9b00b89
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Tue Feb 24 10:32:50 2026 +0100

    Remove unused dependencies

commit 0a407e4
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Feb 23 14:26:22 2026 +0100

    Correct typo

commit 99f5b60
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Feb 23 14:25:15 2026 +0100

    Fix clippy warning

commit 539de07
Merge: f41edec 23d26aa
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Feb 23 12:54:19 2026 +0100

    Merge branch 'main' into quic-links-refactor

commit f41edec
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Fri Feb 20 10:35:57 2026 +0100

    Remove unused dependencies

commit 27e7010
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Fri Feb 20 10:35:17 2026 +0100

    Remove unnecessary impl

* Squashed commit of the following:

commit 7a56b4b
Merge: b894a30 1ccdaf9
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Wed Mar 11 22:19:16 2026 +0100

    Merge branch 'main' into quic-links-refactor

commit b894a30
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Wed Mar 11 22:04:47 2026 +0100

    Remove unnecessary IntoFuture implementation

commit 5483bfe
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Wed Mar 11 22:00:50 2026 +0100

    Squashed commit of the following:

    commit b9f2a82
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Wed Mar 11 17:19:10 2026 +0100

        Fix tests after parsing fix

    commit da9935f
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Wed Mar 11 16:26:24 2026 +0100

        Set stream limit in config before connection

    commit 9857e3b
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Wed Mar 11 16:17:41 2026 +0100

        Fix multistream parsing

    commit a4b4cdd
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Wed Mar 11 16:16:16 2026 +0100

        Update io/zenoh-link-commons/src/quic.rs

        Co-authored-by: Oussama Teffahi <70609372+oteffahi@users.noreply.github.com>

    commit b5383ef
    Merge: 22273fa 1ccdaf9
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Wed Mar 11 16:12:41 2026 +0100

        Merge branch 'main' into quic-streams

    commit 1ccdaf9
    Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
    Date:   Wed Mar 11 15:29:44 2026 +0100

        make cancellation of rx/tx tasks more explicit (eclipse-zenoh#2464)

    commit 80097dd
    Author: Michael Ilyin <milyin@gmail.com>
    Date:   Wed Mar 11 10:04:16 2026 +0100

        no need to use ZResult in accepts_replies (eclipse-zenoh#2473)

        * no need to use ZResult in accepts_replies

        * cargo fmt

        * build fix

        * rustfmt

    commit 8ab9bdb
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Wed Mar 11 01:42:01 2026 +0100

        build: Recreate lockfile of 1e7edc6 from 2026-03-10 (eclipse-zenoh#2474)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit 1e7edc6
    Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
    Date:   Tue Mar 10 16:21:22 2026 +0100

        fix race condition that could lead to having more links per transport than allowed by config (eclipse-zenoh#2471)

    commit 9f8dff1
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Mar 10 11:04:33 2026 +0100

        Remove callback generic parameter (eclipse-zenoh#2469)

        This was an unwanted and useless breaking change

    commit f645011
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Tue Mar 10 01:43:33 2026 +0100

        build: Recreate lockfile of f855a2d from 2026-03-09 (eclipse-zenoh#2468)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit f855a2d
    Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
    Date:   Mon Mar 9 16:50:12 2026 +0100

        remove unstable tags from allowed_destination setter of put and get (eclipse-zenoh#2466)

    commit 195a4b5
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Mon Mar 9 01:44:24 2026 +0100

        build: Recreate lockfile of 674da72 from 2026-03-07 (eclipse-zenoh#2462)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit 674da72
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Sat Mar 7 01:46:10 2026 +0100

        build: Recreate lockfile of 0dba151 from 2026-03-06 (eclipse-zenoh#2460)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit 0dba151
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Fri Mar 6 01:50:19 2026 +0100

        build: Recreate lockfile of 74e8bb9 from 2026-03-05 (eclipse-zenoh#2459)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit 74e8bb9
    Author: Julian Antonielli <julianantonielli@gmail.com>
    Date:   Thu Mar 5 18:01:22 2026 +0000

        Update documentation for Parameters (eclipse-zenoh#2195)

        - Remove documentation saying `\n` is a valid separator, as this was a
          remnant from https://github.com/eclipse-zenoh/zenoh/blob/9d564148e438390137d7360014a29cf34779f755/commons/zenoh-cfg-properties/src/lib.rs#L155-L166,
        - Mention that keys can have multiple values using `|` as a separator,
        - Fix typo in `Parameters::insert` and `Parameters::is_ordered`: extra
          `\``,
        - Add test/comments for `Parameters::values` returning empty iterator.

    commit 4e38e73
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Thu Mar 5 01:45:04 2026 +0100

        build: Recreate lockfile of 28171a6 from 2026-03-04 (eclipse-zenoh#2458)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit 28171a6
    Author: Diogo Matsubara <diogo.matsubara@zettascale.tech>
    Date:   Wed Mar 4 17:34:36 2026 +0100

        chore: update pre-commit rustfmt to use nightly (eclipse-zenoh#2456)

    commit 4a19369
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Wed Mar 4 01:47:01 2026 +0100

        build: Recreate lockfile of 30dc038 from 2026-03-03 (eclipse-zenoh#2455)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit 30dc038
    Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
    Date:   Tue Mar 3 15:25:07 2026 +0100

        remove redundant del_transport_unicast from TransportUnicastLowLatency::delete() (eclipse-zenoh#2453)

    commit 608fb05
    Author: konnta0 <68390856+konnta0@users.noreply.github.com>
    Date:   Tue Mar 3 20:20:30 2026 +0900

         fix: add iOS support to set_bind_to_device functions (eclipse-zenoh#2405)

        iOS target_os was not included in the cfg conditions for
        set_bind_to_device_tcp_socket and set_bind_to_device_udp_socket,
        causing compilation errors when building for iOS targets.

        This fix adds target_os = "ios" to the cfg conditions alongside
        macOS and Windows, as iOS also doesn't support socket binding
        to specific network interfaces.

        Signed-off-by: konnta0 <konnta0@gmail.com>

    commit 460faec
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Tue Mar 3 01:48:15 2026 +0100

        build: Recreate lockfile of 7d92339 from 2026-03-02 (eclipse-zenoh#2452)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit 7d92339
    Author: Diogo Matsubara <diogo.matsubara@zettascale.tech>
    Date:   Mon Mar 2 09:51:25 2026 +0100

        chore: fix formatting for scouting.rs (eclipse-zenoh#2448)

    commit d743df5
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Sat Feb 28 01:44:00 2026 +0100

        build: Recreate lockfile of a7667dc from 2026-02-27 (eclipse-zenoh#2446)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit a7667dc
    Author: Diogo Matsubara <diogo.matsubara@zettascale.tech>
    Date:   Fri Feb 27 20:44:35 2026 +0100

        chore: unpin nightly version (eclipse-zenoh#2445)

        In eclipse-zenoh#2440 nightly was pinned
        due to a version of shellexpand (3.1.1) not working with the current
        version. A new version of shellexpand has been released which should
        address the nighly failures.

        Fix eclipse-zenoh#2441

    commit fcce5bc
    Author: Mahmoud Mazouz <hello@fuzzypixelz.com>
    Date:   Fri Feb 27 18:06:20 2026 +0100

        Fix blocking calls in async transport callback invocations (eclipse-zenoh#2442)

        Partially addresses eclipse-zenoh#2409.

    commit be96ecf
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Fri Feb 27 01:47:26 2026 +0100

        build: Recreate lockfile of f5f1e6a from 2026-02-26 (eclipse-zenoh#2444)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit f5f1e6a
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Thu Feb 26 15:04:50 2026 +0100

        Force the response QoS to the original query QoS (eclipse-zenoh#2382)

        * Force the response QoS to the original query QoS

        * Remove replies from qos overwrite interceptor

        * Hide QoS builder methods for reply except express

        * Update documentation

        * Fix tests

        * Update semver check

        * Assign query QoS to response

        * Update deprecation message

        ---------

        Co-authored-by: OlivierHecart <olivier.hecart@adlinktech.com>

    commit b867164
    Author: OlivierHecart <olivier@zettascale.tech>
    Date:   Thu Feb 26 12:38:30 2026 +0100

        Stabilize accept_replies (eclipse-zenoh#2443)

    commit c714d46
    Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
    Date:   Wed Feb 25 09:35:45 2026 +0100

        ensure that no new transports to the same zid can be established while the current one is not fully closed (eclipse-zenoh#2438)

    commit 96621f2
    Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
    Date:   Wed Feb 25 09:34:30 2026 +0100

        Use TaskController in TransportLinkUnicastUniversal (eclipse-zenoh#2424)

        * use TaskController in link

        * disable pipeline after task termination

        * fix behaviour upon tx task termination

        ---------

        Co-authored-by: OlivierHecart <olivier.hecart@adlinktech.com>

    commit 53f802f
    Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
    Date:   Wed Feb 25 01:48:13 2026 +0100

        build: Recreate lockfile of 23d26aa from 2026-02-22 (eclipse-zenoh#2437)

        Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

    commit 8ed1898
    Author: Michael Ilyin <milyin@gmail.com>
    Date:   Mon Feb 23 17:43:48 2026 +0100

        Allow to set explicit nigltly compiler version in CI (eclipse-zenoh#2440)

        * explicit nigltly version

        * install rustfmt

        * formatting

    commit 38627dd
    Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
    Date:   Mon Feb 23 13:47:20 2026 +0100

        Rollback reply keyexpr optimization (eclipse-zenoh#2431)

        eclipse-zenoh#2383 is backward-incompatible protocol-wise.

    commit 22273fa
    Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
    Date:   Tue Jan 20 10:15:09 2026 +0100

        Fix imports for tls test

    commit da8acff
    Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
    Date:   Mon Jan 19 17:53:03 2026 +0100

        Fix clippy warnings

    commit 6b02632
    Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
    Date:   Mon Jan 19 14:50:22 2026 +0100

        Remove unused imports

    commit ea427f9
    Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
    Date:   Mon Jan 19 14:44:41 2026 +0100

        Change multistream tests to check for multiple RX task IDs

        Blocking one of the RX runtime threads works when running one test at a time,
        running them concurrently is an issue since all tests share the same static RX
        runtime which currently defaults to 2 threads.

    commit 31c9533
    Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
    Date:   Fri Jan 16 18:01:33 2026 +0100

        Add multistream tests based on blocking operations

    commit 276b34e
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Jan 13 17:29:27 2026 +0100

        Parse arbitrary bool

    commit 44f5cc7
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Jan 13 16:55:09 2026 +0100

        Fix rx Priority::Background task not being started

    commit 6f34bcd
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Dec 23 08:52:43 2025 +0100

        Apply PR reviews

    commit 8e48abd
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Dec 23 08:48:06 2025 +0100

        Apply PR reviews

    commit db75790
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Dec 23 08:34:27 2025 +0100

        Apply PR review

    commit 565af6a
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Dec 23 02:00:39 2025 +0100

        Fix lint

    commit d31fb8e
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Dec 16 10:11:10 2025 +0100

        Add comment

    commit 4fd6e3b
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Nov 4 22:53:08 2025 +0100

        add comments

    commit 8c560ad
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Nov 4 16:57:37 2025 +0100

        Fix typo

    commit 7988e95
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Nov 4 16:55:59 2025 +0100

        Remove useless Default implementation

    commit f152943
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Nov 4 16:54:06 2025 +0100

        Rename ALPN protocols

    commit 84f80c3
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Nov 4 16:15:06 2025 +0100

        use quic ALPN

    commit 5267081
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Nov 4 07:48:07 2025 +0100

        lint

    commit b3df242
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Tue Nov 4 02:07:14 2025 +0100

        add link extension

    commit e9da647
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Mon Nov 3 23:21:04 2025 +0100

        fix bugs

    commit 8a28945
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Mon Nov 3 22:50:00 2025 +0100

        finish implementation

    commit 4caaa48
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Mon Nov 3 14:54:25 2025 +0100

        timeout tracker

    commit 02d5875
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Fri Oct 24 17:55:28 2025 +0200

        latest message tracker tmp

    commit 4d12bf2
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Fri Oct 24 13:10:26 2025 +0200

        use select_all instead of manual implementation

    commit 00e4ac2
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Fri Oct 10 17:04:57 2025 +0200

        fix compression hack

    commit ead2235
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Thu Oct 9 20:38:56 2025 +0200

        sort accepted streams per priority

    commit e000af7
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Thu Oct 9 13:17:49 2025 +0200

        ensure priority is always control when not supported by link

    commit 096dfbe
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Thu Oct 9 12:23:53 2025 +0200

        simplify code

    commit aa66e34
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Thu Oct 9 11:03:07 2025 +0200

        add missing import

    commit 74356ff
    Author: Joseph Perez <joperez@hotmail.fr>
    Date:   Wed Oct 8 07:47:52 2025 +0200

        support quic streams per priority

        Links' internal design has been modified to take priority in arguments.
        For link supporting priorities, like Quic, read/write have been split by
        priority.
        Quic implement stream per priority using a single bidirectional stream
        for control messages (and opening), and unidirectional streaming for
        the other priorities.

commit 1ccdaf9
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Wed Mar 11 15:29:44 2026 +0100

    make cancellation of rx/tx tasks more explicit (eclipse-zenoh#2464)

commit 80097dd
Author: Michael Ilyin <milyin@gmail.com>
Date:   Wed Mar 11 10:04:16 2026 +0100

    no need to use ZResult in accepts_replies (eclipse-zenoh#2473)

    * no need to use ZResult in accepts_replies

    * cargo fmt

    * build fix

    * rustfmt

commit 8ab9bdb
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Wed Mar 11 01:42:01 2026 +0100

    build: Recreate lockfile of 1e7edc6 from 2026-03-10 (eclipse-zenoh#2474)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 1e7edc6
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Tue Mar 10 16:21:22 2026 +0100

    fix race condition that could lead to having more links per transport than allowed by config (eclipse-zenoh#2471)

commit 9f8dff1
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Tue Mar 10 11:04:33 2026 +0100

    Remove callback generic parameter (eclipse-zenoh#2469)

    This was an unwanted and useless breaking change

commit f645011
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Tue Mar 10 01:43:33 2026 +0100

    build: Recreate lockfile of f855a2d from 2026-03-09 (eclipse-zenoh#2468)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit f855a2d
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Mon Mar 9 16:50:12 2026 +0100

    remove unstable tags from allowed_destination setter of put and get (eclipse-zenoh#2466)

commit 195a4b5
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Mon Mar 9 01:44:24 2026 +0100

    build: Recreate lockfile of 674da72 from 2026-03-07 (eclipse-zenoh#2462)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 674da72
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Sat Mar 7 01:46:10 2026 +0100

    build: Recreate lockfile of 0dba151 from 2026-03-06 (eclipse-zenoh#2460)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 0dba151
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Fri Mar 6 01:50:19 2026 +0100

    build: Recreate lockfile of 74e8bb9 from 2026-03-05 (eclipse-zenoh#2459)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 74e8bb9
Author: Julian Antonielli <julianantonielli@gmail.com>
Date:   Thu Mar 5 18:01:22 2026 +0000

    Update documentation for Parameters (eclipse-zenoh#2195)

    - Remove documentation saying `\n` is a valid separator, as this was a
      remnant from https://github.com/eclipse-zenoh/zenoh/blob/9d564148e438390137d7360014a29cf34779f755/commons/zenoh-cfg-properties/src/lib.rs#L155-L166,
    - Mention that keys can have multiple values using `|` as a separator,
    - Fix typo in `Parameters::insert` and `Parameters::is_ordered`: extra
      `\``,
    - Add test/comments for `Parameters::values` returning empty iterator.

commit 4e38e73
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Thu Mar 5 01:45:04 2026 +0100

    build: Recreate lockfile of 28171a6 from 2026-03-04 (eclipse-zenoh#2458)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 28171a6
Author: Diogo Matsubara <diogo.matsubara@zettascale.tech>
Date:   Wed Mar 4 17:34:36 2026 +0100

    chore: update pre-commit rustfmt to use nightly (eclipse-zenoh#2456)

commit 4a19369
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Wed Mar 4 01:47:01 2026 +0100

    build: Recreate lockfile of 30dc038 from 2026-03-03 (eclipse-zenoh#2455)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 30dc038
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Tue Mar 3 15:25:07 2026 +0100

    remove redundant del_transport_unicast from TransportUnicastLowLatency::delete() (eclipse-zenoh#2453)

commit 608fb05
Author: konnta0 <68390856+konnta0@users.noreply.github.com>
Date:   Tue Mar 3 20:20:30 2026 +0900

     fix: add iOS support to set_bind_to_device functions (eclipse-zenoh#2405)

    iOS target_os was not included in the cfg conditions for
    set_bind_to_device_tcp_socket and set_bind_to_device_udp_socket,
    causing compilation errors when building for iOS targets.

    This fix adds target_os = "ios" to the cfg conditions alongside
    macOS and Windows, as iOS also doesn't support socket binding
    to specific network interfaces.

    Signed-off-by: konnta0 <konnta0@gmail.com>

commit 460faec
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Tue Mar 3 01:48:15 2026 +0100

    build: Recreate lockfile of 7d92339 from 2026-03-02 (eclipse-zenoh#2452)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 7d92339
Author: Diogo Matsubara <diogo.matsubara@zettascale.tech>
Date:   Mon Mar 2 09:51:25 2026 +0100

    chore: fix formatting for scouting.rs (eclipse-zenoh#2448)

commit d743df5
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Sat Feb 28 01:44:00 2026 +0100

    build: Recreate lockfile of a7667dc from 2026-02-27 (eclipse-zenoh#2446)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit a7667dc
Author: Diogo Matsubara <diogo.matsubara@zettascale.tech>
Date:   Fri Feb 27 20:44:35 2026 +0100

    chore: unpin nightly version (eclipse-zenoh#2445)

    In eclipse-zenoh#2440 nightly was pinned
    due to a version of shellexpand (3.1.1) not working with the current
    version. A new version of shellexpand has been released which should
    address the nighly failures.

    Fix eclipse-zenoh#2441

commit fcce5bc
Author: Mahmoud Mazouz <hello@fuzzypixelz.com>
Date:   Fri Feb 27 18:06:20 2026 +0100

    Fix blocking calls in async transport callback invocations (eclipse-zenoh#2442)

    Partially addresses eclipse-zenoh#2409.

commit be96ecf
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Fri Feb 27 01:47:26 2026 +0100

    build: Recreate lockfile of f5f1e6a from 2026-02-26 (eclipse-zenoh#2444)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit f5f1e6a
Author: Joseph Perez <joperez@hotmail.fr>
Date:   Thu Feb 26 15:04:50 2026 +0100

    Force the response QoS to the original query QoS (eclipse-zenoh#2382)

    * Force the response QoS to the original query QoS

    * Remove replies from qos overwrite interceptor

    * Hide QoS builder methods for reply except express

    * Update documentation

    * Fix tests

    * Update semver check

    * Assign query QoS to response

    * Update deprecation message

    ---------

    Co-authored-by: OlivierHecart <olivier.hecart@adlinktech.com>

commit b867164
Author: OlivierHecart <olivier@zettascale.tech>
Date:   Thu Feb 26 12:38:30 2026 +0100

    Stabilize accept_replies (eclipse-zenoh#2443)

commit c714d46
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Wed Feb 25 09:35:45 2026 +0100

    ensure that no new transports to the same zid can be established while the current one is not fully closed (eclipse-zenoh#2438)

commit 96621f2
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Wed Feb 25 09:34:30 2026 +0100

    Use TaskController in TransportLinkUnicastUniversal (eclipse-zenoh#2424)

    * use TaskController in link

    * disable pipeline after task termination

    * fix behaviour upon tx task termination

    ---------

    Co-authored-by: OlivierHecart <olivier.hecart@adlinktech.com>

commit 53f802f
Author: eclipse-zenoh-bot <61247838+eclipse-zenoh-bot@users.noreply.github.com>
Date:   Wed Feb 25 01:48:13 2026 +0100

    build: Recreate lockfile of 23d26aa from 2026-02-22 (eclipse-zenoh#2437)

    Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>

commit 9b00b89
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Tue Feb 24 10:32:50 2026 +0100

    Remove unused dependencies

commit 8ed1898
Author: Michael Ilyin <milyin@gmail.com>
Date:   Mon Feb 23 17:43:48 2026 +0100

    Allow to set explicit nigltly compiler version in CI (eclipse-zenoh#2440)

    * explicit nigltly version

    * install rustfmt

    * formatting

commit 0a407e4
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Feb 23 14:26:22 2026 +0100

    Correct typo

commit 99f5b60
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Feb 23 14:25:15 2026 +0100

    Fix clippy warning

commit 38627dd
Author: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com>
Date:   Mon Feb 23 13:47:20 2026 +0100

    Rollback reply keyexpr optimization (eclipse-zenoh#2431)

    eclipse-zenoh#2383 is backward-incompatible protocol-wise.

commit 539de07
Merge: f41edec 23d26aa
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Mon Feb 23 12:54:19 2026 +0100

    Merge branch 'main' into quic-links-refactor

commit f41edec
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Fri Feb 20 10:35:57 2026 +0100

    Remove unused dependencies

commit 27e7010
Author: Oussama Teffahi <oussama.teffahi@zettascale.tech>
Date:   Fri Feb 20 10:35:17 2026 +0100

    Remove unnecessary impl

* Exclude pn_offset from typos check

* Remove pn_offset from codebase to make typos check happy
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
Co-authored-by: eclipse-zenoh-bot <eclipse-zenoh-bot@users.noreply.github.com>
…am-main-to-master

Co-authored-by: juanjole <16036394+juanjole@users.noreply.github.com>
Copilot AI changed the title [WIP] Update master with changes from upstream eclipse-zenoh/zenoh:main Sync juanjole/zenoh:master with eclipse-zenoh/zenoh:main via merge (no history rewrite) Apr 5, 2026
Copilot AI requested a review from juanjole April 5, 2026 11:01

@juanjole juanjole left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Done

@juanjole juanjole marked this pull request as ready for review April 5, 2026 11:08
Copilot AI review requested due to automatic review settings April 5, 2026 11:08
@juanjole juanjole merged commit cb21318 into master Apr 5, 2026
38 of 40 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

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 syncs the fork branch juanjole/zenoh:master with eclipse-zenoh/zenoh:main via a merge commit (no history rewrite), bringing in upstream changes across core crates, codecs, keyexpr handling, and CI/config tooling.

Changes:

  • Merges upstream updates introducing verbatim (@) keyexpr semantics, new owned keyexpr types, and revised canonization logic.
  • Updates zenoh-codec/zenoh-buffers internals (refactors, new message support like Interest, shared-memory codec changes, and transport reader utilities).
  • Adds/updates repository tooling and CI configs (pre-commit, clippy/typos config, workflows, nextest config, etc.).

Reviewed changes

Copilot reviewed 136 out of 768 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
commons/zenoh-keyexpr/src/key_expr/utils.rs Removes raw byte Writer and adjusts Splitter lifetimes; adds Utf helper with safety note
commons/zenoh-keyexpr/src/key_expr/tests.rs Extends intersection/inclusion tests to cover verbatim @... patterns
commons/zenoh-keyexpr/src/key_expr/owned.rs Renames/adjusts canonization trait usage and introduces OwnedNonWildKeyExpr
commons/zenoh-keyexpr/src/key_expr/mod.rs Exports OwnedNonWildKeyExpr from key_expr module
commons/zenoh-keyexpr/src/key_expr/intersect/mod.rs Adds verbatim detection helpers; fixes module naming typo (restriction)
commons/zenoh-keyexpr/src/key_expr/intersect/ltr_chunk.rs Removes dead/disabled LTRChunk intersector code
commons/zenoh-keyexpr/src/key_expr/intersect/ltr.rs Removes dead/disabled left-to-right intersector code
commons/zenoh-keyexpr/src/key_expr/intersect/classical.rs Updates classical intersector for verbatim handling and fixes comment typo
commons/zenoh-keyexpr/src/key_expr/include.rs Updates inclusion logic to account for verbatim segments and uses Split explicitly
commons/zenoh-keyexpr/src/key_expr/fuzzer.rs Makes fuzzer generate verbatim chunks sometimes; small string handling refactor
commons/zenoh-keyexpr/src/key_expr/format/support.rs Adds Segment accessors and safety docs; MSRV-friendly lint handling
commons/zenoh-keyexpr/src/key_expr/canon.rs Refactors canonization algorithm and trait naming; expands tests
commons/zenoh-keyexpr/benches/keyexpr_tree.rs Bench refactor + adds ahash-backed tree measurements; uses std::hint::black_box
commons/zenoh-keyexpr/README.md Clarifies internal-only API stability warning
commons/zenoh-keyexpr/Cargo.toml Adds features (js/internal/unstable), adds getrandom, updates dev-deps/metadata
commons/zenoh-crypto/src/lib.rs Updates docs link to docs.rs
commons/zenoh-crypto/src/cipher.rs Import formatting and test module use ordering
commons/zenoh-crypto/README.md Clarifies internal-only API stability warning
commons/zenoh-crypto/Cargo.toml Reorders package metadata and authors
commons/zenoh-core/src/macros.rs Updates lock macros for new try_* APIs, switches log→tracing, adds parsing/timeout macros
commons/zenoh-core/src/lib.rs Reworks Resolve/Wait abstractions using IntoFuture; adds polyfills & debug macros
commons/zenoh-core/README.md Clarifies internal-only API stability warning
commons/zenoh-core/Cargo.toml Switches to tokio runtime dependency, adds tracing-instrument feature
commons/zenoh-config/src/wrappers.rs Adds wrapper types to hide internal APIs behind stable wrappers
commons/zenoh-config/src/include.rs Fixes typos and modernizes format strings
commons/zenoh-config/src/gateway.rs Adds gateway configuration schema/types
commons/zenoh-config/src/connection_retry.rs Adds connection retry configuration + endpoint overrides via zparse_default
commons/zenoh-config/README.md Clarifies internal-only API stability warning
commons/zenoh-config/Cargo.toml Adds features and new deps (tracing, secrecy, serde_with, etc.)
commons/zenoh-collections/src/single_or_vec.rs Adds const empty constructor and lifetime fixes; more inlining
commons/zenoh-collections/src/ring_buffer.rs Adds push_force helper
commons/zenoh-collections/src/properties.rs Removes Properties implementation (likely replaced elsewhere upstream)
commons/zenoh-collections/src/lib.rs Restructures exports/modules; replaces properties with int_hash_map
commons/zenoh-collections/README.md Clarifies internal-only API stability warning
commons/zenoh-collections/Cargo.toml Adds ahash dependency and feature flags
commons/zenoh-codec/tests/codec.rs Expands codec tests (zbuf, zint boundaries, interest); updates types to *Proto
commons/zenoh-codec/src/zenoh/reply.rs Refactors Reply encoding/decoding around consolidation/body types
commons/zenoh-codec/src/zenoh/query.rs Moves consolidation into body/header flags; simplifies consolidation coding
commons/zenoh-codec/src/zenoh/put.rs Uses Encoding::empty; adds cold-path helpers for timestamp/encoding/ext parsing
commons/zenoh-codec/src/zenoh/pull.rs Removes Pull codec implementation
commons/zenoh-codec/src/zenoh/err.rs Refactors Err wire format to include encoding/payload; adds shm ext handling
commons/zenoh-codec/src/zenoh/del.rs Import reordering/formatting
commons/zenoh-codec/src/zenoh/ack.rs Removes Ack codec implementation
commons/zenoh-codec/src/transport/open.rs Adds ext_south remote-bound extension; gates shm ext on feature
commons/zenoh-codec/src/transport/oam.rs Uses ext defaults constants; log→tracing
commons/zenoh-codec/src/transport/mod.rs Publicly exports frame module; adds Patch extension codecs; uses *_Ref types
commons/zenoh-codec/src/transport/keepalive.rs Import reordering/formatting
commons/zenoh-codec/src/transport/join.rs Adds Patch extension; switches ZenohId→ZenohIdProto and default constants
commons/zenoh-codec/src/transport/frame.rs Adds FrameReader iterator utility for streamed frame decoding
commons/zenoh-codec/src/transport/fragment.rs Adds First/Drop extensions; uses default constants
commons/zenoh-codec/src/transport/close.rs Import reordering/formatting
commons/zenoh-codec/src/transport/batch.rs Refactors to use NetworkMessageRef/FrameReader; adds Default impl
commons/zenoh-codec/src/scouting/scout.rs Switches ZenohId→ZenohIdProto; import reordering
commons/zenoh-codec/src/scouting/mod.rs Import reordering/formatting
commons/zenoh-codec/src/scouting/hello.rs Switches to HelloProto/ZidProto types
commons/zenoh-codec/src/network/response.rs Uses DEFAULT constants (QoS, Mapping) and import formatting
commons/zenoh-codec/src/network/request.rs Renames Query target type; uses DEFAULT constants and Mapping::DEFAULT
commons/zenoh-codec/src/network/push.rs Uses DEFAULT constants and small perf inlining
commons/zenoh-codec/src/network/oam.rs Uses DEFAULT constants and formatting
commons/zenoh-codec/src/network/interest.rs Adds Interest codec implementation
commons/zenoh-codec/src/lib.rs Adds Default impls for Zenoh080 and Zenoh080Bounded
commons/zenoh-codec/src/core/zslice.rs Import reordering/formatting
commons/zenoh-codec/src/core/zint.rs Refactors VLE length logic and varint codec implementation
commons/zenoh-codec/src/core/zenohid.rs Switches ZenohId→ZenohIdProto in codec
commons/zenoh-codec/src/core/zbuf.rs Uses reader.read_zbuf; shared-memory codec changes with SHM metadata
commons/zenoh-codec/src/core/wire_expr.rs Uses cold-path helpers; Mapping::DEFAULT
commons/zenoh-codec/src/core/timestamp.rs Switches ZenohId→ZenohIdProto; length computation change
commons/zenoh-codec/src/core/shm.rs Refactors shm buffer info codec to new shm types
commons/zenoh-codec/src/core/property.rs Removes Property codec implementation
commons/zenoh-codec/src/core/mod.rs Removes property module and reorders imports
commons/zenoh-codec/src/core/locator.rs Import reordering/formatting
commons/zenoh-codec/src/core/encoding.rs Encodes Encoding as (id + optional schema) using flags
commons/zenoh-codec/src/common/priority.rs Removes Priority codec implementation
commons/zenoh-codec/src/common/mod.rs Removes priority module
commons/zenoh-codec/src/common/extension.rs Switches log→tracing for unknown extension reporting
commons/zenoh-codec/benches/codec.rs Updates benches to use Push::from(Put) + DEFAULT constants and new ZSlice::new
commons/zenoh-codec/README.md Clarifies internal-only API stability warning
commons/zenoh-codec/Cargo.toml Switches to tracing; feature reshuffle; dev-deps cleanup
commons/zenoh-buffers/tests/readwrite.rs Adjusts imports; documents unsafe with_slot usage; minor writer mutability tweaks
commons/zenoh-buffers/src/vec.rs Refactors Writer/BacktrackableWriter impls and makes with_slot unsafe with contract
commons/zenoh-buffers/src/bbuf.rs Refactors Writer/BacktrackableWriter impls; safe ZSlice construction with SAFETY notes
commons/zenoh-buffers/README.md Clarifies internal-only API stability warning
commons/zenoh-buffers/Cargo.toml Reorders package metadata
commons/README.md Adds overview README for commons supporting crates
clippy.toml Adds ignore-interior-mutability config for Resource hashing
ci/zenoh-1-75/src/lib.rs Adds placeholder crate for MSRV CI
ci/zenoh-1-75/Cargo.toml Adds CI crate depending on zenoh + pinned deps
ci/valgrind-check/run.sh Adds valgrind leak check runner script
ci/valgrind-check/Cargo.toml Adds valgrind-check helper crate
ci/nostd-check/Cargo.toml Adds cargo-machete metadata and formatting changes
_typos.toml Adds typos tool configuration and excluded files/words
Cross.toml Removes trailing whitespace line
CODE_OF_CONDUCT.md Adds repository code of conduct
.taplo.toml Adds taplo formatting configuration
.pre-commit-config.yaml Adds pre-commit hooks for rustfmt and taplo
.markdownlint.yaml Adds markdownlint configuration
.github/workflows/trigger-sync-lockfiles.yml Adds workflow to trigger lockfile sync via shared CI
.github/workflows/pre-release.yml Adds pre-release checks/tests/docs workflows
.github/workflows/pr-label-checklists-verify.yml Adds shared workflow for PR checklist verification
.github/workflows/pr-label-checklists-generate.yml Adds shared workflow for PR checklist generation
.github/workflows/eclipse-ipddp.yml Adds IPDDP compliance workflow using shared CI
.github/workflows/crates_publish.sh Removes crates publish script
.github/workflows/crates_check.sh Removes crates check script
.github/workflows/Dockerfile Removes old Dockerfile for image build
.github/release.yml Expands changelog category grouping and excludes internal label
.github/pull_request_template.md Adds PR template
.github/ISSUE_TEMPLATE/release.yml Adds release issue template
.github/ISSUE_TEMPLATE/new_feature.yml Renames/adjusts feature request issue template and labels
.github/ISSUE_TEMPLATE/bug_report.yml Renames/adjusts bug issue template and labels
.config/nextest.toml Adds nextest profiles, retries, test groups, and override filters
.codecov.yml Adds informational codecov status configuration

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

Comment on lines +21 to +52
const VLE_LEN_MAX: usize = vle_len(u64::MAX);

const fn vle_len(x: u64) -> usize {
const B1: u64 = u64::MAX << 7;
const B2: u64 = u64::MAX << (7 * 2);
const B3: u64 = u64::MAX << (7 * 3);
const B4: u64 = u64::MAX << (7 * 4);
const B5: u64 = u64::MAX << (7 * 5);
const B6: u64 = u64::MAX << (7 * 6);
const B7: u64 = u64::MAX << (7 * 7);
const B8: u64 = u64::MAX << (7 * 8);

if (x & B1) == 0 {
1
} else if (x & B2) == 0 {
2
} else if (x & B3) == 0 {
3
} else if (x & B4) == 0 {
4
} else if (x & B5) == 0 {
5
} else if (x & B6) == 0 {
6
} else if (x & B7) == 0 {
7
} else if (x & B8) == 0 {
8
} else {
9
}
}

Copilot AI Apr 5, 2026

Copy link

Choose a reason for hiding this comment

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

vle_len(u64::MAX)must be 10 for a 7-bit varint encoding of a 64-bit value. Returning 9 makesVLE_LEN_MAXtoo small, which can cause the encoder to omit the final terminating byte for values requiring 10 bytes (e.g.,u64::MAX), corrupting the stream. Update vle_lento return 10 for the 10-byte case (restore the 9/10-byte branches) and ensureVLE_LEN_MAX` becomes 10.

Copilot uses AI. Check for mistakes.
Err(DidntRead)
i += 7;
}
v |= (b as u64) << i;

Copilot AI Apr 5, 2026

Copy link

Choose a reason for hiding this comment

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

read(u64)no longer rejects malformed VLEs that exceed the maximum length or have the continuation bit set on the last allowed byte. In particular, if the varint is too long, this logic will silently incorporate the continuation bit into the decoded value (viav |= (b as u64) << i) rather than returning DidntRead. Restore an explicit length/continuation validation: if the loop exits due to reaching the max shift, require (b & 0x80) == 0(and/or mask with0x7f` + error) to avoid accepting invalid encodings.

Suggested change
v |= (b as u64) << i;
if i == 7 * (VLE_LEN_MAX - 1) && (b & 0x80_u8) != 0 {
return Err(DidntRead);
}
v |= ((b & 0x7f_u8) as u64) << i;

Copilot uses AI. Check for mistakes.
let bytes = unsafe { self.as_bytes_mut() };
let length = canonize(bytes);
bytes[length..].fill(b'\0');
*self = &mut core::mem::take(self)[..length];

Copilot AI Apr 5, 2026

Copy link

Choose a reason for hiding this comment

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

core::mem::take(self)here requires&mut str: Default, which is not implemented, so this is not expected to compile. To shrink the &mut strtolength, reconstruct it from the validated UTF-8 prefix (e.g., via core::str::from_utf8_unchecked_mut(&mut bytes[..length])) and assign that to *self, without using mem::take`.

Suggested change
*self = &mut core::mem::take(self)[..length];
// SAFETY: `canonize` guarantees that `bytes[..length]` is valid UTF-8.
*self = unsafe { core::str::from_utf8_unchecked_mut(&mut bytes[..length]) };

Copilot uses AI. Check for mistakes.
Comment thread ci/valgrind-check/run.sh
return 0
else
cat $SCRIPT_DIR/$1_leaks.log
return -1

Copilot AI Apr 5, 2026

Copy link

Choose a reason for hiding this comment

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

return -1in bash becomes exit status 255, which is non-zero but unintuitive and can be confusing when diagnosing failures. Preferreturn 1` (or another small positive code) to clearly indicate failure.

Suggested change
return -1
return 1

Copilot uses AI. Check for mistakes.
}

// This macro allows to parse a string to the target type
// No faili, but log the error and use default

Copilot AI Apr 5, 2026

Copy link

Choose a reason for hiding this comment

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

Typo in comment: replace 'faili' with 'fail'.

Suggested change
// No faili, but log the error and use default
// No fail, but log the error and use default

Copilot uses AI. Check for mistakes.
//

//! Wrappers around types reexported by `zenoh` from subcrates.
//! These wrappers are used to avoid exposing the the API necessary only for zenoh internals into the public API.

Copilot AI Apr 5, 2026

Copy link

Choose a reason for hiding this comment

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

Duplicate word in doc comment: remove the extra 'the'.

Suggested change
//! These wrappers are used to avoid exposing the the API necessary only for zenoh internals into the public API.
//! These wrappers are used to avoid exposing the API necessary only for zenoh internals into the public API.

Copilot uses AI. Check for mistakes.
}

// if external file was incluided, add it's content to values
// if external file was included, add it's content to values

Copilot AI Apr 5, 2026

Copy link

Choose a reason for hiding this comment

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

Grammar fix in comment: 'it's' (it is) should be 'its' (possessive).

Suggested change
// if external file was included, add it's content to values
// if external file was included, add its content to values

Copilot uses AI. Check for mistakes.
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.