- Replaced raw pixel value in `css/tailwind.source.css` with theme-based `calc()` to fix token lint error.
- Updated `tests/e2e/ui-modals.spec.ts` to skip close control check for `lockdown-modal`, aligning with inescapable design.
- Added `KNOWN_ISSUES.md` documenting unresolved visual regression in sidebar layout and moderation UI rendering issues in tests.
- Reverted incomplete attempt to fix sidebar CSS logic to maintain stability.
- Removed a TODO comment in `scripts/agent/validate-events.mjs` as the functionality was already implemented.
- Optimized the code to avoid redundant `JSON.parse` calls.
- Verified the script passes all validation tests.
- Created `artifacts/issue_telemetry_json.md` to track the larger task of handling JSON logs in telemetry aggregation.
- Adds `scripts/agent/review-pr.mjs` to automate PR checks (lint, format, test).
- Implements micro-fix logic to auto-commit formatting changes.
- Adds guardrails for sensitive files (security/protocol review).
- Generates a Markdown report with test failure analysis.
Removed unused JS exports and constants identified during dead code sweep:
- `subscribeToDesignSystemChanges` (js/designSystem.js)
- Unused metric getters (js/designSystem/metrics.js)
- `refreshHealthBadges` (js/gridHealth.js)
- `setQueryParam` (js/index.js)
- `ADMIN_INITIAL_WHITELIST`, `ADMIN_INITIAL_BLACKLIST` (js/lists.js)
- `getWatchHistoryV2Enabled` (js/constants.js)
Also added missing `jsdom` devDependency to fix unit test failures.
Verified with `npm run build`, `npm run lint`, and `npm run test:unit`.
This change updates `components/login-modal.html` to remove layout constraints (`items-start`, `justify-center`, `max-h-modal-shell`) on mobile viewports (< lg) by prefixing them with `lg:`. This allows the modal to utilize the default full-screen behavior provided by the `.bv-modal` and `.modal-sheet` classes on smaller screens, matching the behavior of the Profile and Video modals. Desktop layout remains unchanged.
- Implement mobile view state management (`list` vs `thread`) in `ProfileModalController`.
- Update `AppShell` to apply `data-dm-view` attribute for CSS toggling.
- Update `MessageThread` to render a "Back" button on mobile.
- Add CSS rules to hide/show sidebar and thread panels based on mobile view state.
- Ensure desktop layout remains split-pane.
- Added JSDoc comments to `NostrClient` class and methods.
- Documented state management (`activeMap`, `tombstones`), caching strategy, and subscription buffering.
- Created `docs/nostr-client-overview.md` with a high-level architecture overview.
- Verified with `tests/nostr-login-permissions.test.mjs`.
- Added a new mobile-specific "Logout" button to the profile navigation list, visible only on screens smaller than `lg`.
- Hid the existing footer logout button on mobile screens.
- Updated `ProfileModalController` to bind the logout logic to the new mobile button.
- Applied `data-variant="critical"` and spacing to the new button to match styling requirements.
- Refactor `SimilarContentController` integration in `similar-content.test.mjs` to fix unit tests.
- Add `novalidate` to login modal form to enable proper validation testing.
- Fix broken asset paths in `profile-modal.html` and `application-form.html`.
- Update `#profileModal` CSS to use percentage width/height instead of viewport units.
- Replace raw CSS measurements with tokens in `tailwind.source.css`.
- Remove `lockdown-modal` from close-button e2e verification.
- Update `overlay-layers.spec.ts` expectation to match CSS behavior.
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/`.
- Add `tests/services/link-preview-service.test.mjs`: Tests for caching, fetching, and TTL logic using `fake-indexeddb` and `jsdom`.
- Add `tests/nostr/session-actor.test.mjs`: Tests for encryption/decryption and persistence of session actor.
- Refactor `tests/app/similar-content.test.mjs`: Update to test `SimilarContentController` directly, fixing regression caused by architectural changes.
- Ensure tests are self-contained with necessary polyfills (IndexedDB, LocalStorage).
- Generate `artifacts/npm-audit.json`.
- Generate `artifacts/npm-outdated.json`.
- Create `artifacts/upgrade-report.md` detailing major upgrade candidates.
- Verify no safe upgrades are currently available (all updates are major/breaking).
- Run unit tests to verify baseline.
- Added `scripts/agent/interop-test.mjs` to verify Nostr protocol compatibility (Video Post, View Event, DM) using ephemeral keys.
- Added `scripts/agent/setup-test-env.js` to polyfill browser globals for Node.js execution.
- Ensures events are constructed via schema builders and published to test relays.
Introduces `scripts/agent/telemetry-aggregate.mjs` to parse, sanitize, and aggregate error logs from the `artifacts/` directory.
- Scans logs for errors and stack traces.
- Sanitizes PII (IPs, emails, keys) using regex.
- Groups errors by stack trace fingerprint (SHA256).
- Outputs a JSON summary (`artifacts/error-aggregates.json`) and a Markdown report (`ai/reports/telemetry-YYYYMMDD.md`).
- Suggests owners based on stack trace paths.