Commit Graph
5263 Commits
Author SHA1 Message Date
thePR0M3TH3AN 8c84f0a052 Add content-hashed asset manifest and HTML rewrite in dist build 2026-02-10 00:40:45 -05:00
thePR0M3TH3AN d58cff2eac Merge pull request #2297 from PR0M3TH3AN/claude/improve-playwright-testability-8mNO7
Add Playwright agent testing infrastructure with test harness and mock relay
2026-02-10 00:29:35 -05:00
Claude f43cad1902 docs: add agent testing infrastructure documentation to AGENTS.md and CLAUDE.md
Section 14 in AGENTS.md covers the full test harness API, mock relay
HTTP endpoints, Playwright fixture usage, and data-testid selector
reference. CLAUDE.md testing section updated with quick-start example.

https://claude.ai/code/session_01XnrszNmdqrAGd8g8qhAn4G
2026-02-10 05:24:54 +00:00
Claude d0a6c9622b feat: add Playwright agent testability infrastructure
Add test harness (window.__bitvidTest__), data-testid attributes, relay
override support, and Playwright fixtures so agents can programmatically
login, seed relay data, and inspect app state during E2E testing.

- js/testHarness.js: exposes loginWithNsec, getAppState, relay overrides
- data-testid attrs on login/upload/video modals, header buttons, feed
- simple-relay.mjs: HTTP seeding API (POST /seed, GET /events, /health)
- bitvidTestFixture.ts: reusable Playwright fixture with mock relay
- agent-testability.spec.ts: E2E tests validating the infrastructure

https://claude.ai/code/session_01XnrszNmdqrAGd8g8qhAn4G
2026-02-10 05:09:46 +00:00
thePR0M3TH3AN dbaa3db80b Merge pull request #2296 from PR0M3TH3AN/perf/kids-scoring-caching-11674686208806463085
⚡ Optimize feed scoring by caching normalized tag sets
2026-02-10 00:08:12 -05:00
google-labs-jules[bot]andPR0M3TH3AN 2275aa3bb1 Optimize feed scoring by caching normalized tag sets
- Introduce `videoTagCache` (WeakMap) in `js/feedEngine/kidsScoring.js`
- Cache result of `normalizeTagSetFromVideo` to avoid re-computation
- Improved benchmark performance by ~35%

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 04:59:46 +00:00
thePR0M3TH3AN 81554a7d7b Merge pull request #2295 from PR0M3TH3AN/fix-watch-history-assertion-13446067717913437309
Fix watch history test assertion and permission cache mock
2026-02-09 23:42:30 -05:00
google-labs-jules[bot]andPR0M3TH3AN 76329cf543 Fix flawed assertion in watch history integration test
- Update `tests/watch-history.test.mjs` to correctly verify that watch history snapshot items exist before checking for stripped metadata.
- Fix `TypeError` in test setup by accessing `nostrClient.signerManager.extensionPermissionCache` directly (as `nostrClient.extensionPermissionCache` is read-only) and handling it as a `Map`.
- Ensure tests align with the requirement that watch history snapshots publish only event IDs (stripping video metadata).

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 04:39:02 +00:00
thePR0M3TH3AN 144aa652ec Merge pull request #2294 from PR0M3TH3AN/refactor-playback-strategy-12158012329543805223
Refactor playback strategy logic into PlaybackStrategyService
2026-02-09 23:30:52 -05:00
thePR0M3TH3AN 3eaee7be35 Merge pull request #2293 from PR0M3TH3AN/fix-qrcode-margin-1471063368087881560
Fix margin values calculation in QRCode drawing
2026-02-09 23:30:43 -05:00
google-labs-jules[bot]andPR0M3TH3AN 0da9401235 Refactor playback selection strategy into dedicated service
Extracted the complex playback logic from `js/app/playbackCoordinator.js` into a new `js/services/playbackStrategyService.js`.
This improves maintainability by separating the orchestration logic from the application glue code.
The coordinator now delegates to the service, passing a context object for UI interactions and state synchronization.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 04:27:31 +00:00
google-labs-jules[bot]andPR0M3TH3AN e4e07ad7e8 fix(qrcode): calculate margins using real size instead of DOM offset
Replaces the dependency on `offsetWidth` and `offsetHeight` with a deterministic calculation based on module count and cell size. This prevents incorrect (huge) margins when the QR code is generated inside a hidden container where offset dimensions are 0.

