Skip to content

chore(release): 0.4.0#22

Merged
rodrigobnogueira merged 1 commit into
mainfrom
release/0.4.0
Jul 19, 2026
Merged

chore(release): 0.4.0#22
rodrigobnogueira merged 1 commit into
mainfrom
release/0.4.0

Conversation

@rodrigobnogueira

Copy link
Copy Markdown
Contributor

Version bump for the 0.4.0 release: OutboxWaker (in-process wake, #20) + WakeSocketServer/WakeSocketClient (cross-process same-machine wake, #21). Package 0.3.1 → 0.4.0, sample pins synced, CHANGELOG stamped. release:check green locally (pack validation + packed-consumer smoke). After merge: tag v0.4.0 → release workflow publishes with provenance.

Note: Release and security checks is expected red on the pre-existing website (docusaurus) advisories — unrelated to the package; the published-tarball audit is green.

- packages/messaging: 0.3.1 -> 0.4.0
- sample pins updated to 0.4.0 (00-showcase, 01-kafka)
- CHANGELOG: stamp Unreleased -> 0.4.0 (OutboxWaker + WakeSocket pair)
- release:check green (pack validation + packed-consumer smoke)
@github-actions

Copy link
Copy Markdown

📊 Coverage Coverage Report

Metric PR Base Diff
Statements ████████████████████ 1841/1841 (100%) 1841/1841 (100%) ⚪ 0%
Branches ████████████████████ 236/236 (100%) 236/236 (100%) ⚪ 0%
Functions ████████████████████ 78/78 (100%) 78/78 (100%) ⚪ 0%
Lines ████████████████████ 1841/1841 (100%) 1841/1841 (100%) ⚪ 0%

Updated for 5bab1fa | Compared against base branch

@github-actions

Copy link
Copy Markdown

⏱️ Performance Report

✅ Tests 114 passed, 0 failed, 0 skipped
🧪 Suites 29
⏱️ Total step time 223.00s 🟢 -3.00s
⚙️ Test execution 214.40s 🟢 -2.82s
🐢 Slowest test suites
# Suite Tests Duration vs Base
1 runWorkerLoop 13 22.05s 🟢 -932ms
2 OutboxClaimer (publish outcomes) 9 16.46s ⚪ ~0
3 WakeSocketServer + WakeSocketClient 9 15.40s 🟢 -115ms
4 KafkaInboxConsumer 8 13.99s 🔴 +89ms
5 SqliteOutboxStore 8 13.68s 🟢 -280ms
6 OutboxWaker 7 12.21s 🟢 -445ms
7 MysqlOutboxStore 7 11.85s 🟢 -107ms
8 InProcessOutboxTransport 5 8.81s 🔴 +78ms
9 SqliteInboxStore 5 8.61s 🟢 -154ms
10 PostgresOutboxStore 4 7.17s 🟢 -64ms
🐌 Slowest individual tests
# Suite Test Duration vs Base
1 OutboxProducer (atomic enqueue) OutboxProducer (atomic enqueue) enqueue commits the outbox row with the business write 2.62s ⚪ ~0
2 OutboxProducer (atomic enqueue) OutboxProducer (atomic enqueue) a throw rolls back BOTH the outbox row and the business write 2.01s ⚪ ~0
3 OutboxClaimer (publish outcomes) OutboxClaimer (publish outcomes) a RetryableError reschedules (honouring delayMs) 1.97s 🔴 +65ms
4 OutboxClaimer (publish outcomes) OutboxClaimer (publish outcomes) tick publishes a pending row and marks it completed 1.94s 🟢 -78ms
5 OutboxClaimer (publish outcomes) OutboxClaimer (publish outcomes) a PermanentError fails the row immediately (and warns with the reason) 1.91s ⚪ ~0
6 PostgresInboxStore PostgresInboxStore runOnce processes a fresh key (async side effect) 1.90s ⚪ ~0
7 WakeSocketServer + WakeSocketClient WakeSocketServer + WakeSocketClient a non-EADDRINUSE bind error is rethrown as-is 1.89s 🔴 +212ms
8 OutboxClaimer (publish outcomes) OutboxClaimer (publish outcomes) a generic error fails once attempts are exhausted (maxAttempts=1) 1.89s 🔴 +102ms
9 WakeSocketServer + WakeSocketClient WakeSocketServer + WakeSocketClient close() is idempotent and safe before listen and after manual unlink 1.87s 🔴 +188ms
10 InProcessOutboxTransport InProcessOutboxTransport publish dispatches the payload AND the full message to the topic handler 1.87s 🔴 +198ms
11 OutboxWaker OutboxWaker wait() resolves on the backstop timer when nothing wakes it 1.86s 🟢 -119ms
12 OutboxClaimer (publish outcomes) OutboxClaimer (publish outcomes) a non-Error rejection is stringified into lastError 1.86s 🔴 +197ms
13 runWorkerLoop runWorkerLoop runs without a signal: the loop keeps going (and never settles) 1.85s ⚪ ~0
14 PostgresOutboxStore PostgresOutboxStore claimBatch claims due rows; empty when none due; reclaims stuck 1.85s 🔴 +147ms
15 kafka pure helpers kafka pure helpers actionForOutcome always acks; actionForError maps permanent vs transient 1.84s 🔴 +176ms

Updated for 5bab1fa | Compared against base branch

@github-actions

Copy link
Copy Markdown

🧠 Cognitive Complexity Report

Metric PR Base Diff
Total complexity 66 66 ⚪ 0
Max function complexity 12 12 ⚪ 0
Functions measured 30 30 ⚪ 0
🧩 Most complex functions
Function Location Complexity Status
runWorkerLoop packages/messaging/outbox-worker.ts:34 12 🟢 OK
KafkaInboxConsumer.consume packages/messaging/adapters/kafka/kafka-inbox-consumer.ts:67 5 🟢 OK
WakeSocketServer.listen packages/messaging/wake-socket.ts:52 5 🟢 OK
OutboxClaimer.onPublishError packages/messaging/outbox-claimer.service.ts:84 4 🟢 OK
deriveDedupKey packages/messaging/wire-contract.ts:55 4 🟢 OK
MysqlInboxStore.runOnce packages/messaging/dialects/mysql/inbox-store.ts:43 3 🟢 OK
PostgresInboxStore.runOnce packages/messaging/dialects/postgres/inbox-store.ts:37 3 🟢 OK
SqliteInboxStore.runOnce packages/messaging/dialects/sqlite/inbox-store.ts:39 3 🟢 OK
KafkaInboxConsumer.readKey packages/messaging/adapters/kafka/kafka-inbox-consumer.ts:90 2 🟢 OK
InProcessOutboxTransport.publish packages/messaging/in-process/in-process-outbox-transport.ts:38 2 🟢 OK

🧭 Cognitive complexity is reported as a review signal, not a merge gate. Prefer small, intention-revealing refactors when complexity rises.


Updated for 5bab1fa | Compared against base branch

@rodrigobnogueira
rodrigobnogueira merged commit f4af54c into main Jul 19, 2026
6 of 7 checks passed
@rodrigobnogueira
rodrigobnogueira deleted the release/0.4.0 branch July 19, 2026 05:39
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.

1 participant