Commit Graph
1067 Commits
Author SHA1 Message Date
google-labs-jules[bot]andPR0M3TH3AN d0cab85b25 test: increase playwright e2e timeouts to reduce flakiness
Double default timeouts and extend the explicit waitForFeedItems calls across the e2e test suite to accommodate slower CI runners. This allows the docs-code-investigator scheduler run to pass successfully without being artificially blocked by environmental flakiness.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-03-02 20:43:39 +00:00
google-labs-jules[bot]andPR0M3TH3AN bff5e24483 test: increase waitForFeedItems timeout across e2e tests
Increases the timeout for `waitForFeedItems` from 15s to 30s in `tests/e2e/relay-resilience.spec.ts`, `tests/e2e/video-edit-delete-execution.spec.ts`, `tests/e2e/video-engagement.spec.ts`, `tests/e2e/video-upload-flow.spec.ts`, and `tests/e2e/view-navigation.spec.ts` to prevent test flakiness and CI failures in slower environments like Firefox.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-03-01 21:48:42 +00:00
google-labs-jules[bot]andPR0M3TH3AN c58dde0fb6 test: increase waitForFeedItems timeout to prevent flakiness
Increases the timeout for `waitForFeedItems` from 15s to 30s across multiple E2E test files to prevent test flakiness in slower environments (e.g. Firefox in GitHub Actions).

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-03-01 21:20:31 +00:00
google-labs-jules[bot]andPR0M3TH3AN f7712f51a9 fix: initialize video modal share popover with correct arguments
- Update `js/ui/components/VideoModal.js` to correctly initialize the modal share popover using the `createPopover(trigger, renderFn, options)` signature instead of a single config object.
- Fix the flaky e2e test `tests/e2e/search-and-filter.spec.ts` by increasing the test timeout from 15s to 30s to allow more time for feed items to be retrieved from the network.
- Update `tests/e2e/video-modal-share-bug.spec.ts` to attach an `#uiOverlay` wrapper element for the popover so the DOM doesn't crash on tests.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-03-01 20:49:41 +00:00
google-labs-jules[bot]andPR0M3TH3AN f255bdd9bc chore(torch): execute daily agent run for ci-health-agent
- Resolve scheduler context and preflight exclusions
- Select `ci-health-agent` from roster using round-robin logic
- Acquire distributed lock for execution window
- Perform necessary repository check fixes (linting and tests)
- Publish successful completion lock event
- Write final `task-logs` event record
- Output execution summary

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-28 19:48:57 +00:00
thePR0M3TH3AN 444b39da6c Merge branch 'unstable' into agents/daily/test-audit-agent-nostr-tools-v2-11614128753134538673 2026-02-26 23:31:26 -05:00
google-labs-jules[bot]andPR0M3TH3AN 96f630a738 Fix nostr-tools v2 compatibility and test quality issues
- js/nostr/nip46Client.js: Convert hex keys to Uint8Array before calling nip44.v2 functions. Remove .bind() from getConversationKey getters to fix context issues.
- js/ui/components/RevertModal.js: Remove duplicate imports and variable declarations causing SyntaxErrors.
- tests/compliance/nip04_44_compliance.test.mjs: Update test setup to mock nostr-tools.utils and pass byte keys.
- tests/nostr/dm-direct-message-flow.test.mjs: Update setupDmScenario to pass byte keys to getPublicKey and finalizeEvent.
- tests/nostr/nip46Client.test.js: Update tests to handle byte vs hex keys correctly for nostr-tools v2.
- tests/minimal-webtorrent.test.mjs: Add explicit assertions.
- tests/ui/components/debug_hashtag_strip_helper.test.mjs: Add explicit assertions.
- artifacts/test-audit-report.md: Add audit report.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 03:43:14 +00:00
thePR0M3TH3AN 34b0b03ad0 Merge branch 'unstable' into agents/daily/torch-garbage-collection-agent-2026-02-26-15639715828522871125 2026-02-26 21:42:21 -05:00
thePR0M3TH3AN 8d6e32be27 Merge branch 'unstable' into agents/daily/style-agent-1740615175-12694853261144843326 2026-02-26 21:40:23 -05:00
thePR0M3TH3AN 9448624753 Merge branch 'unstable' into agents/daily/todo-triage-agent-13829754158937187173 2026-02-26 21:38:12 -05:00
google-labs-jules[bot]andPR0M3TH3AN 5c2ba17459 chore: garbage collection and maintenance fixes
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 02:32:53 +00:00
google-labs-jules[bot]andPR0M3TH3AN a649c341e0 I have updated the nostr-tools usage and resolved the UI bugs. Here are the details of the changes:
- Updated `js/nostr/adapters/nsecAdapter.js` to ensure private keys are `Uint8Array` bytes before passing to `getPublicKey`, fixing compatibility with `nostr-tools` v2.
- Updated `tests/nostr/nip46Client.test.js` to use byte arrays for keys in crypto operations.
- Implemented missing `setupModalMorePopover`, `setupModalSharePopover`, and `refreshModalMoreMenuPanel` in `VideoModal.js`.
- Fixed a bug in `VideoModal.js` where `setCommentComposerState` was overriding `CommentsController` send button logic; it now delegates to the controller if available.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 02:14:29 +00:00
google-labs-jules[bot]andPR0M3TH3AN 089556acd1 chore(todo-triage): daily scan and minor fixes
- Ran `todo-triage-agent` scan (0 actionable items found).
- Fixed inline style lint error in `tests/ui/components/DeleteModal.test.mjs`.
- Fixed duplicate import syntax error in `js/ui/components/RevertModal.js`.
- Initialized `modalNavScrollHandler` in `VideoModal` constructor to improve test stability.
- Updated scheduler memory.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 02:14:06 +00:00
google-labs-jules[bot]andPR0M3TH3AN bf076578e9 fix(ci): resolve nostr-tools v2 compatibility and VideoModal regressions
- Fix `nostr-tools` v2 compatibility:
  - Update `js/nostr/adapters/nsecAdapter.js` to convert hex private keys to `Uint8Array` before passing to `getPublicKey`.
  - Update `js/nostr/nip46Client.js` to ensure keys are bytes for `getPublicKey`.
  - Update `tests/nostr/nip46Client.test.js` and `tests/nostr-private-key-signer.test.mjs` to use `Uint8Array` for keys.
- Fix `VideoModal` regressions:
  - Add missing delegation methods (`setCommentsVisibility`, `clearComments`, `resetCommentComposer`, `setCommentStatus`, `setCommentComposerState`, `appendComment`, `renderComments`, `setCommentSectionCallbacks`, `hideCommentsDisabledMessage`, `showCommentsDisabledMessage`, `updateCommentCharCount`, `updateCommentSubmitState`) to `js/ui/components/VideoModal.js`.
  - Expose getters for `commentsList`, `commentsComposer`, etc., in `VideoModal.js` to support tests.
  - Implement `setCallbacks` in `js/ui/components/video-modal/commentsController.js` and ensure robust initialization when DOM elements are missing.
  - Fix `open()` and `updateSourceAvailability()` in `VideoModal.js` to correctly re-enable Share, Embed, and Copy Magnet buttons.
- Fix `DeleteModal` tests to comply with linting rules (avoid direct `.style` assignment).

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 02:08:58 +00:00
google-labs-jules[bot]andPR0M3TH3AN 7427961a69 fix(ci): resolve various test failures and nostr-tools v2 compatibility
- Fix duplicate imports/declarations in `js/ui/components/RevertModal.js`
- Update `js/nostr/nip46Client.js` to pass `Uint8Array` keys to `getConversationKey` for compatibility with `nostr-tools` v2
- Fix NIP-46 compliance tests by using correct key types and improved mocks
- Implement missing methods in `js/ui/components/VideoModal.js` (`handleCopyRequest`, `setCommentsVisibility`, etc.) to fix runtime crashes in tests
- Ensure `VideoModal` stores comment composer state locally to support external controller updates in tests
- Update DM integration tests to use `Uint8Array` keys for `nostr-tools` helpers
- Fix linting issue in `tests/ui/components/DeleteModal.test.mjs` using `Object.defineProperty`

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 01:52:00 +00:00
google-labs-jules[bot]andPR0M3TH3AN 5aac1b2d21 fix(ci): address multiple test and build failures
- Fixed duplicate import and variable declaration in `js/ui/components/RevertModal.js` which caused syntax errors.
- Fixed missing method implementations in `js/ui/components/VideoModal.js` which caused `bind` errors during initialization.
- Fixed NIP-46 compliance tests by updating mocks to match `nostr-tools` v2 structure.
- Updated `js/nostr/nip46Client.js` to ensure keys are passed as `Uint8Array` to `nostr-tools` helpers, maintaining compatibility with legacy hex strings.
- Updated `tests/nostr/dm-direct-message-flow.test.mjs` to use `Uint8Array` keys, fixing "expected Uint8Array" errors.
- Maintained the previous lint fix for `tests/ui/components/DeleteModal.test.mjs`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 01:15:53 +00:00
google-labs-jules[bot]andPR0M3TH3AN 51128c1d33 fix(ci): address linting errors and nostr-tools v2 compatibility
- Fix `SyntaxError` in `js/ui/components/RevertModal.js` by removing duplicate variable declaration.
- Update `js/nostr/nip46Client.js` to support hex string private keys with `nostr-tools` v2 `nip44` operations by converting to `Uint8Array`.
- Update `tests/nostr/dm-direct-message-flow.test.mjs` and `tests/compliance/nip04_44_compliance.test.mjs` to pass `Uint8Array` keys where required.
- Fix linting error in `tests/ui/components/DeleteModal.test.mjs` by avoiding direct `.style` assignment in mock.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 00:32:11 +00:00
google-labs-jules[bot]andPR0M3TH3AN fb9e6ef769 chore(ai): execute style-agent maintenance and fix lint mock
- Ran `npm run format` (no changes)
- Ran `npx stylelint --fix` (no changes)
- Fixed `lint:inline-styles` failure in `tests/ui/components/DeleteModal.test.mjs` by using `Object.defineProperty` for the `style` mock property instead of direct assignment.
- Verified all lint checks pass.
- Task log: `torch/task-logs/daily/2026-02-27T00-06-51Z__style-agent__completed.md`

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-27 00:10:11 +00:00
google-labs-jules[bot]andPR0M3TH3AN 31590ff0d2 chore(test): fix inline-style lint error in DeleteModal test mock
- Replace direct `this.style = {}` assignment with `Object.defineProperty` in `MockElement` class.
- Resolves `npm run lint:inline-styles` failure flagged during daily maintenance.
- No functional changes to test logic.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 22:09:08 +00:00
thePR0M3TH3AN 98e1181783 Merge branch 'unstable' into security-fix-qrcode-innerhtml-16143867429725848701 2026-02-26 14:42:34 -05:00
thePR0M3TH3AN 475e1f71f1 Merge branch 'unstable' into refactor/delete-modal-dtag-extraction-9801703157260752806 2026-02-26 14:41:48 -05:00
thePR0M3TH3AN 7b1ac9903a Merge branch 'unstable' into refactor/revert-modal-nip71-d-tag-2158505577819364487 2026-02-26 14:41:24 -05:00
thePR0M3TH3AN b74e2df01c Merge pull request #2731 from PR0M3TH3AN/test/link-preview-settings-coverage-2904834955738247686
test: Add tests for LinkPreviewSettings utility
2026-02-26 14:40:53 -05:00
thePR0M3TH3AN 9453a40c82 Merge branch 'unstable' into test/comment-avatar-7190109823382715625 2026-02-26 14:39:15 -05:00
thePR0M3TH3AN 19d3e0dfbd Merge pull request #2736 from PR0M3TH3AN/update-watch-history-test-items-15094903720553574923
Update watch history test to use aggregated items
2026-02-26 13:04:27 -05:00
thePR0M3TH3AN de80e58b5d Merge pull request #2725 from PR0M3TH3AN/refactor-delete-modal-dtag-919037621417068012
Refactor DeleteModal to use shared getDTagValueFromTags utility
2026-02-26 13:04:19 -05:00
thePR0M3TH3AN 0e5e56b146 Merge branch 'unstable' into refactor-revert-modal-dtag-18208308647871133769 2026-02-26 13:04:04 -05:00
thePR0M3TH3AN ecdea6ac94 Merge pull request #2724 from PR0M3TH3AN/test/link-preview-settings-coverage-13742612794998658634
test: Add unit tests for linkPreviewSettings.js
2026-02-26 13:03:45 -05:00
thePR0M3TH3AN 143dcf771d Merge pull request #2727 from PR0M3TH3AN/test/video-menu-renderers-15090243999919330255
🧪 Add tests for video menu renderers
2026-02-26 13:02:53 -05:00
thePR0M3TH3AN 73f7540b4e Merge pull request #2730 from PR0M3TH3AN/security-fix-qrcode-innerhtml-10127011832917430140
🔒 Fix unsafe innerHTML usage in qrcode.js
2026-02-26 13:02:46 -05:00
thePR0M3TH3AN c7cbe086bc Merge pull request #2728 from PR0M3TH3AN/test/static-modal-accessibility-13129271747123339314
🧪 Add tests for staticModalAccessibility.js
2026-02-26 13:02:39 -05:00
thePR0M3TH3AN f536c71917 Merge pull request #2721 from PR0M3TH3AN/test/comment-avatar-16584237555601496118
Add unit tests for commentAvatar.js
2026-02-26 13:02:25 -05:00
google-labs-jules[bot]andPR0M3TH3AN 311e14c66c test(watch-history): rely on aggregated items from publishRecords
Updated `tests/watch-history.test.mjs` to consume `snapshotResult.items` directly, as `WatchHistoryManager`'s `publishRecords` correctly returns aggregated items. Removed the fallback logic and TODO comment that suggested otherwise.

