X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=ISSUES.org;h=cf082d1f679ab217c511614f476a956ebdbe2aee;hp=3ebb22dfd586acf03d34c4cb5f5d12bfc630547f;hb=b535280e99e34e1f018fb97ad6d41ff7564d2334;hpb=5f647f06dc9996dd9d8ef3af7dbcd1a7a673ed0a diff --git a/ISSUES.org b/ISSUES.org index 3ebb22d..cf082d1 100644 --- a/ISSUES.org +++ b/ISSUES.org @@ -1,7 +1,96 @@ -#+TITLE: Development notes/ideas -#+TODO: OPEN | CLOSED INVALID +#+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 Org mode faces are not present in recent emacs versions +Even 26.1 doesn't seem to have these. This means that, for many +users, elpher doesn't show any difference between any of the +item types. Not a major problem at all, but the faces we inherit +from should definitely be ones which have been present for much +longer. Perhaps the font lock mode faces are the way to go after +all. + +Update: changed all default faces to inherit from font-lock and basic faces. + +** CLOSED URL-centric addressing breaks bookmark file compatibility + +Need a way to allow people to rescue their old bookmark files +following this update. + +** CLOSED History loops <2019-11-08 Fri> + +Occasionally elpher gets stuck in a "history loop" where a +node is its own grandparent. Obviously this sucks, as history +is elpher's main mechanism for making gopherspace exploration +painless. + +I suspect the problem is in either ~elpher-visit-node~ or +~elpher-visit-parent~. + +Follow-up: this has been fixed by the new stack-based history system +in 2.5. + + +** CLOSED Redirects do not rewrite current address + +This is a bug, as gemini://blah.com/hi may get redirected +to gemini://blah.com/hi/, at which point link lines +of the form "=> there" should be interpreted as pointing +at gemini://blah.com/hi/there, while currently they are +interpreted as pointing at gemini://blah.com/there. + +** CLOSED History inconsistency when restarting elpher <2020-05-26 Tue> -* Enhancements +To reproduce: +1. open elpher and follow a few links until you're a handful of links below + the start page. +2. kill the elpher buffer with C-x k +3. Open elpher again, which will show the start page. +4. Press 'u' to go up. Elpher wiill respond stating that there is no previous page. +5. Press 'u' again. Elpher will then jump to the page that was open when + the buffer was originally killed. + +Expected behaviour: elpher should be once again at the bottom of the history +stack and should not remember the previous history. + +Observed behaviour: elpher _does_ remember the previous history. + +*** update <2020-05-27 Wed> +Turns out this was just because the `elpher` function was merely setting +the `elpher-current-page` variable to nil, then using `elpher-visit-page` +to visit the start page, resulting in the nil being pushed onto the existing +history stack. Because `elpher-visit-previous-page` always trys to pop from +this stack and tests whether the result is nil (which it is when the stack is empty), +the first "u" would result in the "no previous page" message but would still +pop the stack, meaning that subsequent "u" commands would succeed. + +The fix is just to zero out the history list in the `elpher` function just as +`elpher-current-page` is cleared. + +* Open Enhancements ** OPEN Allow multiple elpher buffers [33%] @@ -17,35 +106,18 @@ this can happen: ** 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. - -** 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 - -* Bugs - -* Completed improvements +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 ** CLOSED Turn on lexical scoping @@ -132,41 +204,59 @@ occasionally pop up in termal windows. Lets leave it for now. A small amount of feedback could help with this. -* Closed issues +** 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 -** 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 -users, elpher doesn't show any difference between any of the -item types. Not a major problem at all, but the faces we inherit -from should definitely be ones which have been present for much -longer. Perhaps the font lock mode faces are the way to go after -all. +The last few will be made infinitely easier if we factor the +gopher "getter" code differently. -Update: changed all default faces to inherit from font-lock and basic faces. -** CLOSED URL-centric addressing breaks bookmark file compatibility - -Need a way to allow people to rescue their old bookmark files -following this update. +** 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. -** CLOSED History loops <2019-11-08 Fri> +*** Priority bump <2020-05-31 Sun> -Occasionally elpher gets stuck in a "history loop" where a -node is its own grandparent. Obviously this sucks, as history -is elpher's main mechanism for making gopherspace exploration -painless. +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. -I suspect the problem is in either ~elpher-visit-node~ or -~elpher-visit-parent~. +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.) -Follow-up: this has been fixed by the new stack-based history system -in 2.5. +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 Redirects do not rewrite current address -This is a bug, as gemini://blah.com/hi may get redirected -to gemini://blah.com/hi/, at which point link lines -of the form "=> there" should be interpreted as pointing -at gemini://blah.com/hi/there, while currently they are -interpreted as pointing at gemini://blah.com/there. +** CLOSED Add history browsing +:LOGBOOK: +- State "CLOSED" from "OPEN" [2021-07-23 Fri 10:09] +:END: