Add changelog and roadmap files

This commit is contained in:
Jonathan Staab 2023-02-15 10:27:49 -06:00
parent db0f995a3d
commit 9279dd29e9
3 changed files with 222 additions and 214 deletions

138
CHANGELOG.md Normal file
View File

@ -0,0 +1,138 @@
# Changelog
## 0.2.12
- [x] Stream likes and replies in lazily
- [x] Add relay symbol to notes which is clickable to view relays
- [x] Switch to publishing events optimistically
- [x] Reduce how many relays replies are published to
- [x] Re-work thread layout
- [x] Color code relays
- [x] Show relay status based on stats not current connection status
- [x] Auto-mention person when creating a note from their profile page
- [x] Make chat header overlap main header to save space
## 0.2.11
- [x] Converted threshold to percentage
- [x] Fixed slow leaving/joining chat rooms
- [x] Switch to localforage from dexie, fixing firefox/safari private windows
- [x] Tweaks to link parsing
- [x] Use write relays to publish events more intelligently
- [x] Add followers/follows lists
## 0.2.10
- [x] Fixed likes not showing up in alerts
- [x] Raised threshold for pool to 2 so we don't have such a small amount of results
- [x] Wait for profile info on login, navigate to network by default
- [x] Fix mention selection, inheritance, and inclusion in notes
- [x] Parse links without http at the beginning
- [x] Clean up back button in combination with modals
- [x] Re-design relays page and person relays list with metadata
- [x] Add relay selection to new note screen
## 0.2.9
- [x] Fixed a bug in pool.subscribe which was causing requests to wait for all connections
- [x] Added typescript with pre-commit hook
- [x] Fixed layout for chat, person pages
- [x] Parse relays for kind 3
## 0.2.8
- [x] Stop showing replies at top level in feeds to make it more interesting
- [x] Fix a bug that was preventing people from sending a message
- [x] Stop sending IP addresses to bugsnag
- [x] Fix some layout bugs
## 0.2.7
- [x] Added direct messages and group chat
- [x] Sped up feeds by requesting less context
- [x] Sped up alerts by storing them in dexie
- [x] Fixed feeds so they don't jump around
- [x] Switched from time-based to limit-based cursors
- [x] Added batching for note context to speed things up
- [x] Fixed support for old-style reply identification
- [x] Improved reliability of event retrieval by following relay hints
- [x] Added default petnames and relays
- [x] Added support for user banners
- [x] Added recommended relay to tags
- [x] Added topics to note composition
- [x] Added a way to remove mentions from replies
- [x] Coracle now publishes user relays using kind 10001 per NIP 23
- [x] Menu now stays open on larger screens
- [x] Standardized some layout components
- [x] Added support for profile banner images
- [x] Support connection status/speed indication on relays
- [x] Add toggle to enable writing to a connected relay
- [x] Re-designed login and relay pages
- [x] Use private key login only if extension is not enabled
- [x] Add pubkey login support
- [x] Removed dexie for most things
- [x] Added support for bech32 entities
- [x] Auto-disconnect/reconnect to spare relay resources
- [x] Added automatic relay discovery
- [x] Added error tracking with bugsnag
- [x] Upgraded nostr-tools
- [x] Added support for NIP-05 verfication
- [x] Added analytics and error reporting (opt out supported)
## 0.2.6
- [x] Add support for at-mentions in note and reply composition
- [x] Improve cleanup on logout
- [x] Move add note button to be available everywhere
- [x] Fix reporting relay along with tags
- [x] Add support for bech32 keys
- [x] Add second order follows to network tab
- [x] Add favicon and social media preview image
- [x] Extract urls in person bios
- [x] Add follow/follower counts
## 0.2.5
- [x] Batch load context for feeds
## 0.2.4
- [x] Fix reactions - livequery is required in order to listen for changes
## 0.2.3
- [x] Fix reactions - we'll show new reactions optimistically to avoid complexity in listeners
## 0.2.2
- [x] Show notification for new notes rather than automatically adding them to the feed
- [x] Improve slow relay pruning by using a timeout for each relay
- [x] Re-work feed loading - go to network first and fall back to cache to ensure results that are as complete as possible
- [x] Slightly improved context fetching to reduce subscriptions
- [x] Split person feeds out into separate components
- [x] Add timeout in scroller to keep polling for new results
- [x] Fix fall-through on user badge click on alerts page
- [x] Fix deletion of old events, be more aggressive
## 0.2.1
- [x] Exclude people from search who have no profile data available
- [x] Speed up note retrieval by sorting first when the filter isn't restrictive
- [x] Only show a certain number of replies on popular notes, with a link at the bottom showing total replies
- [x] Refine algorithm for which relays to drop when they don't send an eose. This helps avoid the "we couldn't find this note" error message on the note detail, since we were giving up too early.
- [x] Improve url detection and shortening
## 0.2.0
- [x] Completely re-worked data synchronization layer, moving from naive just-in-time requests to background listeners, loaders, and a local copy stored in dexie. Events and tags, but not people are deleted from the database on logout, and old events are periodically purged.
- [x] Added alert badge and page.
- [x] Improved relay page. Suggestions are now taken from
- [x] Removed chat to keep scope of work smaller. Let me know if you'd like to see that come back.
- [x] Split tabs out into separate components
- [x] Removed dispatch, added cmd instead
- [x] Added image previews in addition to link previews
- [x] Fixed infinite scrolling
- [x] Removed cursor/listener abstractions
- [x] Added some default pubkeys
- [x] Wait for some, not all relays to send eose to keep things fast
- [x] General refactoring and bugfixing