This cleanup aligns the test with the current implementation of `WatchHistoryManager` which flattens monthly results into a top-level `items` array.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 18:02:18 +00:00
thePR0M3TH3AN c28d1e2c2b Merge pull request #2734 from PR0M3TH3AN/refactor/revert-modal-rendering-15253432646628070109
Refactor RevertModal rendering logic
2026-02-26 13:00:38 -05:00
google-labs-jules[bot]andPR0M3TH3AN 2703382ab4 Refactor RevertModal rendering logic into separate module
Extracted excessive DOM rendering logic from `RevertModal.js` into `revertModalRenderers.js`.
This improves code readability and maintainability by separating the view construction from the modal logic.
Added unit tests for the new renderers using a lightweight DOM mock.
Replaced local d-tag extraction with shared utility `getDTagValueFromTags`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:50:10 +00:00
google-labs-jules[bot]andPR0M3TH3AN 56ffdb693d Refactor decryptLegacyDm to use ordered parallel race for decryptors.
Replaces Promise.any with raceOrdered utility to respect decryptor preference order while maintaining parallel execution.
Adds regression test for order preference.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:45:31 +00:00
google-labs-jules[bot]andPR0M3TH3AN fd5e6fef6b test: add missing tests for LinkPreviewSettings utility
- Refactor `tests/utils/linkPreviewSettings.test.mjs` to be self-contained and remove dependency on `jsdom` (via `test-setup.mjs`).
- Add comprehensive test cases for `getLinkPreviewSettings`, `setLinkPreviewAutoFetch`, `allowLinkPreviewDomain`, `isLinkPreviewDomainAllowed`, and `subscribeToLinkPreviewSettings`.
- Add robustness checks for missing `localStorage` (simulated) and invalid inputs.
- Polyfill `EventTarget` and `CustomEvent` (as fallback) to ensure tests run reliably in environments where `jsdom` is unavailable.

