Feb 21, 9-10 AM (0)
Feb 21, 10-11 AM (1)
Feb 21, 11-12 PM (22)
Feb 21, 12-1 PM (4)
Feb 21, 1-2 PM (2)
Feb 21, 2-3 PM (7)
Feb 21, 3-4 PM (4)
Feb 21, 4-5 PM (9)
Feb 21, 5-6 PM (1)
Feb 21, 6-7 PM (7)
Feb 21, 7-8 PM (3)
Feb 21, 8-9 PM (0)
Feb 21, 9-10 PM (22)
Feb 21, 10-11 PM (33)
Feb 21, 11-12 AM (22)
Feb 22, 12-1 AM (5)
Feb 22, 1-2 AM (3)
Feb 22, 2-3 AM (6)
Feb 22, 3-4 AM (0)
Feb 22, 4-5 AM (6)
Feb 22, 5-6 AM (3)
Feb 22, 6-7 AM (1)
Feb 22, 7-8 AM (0)
Feb 22, 8-9 AM (1)
Feb 22, 9-10 AM (0)
Feb 22, 10-11 AM (1)
Feb 22, 11-12 PM (2)
Feb 22, 12-1 PM (10)
Feb 22, 1-2 PM (1)
Feb 22, 2-3 PM (1)
Feb 22, 3-4 PM (1)
Feb 22, 4-5 PM (10)
Feb 22, 5-6 PM (10)
Feb 22, 6-7 PM (8)
Feb 22, 7-8 PM (13)
Feb 22, 8-9 PM (8)
Feb 22, 9-10 PM (23)
Feb 22, 10-11 PM (20)
Feb 22, 11-12 AM (23)
Feb 23, 12-1 AM (2)
Feb 23, 1-2 AM (3)
Feb 23, 2-3 AM (12)
Feb 23, 3-4 AM (11)
Feb 23, 4-5 AM (0)
Feb 23, 5-6 AM (1)
Feb 23, 6-7 AM (5)
Feb 23, 7-8 AM (78)
Feb 23, 8-9 AM (32)
Feb 23, 9-10 AM (45)
Feb 23, 10-11 AM (42)
Feb 23, 11-12 PM (64)
Feb 23, 12-1 PM (56)
Feb 23, 1-2 PM (111)
Feb 23, 2-3 PM (59)
Feb 23, 3-4 PM (35)
Feb 23, 4-5 PM (28)
Feb 23, 5-6 PM (29)
Feb 23, 6-7 PM (22)
Feb 23, 7-8 PM (17)
Feb 23, 8-9 PM (5)
Feb 23, 9-10 PM (21)
Feb 23, 10-11 PM (30)
Feb 23, 11-12 AM (17)
Feb 24, 12-1 AM (7)
Feb 24, 1-2 AM (6)
Feb 24, 2-3 AM (11)
Feb 24, 3-4 AM (6)
Feb 24, 4-5 AM (6)
Feb 24, 5-6 AM (11)
Feb 24, 6-7 AM (9)
Feb 24, 7-8 AM (36)
Feb 24, 8-9 AM (28)
Feb 24, 9-10 AM (56)
Feb 24, 10-11 AM (42)
Feb 24, 11-12 PM (27)
Feb 24, 12-1 PM (36)
Feb 24, 1-2 PM (52)
Feb 24, 2-3 PM (122)
Feb 24, 3-4 PM (36)
Feb 24, 4-5 PM (129)
Feb 24, 5-6 PM (28)
Feb 24, 6-7 PM (18)
Feb 24, 7-8 PM (15)
Feb 24, 8-9 PM (40)
Feb 24, 9-10 PM (21)
Feb 24, 10-11 PM (38)
Feb 24, 11-12 AM (24)
Feb 25, 12-1 AM (20)
Feb 25, 1-2 AM (6)
Feb 25, 2-3 AM (13)
Feb 25, 3-4 AM (5)
Feb 25, 4-5 AM (2)
Feb 25, 5-6 AM (7)
Feb 25, 6-7 AM (6)
Feb 25, 7-8 AM (16)
Feb 25, 8-9 AM (66)
Feb 25, 9-10 AM (38)
Feb 25, 10-11 AM (25)
Feb 25, 11-12 PM (34)
Feb 25, 12-1 PM (37)
Feb 25, 1-2 PM (33)
Feb 25, 2-3 PM (38)
Feb 25, 3-4 PM (24)
Feb 25, 4-5 PM (21)
Feb 25, 5-6 PM (24)
Feb 25, 6-7 PM (93)
Feb 25, 7-8 PM (37)
Feb 25, 8-9 PM (12)
Feb 25, 9-10 PM (38)
Feb 25, 10-11 PM (30)
Feb 25, 11-12 AM (15)
Feb 26, 12-1 AM (5)
Feb 26, 1-2 AM (3)
Feb 26, 2-3 AM (9)
Feb 26, 3-4 AM (2)
Feb 26, 4-5 AM (2)
Feb 26, 5-6 AM (5)
Feb 26, 6-7 AM (25)
Feb 26, 7-8 AM (22)
Feb 26, 8-9 AM (97)
Feb 26, 9-10 AM (73)
Feb 26, 10-11 AM (42)
Feb 26, 11-12 PM (40)
Feb 26, 12-1 PM (63)
Feb 26, 1-2 PM (55)
Feb 26, 2-3 PM (53)
Feb 26, 3-4 PM (39)
Feb 26, 4-5 PM (12)
Feb 26, 5-6 PM (58)
Feb 26, 6-7 PM (26)
Feb 26, 7-8 PM (38)
Feb 26, 8-9 PM (11)
Feb 26, 9-10 PM (31)
Feb 26, 10-11 PM (39)
Feb 26, 11-12 AM (30)
Feb 27, 12-1 AM (11)
Feb 27, 1-2 AM (3)
Feb 27, 2-3 AM (7)
Feb 27, 3-4 AM (7)
Feb 27, 4-5 AM (4)
Feb 27, 5-6 AM (4)
Feb 27, 6-7 AM (9)
Feb 27, 7-8 AM (8)
Feb 27, 8-9 AM (10)
Feb 27, 9-10 AM (28)
Feb 27, 10-11 AM (43)
Feb 27, 11-12 PM (65)
Feb 27, 12-1 PM (43)
Feb 27, 1-2 PM (24)
Feb 27, 2-3 PM (27)
Feb 27, 3-4 PM (12)
Feb 27, 4-5 PM (41)
Feb 27, 5-6 PM (37)
Feb 27, 6-7 PM (31)
Feb 27, 7-8 PM (9)
Feb 27, 8-9 PM (33)
Feb 27, 9-10 PM (11)
Feb 27, 10-11 PM (41)
Feb 27, 11-12 AM (26)
Feb 28, 12-1 AM (9)
Feb 28, 1-2 AM (7)
Feb 28, 2-3 AM (13)
Feb 28, 3-4 AM (1)
Feb 28, 4-5 AM (5)
Feb 28, 5-6 AM (7)
Feb 28, 6-7 AM (9)
Feb 28, 7-8 AM (5)
Feb 28, 8-9 AM (2)
Feb 28, 9-10 AM (0)
3,834 commits this week Feb 21, 2026 - Feb 28, 2026
tracing: fix DebugPeerSelection counters
The expression
> peerSelectionStateToCounters Cardano.PublicRootPeers.toSet
>   Cardano.cardanoPeerSelectionStatetoCounters st