Fixes: Margin values calculation in QRCode drawing logic.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 04:27:16 +00:00
thePR0M3TH3AN b3f272865e Merge pull request #2292 from PR0M3TH3AN/test-video-timestamps-9985712881039693010
test(utils): add unit tests for videoTimestamps.js
2026-02-09 23:26:36 -05:00
thePR0M3TH3AN 3f95cd7a02 Merge pull request #2291 from PR0M3TH3AN/codex/update-query-parsing-in-normalizemagnetinput
Codex-generated pull request
2026-02-09 23:25:04 -05:00
google-labs-jules[bot]andPR0M3TH3AN f45750489e test(utils): add unit tests for videoTimestamps.js
Adds comprehensive unit tests for `js/utils/videoTimestamps.js` using the native Node.js test runner.

- Covers `getVideoRootIdentifier`, `applyRootTimestampToVideosMap`, and `syncActiveVideoRootTimestamp`.
- Verifies handling of invalid inputs, edge cases (e.g., missing IDs, type mismatches), and state updates.
- Ensures robust timestamp synchronization logic.

This addresses the testing gap identified in `js/utils/videoTimestamps.js`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 04:23:23 +00:00
thePR0M3TH3AN d10d65634d Fix magnet query parsing for values containing '=' 2026-02-09 23:22:49 -05:00
thePR0M3TH3AN 63853c414e Merge pull request #2290 from PR0M3TH3AN/refactor-edit-video-1733293409720493942
🧹 Refactor editVideo to match publishVideo patterns
2026-02-09 23:22:20 -05:00
google-labs-jules[bot]andPR0M3TH3AN c3972af1e3 Refactor editVideo to use signAndPublishEvent and NIP-94/71 handlers
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 04:20:09 +00:00
thePR0M3TH3AN b2d1cd1383 Merge pull request #2289 from PR0M3TH3AN/codex/refactor-normalizemagnetinput-and-update-tests
[playback] Guard against duplicate parsed magnet params
2026-02-09 23:19:28 -05:00
thePR0M3TH3AN a59b7a7a8e Fix magnet param parsing regression coverage 2026-02-09 23:16:13 -05:00
thePR0M3TH3AN fc25801811 Merge pull request #2288 from PR0M3TH3AN/decompose-profile-modal-3920695150590991705
[decompose] Extract profile modal logic to reduce file size
2026-02-09 23:08:37 -05:00
google-labs-jules[bot]andPR0M3TH3AN 319e2f4c9e [decompose] Extract profile modal logic
Extract contracts, default settings, and helpers from `js/ui/profileModalController.js` to `js/ui/profileModalContract.js`.
This reduces the file size of `js/ui/profileModalController.js` by 884 lines.

- Moved `SERVICE_CONTRACT`, `STATE_CONTRACT` and their builders.
- Moved internal settings helpers (`createInternalDefaultNwcSettings`, etc).
- Moved badge helpers (`resolveProviderBadgeClass`).
- Updated `scripts/check-file-size.mjs` with new line count.
- Cleaned up imports in `profileModalController.js`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 04:04:55 +00:00
thePR0M3TH3AN 19dc3559de Merge pull request #2287 from PR0M3TH3AN/claude/code-health-guards-7JvX4
Add code health lint guards, consolidate relay constants, document ag…
2026-02-09 22:39:04 -05:00
Claude 804b3323c4 Add code health lint guards, consolidate relay constants, document agent prompts
Three CI-enforced lint scripts to prevent common codebase growth problems:

- lint:file-size — enforces 1000-line max for new JS files, grandfathers
  existing oversized files and prevents them from growing further
- lint:innerhtml — tracks innerHTML usage per-file with a baseline count,
  blocks new innerHTML additions (guides agents toward safe DOM APIs)
- Relay constants consolidated from duplicate definitions in client.js and
  ConnectionManager.js into shared js/nostr/relayConstants.js
