Commit Graph
3113 Commits
Author SHA1 Message Date
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 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 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
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
thePR0M3TH3AN 95bb462508 Serialize nostr signEvent requests 2026-01-18 10:58:19 -05:00
thePR0M3TH3AN 745eb6ac48 Merge pull request #1314 from PR0M3TH3AN/codex/add-capabilities-field-to-signers
Add signer `capabilities` and prefer NIP-44 for DM encryption with NIP-04 fallback
2026-01-18 09:21:31 -05:00
thePR0M3TH3AN b0d0dbdba7 Add signer capabilities for DM encryption 2026-01-18 09:21:08 -05:00
thePR0M3TH3AN 519bb168aa Merge pull request #1313 from PR0M3TH3AN/codex/update-modules-to-use-getactivesigner
Refactor nostr signer access to use nostrClientFacade
2026-01-18 09:16:39 -05:00
thePR0M3TH3AN 52d2488d17 Refactor nostr signer access 2026-01-18 09:15:18 -05:00
thePR0M3TH3AN 2410412450 Merge pull request #1311 from PR0M3TH3AN/codex/refactor-signers-with-adapter-factories
Use signer adapters in Nostr client login and NIP-46 flows
2026-01-18 09:08:38 -05:00
thePR0M3TH3AN d567bdbdcf Use signer adapters in nostr client flows 2026-01-18 09:08:22 -05:00
thePR0M3TH3AN 66f3c9f4b0 Merge pull request #1310 from PR0M3TH3AN/codex/extend-signer-management-in-nostrclientregistry
Add signer registry and active-signer hooks
2026-01-18 09:04:36 -05:00
thePR0M3TH3AN 028d1164f9 Add signer registry helpers 2026-01-18 09:04:12 -05:00
thePR0M3TH3AN 0ead956fc5 Merge pull request #1309 from PR0M3TH3AN/codex/move-createprivatekeycipherclosures-to-signerhelpers
refactor: extract signer cipher helpers
2026-01-18 08:57:59 -05:00
thePR0M3TH3AN cef64aa5d3 refactor: extract signer cipher helpers 2026-01-18 08:56:53 -05:00
thePR0M3TH3AN 46fed1eb10 Merge pull request #1308 from PR0M3TH3AN/codex/create-async-signer-api-module-and-adapters
Add signer interface and Nostr signer adapters
2026-01-18 08:53:11 -05:00
thePR0M3TH3AN a6ae684a98 Add signer interface and nostr adapters 2026-01-18 08:52:25 -05:00
thePR0M3TH3AN f8a1e336e6 Merge pull request #1307 from PR0M3TH3AN/ai/reproducers-1-20260118-13735674150690396798
Add minimal reproducer for SimilarContentCard thumbnail blur bug
2026-01-18 07:57:08 -05:00
thePR0M3TH3AN 96b9cf114a Merge pull request #1306 from PR0M3TH3AN/ai/tests-profileCache-20260118-4171977534236207089
Add unit tests for profileCache and appState
2026-01-18 07:56:04 -05:00
thePR0M3TH3AN e3dc7f2f43 Merge pull request #1305 from PR0M3TH3AN/ai/deps-upgrade-bundle-2024-01-18-8434648762069799900
Dependency Updates & Security Scan Report
2026-01-18 07:54:43 -05:00
thePR0M3TH3AN 30597191c7 Merge pull request #1304 from PR0M3TH3AN/ai/onboarding-20260118-2854898587831741605
docs(ai): improve onboarding steps
2026-01-18 07:53:37 -05:00
thePR0M3TH3AN bcb4777d59 Merge pull request #1303 from PR0M3TH3AN/ai/interop-tests-20260118-15201644868147508755
Add Nostr protocol interop test script
2026-01-18 07:52:13 -05:00
thePR0M3TH3AN d6ff9765b2 Merge pull request #1302 from PR0M3TH3AN/telemetry-aggregation-tool-15692846024567566751
Telemetry Aggregation Tool
2026-01-18 07:50:43 -05:00
google-labs-jules[bot] eecba37d3e Add reproducer for SimilarContentCard thumbnail bug 2026-01-18 12:19:32 +00:00
google-labs-jules[bot] e11f44f2f2 test(ai): add unit tests for profileCache and appState (agent) 2026-01-18 11:15:34 +00:00
google-labs-jules[bot] 7376b2e857 chore(ai): bump devDependencies (autoprefixer, esbuild, prettier) and add audit reports 2026-01-18 09:14:59 +00:00
google-labs-jules[bot] 09545c869c docs(ai): improve onboarding steps and add devcontainer
- Update README.md to recommend `npm ci` and include test steps.
- Update CONTRIBUTING.md with explicit development setup instructions.
- Add `.devcontainer/devcontainer.json` for reproducible Node 20 environment.
- Add audit report in `ai/reports/onboarding-20260118.md`.
2026-01-18 08:23:14 +00:00
google-labs-jules[bot] 82f92d420f feat(ai): add interop-test.mjs for Nostr protocol validation
Implements `scripts/agent/interop-test.mjs` to validate core Nostr operations
(Video Post, View Event, Encrypted DM) against a small set of public relays.
Ensures ephemeral keys are used and no private data is persisted.

Features:
- Ephemeral sender/receiver key generation.
- Polyfills for WebSocket, localStorage, and Crypto for Node.js environment.
- Verification of event signatures, IDs, and content shape.
- DM encryption/decryption roundtrip verification.
- Safe relay list usage (only 2 known relays).
2026-01-18 07:11:08 +00:00
google-labs-jules[bot] 30e0d9e287 feat(tools): add privacy-preserving telemetry aggregator
- Added `scripts/telemetry-aggregator.mjs` to collect, sanitize, and aggregate errors from unit and smoke tests.
- Added `telemetry:aggregate` script to `package.json`.
- Implemented PII sanitization for IPs, emails, and hex keys.
- Configured aggregation to prioritize critical/high severity issues.
2026-01-18 06:06:37 +00:00
thePR0M3TH3AN a82c66b760 Merge pull request #1301 from PR0M3TH3AN/fix-hashtag-reset-crash-11374645465269223196
Fix hashtag preferences crash and prevent data reset on load failure
2026-01-17 23:51:18 -05:00
google-labs-jules[bot] cc66fafcdd fix(hashtag-preferences): prevent crash and data loss on load failure
- fix `TypeError: Assignment to constant variable` in `HashtagPreferencesService.load` by changing `const` to `let` for `wasLoadedForUser`.
- Prevent existing cached preferences from being wiped when remote decryption fails.
2026-01-18 04:49:07 +00:00
thePR0M3TH3AN b2d3ae3286 Merge pull request #1300 from PR0M3TH3AN/feat/optimistic-filtered-videos-cache-11029654294546507650
feat: optimistic persistent filtered-videos cache
2026-01-17 23:33:11 -05:00
google-labs-jules[bot] d4779a0825 feat: optimistic persistent filtered-videos cache (localStorage) for faster initial grid render
- Adds `STORAGE_KEY_FILTERED_VIDEOS` and `MAX_PERSISTED_VIDEOS` constants.
- Implements `loadPersistedFilteredVideos` and `persistFilteredVideos` helper methods.
- Updates `loadVideos` to load persistent videos optimistically and emit "persistent-cache" updates.
- Ensures all persistent data is strictly re-filtered (blocked authors, NSFW, access control) before use.
- Skips emitting empty in-memory cache updates if optimistic data is available to prevent UI flashing.
- Persists fresh filtered results in `applyAndNotify` to keep cache up-to-date.
- Adds comprehensive verification script logic (tested via `scripts/verify-optimistic-cache.mjs` before cleanup).
2026-01-18 04:31:43 +00:00
thePR0M3TH3AN e1a12868e0 Merge pull request #1298 from PR0M3TH3AN/ai/refactor-torrent-status-20231027-751310548949696499
Refactor updateTorrentStatus to TorrentStatusController
2026-01-17 22:24:56 -05:00
thePR0M3TH3AN 2088234a3e Merge pull request #1297 from PR0M3TH3AN/ai/ci-health-20250212-3024044749559597461
CI Health: Fix flaky tests in comments and moderation services
2026-01-17 22:23:20 -05:00
thePR0M3TH3AN 7697a3ce2d Merge pull request #1296 from PR0M3TH3AN/fix-hashtag-prefs-profile-cache-16997779974733027289
Fix hashtag preferences loading and profile persistence issues
2026-01-17 22:21:58 -05:00
google-labs-jules[bot] 45b20bb58e refactor(ai): extract updateTorrentStatus from js/app.js (agent)
Moved torrent status update logic to `js/ui/torrentStatusController.js` to improve separation of concerns as per `AGENTS.md`. The controller accepts a `getVideoModal` accessor and an `onRemovePoster` callback to decouple it from direct `videoModal` or `Application` dependencies. Added unit tests in `tests/ui/torrentStatusController.test.mjs`.
2026-01-18 03:11:25 +00:00
google-labs-jules[bot] 7743572a22 chore(ai): CI health fixes (flaky tests) 2026-01-18 02:39:42 +00:00
google-labs-jules[bot] a2de2b550d Fix hashtag preferences loading and profile persistence issues
- Migrated Kind 0 profile metadata storage to unified `profileCache.js` with partitioning and persistence.
- Added `defaultDTag` for hashtag preferences in `cachePolicies.js` to ensure consistent key resolution.
- Updated `hashtagPreferencesService.js` to use `profileCache` and implemented legacy data migration.
- Added `handleEvent` to `NostrClient` to centrally ingest Kind 0 events into the cache.
- Updated `authService.js` and `cache.js` to delegate profile operations to the unified cache system.
- Added `PROFILE_METADATA` schema to `nostrEventSchemas.js`.
2026-01-18 02:09:04 +00:00
thePR0M3TH3AN dedc2aefa5 Merge pull request #1295 from PR0M3TH3AN/jules-7892265785675999514-a989ee17
feat(ui): update zap dialog to show "Done" button on success
2026-01-17 21:00:26 -05:00
google-labs-jules[bot] b83f5009e4 I have updated the zap dialog to display the "Done" button on success.
I modified `js/channelProfile.js` to implement the logic that toggles the "Send" button to "Done" and closes the dialog when clicked. Additionally, I updated `js/ui/zapController.js` to prevent the form from resetting entirely on success, which preserves receipts; instead, it now manually clears the comment and sets the completed state.

