fix: address code review feedback (batch 2)

1. Add logger to writeCacheFile (version-cache.ts)
   - Now logs warnings when file write fails
   - Helps debugging in production environments

2. Sanitize logging in parseGroupResult (communities.ts)
   - Changed from info to debug level
   - Removed full node/groupNode dumps (sensitive data)
   - Now only logs nodeTag and groupId

3. Add input validation in parseNewsletterCreateResponse (newsletter.ts)
   - Validates response structure before destructuring
   - Adds fallback values for parseInt (prevents NaN)
   - Adds null checks for optional fields

4. Add health-status.ts module
   - getHealthStatus(): Full health check with circuit breakers, cache, memory
   - isHealthy(): Simple boolean for liveness probes
   - getSimpleHealthStatus(): Returns 'ok', 'degraded', or 'error'
   - Useful for k8s probes and monitoring dashboards
This commit is contained in:
Claude
2026-01-24 20:04:53 +00:00
parent 22eda03eb2
commit d132e1cfd8
5 changed files with 243 additions and 15 deletions
+2 -2
View File
@@ -78,11 +78,11 @@ export const makeCommunitiesSocket = (config: SocketConfig) => {
}
async function parseGroupResult(node: BinaryNode) {
logger.info({ node }, 'parseGroupResult')
logger.debug({ nodeTag: node.tag }, 'parseGroupResult')
const groupNode = getBinaryNodeChild(node, 'group')
if (groupNode) {
try {
logger.info({ groupNode }, 'groupNode')
logger.debug({ groupId: groupNode.attrs?.id }, 'parsing group metadata')
const metadata = await sock.groupMetadata(`${groupNode.attrs.id}@g.us`)
return metadata ? metadata : Optional.empty()
} catch (error) {