237
README.md
View File

@ -8,220 +8,29 @@ If you like Coracle and want to support its development, you can donate sats via
# Features
- [x] Chat
- [x] Threads/social
- [x] Search
- [x] Profile search
- [x] Login via extension
- [x] Profile sharing via QR codes
- [x] NIP 05 verification
- [x] Bech32 entity search
- [x] Notifications
- [x] Link previews
- [x] Add notes, follows, likes tab to profile
- [x] Mentions
- [x] Persist and load relay list
- [x] NIP 05
- [x] Direct messages using NIP 04
- [x] Chat and direct messages
- [x] Note composition with mentions and topics
- [x] Follow and follower lists
- [x] Profile pages, follow/unfollow, mute
- [x] Persistent color-coded relay list
- [x] Smart relay selection and display
- [x] Connection quality information
- [ ] Invoice, bech32 entity, mention, link, image, and video rendering
- [ ] Installable as a progressive web app
- [ ] Feeds customizable by person, relay, and topic
- [ ] Media uploads
- [ ] Lightning tips and zaps
- [ ] Keyword mutes
- [ ] Exportable copy of all user events
- [ ] Reporting and basic distributed moderation
- [ ] Content and person recommendations
- [ ] Profile and content search
# Snacks
- [ ] Pinned posts ala snort
- [ ] Add nip05 verification on feed
- [ ] Linkify follow/followers numbers
- [ ] Support key delegation
- https://github.com/nbd-wtf/nostr-tools/blob/master/nip26.ts
- [ ] Add keyword mutes
- [ ] Add encrypted settings storage using nostr events
- [ ] Attachments (a tag w/content type and url)
- [ ] Linkify bech32 entities w/ NIP 21 https://github.com/nostr-protocol/nips/blob/master/21.md
- [ ] Sign in as user with one click to view things from their pubkey's perspective - do this with multiple accounts
- nevent1qqsyyxtrhpsqeqaqgucd6uzpyh8eq2hkfgr0yzr7ku7tgyl5cn9jw5qpz3mhxue69uhhyetvv9ujumn0wd68ytnzvuq3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7l564wx
# Missions
- [ ] Topics/hashtag views
- [ ] Support paid relays
- atlas.nostr.land
- eden.nostr.land
- [ ] Image uploads
- Default will charge via lightning and have a tos, others can self-host and skip that.
- Add banner field to profile
- Linode/Digital Ocean
- https://github.com/brandonsavage/Upload
- https://github.com/seaweedfs/seaweedfs
- https://github.com/cubefs/cubefs
- [ ] Support relay auth
- [ ] Support invoices, tips, zaps https://twitter.com/jb55/status/1604131336247476224
- nevent1qqsd0x0xzfwtppu0n52ngw0zhynlwv0sjsr77aflcpufms2wrl3v8mspr9mhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv9uqs7amnwvaz7tmwdaehgu3wd4hk6d7ewgp
- [ ] Separate settings for read, write, and broadcast relays based on NIP 65
- [ ] Release to android
- https://svelte-native.technology/docs
- https://ionic.io/blog/capacitor-everything-youve-ever-wanted-to-know
- [ ] Add no-relay gossip
- Capture certain events in a local db
- File import/export from db, NFC transfer
- Save user notes to db
# Maintenance
- [ ] Throttle connection attempts with bad relays
- [ ] Stop using until to paginate, we skip a ton of stuff. Or use until per relay?
- Or just stop doing loading and listen
- [ ] If the latest message in a dm was the user, don't show notification
- [ ] Normalize relay urls (lowercase, strip trailing slash)
- [ ] Use nip 56 for reporting
- https://github.com/nostr-protocol/nips/pull/205#issuecomment-1419234230
- [ ] Change network tab to list relays the user is connected to
- [ ] Sync mentions box and in-reply mentions
- [ ] Channels
- [ ] Damus has chats divided into DMs and requests
- [ ] Ability to leave/mute DM conversation
- [ ] Add petnames for channels
- [ ] Add notifications for chat messages
# Current
- [ ] Make feeds page customizable. This could potentially use the "lists" NIP
- nevent1qqspjcqw2hu5gfcpkrjhs0aqvxuzjgtp50l375mcqjfpmk48cg5hevgpr3mhxue69uhkummnw3ez6un9d3shjtnhd3m8xtnnwpskxegpzamhxue69uhkummnw3ezuendwsh8w6t69e3xj7spramhxue69uhkummnw3ez6un9d3shjtnwdahxxefwv93kzer9d4usz9rhwden5te0wfjkccte9ejxzmt4wvhxjmcpr9mhxue69uhkummnw3ezuer9d3hjuum0ve68wctjv5n8hwfg
- [ ] Click through on relays page to view a feed for only that relay.
- [ ] Custom views should combine pubkeys, relays, and topics
- [ ] Likes list on note detail. Maybe a sidebar or header for note detail page?
- [ ] Fix anon/new user experience
- [ ] Initial user load doesn't have any relays, cache user or wait for people db to be loaded
- [ ] Are write relays the only ones that matter? User read relays only matter for global feed, or where there's no relay hints available. But if relays are navigable, this is unnecessary.
- [ ] Fix bugs
# Changelog
## 0.2.12
- [x] Stream likes and replies in lazily
- [x] Add relay symbol to notes which is clickable to view relays
- [x] Switch to publishing events optimistically
- [x] Reduce how many relays replies are published to
- [x] Re-work thread layout
- [x] Color code relays
- [x] Show relay status based on stats not current connection status
- [x] Auto-mention person when creating a note from their profile page
- [x] Make chat header overlap main header to save space
## 0.2.11
- [x] Converted threshold to percentage
- [x] Fixed slow leaving/joining chat rooms
- [x] Switch to localforage from dexie, fixing firefox/safari private windows
- [x] Tweaks to link parsing
- [x] Use write relays to publish events more intelligently
- [x] Add followers/follows lists
## 0.2.10
- [x] Fixed likes not showing up in alerts
- [x] Raised threshold for pool to 2 so we don't have such a small amount of results
- [x] Wait for profile info on login, navigate to network by default
- [x] Fix mention selection, inheritance, and inclusion in notes
- [x] Parse links without http at the beginning
- [x] Clean up back button in combination with modals
- [x] Re-design relays page and person relays list with metadata
- [x] Add relay selection to new note screen
## 0.2.9
- [x] Fixed a bug in pool.subscribe which was causing requests to wait for all connections
- [x] Added typescript with pre-commit hook
- [x] Fixed layout for chat, person pages
- [x] Parse relays for kind 3
## 0.2.8
- [x] Stop showing replies at top level in feeds to make it more interesting
- [x] Fix a bug that was preventing people from sending a message
- [x] Stop sending IP addresses to bugsnag
- [x] Fix some layout bugs
## 0.2.7
- [x] Added direct messages and group chat
- [x] Sped up feeds by requesting less context
- [x] Sped up alerts by storing them in dexie
- [x] Fixed feeds so they don't jump around
- [x] Switched from time-based to limit-based cursors
- [x] Added batching for note context to speed things up
- [x] Fixed support for old-style reply identification
- [x] Improved reliability of event retrieval by following relay hints
- [x] Added default petnames and relays
- [x] Added support for user banners
- [x] Added recommended relay to tags
- [x] Added topics to note composition
- [x] Added a way to remove mentions from replies
- [x] Coracle now publishes user relays using kind 10001 per NIP 23
- [x] Menu now stays open on larger screens
- [x] Standardized some layout components
- [x] Added support for profile banner images
- [x] Support connection status/speed indication on relays
- [x] Add toggle to enable writing to a connected relay
- [x] Re-designed login and relay pages
- [x] Use private key login only if extension is not enabled
- [x] Add pubkey login support
- [x] Removed dexie for most things
- [x] Added support for bech32 entities
- [x] Auto-disconnect/reconnect to spare relay resources
- [x] Added automatic relay discovery
- [x] Added error tracking with bugsnag
- [x] Upgraded nostr-tools
- [x] Added support for NIP-05 verfication
- [x] Added analytics and error reporting (opt out supported)
## 0.2.6
- [x] Add support for at-mentions in note and reply composition
- [x] Improve cleanup on logout
- [x] Move add note button to be available everywhere
- [x] Fix reporting relay along with tags
- [x] Add support for bech32 keys
- [x] Add second order follows to network tab
- [x] Add favicon and social media preview image
- [x] Extract urls in person bios
- [x] Add follow/follower counts
## 0.2.5
- [x] Batch load context for feeds
## 0.2.4
- [x] Fix reactions - livequery is required in order to listen for changes
## 0.2.3
- [x] Fix reactions - we'll show new reactions optimistically to avoid complexity in listeners
## 0.2.2
- [x] Show notification for new notes rather than automatically adding them to the feed
- [x] Improve slow relay pruning by using a timeout for each relay
- [x] Re-work feed loading - go to network first and fall back to cache to ensure results that are as complete as possible
- [x] Slightly improved context fetching to reduce subscriptions
- [x] Split person feeds out into separate components
- [x] Add timeout in scroller to keep polling for new results
- [x] Fix fall-through on user badge click on alerts page
- [x] Fix deletion of old events, be more aggressive
## 0.2.1
- [x] Exclude people from search who have no profile data available
- [x] Speed up note retrieval by sorting first when the filter isn't restrictive
- [x] Only show a certain number of replies on popular notes, with a link at the bottom showing total replies
- [x] Refine algorithm for which relays to drop when they don't send an eose. This helps avoid the "we couldn't find this note" error message on the note detail, since we were giving up too early.
- [x] Improve url detection and shortening
## 0.2.0
- [x] Completely re-worked data synchronization layer, moving from naive just-in-time requests to background listeners, loaders, and a local copy stored in dexie. Events and tags, but not people are deleted from the database on logout, and old events are periodically purged.
- [x] Added alert badge and page.
- [x] Improved relay page. Suggestions are now taken from
- [x] Removed chat to keep scope of work smaller. Let me know if you'd like to see that come back.
- [x] Split tabs out into separate components
- [x] Removed dispatch, added cmd instead
- [x] Added image previews in addition to link previews
- [x] Fixed infinite scrolling
- [x] Removed cursor/listener abstractions
- [x] Added some default pubkeys
- [x] Wait for some, not all relays to send eose to keep things fast
- [x] General refactoring and bugfixing
You can find a more complete changelog [here](./ROADMAP.md).

61
ROADMAP.md Normal file
View File

@ -0,0 +1,61 @@
# Current
- [ ] Make feeds page customizable. This could potentially use the "lists" NIP
- nevent1qqspjcqw2hu5gfcpkrjhs0aqvxuzjgtp50l375mcqjfpmk48cg5hevgpr3mhxue69uhkummnw3ez6un9d3shjtnhd3m8xtnnwpskxegpzamhxue69uhkummnw3ezuendwsh8w6t69e3xj7spramhxue69uhkummnw3ez6un9d3shjtnwdahxxefwv93kzer9d4usz9rhwden5te0wfjkccte9ejxzmt4wvhxjmcpr9mhxue69uhkummnw3ezuer9d3hjuum0ve68wctjv5n8hwfg
- [ ] Click through on relays page to view a feed for only that relay.
- [ ] Custom views should combine pubkeys, relays, and topics
- [ ] Likes list on note detail. Maybe a sidebar or header for note detail page?
- [ ] Fix anon/new user experience
- [ ] Initial user load doesn't have any relays, cache user or wait for people db to be loaded
- [ ] Are write relays the only ones that matter? User read relays only matter for global feed, or where there's no relay hints available. But if relays are navigable, this is unnecessary.
- [ ] Fix bugs on bugsnag
# Snacks
- [ ] Pinned posts ala snort
- [ ] Support key delegation
- https://github.com/nbd-wtf/nostr-tools/blob/master/nip26.ts
- [ ] Add keyword mutes
- [ ] Add encrypted settings storage using nostr events
- [ ] Attachments (a tag w/content type and url)
- [ ] Linkify bech32 entities w/ NIP 21 https://github.com/nostr-protocol/nips/blob/master/21.md
- [ ] Sign in as user with one click to view things from their pubkey's perspective - do this with multiple accounts
- nevent1qqsyyxtrhpsqeqaqgucd6uzpyh8eq2hkfgr0yzr7ku7tgyl5cn9jw5qpz3mhxue69uhhyetvv9ujumn0wd68ytnzvuq3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7l564wx
# Missions
- [ ] Topics/hashtag views
- [ ] Support paid relays
- atlas.nostr.land
- eden.nostr.land
- [ ] Image uploads
- Default will charge via lightning and have a tos, others can self-host and skip that.
- Add banner field to profile
- Linode/Digital Ocean
- https://github.com/brandonsavage/Upload
- https://github.com/seaweedfs/seaweedfs
- https://github.com/cubefs/cubefs
- [ ] Support relay auth
- [ ] Support invoices, tips, zaps https://twitter.com/jb55/status/1604131336247476224
- nevent1qqsd0x0xzfwtppu0n52ngw0zhynlwv0sjsr77aflcpufms2wrl3v8mspr9mhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv9uqs7amnwvaz7tmwdaehgu3wd4hk6d7ewgp
- [ ] Separate settings for read, write, and broadcast relays based on NIP 65
- [ ] Release to android
- https://svelte-native.technology/docs
- https://ionic.io/blog/capacitor-everything-youve-ever-wanted-to-know
- [ ] Add no-relay gossip
- Capture certain events in a local db
- File import/export from db, NFC transfer
- Save user notes to db
# Maintenance
- [ ] If the latest message in a dm was the user, don't show notification
- [ ] Normalize relay urls (lowercase, strip trailing slash)
- [ ] Use nip 56 for reporting
- https://github.com/nostr-protocol/nips/pull/205#issuecomment-1419234230
- [ ] Sync mentions box and in-reply mentions
- [ ] Channels
- [ ] Damus has chats divided into DMs and requests
- [ ] Ability to leave/mute DM conversation
- [ ] Add petnames for channels
- [ ] Add notifications for chat messages