Release to allow opening links in new buffer.
[elpher.git] / ISSUES.org
index 58fbe01..363c25f 100644 (file)
@@ -1,10 +1,10 @@
-#+TITLE: Development notes/ideas
+#+TITLE: Issues and Dev Notes
 #+TODO: OPEN(o!) | CLOSED(c!) INVALID(i@)
 #+STARTUP: logdrawer
-   
+
 * Open Bugs
 
-** OPEN Sanitize certificate names
+** OPEN Sanitize certificate names :gemini:
    :LOGBOOK:
    - State "OPEN"       from              [2020-06-22 Mon 10:32]
    :END:
@@ -14,7 +14,51 @@ 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 Downloads failing
+:LOGBOOK:
+- State "CLOSED"     from "OPEN"       [2022-08-09 Tue 10:38]
+:END:
+
+Downloads fail when focus is shifted away from
+the elpher buffer before the download has completed.
+
+** 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
@@ -81,6 +125,20 @@ 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.
 
+** CLOSED Improve client certificate scope :gemini:
+:LOGBOOK:
+- State "CLOSED"     from "OPEN"       [2023-05-05 Fri 10:09]
+- State "OPEN"       from              [2022-10-12 Wed 09:33]
+:END:
+
+Once activated, elpher continues to use a client certificate
+for any connections to the host on which it was activated.
+However, it's now common to restrict certificates also to paths
+_below_ the path where the certificate was activated.
+
+I.e. gemini://example.com/~userA/ certificates are not applied
+automatically to gemini://example.com/~userB/.
+
 * Open Enhancements
 
 ** OPEN Allow multiple elpher buffers [33%]
@@ -95,19 +153,6 @@ this can happen:
 - [ ] 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
@@ -251,3 +296,39 @@ collapsable hierarchies.
 :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.
+
+
+** CLOSED Make installing existing certificates easier
+   :LOGBOOK:
+   - State "CLOSED"     from "OPEN"       [2023-05-05 Fri 10:10]
+   - 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.