mirror of
https://github.com/purrgrammer/grimoire.git
synced 2026-04-13 00:46:54 +02:00
e04d691f1f8633bd97f189ba2a9f3cbd4a65dc6c
The issue was that on page reload: 1. EventStore starts empty 2. loadInboxRelays() only subscribed to EventStore, not fetching from relays 3. startSync() with no inbox relays passed empty array to subscribeToGiftWraps() 4. subscribeToGiftWraps() only fetched from relays if relays.length > 0 Fixes: - Add fetchInboxRelayList() to actively fetch kind 10050 from user's outbox relays (or aggregator relays as fallback) - Use AGGREGATOR_RELAYS as fallback when no inbox relays configured - When inbox relays are discovered, restart sync with the new relays - Always request gift wraps from relays (inbox or aggregator fallback) - Add console logging for debugging relay operations
Grimoire
A Nostr protocol explorer and developer tool with a tiling window manager interface.
Features
- Tiling Windows - Each window is a Nostr "app" (profile viewer, event feed, NIP docs, etc.)
- Command Palette - Unix-style commands via
Cmd+Kto open apps and navigate - Multi-workspace - Virtual desktops with independent layouts
- Real-time - Reactive event subscriptions with automatic updates
Stack
React 19, TypeScript, Vite, TailwindCSS, Jotai, Dexie, Applesauce
Getting Started
npm install
npm run dev
Scripts
| Command | Description |
|---|---|
npm run dev |
Start dev server |
npm run build |
Build for production |
npm test |
Run tests in watch mode |
npm run lint |
Lint code |
npm run format |
Format code |
License
MIT
Languages
TypeScript
98.9%
CSS
0.8%
JavaScript
0.3%