fix: double config path, stale service worker, empty op-name log

- main.go: DOCKER_PATH=/config + /config.json (was /config/config.json)
- vite.config.ts: skipWaiting+clientsClaim forces new SW immediately;
  navigateFallback: null prevents SW from serving stale index.html;
  globPatterns excludes HTML so navigation always hits the network
- server.go: gqlOpName handles shorthand { field } syntax

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-10 14:16:44 +02:00
parent 8354f5d64c
commit 542762e441
3 changed files with 34 additions and 10 deletions

View File

@@ -39,8 +39,14 @@ func main() {
}
func configPath() string {
// CONFIG_DIR points directly to the config directory (preferred).
if p := os.Getenv("CONFIG_DIR"); p != "" {
return p + "/config.json"
}
// DOCKER_PATH is also set to the config directory in docker-compose
// (the container mounts the config dir at /config, so DOCKER_PATH=/config).
if p := os.Getenv("DOCKER_PATH"); p != "" {
return p + "/config/config.json"
return p + "/config.json"
}
return "config.json"
}

View File

@@ -253,13 +253,18 @@ func writeGQLError(w http.ResponseWriter, msg string) {
func gqlOpName(query string) string {
q := strings.TrimSpace(query)
if strings.HasPrefix(q, "mutation") {
return "mutation " + firstWord(q[len("mutation"):])
switch {
case strings.HasPrefix(q, "mutation"):
return "mutation " + firstWord(strings.TrimSpace(q[len("mutation"):]))
case strings.HasPrefix(q, "query"):
return "query " + firstWord(strings.TrimSpace(q[len("query"):]))
case strings.HasPrefix(q, "{"):
// Shorthand query: extract first field name from { field ... }
inner := strings.TrimSpace(q[1:])
return "query {" + firstWord(inner) + "...}"
default:
return firstWord(q)
}
if strings.HasPrefix(q, "query") {
return "query " + firstWord(q[len("query"):])
}
return firstWord(q)
}
func firstWord(s string) string {