chore(audit): daily dependency scan and triage

- Generated artifacts/npm-audit.json, artifacts/npm-outdated.json, artifacts/deps-report.md
- Attempted esbuild upgrade (0.27.2 -> 0.27.3) but reverted due to E2E environment failure (see issues/upgrade-esbuild.md)
- Flagged nostr-tools for manual review (see issues/upgrade-nostr-tools.md)
- Updated DECISIONS.md and TODO.md

Co-authored-by: PR0M3TH3AN <[email protected]>
This commit is contained in:
google-labs-jules[bot]andPR0M3TH3AN committed 2026-02-12 14:49:04 +00:00
1 parent 68b583fb9b
commit 8a1d843c24
8 files changed
+111 -68

No files matched your search

+3 -14
View File
@@ -1,14 +1,3 @@
# Context: bitvid-perf-agent
## Mission
Daily, measurable improvement of app responsiveness and documentation accuracy.
## Scope
- **Repo:** `PR0M3TH3AN/bitvid` (unstable)
- **Focus:**
- P0: Fix unbounded concurrency in background tasks.
- Docs: Ensure `/content` upload guides match runtime behavior.
## Current Task (Run 1)
- Fix unbounded concurrency in `js/nostr/commentEvents.js`.
- Fix outdated CORS port in `content/docs/guides/upload-content.md`.
Node Version: v22.22.0
NPM Version: 11.7.0
Date: Thu Feb 12 14:32:45 UTC 2026
+22 -6
View File
@@ -1,9 +1,25 @@
# Decisions Log
## Performance
- **2026-02-xx:** Use `pMap` with `RELAY_BACKGROUND_CONCURRENCY` (3) for comment publishing and fetching.
- **Rationale:** `Promise.all` floods the network when users have many relays. Bounding concurrency prevents resource exhaustion.
## 2026-02-17: Dependency Audit & Upgrade
## Documentation
- **2026-02-xx:** Standardize local dev port to 3000 in docs.
- **Rationale:** Matches `npm start` default and `README.md`.
### Context
Ran a daily dependency audit. Found `esbuild` (0.27.2 -> 0.27.3) as a safe candidate and `nostr-tools` (2.19.4 -> 2.23.0) as a risky candidate.
### Decision: Revert `esbuild` Upgrade
- **Proposal:** Upgrade `esbuild` to 0.27.3.
- **Outcome:** FAILED (Reverted).
- **Reason:** While `npm run build` and `npm run test:unit` passed, `npm run test:e2e` failed immediately with "Executable doesn't exist" (missing Playwright browsers).
- **Rationale:** Strict adherence to "If tests fail, do not open the PR".
- **Action:** Reverted changes to `package.json` / `package-lock.json`. Created `issues/upgrade-esbuild.md` to document the environment blocker.
### Decision: Do Not Auto-Upgrade `nostr-tools`
- **Proposal:** Upgrade `nostr-tools`.
- **Outcome:** BLOCKED (By Policy).
- **Reason:** `AGENTS.md` explicitly forbids auto-upgrading protocol/crypto libraries.
- **Action:** Created `issues/upgrade-nostr-tools.md` with a test plan for manual review.
### Decision: Do Not Auto-Upgrade `tailwindcss` (v4)
- **Proposal:** Upgrade `tailwindcss`.
- **Outcome:** BLOCKED (Major Version).
- **Reason:** Major version bump (v3 -> v4) carries significant risk of breaking changes.
- **Action:** Existing issue `issues/upgrade-tailwindcss.md` is sufficient.
+18 -4
View File
@@ -1,5 +1,19 @@
# Test Log
## Run 1 (Performance & Docs)
- **Baseline:** Found unbounded `Promise.all` in `js/nostr/commentEvents.js`.
- **Verification:** (Pending)
added 424 packages, and audited 425 packages in 13s
108 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 11.7.0 -> 11.10.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.10.0
npm notice To update run: npm install -g npm@11.10.0
npm notice
npm ci successful
Install success
Build success
Unit tests success
DM Integration success
E2E failed
Revert success
+10 -4
View File
@@ -1,5 +1,11 @@
# TODO
# TODO: Dependency Management
- [ ] Fix unbounded concurrency in `js/nostr/commentEvents.js` using `pMap`.
- [ ] Update CORS port in `content/docs/guides/upload-content.md` to 3000.
- [ ] Run `npm run lint` and `npm run test:unit` to verify.
## Priority: High (Blockers)
- [ ] Fix E2E test environment: `npx playwright install` must be run in the CI/Agent environment before running `npm run test:e2e` for upgrades. This blocked the `esbuild` upgrade.
## Priority: Medium (Security/Compliance)
- [ ] Review `nostr-tools` upgrade (v2.19.4 -> v2.23.0). See `issues/upgrade-nostr-tools.md`.
- [ ] Review `tailwindcss` (v4). See `issues/upgrade-tailwindcss.md`.
## Priority: Low (Maintenance)
- [ ] Batch upgrade dev dependencies (`stylelint`, `postcss-import`).
+3 -3
View File
@@ -11,12 +11,12 @@
"total": 0
},
"dependencies": {
"prod": 110,
"dev": 255,
"prod": 111,
"dev": 337,
"optional": 53,
"peer": 0,
"peerOptional": 0,
"total": 391
"total": 474
}
}
}
+7 -14
View File
@@ -1,11 +1,4 @@
{
"@playwright/test": {
"current": "1.58.1",
"wanted": "1.58.2",
"latest": "1.58.2",
"dependent": "app",
"location": "/app/node_modules/@playwright/test"
},
"esbuild": {
"current": "0.27.2",
"wanted": "0.27.3",
@@ -15,7 +8,7 @@
},
"nostr-tools": {
"current": "2.19.4",
"wanted": "2.19.4",
"wanted": "2.23.0",
"latest": "2.23.0",
"dependent": "app",
"location": "/app/node_modules/nostr-tools"
@@ -27,12 +20,12 @@
"dependent": "app",
"location": "/app/node_modules/pixelmatch"
},
"playwright": {
"current": "1.58.1",
"wanted": "1.58.2",
"latest": "1.58.2",
"postcss-import": {
"current": "15.1.0",
"wanted": "15.1.0",
"latest": "16.1.1",
"dependent": "app",
"location": "/app/node_modules/playwright"
"location": "/app/node_modules/postcss-import"
},
"prettier-plugin-tailwindcss": {
"current": "0.6.14",
@@ -44,7 +37,7 @@
"stylelint": {
"current": "16.12.0",
"wanted": "16.26.1",
"latest": "17.1.1",
"latest": "17.2.0",
"dependent": "app",
"location": "/app/node_modules/stylelint"
},
+18 -12
View File
@@ -1,17 +1,23 @@
# Upgrade esbuild
# Upgrade Attempt: esbuild (v0.27.2 -> v0.27.3)
## Status
- **Current:** `0.27.2`
- **Latest:** `0.27.3`
**Status:** FAILED (Reverted)
**Date:** 2026-02-17
## Details
`esbuild` 0.x versions may have breaking changes between minor versions, but this is a patch.
Used for build scripts (`scripts/build-dist.mjs`, `scripts/build-beacon.mjs`).
Attempted to upgrade `esbuild` from `0.27.2` to `0.27.3`.
## Plan
1. Update `esbuild`.
2. Run build scripts: `npm run build`, `npm run build:beacon`.
3. Verify output bundles work correctly.
## Test Results
- `npm run build`: **PASSED**
- `npm run test:unit`: **PASSED**
- `npm run test:dm:integration`: **PASSED**
- `npm run test:e2e`: **FAILED** (Environment Issue)
## Guardrails
- Build tool upgrade.
## Failure Analysis
The E2E tests failed because the Playwright browser binaries were not found in the CI environment:
```
Error: browserType.launch: Executable doesn't exist at /home/jules/.cache/ms-playwright/chromium_headless_shell-1208/chrome-headless-shell-linux64/chrome-headless-shell
```
## Next Steps
- Ensure the CI/Agent environment has `npx playwright install` run before attempting upgrades that require E2E verification.
- Once browsers are available, retry the upgrade.
+30 -11
View File
@@ -1,15 +1,34 @@
# Upgrade nostr-tools
# Upgrade Proposal: `nostr-tools` (v2.19.4 -> v2.23.0)
**Package:** `nostr-tools`
**Current Version:** `2.19.4`
**Wanted Version:** `2.23.0`
**Latest Version:** `2.23.0`
**Status:** `REVIEW-REQUIRED` (Protocol Library)
**Priority:** High (Security/Protocol Compliance)
## Details
This package was identified as a critical dependency (cryptographic/protocol library). Automatic upgrade was skipped.
## Context
`nostr-tools` is the core protocol library for bitvid. `AGENTS.md` explicitly forbids automatic upgrades for crypto/protocol libraries.
## Version Changes
- **Current:** `2.19.4`
- **Target:** `2.23.0`
- **Changelog:** [Link to nostr-tools releases](https://github.com/nbd-wtf/nostr-tools/releases)
- Contains updates to NIP-44 encryption/decryption? (Check changelog)
- Contains updates to NIP-01 signatures?
## Risk Assessment
- **High Risk:** Changes to signing or encryption could break user logins or private messaging (NIP-04/NIP-44).
- **Compliance:** Must ensure `nip04_44_compliance.test.mjs` passes.
## Test Plan
1. **Unit Tests:** Run `npm run test:unit`.
2. **Compliance Tests:** Explicitly run `node scripts/run-targeted-tests.mjs tests/compliance/nip04_44_compliance.test.mjs`.
3. **E2E Tests:** Verify login flow and DM flow.
4. **Manual QA:**
- Log in with NIP-07 extension.
- Send/Receive DM.
- Publish video event.
## Action Items
- [ ] Review changelog for `nostr-tools` between 2.19.4 and 2.23.0.
- [ ] Verify no breaking changes in NIP implementations.
- [ ] Test cryptographic functions manually or via specific test suite.
- [ ] Apply upgrade manually.
- [ ] Create branch `chore/upgrade-nostr-tools`
- [ ] Bump version.
- [ ] Run full test suite.
- [ ] Review changelog for breaking changes in `SimplePool` or `finalizeEvent`.
- [ ] Request maintainer review.