Skip to content
Robert C. Martin edited this page Aug 10, 2023 · 174 revisions

This is a list of stories that I'd like to see implemented in more-speech. Feel free post issues recommending others.

  • Don't scroll tree on new events if the insertion point is not on screen.
  • If name is dudx-nnn or dud-nnn and there is a display name, use the display name.
  • If there are too many replies to fit in the >replies menu, then add a "More..." menu that pops up a scrolling listbox.
  • When adding a note to a tab, fetch and add all the notes that currently exist in the thread.
  • Expand the tab filters so that users can be included for being authors, replied to, or simply mentioned.
  • Kind specific relays like purplepag.es
  • Back doesn't work properly if you click on a nostr:note reference. It doesn't push the current on the back stack.
  • Show citings in the article info panel and denote them as nostr:nevents in the header of the reply.
  • Hard Blocking
  • Linkify things in the user profile window.
  • Hashtag/keyword/regex filters in the tabs?
  • Permanent event. A tab named "Permanent" whose "selected" events will not be deleted from the database during a "compress".
  • Create "mention lists" and allow them to be used when sending events. They add all the names to p tags in the event. These could be "permanent" events that you can reply to.
  • Figure out what to do with NIP-19 TLVs like nprofile, nrelay and naddr. Also figure out what to do with the relays and other fields in nevent.
  • allow 'trust' menu items in mentions.
  • Should PoW be done in a future so that the UI does not pause?
  • Implement NIP 65 Relay Metadata (kind 10002).
  • At startup, read in events from web of trust before reading in everything.
  • Only load contacts at startup if there are no contacts already?
  • Use the backlog count to throttle the contact-list loading at startup.
  • Implement NIP-05 and use nostrplebs.com.
  • Only put roots in the article tree. When opened, open the whole thread. Any unread message in the thread makes the root bold.
  • Allow a hot key to open a thread.
  • Pull contacts in batches by walking backwards in time by an hour or so. This will prevent the flooding of kind:3 messages and prevent massive event backlogs that slow everything down.
  • Database cleanup.
    • A configuration parameter days-to-keep should specify how long events should be kept in the database. An hourly process should evict events older than that.
    • Profiles should be stamped with the time of their reception. Profiles older than keep-profiles-for-days should be evicted on an hourly basis.
    • Contact lists for evicted profiles should also be evicted.
  • Relays connected status can be permanent or hourly. Hourly relays are read once per hour, since the previous hour until now, unless their read status is no-read. They are closed five minutes after reading begins or after EOSE.
  • Events from trusted users may suggest relays. Those relays should be set to read-trusted and hourly.
  • Add keyboard shortcuts.
  • Move other config variables to user-configuration: e.g. days-to-read.
  • Add relays from all sources of relay recommendations, e.g. contact lists and other events.
  • In article-tree/should-add-event? explicit selection of an event should override generic blocking of an event. e.g. if some id is specifically selected, then a regular expression match should not block it.
  • Add regular expression matching to the selected and blocked sections of tabs. The regular expression should be applied to the profile name of the sending user. (e.g. #"tostr_.*")
  • Allow selection and copy in get info window when right clicking an article in the article tree.
  • Allow formatting of articles using markdown.
  • Search function searches profiles, messages, subjects, nicknames, pubkeys, ids, tags, etc.
  • Make "include-reply" an option of some kind.
  • Reformat the article info panel, and allow it to resize without killing the fields if they get too small.
  • Need to show tab filters using nicknames and event abbreviations, probably by right clicking the tab and selecting info or something.
  • Open whole thread instead of one folder at a time. At least an option.
  • Right click on Author in the article window, to add the author to the :selected or :blocked field of a tab. This is probably some kind of hierarchical menu, or maybe a dialog box.
  • Right click on the id of an article in the article window to add the article id to the :selected or :blocked field of a tab. Put up a warning if the article is not at the root of a thread; but allow it if the user clicks OK.
  • Are there other queries that could be built into tabs?
  • Implement NIP-08 mentions of events by allowing the user to right click on an event in the header tree and select "insert reference" from a popup menu -- or something like that.
  • Right click on event in header tree and select "display in new window" and then display that event in a floating window. Or something like that.
  • Improve the usage of sdefs in the code. Right now they are only partially written, and are never checked except in some tests.
  • Clean up or replace the Java Schnorr library.
  • The threading in the header tree needs rethinking. Probably we want to restrict events to no more than two appearances in the tree. One at the leaf of the tree (without the folder icon) and if it is a reply, then once in the thread of the root of that reply. Right now events appear at every level within the reply chain. (let the reader understand.)

Bugs

  • Add Article to Tab does not seem to build the tree structure of articles.

Ideas to Ponder

  • a permanent "trusted" tab, which contains all trusted users and cannot be modified or deleted.

Done

  • 14 Jul 2023 Create a "trusted" tab.
  • 11 Jul 2023 Write the tabs file out whenever a new tab is changed.
  • 08 Jul 2023 Add the undo manager to the text window for creating notes.
  • 07 Jul 2023 Clicking on a selected article does not put the article into the article window.
  • 06 Jul 2023 In 'users window' allow untrusting of a batch of users by shift-click or command-click.
  • 05 Jul 2023 In 'get info' for a user, show list of their trusted users.
  • 29 Jun 2023 add X (clear) button for the find field above the article list.
  • 01 Jun 2023 User Profile should have a way to add the user to a tab (or new tab).
  • 23 May 2023 WalletConnect NIP-47
  • 19 May 2023 Allow lud06 zaps.
  • 18 May 2023 Show mentions in the article info panel, and allow them to be individually removed from replies.
  • 12 May 2023 Password protect the private key.
  • 10 May 2023 Put "Trust" button into the user Get Info dialog. Allow pet name change.
  • 10 May 2023 NIP-19 TLVs for nevent. A minimal implementation.
  • 08 May 2023 when reconstructing nostr:npub into a name, make sure to use the petname.
  • 02 May 2023 Implement Nip-11 to get Relay attributes.
  • 30 Apr 2023 Implement un-trust.
  • 30 Apr 2023 Show list of trusted users.
  • 24 Apr 2023 Hover over @ links and pop up information about the referent. e.g. profile or content summary. (changed to click).
  • 24 Apr 2023 Implement `nostr:note1 bech32 references to article ids (and the whole NIP-27 thing...).
  • 02 Mar 2023 when using @ it would be good to differentiate between users and events. Right now they are considered to be users, and profiles are added for them. We could tell if they were events by looking in the event map. Then we'd use e tags instead of p tags for them.
  • 02 Mar 2023
    • Allow @npubs.
    • When a relay reconnects, request events since the last time an event was successfully received.
    • Don't allow relays to retry once we have explicitly closed them.
  • 23 Feb 2023 Periodically check relays that have .outputClosed, and reconnect them.
  • 21 Feb 2023 Add search in article tree window.
  • 19 Feb 2023 FIXED--Deleting tabs breaks the index in the user-data in the jlabel tab name.
  • 17 Feb 2023 Don't restart when adding users/events to tabs. Just pull the events from the DB and load them into the selected tab.
  • 16 Feb 2023 Click on @ in article window will select that article.
  • 15 Feb 2023 At startup, read in events that have been read going back N days.
  • 15 Feb 2023 Name the recipient of a DM if we sent it.
  • 13 Feb 2023 Use the backlog count to throttle the database loading at startup.
  • 10 Feb 2023 Permanently connected relays should restart if they close. Probably a retry algorithm that backs off over time.
  • 10 Feb 2023 Relays read status can be read-all, read-trusted, read-web-of-trust, no-read.
  • 09 Feb 2023 Design the UI for kind 7 "Reactions" and then implement.
  • 27 Sep 2022 When reading in saved events the functions load-events and events/add-event strip off all but the first relay. Fix this.
  • 20 Sep 2022 Right click on article to send DM to author.
  • 20 Sep 2022 Add font-size to config.
  • 19 Sep 2022 Added encrypted Direct Messages NIP-04.
  • 17 Aug 2022 Send pings to relays every 30s.
  • 16 Aug 2022 Sanity check the relay urls. No localhost, no malformed urls, etc.
  • 15 Aug 2022 Fix issue 18, NPE when clicking reply when no event is selected.
  • 14 Aug 2022 Some way to use @ with raw pubkeys.
  • 14 Aug 2022 Protect against malformed tags (e.g. :OPENPGP:
  • 10 Aug 2022 The menu that adds an article to a tab should add the root, not the article id.
  • 09 Aug 2022 use trusted names in @ and #[] processing.
  • 05 Aug 2022 Thanks @koonopek! Right clicking an id in the article info panel should pop up a menu with Copy to Clipboard.
  • 04 Aug 2022 Show second level trusted users. (users trusted by users I trust). "someguy<-someguyITrust"
  • 03 Aug 2022 Added web-of-trust. Read-in kind-3, display untrusted in parents. Right click to trust.
  • 31 July 2022 :import-metadata options in the user-configuration file to read in all kind-0 messages.
  • 30 July 2022 Added :export-user-profile group to user-configuration to allow the user to specify the number of days between sending profile metadata. Also made sure that profile metadata will be sent if the keys file is modified.
  • 30 July 2022 Migration 8, a new 'configuration' file that gets read in when more-speech starts and that are used for infrequently changed user options.
  • 28 July 2022 Right click on article in article tree brings up menu for selecting and blocking authors and articles in tabs.
  • 28 July 2022 Implement some convenient way to add new tabs, and delete old tabs.
  • 28 July 2022 Change name of tab.
  • 23 July 2022 events/fix-name don't save the shortened name in the profile, only shorten the name when displaying it. Ugh.
  • 23-July 2022 generate pubkey once, after that trust the pubkey that's in the keys file. Don't generate it again.
  • 23-July 2022 When a profile arrives, check usernames against others, and add a disambiguator number e.g. -1 or something.
  • 20-July 2022 Message file is broken up into daily files. config/days-to-read tells us now many days to read on startup. Only changed days are written upon close.
  • 17 July 2022 FIXED: Sometimes when you hit the reply button, the article it loads into the reply window is not the article being displayed in the article window. I presume it is loading a previously selected article. This may have something to do with the back button.
  • 16 July 2022 Migration 6. Changed tabs file to tab-list and refactored all code to conform.
  • 10 July 2022 by @sathwikmatsa Implement clickable links in the article window. i.e. when an event contains a link, the user should be able to click it.
  • 05 July 2022 Migration 5. Replace nicknames with profiles.
  • 17 June 2022 The 'selected' ids in the tabs file should also select for 'p' tags.
  • 17 June 2022 Save events to messages/message-file. Read in at startup. Set subscription time to just before last old message.
  • 16 June 2022 Word wrap the edit window.
  • 12 June 2022 Add who and when to the content of a reply.
  • 08 June 2022 Don't wrap lines that begin with >, in order to preserve the structure of a reply.
  • 07 June 2022 Create migration 1->2, fix names in the nicknames file to match the length and character constraints.
  • 06 June 2022 Create the first migration 0->1, which automatically build the private directory, generates keys and a temporary user name.
  • 06 June 2022 Ensure :all tab is present.
  • 06 June 2022 Added the migration framework.
  • 05 June 2022 Implement NIP-08 to handle mentions of users. Use the @xxx syntax to mean a mention of a user.
  • 04 June 2022 Got incoming #[n] mentions working for 'p' tags. NIP-08. They are replaced with @nickname or @id:nnnn.
  • 03 June 2022 Check the signatures of incoming messages. This is commented out right now because it is slow. A better Schnorr library may be necessary.
  • 30 May 2022 We need a 'back' button. So after clicking on citing or root a few times you can go back. That shouldn't be hard. <grin> Actually it was a nightmare.
  • 28 May 2022 Need a way to see the debug details of an event. Right click on event -> show-details?? Something like that.
  • 31 May 2022 Gather new relays from "e" and "p" tags and add them to the relays list, with R and W set to false. Save the relays list upon shutdown.
Clone this wiki locally