#+TITLE: Issues and Dev Notes
#+TODO: OPEN(o!) | CLOSED(c!) INVALID(i@)
#+STARTUP: logdrawer
-
+
* Open Bugs
-** OPEN Sanitize certificate names
+** OPEN Improve client certificate scope :gemini:
+:LOGBOOK:
+- 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 Sanitize certificate names :gemini:
:LOGBOOK:
- State "OPEN" from [2020-06-22 Mon 10:32]
:END:
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
- [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:
: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.