doesn't typecheck because of universally quantified type variables
in the instance head. The next commit introduces a type class and
a follow-up commit will add a constraint to show that we can
provide all the extra peer information in this LogFormatting instance.

Alternatively, the instance could be monomorphic, but that would
lead to duplicated code for the base peer selection counters instance,
and the extra/custom one in another module, and the choice would be
up to the user which one to import. In comparison, the proposed
approach is modular, where the instance with the counters extension
only provides those additional counters to the base instance, and the
user imports both into the program.
refactor: remove old codename references and stale directories
- Delete stale build artifact directories (mercury/, pollux/, castor/,
  connect/, shared/, event-notification/)
- Rename import aliases: castorDomain -> didDomain, castor -> didError,
  pollux -> oid4vciModel
- Update comments referencing old codenames (pollux, castor, mercury)
- Update .github/labeler.yml to use new module directory paths
- Clean up commented legacy module names in CI workflow and build.sbt

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]>
chore(deps): bump ajv
Bumps [ajv](https://github.com/ajv-validator/ajv) from 8.17.1 to 8.18.0.
- [Release notes](https://github.com/ajv-validator/ajv/releases)
- [Commits](https://github.com/ajv-validator/ajv/compare/v8.17.1...v8.18.0)

---
updated-dependencies:
- dependency-name: ajv
  dependency-version: 8.18.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
wait-for-hydra: add SSE support for real-time Hydra status (#41)
When `hydra-status-url` is provided, the action connects to the
hydra-github-bridge SSE endpoint for real-time build status updates
instead of polling the GitHub API. This dramatically reduces latency
from minutes (poll interval) to seconds (event-driven).

SSE mode features:
- One-shot check on cached status before opening the stream
- Event filtering by check-run name (ignores unrelated jobs)
- Process substitution to avoid subshell exit trap
- read -t 60 to enforce timeout during idle streams
- Periodic re-checks every 120s as CDN buffering safety net
- Graceful fallback to poll mode on connection failure

Without `hydra-status-url`, the action behaves exactly as before
(pure GitHub API polling with exponential backoff).

Copyright (c) Moritz Angermann <[email protected]>, Input Output Group.
SPDX-License-Identifier: Apache-2.0
wait-for-hydra: add SSE support for real-time Hydra status
When `hydra-status-url` is provided, the action connects to the
hydra-github-bridge SSE endpoint for real-time build status updates
instead of polling the GitHub API. This dramatically reduces latency
from minutes (poll interval) to seconds (event-driven).

SSE mode features:
- One-shot check on cached status before opening the stream
- Event filtering by check-run name (ignores unrelated jobs)
- Process substitution to avoid subshell exit trap
- read -t 60 to enforce timeout during idle streams
- Periodic re-checks every 120s as CDN buffering safety net
- Graceful fallback to poll mode on connection failure

Without `hydra-status-url`, the action behaves exactly as before
(pure GitHub API polling with exponential backoff).

Copyright (c) Moritz Angermann <[email protected]>, Input Output Group.
SPDX-License-Identifier: Apache-2.0
refactor: rename event.notification to notifications package (phase 13)
Align package names with module names: rename
org.hyperledger.identus.event.notification to
org.hyperledger.identus.notifications, and
event.controller to notifications.controller.
Move source directories to match.

Signed-off-by: Yurii Shynbuiev <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]>
refactor: move notification traits from core to API module (phase 12)
Move EventNotificationService trait and its types (Event,
EventProducer, EventConsumer, EventNotificationConfig,
EventNotificationServiceError) from notifications/core to
notifications/api. Reverse dependency direction so core depends
on api. Delete the re-export type alias file.

VDR and other modules retain the re-export pattern as their API
types depend on heavy external libraries (protobuf, gRPC, VDR
drivers) that would defeat the purpose of a lightweight API layer.

Signed-off-by: Yurii Shynbuiev <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: Yurii Shynbuiev <[email protected]>
chore(deps): bump minimatch in /examples/gift_card
Bumps  and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together.

Updates `minimatch` from 9.0.5 to 9.0.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v9.0.5...v9.0.9)

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v9.0.5...v9.0.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 9.0.9
  dependency-type: indirect
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

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