Commit Graph

2202 Commits

Author SHA1 Message Date
Renato Alcara f688f00695 perf: fix slow message delivery and post-restart connection latency
perf: fix slow message delivery and post-restart connection latency
2026-02-25 20:15:14 -03:00
Renato Alcara c39bda3720 chore: update WhatsApp Web version to v2.3000.1034014848 (#221)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 06:16:14 -03:00
Renato Alcara f4daa9197d fix: clear stale routingInfo on restart to prevent slow/unstable connections
fix: clear stale routingInfo on restart to prevent slow/unstable connections
2026-02-25 01:49:25 -03:00
Renato Alcara be34c5136d fix: clear stale routingInfo on restart to prevent slow/unstable connections
fix: clear stale routingInfo on restart to prevent slow/unstable connections
2026-02-25 01:03:05 -03:00
github-actions[bot] 75efe2bfbc chore: update proto/version to v2.3000.1034008163 (#218)
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com>
2026-02-25 00:47:42 -03:00
Renato Alcara 12ea77f99f perf(inbound-latency): fix 35-60 s message delivery delay by tightening buffer timeouts
perf(inbound-latency): fix 35-60 s message delivery delay by tightening buffer timeouts
2026-02-25 00:16:22 -03:00
Renato Alcara f906eca124 perf: eliminates a delay in message delivery between phone→app + cache device-list
perf: eliminates a delay in message delivery between phone→app + cache device-list
2026-02-24 07:40:18 -03:00
Renato Alcara d34d3d8791 chore: update WhatsApp Web version to v2.3000.1033950307 (#215)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 06:16:12 -03:00
github-actions[bot] b153b1b649 chore: update proto/version to v2.3000.1033927531 (#214)
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com>
2026-02-24 00:47:46 -03:00
Renato Alcara a9753fde6b fix(app-state) - missing key Blocked state, history sync status & 120s timeout
fix(app-state) - missing key Blocked state, history sync status & 120s timeout
2026-02-24 00:05:29 -03:00
Renato Alcara a2382e6fb4 test: add test suites + fix getErrorCodeFromStreamError
test: add test suites + fix getErrorCodeFromStreamError
2026-02-23 23:12:44 -03:00
Renato Alcara c63c7a815f fix: apply 3 surgical gaps from upstream
fix: apply 3 surgical gaps from upstream
2026-02-23 12:13:41 -03:00
Renato Alcara 1112110556 chore: update WhatsApp Web version to v2.3000.1033870439 (#210)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 06:16:40 -03:00
github-actions[bot] 4474304b84 chore: update proto/version to v2.3000.1033866714 (#209)
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com>
2026-02-23 00:49:36 -03:00
Renato Alcara 54b399dc2e feat(app-state): App State Sync Resilience (#208)
feat(app-state): App State Sync Resilience (#208)
2026-02-22 21:54:37 -03:00
Renato Alcara 43f6f131cc chore: update WhatsApp Web version to v2.3000.1033852585 (#207)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-22 06:06:16 -03:00
github-actions[bot] aec431bd30 chore: update proto/version to v2.3000.1033849325 (#206)
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com>
2026-02-22 00:46:55 -03:00
Renato Alcara afd5ba027b chore: update WhatsApp Web version to v2.3000.1033835506 (#205)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-21 06:06:18 -03:00
Renato Alcara 89fd500f86 refactor: clean interactive message logs
refactor: clean interactive message logs
2026-02-21 02:06:36 -03:00
github-actions[bot] 16a0d5b163 chore: update proto/version to v2.3000.1033815006 (#203)
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com>
2026-02-21 00:43:23 -03:00
Renato Alcara efae3b751d fix(carousel): fix carousel rendering on Android, iOS and Web
fix(carousel): fix carousel rendering on Android, iOS and Web
2026-02-21 00:36:13 -03:00
Renato Alcara 251cfa25ec fix(tctoken): fix 3 bugs found during code review
fix(tctoken): fix 3 bugs found during code review
2026-02-20 22:27:16 -03:00
Renato Alcara eaade80796 chore: update WhatsApp Web version to v2.3000.1033770598 (#200)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-20 06:12:19 -03:00
Renato Alcara cbe5205dfd fix: validate LTHashState version to prevent app state crashes
fix: validate LTHashState version to prevent app state crashes
2026-02-20 01:19:04 -03:00
github-actions[bot] cd8c7d5a16 chore: update proto/version to v2.3000.1033732349 (#198)
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com>
2026-02-20 00:46:26 -03:00
Renato Alcara 33cce2a6c2 fix: tctoken 463/479 — peer guard + retry logic
* feat: apply PR #2339 missing commits (ced3305 + fe5a37c)

Apply two Feb-19 commits from WhiskeySockets/Baileys PR #2339 that
were missing from the initial integration:

ced3305 — Prevent tctoken attachment to peer (AppStateSync) messages
- Add isPeerMessage guard: additionalAttributes?.['category'] === 'peer'
- Exclude peer messages from is1on1Send to fix error 479 (SmaxInvalid)
  which was causing hundreds of rejections on multi-device sync JIDs

fe5a37c — Error 463 retry logic + blocking→non-blocking refactor
- Replace blocking await getPrivacyTokens() with fire-and-forget .then/.catch
  so the send path is never delayed by a token fetch
- Add tcTokenRetriedMsgIds Set in messages-recv.ts to track retried msgIds
- On error 463 (MissingTcToken): wait 1.5s then relay the message once,
  allowing the server's tctoken notification to arrive before resend
- Add retry_463_ok log event to baileys-logger for observability
2026-02-20 00:39:21 -03:00
Renato Alcara 37e9a1ef39 chore: update WhatsApp Web version to v2.3000.1033685351 (#196)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-19 09:40:33 -03:00
github-actions[bot] fe66257a0f chore: update proto/version to v2.3000.1033679241 (#195)
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com>
2026-02-19 00:48:20 -03:00
Renato Alcara 654dfb6727 chore: update WhatsApp Web version to v2.3000.1033647198 (#194)
* chore: update WhatsApp Web version to v2.3000.1033647198

* fix: remove duplicate JSON and trailing blank lines from baileys-version.json

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-18 20:07:41 -03:00
github-actions[bot] 05807993ee chore: update proto/version to v2.3000.1033647198 (#193)
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com>
2026-02-18 19:32:11 -03:00
github-actions[bot] 6b0c21b6da chore: update WhatsApp Web version (#192)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-18 09:15:00 +00:00
github-actions[bot] b05cff1732 chore: updated proto/version to v2.3000.1033598431 (#191)
Co-authored-by: rsalcara <rsalcara@users.noreply.github.com>
2026-02-18 03:49:04 +00:00
github-actions[bot] 575d78d4e6 chore: update WhatsApp Web version (#190)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-17 13:48:07 +00:00
github-actions[bot] ecc40b79fd Merge pull request #188
Merged PR #188 using squash merge.
2026-02-17 09:22:05 -03:00
github-actions[bot] bdd70c598b chore: update WhatsApp Web version 2026-02-16 06:22:42 +00:00
Renato Alcara 6dd096ac8c Whatsapp v2.3000.1033509996 proto/version change
Whatsapp v2.3000.1033509996 proto/version change
2026-02-16 00:20:08 -03:00
Renato Alcara 8f4e10289b fix(chats): normalize JID, use hosted-aware checks, add statusCode to errors
Address review feedback on PR #186:
- Normalize JID with jidNormalizedUser() before validation to accept @c.us format
- Use isAnyPnUser/isAnyLidUser instead of isPnUser/isLidUser to support hosted JIDs
- Add { statusCode: 400 } to Boom errors for proper client error classification

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 23:22:34 -03:00
Renato Alcara 9f1d0c4a43 fix(chats): add LID/PN dual identifier validation for updateBlockStatus
WhatsApp now requires both LID and PN JID when blocking a user.
Resolves identifiers via signalRepository.lidMapping and sends both
for block operations. Unblock only sends LID as required by protocol.

Based on WhiskeySockets/Baileys#2265

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 23:12:14 -03:00
rsalcara 5873b8cde6 chore: updated proto/version to v2.3000.1033509996 2026-02-16 01:45:30 +00:00
Renato Alcara 3d5b79f5bf fix(ci): replace auto-merge action with direct squash merge
fix(ci): replace auto-merge action with direct squash merge
2026-02-15 22:28:08 -03:00
Renato Alcara 868cbde63e fix(lint): downgrade no-floating-promises to warning
The no-floating-promises rule was already failing on master (pre-existing).
Downgrade from "error" to "warn" so it no longer blocks CI.
Also reverts unnecessary void additions to process.nextTick calls.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 22:24:17 -03:00
Renato Alcara 682c802113 fix: mark process.nextTick async callbacks with void operator
Fixes @typescript-eslint/no-floating-promises error by explicitly
marking fire-and-forget process.nextTick async callbacks with void.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 22:07:40 -03:00
Renato Alcara b3ecba131d fix(ci): add auto-fix step to lint workflow and fix circular rule conflict
- Add `yarn lint:fix` step before lint check to auto-fix prettier/import-sort
  formatting issues (runs with continue-on-error to not block)
- Fix circular conflict between prettier and space-before-function-paren
  rule in cache-utils.ts via eslint-disable comment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 21:59:51 -03:00
Renato Alcara 39de1f0582 fix: address PR review comments for tctoken lifecycle
- Wire onNewJidStored callback in messages-send.ts so proactively
  fetched tokens are registered in the pruning index
- Batch keystore reads in pruneExpiredTcTokens (1 query instead of N)
- Persist lastTcTokenPruneTs in keystore so 24h throttle survives restarts
- Replace parseInt() with Number() for safer timestamp parsing
- Normalize JIDs via jidNormalizedUser() before LID lookup in
  resolveTcTokenJid to prevent device-suffix mismatches

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 21:35:45 -03:00
Renato Alcara 08793904e2 feat: integrate tctoken lifecycle with expiration, pruning and re-issuance (PR #2339)
Surgical integration of WhiskeySockets/Baileys PR #2339 preserving all
InfiniteAPI customizations (biz nodes, DSM skip, carousel, Prometheus,
circuit breaker, LID mapping, CTWA recovery, identity debounce).

Changes:
- tc-token-utils.ts: rolling bucket expiration (28d/4 buckets), LID
  resolution, monotonicity guard, storeTcTokensFromIqResult parser
- messages-send.ts: proactive fetch if missing/expired, fire-and-forget
  re-issuance on bucket boundary, getPrivacyTokens timestamp param
- messages-recv.ts: persistent JID index for cross-session pruning,
  pruneExpiredTcTokens on connect (max 1x/24h), session_refreshed
  re-issuance, error 463/479 handling in handleBadAck
- chats.ts: self-detection in profilePictureUrl, LID resolver in
  presenceSubscribe
- socket.ts: granular stream error logging (device_removed, xml, ack)
- Auth.ts: senderTimestamp field on tctoken type
- Types/index.ts: sessionInvalidated = 516 disconnect reason
- decode-wa-message.ts: SERVER_ERROR_CODES constant (463, 479, 421, 475)
- generics.ts: enhanced getErrorCodeFromStreamError with device_removed
- baileys-logger.ts: logTcToken function following [BAILEYS] prefix pattern

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 20:53:27 -03:00
Renato Alcara 8e6db8f477 chore: move docs to docs/ folder and remove vendor references from comments
- Move INTERACTIVE_MESSAGES.md to docs/ folder
- Remove all third-party name references from code comments
- Temporarily remove docs from .gitignore to allow tracking

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 09:48:03 -03:00
github-actions[bot] f816751b64 chore: update WhatsApp Web version 2026-02-15 06:16:56 +00:00
Renato Alcara e6093a7f72 Whatsapp v2.3000.1033496302 proto/version change
Whatsapp v2.3000.1033496302 proto/version change
2026-02-15 00:50:31 -03:00
Renato Alcara 566e7a9a29 fix: separate carousel header title from body text to avoid duplicate display
Previously the same `text` field was used for both header.title and body.text,
causing duplicate content to appear. Now `title` controls the header (defaults
to a space like Pastorini) and `text` controls the body independently.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 22:55:32 -03:00
rsalcara 8efed984dc chore: updated proto/version to v2.3000.1033496302 2026-02-15 01:45:36 +00:00