mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
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:
1 parent
68b583fb9b
commit
8a1d843c24
8 files changed
+111
-68
No files matched your search
+3
-14
@@ -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
@@ -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
@@ -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
|
||||
@@ -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`).
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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.
|
||||
@@ -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.
|
||||
Reference in new issue
Block a user