X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=ISSUES.org;h=cf082d1f679ab217c511614f476a956ebdbe2aee;hp=650b1e384a7e25fc788a7541a8b4b09eefdab833;hb=b535280e99e34e1f018fb97ad6d41ff7564d2334;hpb=8e8ed1ed3ba6b66d6e91009589ac380a0314ca97 diff --git a/ISSUES.org b/ISSUES.org index 650b1e3..cf082d1 100644 --- a/ISSUES.org +++ b/ISSUES.org @@ -1,51 +1,68 @@ -#+TITLE: Development notes/ideas -#+TODO: OPEN | CLOSED INVALID +#+TITLE: Issues and Dev Notes +#+TODO: OPEN(o!) | CLOSED(c!) INVALID(i@) +#+STARTUP: logdrawer + +* Open Bugs -* Enhancements +** 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 Allow multiple elpher buffers [33%] +** OPEN Set timer after creating network process - Shouldn't be too hard, just need elpher-current-node to be -buffer-local and allow various buffer-switching procedures to -do something sensible. +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. -Here are the things that need to be implemented before -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. +* 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. -** 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. +Update: changed all default faces to inherit from font-lock and basic faces. -** OPEN Implement Gemini support [88%] +** CLOSED URL-centric addressing breaks bookmark file compatibility -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. +Need a way to allow people to rescue their old bookmark files +following this update. -** OPEN Add history browsing - -* Bugs - -** History inconsistency when restarting elpher <2020-05-26 Tue> +** 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> To reproduce: 1. open elpher and follow a few links until you're a handful of links below @@ -60,8 +77,47 @@ 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. - -* Completed improvements + +*** 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%] + + Shouldn't be too hard, just need elpher-current-node to be +buffer-local and allow various buffer-switching procedures to +do something sensible. + +Here are the things that need to be implemented before +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 Make installing existing certificates easier + :LOGBOOK: + - State "OPEN" from "CLOSED" [2020-06-22 Mon 10:34] + :END: + +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 @@ -148,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: