Add http-port override, login UI improvements, and dev tooling

This commit is contained in:
2026-05-27 14:13:43 -07:00
parent e5a2d0bbba
commit 17eebe5628
12 changed files with 392 additions and 13 deletions

32
src/clj/dev_mcp.clj Normal file
View File

@@ -0,0 +1,32 @@
(ns dev-mcp
"Leiningen task: start nREPL + web server on random ports."
(:require [clojure.java.io :as io]
[nrepl.server :as nrepl])
(:import [java.net ServerSocket]))
(defn available-port []
"Pick a random available TCP port."
(with-open [s (ServerSocket. 0)]
(.getLocalPort s)))
(defn- mcp-repl-task [& _args]
"Start nREPL server and HTTP server on random ports.
Writes ports to nrepl-port and .http-port files.
Connect with: clj-nrepl-eval -p $(cat nrepl-port)"
(let [nrepl-port (available-port)
http-port (available-port)]
(spit "nrepl-port" (str nrepl-port))
(spit ".http-port" (str http-port))
(println (format "nREPL port: %d (nrepl-port)" nrepl-port))
(println (format "HTTP port: %d (.http-port)" http-port))
(nrepl/start-server :port nrepl-port)
(require 'user)
(user/start-dev http-port)
(println "Ready.")
@(promise)))
(defn -main
"Entry point for: lein trampoline run -m dev-mcp"
[& args]
(apply mcp-repl-task args))