Skip AWS SSO URLs in trurl sanitizer
trurl encodes slashes in URL fragments, breaking hash-routed apps.
Assisted-by: Claude Opus 4.6 via Claude Code
diff --git a/.config/nvim/nvim-pack-lock.json b/.config/nvim/nvim-pack-lock.json
index 65157d58..4d153394 100644
--- a/.config/nvim/nvim-pack-lock.json
+++ b/.config/nvim/nvim-pack-lock.json
@@ -61,6 +61,10 @@
"rev": "edcf56c",
"src": "https://github.com/suy/vim-context-commentstring.git"
},
+ "vim-dirvish": {
+ "rev": "5d1d1ef45c6161af14c7d3d3097057e8fb5ac257",
+ "src": "git@github.com:justinmk/vim-dirvish.git"
+ },
"vim-dispatch": {
"rev": "a2ff28a",
"src": "https://github.com/tpope/vim-dispatch.git"
diff --git a/.hammerspoon/init.fnl b/.hammerspoon/init.fnl
index 6bdae7d8..bc064908 100644
--- a/.hammerspoon/init.fnl
+++ b/.hammerspoon/init.fnl
@@ -96,11 +96,14 @@
:start true})
(fn sanitize-url [url]
- (let [tracking-params [:utm_* :uta_* :fbclid :gclid]
- trurl-cmd (.. :/opt/homebrew/bin/trurl " "
- (table.concat (map tracking-params #(.. "--qtrim " $1))
- " "))]
- (chomp (execute (.. trurl-cmd " --url \"" url "\"")))))
+ ;; Skip AWS SSO URLs — trurl encodes slashes in hash-routed fragments.
+ (if (string.match url "%.awsapps%.com/start/#/")
+ url
+ (let [tracking-params [:utm_* :uta_* :fbclid :gclid]
+ trurl-cmd (.. :/opt/homebrew/bin/trurl " "
+ (table.concat (map tracking-params #(.. "--qtrim " $1))
+ " "))]
+ (chomp (execute (.. trurl-cmd " --url \"" url "\""))))))
(let [handlers {:firefox-dev :org.mozilla.firefoxdeveloperedition
:firefox :org.mozilla.firefox
@@ -119,7 +122,7 @@
"/?"))
url-patterns [["^https://(.*%.?)zoom.us/j/%d+" handlers.zoom]
[safari-patterns handlers.safari]]
- url-redir-decoders [[:trurl-sanitize #(sanitize-url $4) nil]
+ url-redir-decoders [[:trurl-sanitize #(sanitize-url $4) nil true]
[:reddit "://www%.reddit%.com" "://old.reddit.com"]
[:xcancel "://x%.com" "://xcancel.com"]]]
(Install:andUse :URLDispatcher {:config {:url_patterns url-patterns