X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=ISSUES.org;h=69df28ecacaaae617af49238064dc6230ea0535e;hp=6a9d6669d0375dd2bafaeec464860ea4af61310d;hb=0d65ffa3ab238529a11d5c1a5d2dea5a6c27e9b4;hpb=5673f22d815514387a029844954c8ec4793f61e0 diff --git a/ISSUES.org b/ISSUES.org index 6a9d666..69df28e 100644 --- a/ISSUES.org +++ b/ISSUES.org @@ -1,10 +1,56 @@ -#+TITLE: Development notes/ideas +#+TITLE: Issues and Dev Notes #+TODO: OPEN(o!) | CLOSED(c!) INVALID(i@) #+STARTUP: logdrawer * Open Bugs +** OPEN Sanitize certificate names + :LOGBOOK: + - State "OPEN" from [2020-06-22 Mon 10:32] + :END: + +Currently things will break in undefined ways if a name is specified +that contains path separators and probably other characters that I +haven't thought of. This is dangerously unacceptable and needs to be +fixed right away. + +** OPEN Set timer after creating network process + +While the current order is necessary for synchronous socks +connections, it is unecessary for regular connections which have the +no-wait flag set. Furthermore, for these connections, having the +timer fire up early means that it interferes with requests for +user interaction that may appear during the initial connection setup. +E.g., asking for approval of uknown TLS certificates. + * Closed Bugs + +** CLOSED Relative Gemini links processed improperly +:LOGBOOK: +- State "CLOSED" from "OPEN" [2021-08-04 Wed 15:54] +- State "OPEN" from [2021-08-04 Wed 13:53] +:END: + +Skyjake's gemlog at gemini://skyjake.fi/gemlog/ demonstrate's the +issue. The link back to the root selector in the footer of that page +is a relative link to the parent directory, i.e. "..". For some +reason elpher combines this with the current URL and produces +"gemini://skyjake.fi" as the destination of the link. Such URLs +(i.e. without a filename) are allowed as input, but are assumed +to not appear internally. + +To see why the internal distinction is important, consider a page +where the current URL is gemini://example.com/a_page. The current +directory in this case is "/", meaning a relative link to +"another_page" results in a destination link of +"gemini://example.com/another_page. On the other hand, if the current +URL is gemini://example.com/a_page/, the same relative link is +interpreted as refering to gemini://example.com/a_page/another_page. + +The fix will be to ensure gemini://skyjake.fi/gemlog/.. collapses to +gemini://skyjake.fi/ rather than gemini://skyjake.fi. + + ** CLOSED Org mode faces are not present in recent emacs versions Even 26.1 doesn't seem to have these. This means that, for many @@ -84,54 +130,16 @@ this can happen: - [X] shift history out of node tree and into separate stack - [ ] make history stack variables buffer-local - [ ] have elpher-with-clean-buffer select appropriate buffer - -** OPEN Replace support for user-specified starting pages -This used to be available, but was removed during a refactor. - -** OPEN Allow for grouping of bookmarks -To support this I'd like to add a bookmark page specific -set of keybindings. Currently all bindings available on -the bookmark page are available everywhere else. But -expanding and collapsing bookmark groups sounds like it -might need more specific bindings. - -*** Priority bump <2020-05-31 Sun> - -As bookmark lists grow, some sort of grouping is becoming more and more -important. Furthermore, with this in place it would become feasible -(and I really suspect almost trivial) to implement an update-checking -system for chosen groups of bookmarks. - -For instance, we could prefetch content for each of the addresses within -a chosen group, indicating which had been changed since the last fetch. -(We could just store hashes of earlier content to detect changes.) - -The difficult thing to decide is how the UI for the new bookmark page -will work. It already has its own renderer, and we could easily stop -using the gopher directory line renderer in favour of something more -amenable to displaying the group information. Thus we're very free to -do whatever we like once we also have a special key map in place as well. - -I guess I need to look into what native widgets Emacs has for displaying -collapsable hierarchies. - -** OPEN Implement Gemini support [88%] -Here is the checklist of features required before release: -- [X] basic genimi transactions -- [ ] gemini transactions requiring client certificates -- [X] gemini input handling -- [X] gemini map files (text/gemini) -- [X] Support for plain text responses (text/*) -- [X] Support for image responses (text/image) -- [X] Support for mime-specified character encodeing -- [X] Saving responses to disk -- [X] Viewing raw responses - -The last few will be made infinitely easier if we factor the -gopher "getter" code differently. +** OPEN Make installing existing certificates easier + :LOGBOOK: + - State "OPEN" from "CLOSED" [2020-06-22 Mon 10:34] + :END: -** OPEN Add history browsing +It's naive to think that people don't have client certificates created +outside of elpher. Thus we need some easy way to "install" these +certificates, either by copying them or by referencing them in some +way. * Closed Enhancements @@ -219,3 +227,84 @@ occasionally pop up in termal windows. Lets leave it for now. cursor. A small amount of feedback could help with this. + +** CLOSED Implement Gemini support [100%] + :LOGBOOK: + - State "CLOSED" from "OPEN" [2020-06-20 Sat 22:32] + :END: + +Here is the checklist of features required before release: +- [X] basic genimi transactions +- [X] gemini transactions requiring client certificates +- [X] gemini input handling +- [X] gemini map files (text/gemini) +- [X] Support for plain text responses (text/*) +- [X] Support for image responses (text/image) +- [X] Support for mime-specified character encodeing +- [X] Saving responses to disk +- [X] Viewing raw responses + +The last few will be made infinitely easier if we factor the +gopher "getter" code differently. + + +** INVALID Allow for grouping of bookmarks +:LOGBOOK: +- State "INVALID" from [2021-07-23 Fri 10:10] \\ + Since switching to Emacs native bookmarks, this is no longer our concern. +:END: +To support this I'd like to add a bookmark page specific +set of keybindings. Currently all bindings available on +the bookmark page are available everywhere else. But +expanding and collapsing bookmark groups sounds like it +might need more specific bindings. + +*** Priority bump <2020-05-31 Sun> + +As bookmark lists grow, some sort of grouping is becoming more and more +important. Furthermore, with this in place it would become feasible +(and I really suspect almost trivial) to implement an update-checking +system for chosen groups of bookmarks. + +For instance, we could prefetch content for each of the addresses within +a chosen group, indicating which had been changed since the last fetch. +(We could just store hashes of earlier content to detect changes.) + +The difficult thing to decide is how the UI for the new bookmark page +will work. It already has its own renderer, and we could easily stop +using the gopher directory line renderer in favour of something more +amenable to displaying the group information. Thus we're very free to +do whatever we like once we also have a special key map in place as well. + +I guess I need to look into what native widgets Emacs has for displaying +collapsable hierarchies. + + +** CLOSED Add history browsing +:LOGBOOK: +- State "CLOSED" from "OPEN" [2021-07-23 Fri 10:09] +:END: + +** CLOSED Improve gemeini rendering speed +:LOGBOOK: +- State "CLOSED" from "OPEN" [2021-07-31 Sat 00:18] +:END: + +Currently pages with many links render extremely slowly. + +Example (>2000 links, 15s): gemini://rawtext.club/~sloum/geminilist/ + +It turns out that by far the main contributor to this is the use of +(url-port) in elpher-address-from-gemini-url. I encountered this +problem once before in elpher-remove-redundant-ports. This function +call is just incredibly slow for some bizarre reason. Happily, +(url-portspec) is functionally equivalent and is orders of magnitude +faster. With this replacement, loading the above page takes ~2s +and there aren't any other hotspots. + + +** CLOSED Replace support for user-specified starting pages +:LOGBOOK: +- State "CLOSED" from "OPEN" [2021-08-09 Mon 17:46] +:END: +This used to be available, but was removed during a refactor.