- AGENTS.md Section 13: documents all three rules with examples
- docs/scheduled-agent-prompts.md: copy-paste prompts for recurring
  file decomposition, innerHTML migration, and constant dedup tasks

https://claude.ai/code/session_01LzErpH9FNw4hAPsjoYb1v9
2026-02-10 03:25:18 +00:00
thePR0M3TH3AN 451e983a7e Merge pull request #2285 from PR0M3TH3AN/ai/refactor-creator-profile-20250225-11746590299420068418
Refactor CreatorProfileController from js/app.js
2026-02-09 22:18:34 -05:00
google-labs-jules[bot]andPR0M3TH3AN 691e02adbf refactor(ai): extract CreatorProfileController from js/app.js (agent)
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 03:15:11 +00:00
thePR0M3TH3AN 090acc8730 Merge pull request #2284 from PR0M3TH3AN/refactor-publish-video-4795921066793206834
🧹 Refactor publishVideo to use context object pattern
2026-02-09 22:08:43 -05:00
google-labs-jules[bot]andPR0M3TH3AN 4e27744287 Refactor publishVideo to use context object for NIP-94/71 handling
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 03:04:42 +00:00
thePR0M3TH3AN ef84ed66de Merge pull request #2280 from PR0M3TH3AN/update-upload-docs-17963360573504553871
🌐 Align /content user docs with actual upload & contribution behavior
2026-02-09 21:55:55 -05:00
thePR0M3TH3AN b6294e8e46 Merge pull request #2282 from PR0M3TH3AN/claude/review-project-issues-7JvX4
Upgrade Node.js to v22 and improve logging consistency
2026-02-09 21:54:37 -05:00
thePR0M3TH3AN f56781669f Merge pull request #2281 from PR0M3TH3AN/refactor/edit-video-payload-builder-5553054062795604338
Refactor editVideo to use payload builder
2026-02-09 21:47:18 -05:00
Claude 1ebfefe9c8 Add multi-agent coordination guide to AGENTS.md and CLAUDE.md
- AGENTS.md Section 12: subsystem boundary table, PR discipline rules,
  in-flight work reservation section, and signaling conventions for
  parallel AI agent workflows (Claude Code, Codex, Jules)
- CLAUDE.md: document the unstable→beta→main promotion pipeline,
  add multi-agent workflow section with coordination rules for both
  agents and human maintainers, fix Node.js version reference (20→22)

https://claude.ai/code/session_01LzErpH9FNw4hAPsjoYb1v9
2026-02-10 02:44:35 +00:00
google-labs-jules[bot]andPR0M3TH3AN 79407b8c8a Refactor editVideo to use payload builder
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 02:39:33 +00:00
google-labs-jules[bot]andPR0M3TH3AN 34f2f63783 docs: align upload guide with code behavior
- Update CORS configuration to exactly match the S3 client implementation (`AllowedMethods` order).
- Clarify accepted file types by adding specific MIME types for each extension.
- Expand the IMETA section to list specific metadata fields (`m`, `dim`, `url`, `x`).
- Add specific validation errors to the troubleshooting section (`Missing Title`, `Missing Source`, `Protocol Errors`).
- Confirm file size limits and moderation policies are accurate.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 02:39:09 +00:00
Claude 696a30051b Fix lint failures, console.* convention violations, and CI Node version mismatch
- Add docs/capacitor-native-app-plan.md to hex-lint ignore list (code examples
  naturally reference hex colors in Capacitor config)
- Replace direct console.error/console.log calls with logger utility in
  historyView.js, profileCache.js, EventDetailsModal.js, ZapInterface.js,
  and notificationController.js
- Update CI workflow from Node 20 to Node 22 to match package.json engines

