Commit Graph
3157 Commits
Author SHA1 Message Date
thePR0M3TH3AN 6527004c2c Add channel message control handlers 2026-01-18 19:35:00 -05:00
thePR0M3TH3AN a8de4f4945 Merge pull request #1343 from PR0M3TH3AN/codex/update-channel-header-action-buttons
Add channel notification and message buttons to header action group
2026-01-18 19:31:11 -05:00
thePR0M3TH3AN e7951f8004 Add channel notification and message buttons 2026-01-18 19:30:49 -05:00
thePR0M3TH3AN 46e3bb7c89 Merge pull request #1339 from PR0M3TH3AN/ai/dead-code-20260119-5254822295098866102
chore(ai): remove dead code (agent)
2026-01-18 15:50:16 -05:00
thePR0M3TH3AN 995f7cd920 Merge pull request #1338 from PR0M3TH3AN/mobile-search-fab-12861214869861842957
feat: add mobile search FAB
2026-01-18 15:49:12 -05:00
google-labs-jules[bot] e78f7c47f1 chore(ai): remove dead code (agent)
Removes unused JavaScript files, exports, and npm dependencies identified during a dead code sweep.

- Deleted `js/healthService.js` (unused).
- Deleted `js/nostr/signer-interface.js` (unused).
- Deleted `js/watchHistorySort.js` (unused).
- Deleted `js/services/signerKeyManager.js` and `tests/ui/signerKeyManager.test.mjs` (unused).
- Removed `buildStorageChallengeEvent` from `js/nostrEventSchemas.js`.
- Removed `path` and `webtorrent` from `package.json` dependencies (unused/vendored).
- Updated `tests/hashtag-preferences.test.mjs` to fix a mock-related failure exposed by environment checks.

Verified with `npm run test:unit`. `lint` and `format` checks run.
Note: `tests/moderation-service.test.mjs` failure deemed pre-existing.
See `artifacts/depcheck.json` (if retained) for dependency analysis.
2026-01-18 20:20:54 +00:00
google-labs-jules[bot] 94dddbe0c1 feat: add mobile search FAB and expandable search bar
Adds a Floating Action Button (FAB) for search on mobile devices, which expands into a full search bar upon interaction.
- Updates `index.html` to include the FAB and search container.
- Updates `js/index.js` to handle toggle logic and search submission.
- Uses `bg-critical` for the FAB to meet the "Red Circle" requirement.
- Hides the new elements on desktop to maintain existing behavior.
2026-01-18 20:11:14 +00:00
thePR0M3TH3AN 61c2b56838 Merge pull request #1336 from PR0M3TH3AN/edit-profile-modal-17464840854466078070
Add Edit Profile feature to Profile Modal
2026-01-18 14:39:27 -05:00
thePR0M3TH3AN 6376b7fc3c Merge pull request #1335 from PR0M3TH3AN/ai/load-test-20260118-8772579769680380698
feat: add load test script with safety guardrails
2026-01-18 14:38:09 -05:00
thePR0M3TH3AN 0778c8bb89 Merge pull request #1337 from PR0M3TH3AN/codex/emit-new-telemetry-events-for-feeds
Emit for-you feed telemetry: impressions, clicks, and watch events
2026-01-18 14:37:48 -05:00
thePR0M3TH3AN 29b18103ac Add for-you feed telemetry events 2026-01-18 14:37:01 -05:00
google-labs-jules[bot] 4b6bb206ab Add Edit Profile feature to Profile Modal
- Added "Edit Profile" button to active profile card in profile modal
- Created `profilePaneEdit` with form fields for profile metadata (Kind 0)
- Implemented `populateEditPane`, `handleEditProfile`, `handleSaveProfile` in `ProfileModalController`
- Added file upload support for profile/banner images using `r2Service`
- Injected `r2Service` into `ProfileModalController` via `ApplicationBootstrap`
- Verified functionality with manual check of logic and structure
2026-01-18 19:36:47 +00:00
google-labs-jules[bot] 7bc85f1b99 feat: add load test script with safety guardrails
Implements `scripts/agent/load-test.mjs` to simulate N clients publishing
video and view events to a relay. Includes:
- Latency and throughput metrics.
- Signing time profiling.
- Safety guardrails to prevent accidental stress testing of public relays.
- A lightweight local relay (`scripts/agent/simple-relay.mjs`) for testing.