These changes ensure consistent "Done" button behavior across both the Channel Profile and Video Modal zap interfaces. I also included minor `package.json` updates for linting dependencies.
2026-01-18 01:58:56 +00:00
thePR0M3TH3AN 983f67fa1b Merge pull request #1294 from PR0M3TH3AN/jules-595217453721279420-8ff8ddbe
fix(moderation): remove verbose trusted mute log
2026-01-17 20:22:10 -05:00
google-labs-jules[bot] e43dbf77cd remove verbose trusted mute log from moderationService
This change removes a verbose log message that was cluttering the console output during trusted mute event ingestion. The removal of this log line does not affect any functionality.
2026-01-18 01:21:12 +00:00
thePR0M3TH3AN f9b445370b Merge pull request #1293 from PR0M3TH3AN/ai/todo-triage-YYYYMMDD-5266633771029061307
Triage TODOs and track tag preference filtering tasks
2026-01-17 20:10:53 -05:00
google-labs-jules[bot] 3f20ea0b5f chore(ai): triage TODOs and create tracking issue
Scanned the repository for TODO/FIXME/XXX comments and identified non-trivial items related to tag preference filtering. Since no trivial fixes were found, I have documented the findings in `artifacts/todos.txt` and created a tracking issue document `artifacts/todo_issues.md` outlining the necessary architectural changes in the feed engine.

This work prepares the ground for moving preference-aware filtering from the view layer to the feed engine pipeline.
2026-01-18 01:04:35 +00:00
thePR0M3TH3AN 31946ad470 Merge pull request #1292 from PR0M3TH3AN/ai/report-20260118-14555220432416113661
docs: add weekly agent report for 2026-01-18
2026-01-17 19:47:36 -05:00