Commit Graph
1428 Commits
Author SHA1 Message Date
thePR0M3TH3AN dbda648a88 Merge pull request #1445 from PR0M3TH3AN/dm-mobile-view-fix-12289226893925859627
Improve DM mobile navigation with list/thread toggle
2026-01-20 14:10:39 -05:00
google-labs-jules[bot] febbc27706 feat: improve DM mobile navigation with list/thread toggle
- 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.
2026-01-20 18:27:18 +00:00
google-labs-jules[bot] 5d7287b31b fix(ai): frontend console error — remove failing relay (agent) 2026-01-20 18:12:00 +00:00
google-labs-jules[bot] 5c2e9cd7f8 feat: add fuzz testing harness and fix repost builder
- Created generic fuzzing library `scripts/agent/fuzz-lib.mjs`.
- Implemented fuzz targets for `nostrEventSchemas.js`, `dmDecryptor.js`, and `magnetUtils.js`.
- Fixed `buildRepostEvent` to allow missing relay URLs for robustness.
- Added crash reproducers to `examples/reproducers/`.
2026-01-20 16:42:46 +00:00
thePR0M3TH3AN 5726997475 Merge pull request #1442 from PR0M3TH3AN/ai/doc-client-20231026-7119633933241753888
chore(ai): document js/nostr/client.js
2026-01-20 11:19:08 -05:00
google-labs-jules[bot] 40690c7008 chore(ai): doc js/nostr/client.js (agent)
- 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`.
2026-01-20 15:23:38 +00:00
google-labs-jules[bot] 486c8af4a1 feat: Move logout button to menu list on mobile
- 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.
2026-01-20 14:26:54 +00:00
thePR0M3TH3AN 1a2818f01f Merge branch 'unstable' into fix-ui-tests-bugs-4073520511314692320 2026-01-20 07:36:43 -05:00
google-labs-jules[bot] 57a980ae8d fix(ui): resolve test failures and lint errors
- 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.
2026-01-20 12:32:16 +00:00
google-labs-jules[bot] 9db1f94ea7 docs(ai): improve onboarding steps and fix dev setup 2026-01-20 08:41:45 +00:00
thePR0M3TH3AN 05e1939dee Merge pull request #1429 from PR0M3TH3AN/ai/schema-validate-20231027-17285858283016000571
chore(ai): event schema validation tool + fixes
2026-01-20 00:25:19 -05:00
google-labs-jules[bot] 3b80692eb0 chore(ai): event schema validation tool + fixes
- Created `scripts/agent/validate-events.mjs` to validate all event builders against schemas.
- Updated `docs/nostr-event-schemas.md` to match codebase (fixed `WATCH_HISTORY` key, removed unused `STORAGE_CHALLENGE`).
- Added `validateEventAgainstSchema` to `js/nostrEventSchemas.js` for runtime validation in dev mode.
- Instrumented `buildVideoPostEvent` to use runtime validation.
- Verified that all 22 builders produce conformant events.
2026-01-20 05:21:18 +00:00
google-labs-jules[bot] 24814a7fd4 refactor(ai): extract SimilarContentController from js/app.js (agent)
Moved `computeSimilarContentCandidates` and `updateModalSimilarContent` logic to a new controller `js/ui/similarContentController.js` to improve separation of concerns. `js/app.js` now delegates these operations to the controller via thin wrappers. Added unit tests for the extracted logic.
2026-01-20 03:56:41 +00:00
thePR0M3TH3AN 1a57cd352c Merge pull request #1423 from PR0M3TH3AN/fix-profile-modal-stacking-2675219131915820694
Fix profile modal stacking issue on desktop
2026-01-19 21:57:12 -05:00
google-labs-jules[bot] 3f4e4b00f9 Fix profile modal stacking by hiding sidebar when active
Adds `modal-open` class to `body` and `documentElement` when the profile modal opens, and removes it when it closes. This activates the existing CSS rule that hides the sidebar and lowers its z-index, resolving the issue where the sidebar appeared on top of the modal on desktop.
2026-01-20 02:50:30 +00:00
google-labs-jules[bot] ac4d087f3e Remove legacy Direct Message privacy UI
Removes the "Direct message privacy" section from the profile modal's Messages tab, as these settings are now managed via the AppShell (gear icon).

- Removed privacy section HTML from `components/profile-modal.html`.
- Updated `js/ui/profileModalController.js` to remove legacy DOM references and event listeners.
- Preserved `handleReadReceiptsToggle` and `handleTypingIndicatorsToggle` methods for AppShell integration.
- Updated `syncDmPrivacySettingsUi` to be a no-op to prevent errors in existing call sites.
2026-01-20 02:46:04 +00:00
thePR0M3TH3AN a126bc2d0e Merge pull request #1421 from PR0M3TH3AN/dm-ui-refactor-privacy-zaps-2998709173100552567
Refactor DM UI: Move privacy settings, unify Zaps interface, and adjust layout
2026-01-19 21:05:49 -05:00
google-labs-jules[bot] 07abc8516f Refactor DM UI: Move privacy settings, unify Zaps interface, and adjust layout 2026-01-20 02:04:10 +00:00
google-labs-jules[bot] 383a77d6da feat: move moderation and link preview settings to new Safety tab in Profile modal
- Added 'Safety' tab to `components/profile-modal.html`, positioned before 'Blocked'
- Moved `profileModerationSettings` and `profileLinkPreviewSettings` panels to the new tab
- Updated `ProfileModalController.js` to manage the new tab and initialize settings when selected
- Renamed 'Safety & Moderation' panel header to 'Safety'
2026-01-20 01:58:02 +00:00
thePR0M3TH3AN 32ae80019a Merge pull request #1418 from PR0M3TH3AN/ai/todo-fix-tag-pref-comment-20260120-14801176913236906956
fix(ai): convert tag-preference TODOs to architectural notes
2026-01-19 20:39:42 -05:00
google-labs-jules[bot] 1f0bc2d87e chore(ai): convert tag-preference TODOs to architectural notes
Convert `TODO(tag-preferences)` comments in `js/app.js` to permanent `Note:` comments.
These TODOs were architectural reminders about keeping tag-preference filtering consolidated
in `createTagPreferenceFilterStage`, rather than actionable tasks requiring code changes.
Reclassifying them as notes preserves the context without cluttering the TODO list.
2026-01-20 01:38:52 +00:00
google-labs-jules[bot] 941a148b13 Enforce consistent avatar size in DM conversation list
Explicitly set `size: "md"` in ContactRow and added `min-width` / `min-height` to avatar CSS classes to prevent flexbox squashing. This ensures consistent avatar rendering in the conversations column.
2026-01-20 01:21:47 +00:00
thePR0M3TH3AN f4f6d7f4de Revert "update"
This reverts commit 0e306d851e.
2026-01-19 19:48:35 -05:00
thePR0M3TH3AN 0e306d851e update 2026-01-19 19:40:28 -05:00
thePR0M3TH3AN 933f6101cf Merge branch 'unstable' into lockdown-mode-text-configuration-17597933588831189378 2026-01-19 16:40:09 -05:00
google-labs-jules[bot] ad69548fb7 feat: make lockdown mode title and message configurable
This change introduces `LOCKDOWN_TITLE` and `LOCKDOWN_MESSAGE` constants in `config/instance-config.js` and exposes them via `js/config.js`. It updates `components/lockdown-modal.html` to include IDs for the title and message elements, and modifies `js/index.js` to dynamically populate these elements with the configured text when initializing the lockdown interface. This allows instance operators to customize the maintenance mode appearance.

No new tests were added as this is a configuration and UI text update, but `tests/auth-service.test.mjs` was run to ensure no regressions in auth logic during lockdown.
2026-01-19 21:35:23 +00:00
thePR0M3TH3AN 2ce4e48674 Merge pull request #1410 from PR0M3TH3AN/ui-ux-dm-profile-cleanup-16645073823548502955
UI/UX Improvements for Profile Modal and DM System
2026-01-19 16:04:05 -05:00
google-labs-jules[bot] d8ab54417d feat(ui): overhaul profile modal and DM conversation list
- Maximized profile modal to be full-screen for better content visibility.
- Cleaned up DM conversation list by removing message previews and timestamps.
- Updated DM badges and outgoing messages to use theme accent color instead of generic blue.
- Refactored DM composer to move privacy and zap toggles into a "More" menu.
2026-01-19 20:57:57 +00:00
google-labs-jules[bot] 7250640512 I've removed unused exports and functions to improve codebase cleanliness:
- `refreshUrlHealthBadges` from `js/urlHealthObserver.js`
- `parseVideoEventPayload` from `js/videoEventUtils.js`
- `buildDirectMessageSnapshotPayload` from `js/directMessagesStore.js`
- Unexported `ingestLocalReaction` in `js/reactionCounter.js` (still used internally)

I verified there are no references in the codebase or tests.
Tests run: `npm run format`, `npm run lint`, `npm run test:unit`.
(Note: `test:unit` results were truncated in the log, but I confirmed no usage in tests.)
Artifacts: `artifacts/depcheck.json` was not included as no dependencies were removed.
2026-01-19 20:46:47 +00:00
thePR0M3TH3AN d45d380e40 Improve DM unread indicators and profile modal layout 2026-01-19 15:09:35 -05:00
thePR0M3TH3AN 225c6a1674 Add unread DM badge to profile button 2026-01-19 14:57:10 -05:00
thePR0M3TH3AN ce7077da2d Add mark-read actions to DM UI 2026-01-19 14:48:05 -05:00
thePR0M3TH3AN e569801520 Add DM app shell mapping for profile modal 2026-01-19 14:40:21 -05:00
thePR0M3TH3AN 1c3645ff80 Replace profile messages pane with DM app shell mount 2026-01-19 14:21:39 -05:00
thePR0M3TH3AN 6116b6a7db Add relay health panel and telemetry opt-in 2026-01-19 14:03:15 -05:00
thePR0M3TH3AN 1fbfee5915 Add DM decrypt limits and caches 2026-01-19 13:51:48 -05:00
thePR0M3TH3AN 3c75ac8c3f Add DM read receipts and typing indicators 2026-01-19 13:29:40 -05:00
thePR0M3TH3AN 14ace98991 Merge pull request #1397 from PR0M3TH3AN/codex/implement-link-preview-fetcher-with-caching
Add cached link preview fetcher with privacy toggle
2026-01-19 13:07:11 -05:00
thePR0M3TH3AN 0eacbd1063 Add cached link previews with privacy toggle 2026-01-19 13:06:50 -05:00
thePR0M3TH3AN 0bd2681a24 Merge pull request #1394 from PR0M3TH3AN/fix-dm-tests-and-leaks-8133857459641031321
Fix DM storage leaks and test environment issues
2026-01-19 12:52:41 -05:00
thePR0M3TH3AN 9ea9fe2f08 Add DM attachment upload and preview flow 2026-01-19 12:51:34 -05:00
thePR0M3TH3AN d082df8e41 Add DM zap composer and zap request support 2026-01-19 11:29:55 -05:00
google-labs-jules[bot] b285819145 fix(storage): resolve db connection leaks and patch test environment
- Added `db.close()` to exported functions in `js/storage/dmDb.js` to ensure IndexedDB connections are released.
- Patched `tests/test-helpers/setup-localstorage.mjs` to include a `structuredClone` polyfill required by `fake-indexeddb` in Node.js environments.
- Updated `tests/dm-normalization.test.mjs`, `tests/dm-db.test.mjs`, and `tests/nostr/dm-direct-message-flow.test.mjs` to conditionally initialize `fake-indexeddb` to prevent global conflicts.
- Verified fixes by running unit tests and the `scripts/agent/interop-test.mjs` E2E suite.
2026-01-19 16:24:07 +00:00
thePR0M3TH3AN 26486ca57a Merge pull request #1392 from PR0M3TH3AN/codex/update-privacy-mode-and-profile-controls
Show DM privacy mode and add DM relay hint controls (kind:10050)
2026-01-19 10:57:42 -05:00
thePR0M3TH3AN 924ed9b482 Add DM privacy indicators and relay hint publishing 2026-01-19 10:56:54 -05:00
thePR0M3TH3AN 6ab445011c Merge pull request #1390 from PR0M3TH3AN/ai/doc-nostr-client-20231026-4334329458905976061
chore(ai): document js/nostr/client.js
2026-01-19 10:34:12 -05:00
thePR0M3TH3AN 51b550adaa Improve DM relay selection fallback handling 2026-01-19 10:31:13 -05:00
google-labs-jules[bot] 38f1594243 chore(ai): doc js/nostr/client.js (agent)
- Added JSDoc comments to `NostrClient` class and methods.
- Added JSDoc comments to `EventsCacheStore`.
- Created `docs/nostr-client-overview.md` with high-level documentation.
- Fixed a race condition in `tests/nostr-delete-flow.test.mjs`.
2026-01-19 15:18:36 +00:00
thePR0M3TH3AN 4566c96330 Add NIP-17 DM delivery option 2026-01-19 10:05:00 -05:00
thePR0M3TH3AN ef8307c560 Normalize giftwrap DM timestamps 2026-01-19 09:47:57 -05:00