diff --git a/artifacts/audit/2026-02-21/file-size-report.json b/artifacts/audit/2026-02-21/file-size-report.json new file mode 100644 index 00000000..9b27b2d5 --- /dev/null +++ b/artifacts/audit/2026-02-21/file-size-report.json @@ -0,0 +1,224 @@ +{ + "grandfathered_files": 43, + "grandfathered_excess_lines": 45216, + "new_oversized_files": 0, + "new_excess_lines": 0, + "grandfathered_list": [ + { + "path": "js/adminListStore.js", + "lines": 1033, + "excess": 33 + }, + { + "path": "js/app/authSessionCoordinator.js", + "lines": 1743, + "excess": 743 + }, + { + "path": "js/app/feedCoordinator.js", + "lines": 1767, + "excess": 767 + }, + { + "path": "js/app/playbackCoordinator.js", + "lines": 1217, + "excess": 217 + }, + { + "path": "js/app.js", + "lines": 5133, + "excess": 4133 + }, + { + "path": "js/channelProfile.js", + "lines": 5579, + "excess": 4579 + }, + { + "path": "js/feedEngine/stages.js", + "lines": 1350, + "excess": 350 + }, + { + "path": "js/historyView.js", + "lines": 2547, + "excess": 1547 + }, + { + "path": "js/index.js", + "lines": 1409, + "excess": 409 + }, + { + "path": "js/nostr/client.js", + "lines": 4001, + "excess": 3001 + }, + { + "path": "js/nostr/managers/SignerManager.js", + "lines": 1107, + "excess": 107 + }, + { + "path": "js/nostr/nip46Client.js", + "lines": 2104, + "excess": 1104 + }, + { + "path": "js/nostr/nip46Connector.js", + "lines": 1094, + "excess": 94 + }, + { + "path": "js/nostr/nip71.js", + "lines": 1600, + "excess": 600 + }, + { + "path": "js/nostr/publishHelpers.js", + "lines": 1415, + "excess": 415 + }, + { + "path": "js/nostr/watchHistory.js", + "lines": 2211, + "excess": 1211 + }, + { + "path": "js/nostrEventSchemas.js", + "lines": 3192, + "excess": 2192 + }, + { + "path": "js/payments/nwcClient.js", + "lines": 1642, + "excess": 642 + }, + { + "path": "js/services/authService.js", + "lines": 1321, + "excess": 321 + }, + { + "path": "js/services/commentThreadService.js", + "lines": 1122, + "excess": 122 + }, + { + "path": "js/services/hashtagPreferencesService.js", + "lines": 1435, + "excess": 435 + }, + { + "path": "js/services/moderationService.js", + "lines": 2557, + "excess": 1557 + }, + { + "path": "js/services/nostrService.js", + "lines": 2227, + "excess": 1227 + }, + { + "path": "js/services/playbackService.js", + "lines": 1316, + "excess": 316 + }, + { + "path": "js/services/r2Service.js", + "lines": 1194, + "excess": 194 + }, + { + "path": "js/state/cache.js", + "lines": 1829, + "excess": 829 + }, + { + "path": "js/subscriptions.js", + "lines": 2410, + "excess": 1410 + }, + { + "path": "js/ui/applicationBootstrap.js", + "lines": 1169, + "excess": 169 + }, + { + "path": "js/ui/components/EditModal.js", + "lines": 1130, + "excess": 130 + }, + { + "path": "js/ui/components/RevertModal.js", + "lines": 1509, + "excess": 509 + }, + { + "path": "js/ui/components/SimilarContentCard.js", + "lines": 1303, + "excess": 303 + }, + { + "path": "js/ui/components/UploadModal.js", + "lines": 1320, + "excess": 320 + }, + { + "path": "js/ui/components/VideoCard.js", + "lines": 3130, + "excess": 2130 + }, + { + "path": "js/ui/components/VideoModal.js", + "lines": 4976, + "excess": 3976 + }, + { + "path": "js/ui/loginModalController.js", + "lines": 2574, + "excess": 1574 + }, + { + "path": "js/ui/moreMenuController.js", + "lines": 1601, + "excess": 601 + }, + { + "path": "js/ui/overlay/popoverEngine.js", + "lines": 1070, + "excess": 70 + }, + { + "path": "js/ui/profileModalController.js", + "lines": 5541, + "excess": 4541 + }, + { + "path": "js/ui/views/VideoListView.js", + "lines": 1392, + "excess": 392 + }, + { + "path": "js/ui/zapController.js", + "lines": 1206, + "excess": 206 + }, + { + "path": "js/userBlocks.js", + "lines": 2302, + "excess": 1302 + }, + { + "path": "js/watchHistoryService.js", + "lines": 1400, + "excess": 400 + }, + { + "path": "js/webtorrent.js", + "lines": 1038, + "excess": 38 + } + ], + "new_list": [] +} diff --git a/artifacts/audit/2026-02-21/innerhtml-report.json b/artifacts/audit/2026-02-21/innerhtml-report.json new file mode 100644 index 00000000..ea9c108d --- /dev/null +++ b/artifacts/audit/2026-02-21/innerhtml-report.json @@ -0,0 +1,147 @@ +{ + "total_assignments": 37, + "files_count": 28, + "top_offenders": [ + { + "path": "js/ui/dm/DMSettingsModalController.js", + "count": 3, + "is_new": false + }, + { + "path": "js/ui/loginModalController.js", + "count": 3, + "is_new": false + }, + { + "path": "js/ui/views/VideoListView.js", + "count": 3, + "is_new": false + }, + { + "path": "js/viewManager.js", + "count": 3, + "is_new": false + }, + { + "path": "js/utils/qrcode.js", + "count": 2, + "is_new": false + }, + { + "path": "js/app/feedCoordinator.js", + "count": 1, + "is_new": false + }, + { + "path": "js/app.js", + "count": 1, + "is_new": false + }, + { + "path": "js/docsView.js", + "count": 1, + "is_new": false + }, + { + "path": "js/exploreView.js", + "count": 1, + "is_new": false + }, + { + "path": "js/forYouView.js", + "count": 1, + "is_new": false + }, + { + "path": "js/index.js", + "count": 1, + "is_new": false + }, + { + "path": "js/kidsView.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/components/EditModal.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/components/EmbedVideoModal.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/components/EventDetailsModal.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/components/UploadModal.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/components/VideoModal.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/components/nip71FormManager.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/dm/AppShell.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/dm/Composer.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/dm/ConversationList.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/dm/DMRelaySettings.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/dm/MessageThread.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/dm/NotificationCenter.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/moreMenuController.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/profileModalController.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/subscriptionHistoryController.js", + "count": 1, + "is_new": false + }, + { + "path": "js/ui/videoListViewController.js", + "count": 1, + "is_new": false + } + ], + "violations": [] +} diff --git a/artifacts/audit/2026-02-21/lint-report.json b/artifacts/audit/2026-02-21/lint-report.json new file mode 100644 index 00000000..98d0b942 --- /dev/null +++ b/artifacts/audit/2026-02-21/lint-report.json @@ -0,0 +1,11 @@ +{ + "total_failures": 0, + "files_with_errors": [], + "skipped_checks": [ + { + "check": "lint:assets", + "reason": "Missing dist/asset-manifest.json.", + "details": "asset reference check (build required)." + } + ] +} diff --git a/artifacts/audit/2026-02-21/raw-check-file-size.log b/artifacts/audit/2026-02-21/raw-check-file-size.log new file mode 100644 index 00000000..b8b7dd6c --- /dev/null +++ b/artifacts/audit/2026-02-21/raw-check-file-size.log @@ -0,0 +1,47 @@ + +43 grandfathered oversized file(s): + ⚠ grandfathered: js/adminListStore.js (1033 lines) + ⚠ grandfathered: js/app/authSessionCoordinator.js (1743 lines) + ⚠ grandfathered: js/app/feedCoordinator.js (1767 lines) + ⚠ grandfathered: js/app/playbackCoordinator.js (1217 lines) + ⚠ grandfathered: js/app.js (5133 lines) + ⚠ grandfathered: js/channelProfile.js (5579 lines) + ⚠ grandfathered: js/feedEngine/stages.js (1350 lines) + ⚠ grandfathered: js/historyView.js (2547 lines) + ⚠ grandfathered: js/index.js (1409 lines) + ⚠ grandfathered: js/nostr/client.js (4001 lines) + ⚠ grandfathered: js/nostr/managers/SignerManager.js (1107 lines) + ⚠ grandfathered: js/nostr/nip46Client.js (2104 lines) + ⚠ grandfathered: js/nostr/nip46Connector.js (1094 lines) + ⚠ grandfathered: js/nostr/nip71.js (1600 lines) + ⚠ grandfathered: js/nostr/publishHelpers.js (1415 lines) + ⚠ grandfathered: js/nostr/watchHistory.js (2211 lines) + ⚠ grandfathered: js/nostrEventSchemas.js (3192 lines) + ⚠ grandfathered: js/payments/nwcClient.js (1642 lines) + ⚠ grandfathered: js/services/authService.js (1321 lines) + ⚠ grandfathered: js/services/commentThreadService.js (1122 lines) + ⚠ grandfathered: js/services/hashtagPreferencesService.js (1435 lines) + ⚠ grandfathered: js/services/moderationService.js (2557 lines) + ⚠ grandfathered: js/services/nostrService.js (2227 lines) + ⚠ grandfathered: js/services/playbackService.js (1316 lines) + ⚠ grandfathered: js/services/r2Service.js (1194 lines) + ⚠ grandfathered: js/state/cache.js (1829 lines) + ⚠ grandfathered: js/subscriptions.js (2410 lines) + ⚠ grandfathered: js/ui/applicationBootstrap.js (1169 lines) + ⚠ grandfathered: js/ui/components/EditModal.js (1130 lines) + ⚠ grandfathered: js/ui/components/RevertModal.js (1509 lines) + ⚠ grandfathered: js/ui/components/SimilarContentCard.js (1303 lines) + ⚠ grandfathered: js/ui/components/UploadModal.js (1320 lines) + ⚠ grandfathered: js/ui/components/VideoCard.js (3130 lines) + ⚠ grandfathered: js/ui/components/VideoModal.js (4976 lines) + ⚠ grandfathered: js/ui/loginModalController.js (2574 lines) + ⚠ grandfathered: js/ui/moreMenuController.js (1601 lines) + ⚠ grandfathered: js/ui/overlay/popoverEngine.js (1070 lines) + ⚠ grandfathered: js/ui/profileModalController.js (5541 lines) + ⚠ grandfathered: js/ui/views/VideoListView.js (1392 lines) + ⚠ grandfathered: js/ui/zapController.js (1206 lines) + ⚠ grandfathered: js/userBlocks.js (2302 lines) + ⚠ grandfathered: js/watchHistoryService.js (1400 lines) + ⚠ grandfathered: js/webtorrent.js (1038 lines) + +No violations. 43 grandfathered file(s) remain as decomposition targets. diff --git a/artifacts/audit/2026-02-21/raw-check-innerhtml.log b/artifacts/audit/2026-02-21/raw-check-innerhtml.log new file mode 100644 index 00000000..42ca1a27 --- /dev/null +++ b/artifacts/audit/2026-02-21/raw-check-innerhtml.log @@ -0,0 +1,30 @@ +innerHTML usage: 37 assignments across 28 files + + js/ui/dm/DMSettingsModalController.js: 3 + js/ui/loginModalController.js: 3 + js/ui/views/VideoListView.js: 3 + js/viewManager.js: 3 + js/utils/qrcode.js: 2 + js/app/feedCoordinator.js: 1 + js/app.js: 1 + js/docsView.js: 1 + js/exploreView.js: 1 + js/forYouView.js: 1 + js/index.js: 1 + js/kidsView.js: 1 + js/ui/components/EditModal.js: 1 + js/ui/components/EmbedVideoModal.js: 1 + js/ui/components/EventDetailsModal.js: 1 + js/ui/components/UploadModal.js: 1 + js/ui/components/VideoModal.js: 1 + js/ui/components/nip71FormManager.js: 1 + js/ui/dm/AppShell.js: 1 + js/ui/dm/Composer.js: 1 + js/ui/dm/ConversationList.js: 1 + js/ui/dm/DMRelaySettings.js: 1 + js/ui/dm/MessageThread.js: 1 + js/ui/dm/NotificationCenter.js: 1 + js/ui/moreMenuController.js: 1 + js/ui/profileModalController.js: 1 + js/ui/subscriptionHistoryController.js: 1 + js/ui/videoListViewController.js: 1 diff --git a/artifacts/audit/2026-02-21/raw-lint.log b/artifacts/audit/2026-02-21/raw-lint.log new file mode 100644 index 00000000..a2f45ef1 --- /dev/null +++ b/artifacts/audit/2026-02-21/raw-lint.log @@ -0,0 +1,48 @@ + +> bitvid@1.0.0 lint +> npm run lint:css && npm run lint:hex && npm run lint:inline-styles && npm run lint:tokens && npm run lint:tailwind-brackets && npm run lint:tailwind-colors && npm run lint:file-size && npm run lint:innerhtml && npm run lint:assets && npm run lint:sw-compat + + +> bitvid@1.0.0 lint:css +> stylelint css/tailwind.source.css css/tokens.css css/docs.css + + +> bitvid@1.0.0 lint:hex +> node scripts/check-hex.js + + +> bitvid@1.0.0 lint:inline-styles +> node scripts/check-inline-styles.mjs + +No inline style usage found. + +> bitvid@1.0.0 lint:tokens +> node scripts/check-design-tokens.mjs --check=tokens + + +> bitvid@1.0.0 lint:tailwind-brackets +> node scripts/check-design-tokens.mjs --check=brackets + + +> bitvid@1.0.0 lint:tailwind-colors +> node scripts/check-tailwind-colors.mjs + + +> bitvid@1.0.0 lint:file-size +> node scripts/check-file-size.mjs + + +> bitvid@1.0.0 lint:innerhtml +> node scripts/check-innerhtml.mjs + + +> bitvid@1.0.0 lint:assets +> node scripts/check-asset-references.mjs + +[lint:assets] Missing dist/asset-manifest.json. Skipping asset reference check (build required). + +> bitvid@1.0.0 lint:sw-compat +> node scripts/check-sw-compat.mjs + +[sw-compat] Skipping check: unable to determine HEAD^ or git history unavailable. +[sw-compat] No commit delta found; skipping compatibility check. diff --git a/artifacts/audit/2026-02-21/summary.md b/artifacts/audit/2026-02-21/summary.md new file mode 100644 index 00000000..6379424b --- /dev/null +++ b/artifacts/audit/2026-02-21/summary.md @@ -0,0 +1,47 @@ +# Audit Report — 2026-02-21 (unstable) + +**Summary** + +* **Date:** 2026-02-21 15:15 UTC +* **Node:** v22.22.0 / **OS:** Linux +* **Status:** ✅ Clean. Significant improvements in technical debt metrics. + +**Metrics** + +* **Grandfathered oversized files:** 43 files + * Total excess lines: **45,216** (was 49,463) + * Delta: **-4,247 lines** (Improvement) +* **New oversized files:** 0 files (total excess lines: 0) +* **Total innerHTML assignments:** **37** (was 87) + * Delta: **-50 assignments** (Improvement) + * Files with innerHTML: 28 (was 34) + + **Top offenders (innerHTML):** + 1. `js/ui/dm/DMSettingsModalController.js` — 3 + 2. `js/ui/loginModalController.js` — 3 + 3. `js/ui/views/VideoListView.js` — 3 + 4. `js/viewManager.js` — 3 + 5. `js/utils/qrcode.js` — 2 + +* **Lint failures:** 0 (files: 0) + +**Delta vs previous (2026-02-12)** + +* **Grandfathered:** 0 files, **-4,247** excess lines +* **InnerHTML:** **-50** total assignments, **-6** files +* **Lint:** 0 failures + +**High-priority items** + +* No new regressions. +* Continue targeting the remaining 43 grandfathered files for decomposition. +* Continue migrating the remaining 37 `innerHTML` assignments to safe DOM APIs. + +**Artifacts** + +* `file-size-report.json` +* `innerhtml-report.json` +* `lint-report.json` +* `raw-check-file-size.log` +* `raw-check-innerhtml.log` +* `raw-lint.log` diff --git a/docs/agents/task-logs/daily/2026-02-21_15-15-00_audit-agent_completed.md b/docs/agents/task-logs/daily/2026-02-21_15-15-00_audit-agent_completed.md new file mode 100644 index 00000000..b66697cb --- /dev/null +++ b/docs/agents/task-logs/daily/2026-02-21_15-15-00_audit-agent_completed.md @@ -0,0 +1,11 @@ +# Agent: audit-agent +# Status: Completed +# Date: 2026-02-21 15:15:00 UTC + +**Summary** +Executed weekly audit. +- Grandfathered files: 43 (-4,247 lines). +- InnerHTML: 37 assignments (-50). +- Lint: 0 failures. + +Report artifacts saved in `artifacts/audit/2026-02-21/`.