Opened issue re timer.
[elpher.git] / ISSUES.org
index 03ca588..cf082d1 100644 (file)
@@ -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>
 
 
-* Enhancements
+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
+   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%]
 
 
 ** OPEN Allow multiple elpher buffers [33%]
 
@@ -17,44 +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 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:
 
 
+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.
 
 
-** OPEN Add history browsing
-   
-** OPEN Download/rendering progress feedback
-   Particularly for large files or complicated pages, elpher can
-   take a few seconds or more to generate a response.  Thhis is
-   frustrating for users, who are left staring at a blinking
-   cursor.
-
-   A small amount of feedback could help with this.
-   
-* Bugs
-  
-* Completed improvements
+* Closed Enhancements
   
 ** CLOSED Turn on lexical scoping
 
   
 ** CLOSED Turn on lexical scoping
 
@@ -132,34 +195,68 @@ occasionally pop up in termal windows.  Lets leave it for now.
    
    Okay, replacing this really does improve things.  Large gemini
    downloads now seem occur at rates I'd expect.
    
    Okay, replacing this really does improve things.  Large gemini
    downloads now seem occur at rates I'd expect.
+   
+** CLOSED Download/rendering progress feedback
+   Particularly for large files or complicated pages, elpher can
+   take a few seconds or more to generate a response.  Thhis is
+   frustrating for users, who are left staring at a blinking
+   cursor.
+
+   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.)
+
+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.
 
 
-Follow-up: this has been fixed by the new stack-based history system
-in 2.5.
 
 
+** CLOSED Add history browsing
+:LOGBOOK:
+- State "CLOSED"     from "OPEN"       [2021-07-23 Fri 10:09]
+:END: