collabSupport/utils
jmcqueen d112e45eb6 Detect and inline-remediate Meraki IGMP snooping in /phonestatus
DECT basestations rely on multicast for handset discovery/registration.
When Meraki switches have IGMP snooping enabled without a querier —
or per-switch overrides that deviate from a DECT-safe policy — those
frames are pruned and DECT handsets silently fail to register.

- integrations/meraki/switches.js: getSwitchMulticastSettings,
  setSwitchMulticastSettings, and pure summarizeMulticast verdict fn.
- services/phoneService.js: fires the multicast fetch as soon as the
  network id is known, overlapping DECT enrichment; attaches
  data.multicast summary to the collector output. Non-fatal on error.
- services/renderers/phoneStatusRenderer.js: emits a single warning
  line inside the DECT Basestations section only when needsFix is
  true, itemizing which parts deviate (default snoop, default flood,
  N overrides).
- commands/igmpFix.js: frozen DECT_SAFE_MULTICAST_PAYLOAD constant
  ({snoop:false, flood:true, overrides:[]}), adaptive-card builder,
  and confirm/cancel handlers.
- commands/phoneStatus.js: appends the adaptive card when needsFix
  and the trigger came from chat (skipped on HTTP path).
- index.js: IGMP_FIX_ACTIONS set + dispatch branch mirroring the
  HOST_ASSIGN pattern (one-shot pending lookup, censorActionCard,
  domain call).
- utils/pendingIgmpFixes.js: 15-min TTL pending-card store.
- tests: 11 summarizer cases (all deviation permutations + malformed
  input), 4 renderer cases (each warning-line shape + silence when
  needsFix false or no DECT), and a frozen-constant regression guard
  on the PUT payload. Full suite: 47/47 passing.
2026-07-02 14:10:33 -04:00
..
adfComment.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
adfToPlainText.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
grokClient.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
grokSummarizer.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
httpAuth.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
logger.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
markdownToAdf.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
normalize.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
pendingHostAssigns.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
pendingIgmpFixes.js Detect and inline-remediate Meraki IGMP snooping in /phonestatus 2026-07-02 14:10:33 -04:00
pendingOffboards.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
requester.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00
time.js Initial commit: CollabFinder Webex bot 2026-07-01 16:55:03 -04:00