Outputs a report to `artifacts/load-report-YYYYMMDD.json`.
2026-01-18 19:24:01 +00:00
thePR0M3TH3AN a91d3b8c43 Merge pull request #1334 from PR0M3TH3AN/codex/add-controller-for-empty-feed-results
Add For You view controller with empty-state and hashtag preferences CTA
2026-01-18 14:20:58 -05:00
thePR0M3TH3AN 512afb07e7 Add for-you empty state controller 2026-01-18 14:20:43 -05:00
thePR0M3TH3AN d70e176a60 Merge pull request #1333 from PR0M3TH3AN/codex/rename-recent-icon.svg-to-for-you-feed
Rename recent icon asset to for-you-feed icon
2026-01-18 14:11:15 -05:00
thePR0M3TH3AN dfc0a3938d Rename recent icon to for-you feed 2026-01-18 14:10:40 -05:00
thePR0M3TH3AN 2342c56336 Merge pull request #1332 from PR0M3TH3AN/codex/extend-createtagpreferencefilterstage-functionality
Enhance tag-preference filter to normalize tags and match NIP-71 hashtags
2026-01-18 14:06:33 -05:00
thePR0M3TH3AN 8516382ece Update tag preference filtering 2026-01-18 14:05:47 -05:00
thePR0M3TH3AN c4a4042bcd Merge pull request #1331 from PR0M3TH3AN/codex/add-for-you-feed-functionality
Add for-you feed registration and loading
2026-01-18 14:03:44 -05:00
thePR0M3TH3AN dba666b751 Add for-you feed pipeline support 2026-01-18 14:02:35 -05:00
thePR0M3TH3AN 0987da3ed7 Merge pull request #1329 from PR0M3TH3AN/codex/add-for-you-entry-to-viewinitregistry
Add For You view initialization, sidebar link, and template
2026-01-18 13:42:15 -05:00
thePR0M3TH3AN a846da13c0 Add for-you view wiring 2026-01-18 13:42:00 -05:00
thePR0M3TH3AN 64e66be204 Merge pull request #1328 from PR0M3TH3AN/codex/refactor-disinterest-filtering-in-feed-stages
Consolidate tag-preference filtering in feed stages
2026-01-18 13:38:57 -05:00
thePR0M3TH3AN 7a29a0b807 Consolidate tag preference filtering stage 2026-01-18 13:38:34 -05:00
thePR0M3TH3AN 4568c9af72 Merge pull request #1327 from PR0M3TH3AN/codex/create-shared-normalization-helper-for-hashtags
Add shared hashtag normalization helper and wire through preferences, feed, and UI
2026-01-18 13:36:03 -05:00
thePR0M3TH3AN 0ac64867da Add shared hashtag normalization helper 2026-01-18 13:35:34 -05:00
thePR0M3TH3AN cedc2a91d0 Merge pull request #1326 from PR0M3TH3AN/ai/debug-frontend-20250220-7026139013210056715
Fix frontend console warning for Login Modal initialization race condition
2026-01-18 13:24:36 -05:00
google-labs-jules[bot] 69e5a45af1 fix(ai): prevent race condition in login modal initialization (agent)
Removes a premature call to `initializeLoginModalController` in `ApplicationBootstrap` which was attempting to initialize the login modal before the DOM was fully hydrated, causing a "modal container not found" warning during startup. The modal is already correctly initialized later in `js/index.js` after markup loading completes.
2026-01-18 18:21:41 +00:00
thePR0M3TH3AN a03ba8f199 Merge pull request #1319 from PR0M3TH3AN/codex/enforce-signer-verification-for-comments
Require active signer for comment publishing
2026-01-18 13:21:33 -05:00
thePR0M3TH3AN 17950a5078 Merge pull request #1325 from PR0M3TH3AN/cache-torrent-and-tracker-health-458982379705283655
feat: persist webtorrent probes and tracker health checks
2026-01-18 13:16:55 -05:00
google-labs-jules[bot] f06b2c7b1d feat: persist webtorrent probes and tracker health checks to localstorage
- Add storage helpers for torrent probes and tracker health in `js/utils/storage.js`
- Update `js/gridHealth.js` to read/write torrent probes from localStorage
- Update `js/healthService.js` to read/write tracker health from localStorage
- Ensure TTLs (5m for probes, 2m for trackers) are respected across sessions
- Add verification test `tests/verify-storage-persistence.mjs` (removed before completion)
2026-01-18 18:13:37 +00:00
thePR0M3TH3AN 3de038dc08 Merge pull request #1324 from PR0M3TH3AN/nip46-throttling-7276642826930666364
fix: throttle NIP-46 requests to prevent rate-limiting and timeouts
2026-01-18 12:41:35 -05:00
google-labs-jules[bot] eaedf3e36c feat: introduce NIP-46 request queue with throttling and priority
- Added `js/nostr/nip46Queue.js` to manage concurrent RPC requests.
- Updated `Nip46RpcClient` to serialize outgoing requests, preventing "rate-limited" errors.
- Implemented exponential backoff for retries when relays reject events due to rate limits.
- Added priority levels to `sendRpc` to prioritize user actions (signing, connecting) over background tasks (decrypting).
- Verified with new unit tests in `tests/unit/nip46Queue.test.mjs`.
2026-01-18 17:40:12 +00:00
thePR0M3TH3AN 3bbe17f022 Merge pull request #1323 from PR0M3TH3AN/remove-republish-button-5545648730343527292
Remove risky "Republish Now" button from Watch History
2026-01-18 12:37:10 -05:00
google-labs-jules[bot] 5119c6f85e Remove "Republish Now" button from Watch History view
- Removed the "Republish Now" button from `views/history.html` to prevent accidental overwriting of relay data with incomplete local state.
- Removed associated event handlers and logic from `js/historyView.js`.
- Verified UI changes with Playwright.
- Existing tests pass (known failures in unrelated files ignored).
2026-01-18 17:33:54 +00:00
thePR0M3TH3AN 202c453e91 Merge pull request #1322 from PR0M3TH3AN/bugfix/hashtag-preferences-load-on-login-17645134283647080499
fix: ensure hashtag preferences load on login
2026-01-18 11:47:07 -05:00
google-labs-jules[bot] 2dd896044c fix: ensure hashtag preferences load on login
When a user logs in, `profileCache` emits a `profileChanged` event. Previously, `HashtagPreferencesService` only reset its state on this event, failing to fetch the new user's preferences. This commit updates the subscription handler to call `load(pubkey)` when a new profile is set, ensuring interests and disinterests are reliably synchronized.
2026-01-18 16:44:06 +00:00
thePR0M3TH3AN f9a49539f8 Merge pull request #1317 from PR0M3TH3AN/ai/fuzz-robustness-20250215-12620895249618793143
Add fuzz testing harnesses and robustness fixes
2026-01-18 11:43:49 -05:00
thePR0M3TH3AN 4d5d8b96f6 Merge pull request #1315 from PR0M3TH3AN/ai/doc-client-20231026-15350337132812859795
chore(ai): document js/nostr/client.js
2026-01-18 11:42:47 -05:00
thePR0M3TH3AN 0e2f0495ba Merge pull request #1312 from PR0M3TH3AN/ai/docs-update-20240523-6702486559021222440
Update documentation for Quickstart and Contributing
2026-01-18 11:41:51 -05:00
thePR0M3TH3AN f5eb90cc84 Merge pull request #1321 from PR0M3TH3AN/codex/update-documentation-for-signer-adapters
Add signer adapter documentation
2026-01-18 11:31:06 -05:00
thePR0M3TH3AN da7f62a372 Add signer adapter documentation 2026-01-18 11:30:43 -05:00
thePR0M3TH3AN 3cebdad46b Merge pull request #1320 from PR0M3TH3AN/codex/add-tests-for-nostr-adapters-and-registry
Add Nostr signer adapter, registry, and DM decryptor preference tests
2026-01-18 11:25:48 -05:00
thePR0M3TH3AN 84e9dcd2c1 Add nostr adapter and registry tests 2026-01-18 11:25:22 -05:00
thePR0M3TH3AN 6aa64c4002 Require active signer for comment publishing 2026-01-18 11:17:29 -05:00
thePR0M3TH3AN 4a7a1e036a Merge pull request #1318 from PR0M3TH3AN/codex/connect-persistence-helpers-for-nsec-and-nip-46
Harden signer session persistence and NIP-46 metadata storage
2026-01-18 11:13:51 -05:00
thePR0M3TH3AN 0a1ccc2bc9 Harden signer session persistence 2026-01-18 11:10:40 -05:00
google-labs-jules[bot] ec5fc23164 feat(fuzz): add input robustness testing harnesses and fixes
- 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/`.
2026-01-18 16:09:48 +00:00
thePR0M3TH3AN e4851e274a Merge pull request #1316 from PR0M3TH3AN/codex/add-promise-queue-utility-for-signevent
Serialize signer signEvent requests with queued signer and timeout
2026-01-18 10:58:56 -05:00