This addresses the gap in testing coverage for `js/utils/linkPreviewSettings.js` while ensuring test stability.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:44:51 +00:00
google-labs-jules[bot]andPR0M3TH3AN e2835603c5 Refactor js/utils/qrcode.js to replace innerHTML with DOM manipulation
- Replaced `innerHTML` usage in `Drawing.prototype.draw` (table fallback) with `document.createElement`, `appendChild`, etc.
- Replaced `innerHTML` usage in `Drawing.prototype.clear` with `removeChild` loop.
- Added `tests/qrcode_table_fallback.test.mjs` to verify the table generation logic in a simulated environment (JSDOM) without Canvas support.
- Updated `package.json` to include `jsdom` in `devDependencies` (if it wasn't already there and committed, though I verified it is present after install).

This change eliminates the potential for HTML injection vulnerabilities in the QR code generation library.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:42:43 +00:00
google-labs-jules[bot]andPR0M3TH3AN 0fcfc6009f Refactor qrcode.js to use DOM methods instead of innerHTML
- Replaces unsafe innerHTML usage with document.createElement and appendChild in the table drawing fallback.
- Adds a unit test `tests/qrcode_table_fallback.test.mjs` to verify the table generation logic using JSDOM.
- Addresses a potential security vulnerability where HTML injection could occur (though unlikely in this specific context, it is best practice).
- Updates package.json to include jsdom in devDependencies (if not already present).

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:42:28 +00:00
google-labs-jules[bot]andPR0M3TH3AN 7ec726aad1 Add tests for staticModalAccessibility.js
- Create `tests/static-modal-accessibility.test.mjs` to test `prepareStaticModal`, `openStaticModal`, and `closeStaticModal`.
- Tests cover element resolution, DOM state updates (classes, attributes), and edge cases (missing elements, null targets).
- Use `jsdom` to mock the browser environment.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:42:07 +00:00
google-labs-jules[bot]andPR0M3TH3AN e95355fdb0 Add unit tests for video menu renderers
- Created `tests/video-menu-renderers.test.mjs` to test `js/ui/components/videoMenuRenderers.js`.
- Implemented comprehensive test coverage for `createVideoMoreMenuPanel`, `createVideoShareMenuPanel`, `createChannelProfileMenuPanel`, and `createVideoSettingsMenuPanel`.
- Tests use `jsdom` to simulate DOM element creation and verify structure, classes, and dataset attributes.
- Ensured dependencies (`jsdom`) are installed.
- Verified tests pass with `npm run test:unit`.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:41:34 +00:00
google-labs-jules[bot]andPR0M3TH3AN 822ba4d478 Refactor DeleteModal to use shared getDTagValueFromTags
Replaced the local `extractDTagValue` function in `js/ui/components/DeleteModal.js` with the shared `getDTagValueFromTags` utility from `js/nostr/nip71.js` to reduce code duplication and improve maintainability.

Added `tests/ui/components/DeleteModal.test.mjs` with manual DOM mocks to verify the refactor and ensure no regressions.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:39:38 +00:00
google-labs-jules[bot]andPR0M3TH3AN 4bdcfbdb2e Refactor: Replace duplicated extractDTagValue in DeleteModal
Replaced the local `extractDTagValue` function in `js/ui/components/DeleteModal.js` with the shared `getDTagValueFromTags` utility from `js/nostr/nip71.js` (exported via `js/nostr/index.js`).

Added a new unit test `tests/ui/components/DeleteModal.test.mjs` to verify the d-tag extraction logic and ensure the refactor is correct and safe. This test uses `jsdom` to mock the necessary DOM environment.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:39:07 +00:00
google-labs-jules[bot]andPR0M3TH3AN c4fc0cdb16 test: Add unit tests for linkPreviewSettings.js
- Added comprehensive tests for default settings, storage parsing, and error handling.
- Covered `setLinkPreviewAutoFetch` and `allowLinkPreviewDomain` (including normalization and silent mode).
- Verified `isLinkPreviewDomainAllowed` and event subscriptions.
- Mocked `window.dispatchEvent`, `addEventListener`, and `CustomEvent` locally as they are missing from test helpers.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:38:30 +00:00
google-labs-jules[bot]andPR0M3TH3AN 931f57eebe Refactor RevertModal to use shared d-tag extraction utility
- Removed duplicated `extractDTagValue` method from `js/ui/components/RevertModal.js`
- Imported and used `getDTagValueFromTags` from `js/nostr/nip71.js`
- Added unit tests for `getDTagValueFromTags` in `tests/nostr/nip71-d-tag.test.mjs`

This reduces code duplication and ensures consistent d-tag extraction logic.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:37:26 +00:00
google-labs-jules[bot]andPR0M3TH3AN 30fbb8d81a Refactor RevertModal to use shared nip71.getDTagValueFromTags
Replaced the duplicated `extractDTagValue` method in `RevertModal.js` with the standard `getDTagValueFromTags` utility from `js/nostr/nip71.js`.

Verified by adding a new unit test suite `tests/nostr/nip71-d-tag.test.mjs` ensuring the utility covers all edge cases.

This improves code health by reducing duplication and centralizing NIP-71 logic.

Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:36:43 +00:00
google-labs-jules[bot]andPR0M3TH3AN b1b797a12b Add unit tests for commentAvatar.js utility functions
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:36:00 +00:00
google-labs-jules[bot]andPR0M3TH3AN 2eec105545 Add tests for commentAvatar.js utility functions
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-26 17:33:09 +00:00
google-labs-jules[bot]andPR0M3TH3AN b8cf1315e1 fix(test): add wait for logout state in login-flows e2e
Co-authored-by: PR0M3TH3AN <[email protected]>
2026-02-25 16:11:48 +00:00
thePR0M3TH3AN 10148d043f Merge pull request #2707 from PR0M3TH3AN/agents/weekly/test-coverage-agent-5998265445794573406
Add unit tests for js/nostr/utils.js (test-coverage-agent)
2026-02-24 21:59:55 -05:00