Implemented fuzz testing harnesses and fixed a circular reference crash in nostrEventSchemas.js. Improved robustness of magnetUtils and dmDecryptor.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Creates `examples/reproducers/issue-moderation-ui/` with a standalone Playwright script.
- Includes `repro.spec.ts` which reproduces the "Show anyway" button visibility failure.
- Adds `playwright.config.ts` for standalone execution of the reproducer.
- Documents running instructions in `README.md`.
Co-authored-by: PR0M3TH3AN <[email protected]>
Add minimal Playwright reproducers for:
- Popover demo 404 error (missing module)
- Sidebar layout regression on mobile
- Video Modal height regression on mobile
These scripts are located in `examples/reproducers/` and use a dedicated configuration file.
- Added `scripts/agent/fuzz-schemas.mjs`, `fuzz-dm.mjs`, `fuzz-magnet.mjs` and `fuzz-setup.mjs`.
- Fixed crash in `js/nostrEventSchemas.js` (buildAdminListEvent log and getNostrEventSchema type check).
- Added crash reproducers in `examples/reproducers/`.
- Fuzzers output reports to `artifacts/`.
- Updated fuzzers to deduplicate crashes and safely stringify inputs.
- Added fuzzing scripts for nostrEventSchemas, dmDecryptor, and magnetUtils.
- Fixed crashes in nostrEventSchemas related to unsafe stringification of content.
- Fixed crash in magnetUtils when options argument is null.
- Added safeStringify helper in nostrEventSchemas.js.
- Included fuzzing reports and reproducers.
Co-authored-by: PR0M3TH3AN <[email protected]>
- Added `examples/reproducers/issue-001-video-card-logic/` to reproduce VideoCard logic failure.
- Added `examples/reproducers/issue-002-login-modal-nsec/` to reproduce Login Modal missing error.
- Added `examples/reproducers/issue-003-popover-ref-error/` to reproduce Popover ReferenceError.
- Each reproducer includes a README.md with instructions.
Fuzzer discovered a crash when `pointerTags` is passed as null.
Added array check to prevent TypeError.
Also added fuzz harnesses for schemas, dm decryptor and magnet utils.
- Format `css/tailwind.source.css` with Prettier.
- Add allowlist entry for `VideoCard.js` media query pixel value in `scripts/check-design-tokens.mjs`.
- Remove accidental artifact `js/ui/dm/jules_session_4520373547615093905.zip`.
- Fix bug in `js/app.js` and `js/services/moderationActionController.js` where blocked users' videos were not correctly hidden in the UI immediately after blocking.
- Fix bug in `tests/app/moderation-overrides.test.mjs` where `userBlocks` mocks were insufficient to reflect state changes.
- Add `examples/reproducers/popover-bug-repro.spec.ts` for ReferenceError in popover tests.
- Add `examples/reproducers/moderation-bug-repro.spec.ts` for "Show anyway" button visibility.
- Add `examples/reproducers/sidebar-bug-repro.spec.ts` for mobile sidebar layout margin mismatch.
- Add `examples/reproducers/login-modal-bug-repro.spec.ts` for login modal error visibility.
- Include markdown documentation for each reproducer.
Adds a standalone Node.js script that reproduces the TypeError seen in
`tests/app/channel-profile-moderation.test.mjs`. The crash occurs because
the test harness instantiates `Application` without running the constructor,
leaving `moderationDecorator` undefined.
The reproducer demonstrates this by using `Object.create(Application.prototype)`
and attempting to call `decorateVideoModeration`.
Adds a minimal reproducer for the `similar-content` logic bug where candidates are not correctly ordered or filtered.
This confirms the failures seen in `tests/app/similar-content.test.mjs`.
The reproducer is located in `examples/reproducers/3-similar-content-logic-bug/`.
This commit adds a minimal reproducer script that demonstrates a bug where comments on an original video are hidden when viewing that video via a Repost (Kind 6).
The issue stems from `normalizeCommentTarget` using the Repost's metadata (Kind 6, Reposter Pubkey) instead of the Original Video's metadata to generate the comment filter descriptor. This causes valid comments (which tag the Original Video) to be filtered out by `isVideoCommentEvent`.
Added:
- `examples/reproducers/2-repost-comment-visibility-bug/reproduce_issue.js`
- `examples/reproducers/2-repost-comment-visibility-bug/README.md`
- Add fuzz testing scripts for `nostrEventSchemas.js`, `dmDecryptor.js`, and `magnetUtils.js` in `scripts/agent/`.
- Fix `build...` functions in `nostrEventSchemas.js` to handle `null`/`undefined` inputs.
- Fix `buildVideoPostEvent` to gracefully handle circular references in content serialization.
- Fix `normalizeAndAugmentMagnet` in `magnetUtils.js` to handle non-iterable `extraTrackers`.
- Include minimal reproducers for discovered crashes in `examples/reproducers/`.