hermes-agent/scripts/whatsapp-bridge
ethernet 3f867b2ca9 feat(lints): require an age-gated .npmrc beside every package-lock.json
npm reads the project's own .npmrc, $HOME, and the global config. It
does not walk up parent directories (npm/npm#11437 is still open), so
the root .npmrc gates the root install and nothing else. Two nested
projects were resolving with no supply-chain quarantine at all:
scripts/whatsapp-bridge and plugins/platforms/photon/sidecar. Both now
carry their own gate, and `npm ci` in each returns its lockfile
byte-identical.

A project is a directory holding both package-lock.json and
package.json -- the pair npm resolves against. A lockfile with no
manifest beside it is a vendored artifact; nix/ keeps one for a
hash-pinned fetch that never consults npm config.

The required floor is read from the root .npmrc instead of hardcoded,
so the standard is raised in one place. A nested project may be
stricter, never weaker.
2026-08-14 09:04:06 -04:00
..
.npmrc feat(lints): require an age-gated .npmrc beside every package-lock.json 2026-08-14 09:04:06 -04:00
allowlist.js
…
allowlist.test.mjs
…
bridge.js fix(whatsapp): guard bridge reconnect against hangs and unhandled rejections 2026-08-03 10:03:57 +05:30
bridge.native.test.mjs
…
bridge.reconnect.test.mjs fix(whatsapp): guard bridge reconnect against hangs and unhandled rejections 2026-08-03 10:03:57 +05:30
bridge.sendqueue.test.mjs
…
bridge_helpers.js fix(whatsapp): guard bridge reconnect against hangs and unhandled rejections 2026-08-03 10:03:57 +05:30
outbound_ids.js
…
outbound_ids.test.mjs
…
owner_message_gate.js
…
owner_message_gate.test.mjs
…
package-lock.json lints: migrate tests + infographic workflow, add dep-specifier lints 2026-08-14 08:33:55 -04:00
package.json feat(lints): hold package.json overrides to the exact-version rule 2026-08-14 08:59:56 -04:00