https://claude.ai/code/session_01LzErpH9FNw4hAPsjoYb1v9
2026-02-10 02:35:24 +00:00
thePR0M3TH3AN 59b705f2a9 Merge pull request #2279 from PR0M3TH3AN/refactor-publish-video-logic-4672917403889260377
🧹 Refactor publishVideo to use videoPublisher.js
2026-02-09 21:27:44 -05:00
google-labs-jules[bot]andPR0M3TH3AN 6f3d5b5fbb Fix CI linting failure in check-hex.js
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 02:24:33 +00:00
google-labs-jules[bot]andPR0M3TH3AN 74a44ebb36 Refactor publishVideo: Extract NIP-94/71 logic to videoPublisher.js
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 02:16:58 +00:00
thePR0M3TH3AN c4b829d5e4 Merge pull request #2278 from PR0M3TH3AN/claude/static-site-to-app-NOBis
docs: Add comprehensive Capacitor native app plan
2026-02-09 21:08:50 -05:00
Claude bc1341d989 Add Capacitor native app migration plan
Comprehensive plan for wrapping bitvid as native apps using Capacitor
for Android, iOS, and desktop (Windows/macOS/Linux via Electron).
Covers architecture, phased implementation, CI/CD workflows, testing
strategy, platform risks, and app store submission guidance.

https://claude.ai/code/session_01RBdcFkjzXaawaLY68MMhxc
2026-02-10 02:07:24 +00:00
thePR0M3TH3AN 1d0c9ec6df Merge pull request #2277 from PR0M3TH3AN/refactor-client-publish-video-8541619931622063767
Refactor publishVideo in NostrClient
2026-02-09 21:04:15 -05:00
google-labs-jules[bot]andPR0M3TH3AN f529a414f5 Refactor publishVideo in NostrClient to extract helper methods
Extracted NIP-94 and NIP-71 publishing logic into private helper methods
`_handlePublishNip94` and `_handlePublishNip71`. This improves readability
and maintainability of the `publishVideo` method in `js/nostr/client.js`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 01:59:10 +00:00
thePR0M3TH3AN 60781092d7 Merge pull request #2276 from PR0M3TH3AN/refactor-delete-all-versions-902045388622632964
Refactor deleteAllVersions in NostrClient
2026-02-09 20:45:16 -05:00
google-labs-jules[bot]andPR0M3TH3AN ac9eab9a10 Refactor deleteAllVersions in NostrClient and fix delete flow test
- Extract logic from `deleteAllVersions` into helper methods: `_hydrateHistoryForDelete`, `_getEventsToDelete`, `_softDeleteVersions`, and `_hardDeleteVersions`.
- Update `_hardDeleteVersions` to use `{ waitForAll: true }` when publishing Kind 5 events, ensuring relay failures are correctly reported.
- Fix `tests/nostr-delete-flow.test.mjs` by explicitly registering the active signer in the test environment.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 01:25:41 +00:00
thePR0M3TH3AN f0633910d6 Merge pull request #2275 from PR0M3TH3AN/fix-ci-failures-2862467126667224811
Fix CI failures and clean up NostrClient duplicates
2026-02-09 20:13:52 -05:00
google-labs-jules[bot]andPR0M3TH3AN 6a043c2946 Fix CI test failures and clean up NostrClient
- Fixed duplicate imports and initializations in `js/nostr/client.js`.
- Fixed `registerPrivateKeySigner` to populate `sessionActor`, ensuring fallback encryption works in tests (fixing `tests/nostr-send-direct-message.test.mjs`).
- Removed duplicate/unused methods (`resolveEventDTag`, `extensionPermissionCache` getter).
- Installed missing dev dependencies (`jsdom`, `fake-indexeddb`).

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 01:07:50 +00:00
thePR0M3TH3AN b50565b332 Merge pull request #2265 from PR0M3TH3AN/refactor-publishVideo-method-129817906368864748
Refactor publishVideo method in NostrClient
2026-02-09 19:51:34 -05:00
thePR0M3TH3AN e0106a48e7 Merge pull request #2274 from PR0M3TH3AN/jules-13684010680817727303-91013058
Automated PR Review: Fix test timeouts and report findings
2026-02-09 19:50:37 -05:00
thePR0M3TH3AN 1124707ab9 Merge branch 'unstable' into refactor-publishVideo-method-129817906368864748 2026-02-09 19:49:45 -05:00
google-labs-jules[bot]andPR0M3TH3AN aebb667d1c fix(ai): prevent test timeouts in subscriptions (agent) suggested
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-10 00:28:27 +00:00