Skip to content

desktop: a link to a workspace this machine lacks is refused, not a 404 page (GDK-1309) - #89

Merged
midagedev merged 2 commits into
mainfrom
fix/desktop-404-1309
Sep 2, 2026
Merged

desktop: a link to a workspace this machine lacks is refused, not a 404 page (GDK-1309)#89
midagedev merged 2 commits into
mainfrom
fix/desktop-404-1309

Conversation

@midagedev

Copy link
Copy Markdown
Owner

Fixes #85 — both reported paths into the bare 404 page not found document that replaced the app with no way back.

  • Path 2 (⌘, on a named workspace): workspace.Prefix now maps the primary profile (""/default) to "" on every server. /w/default/ was a mount that could never answer (the primary has no profiles/ directory), and the deep-link grammar already defined a segment-less link as the primary mirror, which is / on any serve. The two prefix_test.go cases that pinned /w/default are rewritten; cmd/gadak/views.go composeServeURL gets the same mapping through the shared function.
  • Path 1 (gadak:// link to a workspace not on this machine): resolveView refuses when the mount's profile does not exist here (workspace.ProfileExists, behind a var for tests), and the navigator shows a window-attached warning dialog — "this link's workspace is not on this machine (a link from someone else's gadak?)" — instead of navigating. Malformed or hostile links stay log-only as before.
  • Not in this PR (tracked as follow-ups on GDK-1309): a Home/Reload menu escape hatch, and serving the SPA's own "unknown workspace" screen on unknown /w/<name>/ mounts for the browser case.

Backlog: GDK-1309 (https://gadak.dev/backlog/#/?ks=GDK-1309).

Gates run locally: go build/vet/test (root + desktop/), gofmt, doc-checks, scripts/scan-internal.sh. Desktop builds are CI-only jobs, hence the PR.

🤖 Generated with Claude Code

midagedev and others added 2 commits September 2, 2026 12:12
…04 page (GDK-1309)

Two paths navigated the webview to a URL the server can never answer,
and the Go text "404 page not found" replaced the app with no menu item
to come back (GitHub #85). A gadak:// link naming a workspace that is not
on this machine passed the parser — it only checks shape — and landed on
/w/<name>/; the Settings… menu on a named workspace built /w/default/,
a mount that cannot exist because the primary profile lives at the root
with no profiles/ directory. Prefix now maps the primary to "" on every
server, as the deep-link grammar already promised, and the view resolver
refuses a mount whose profile is not here, telling the user in a dialog
instead of a log line.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@midagedev
midagedev merged commit be729b7 into main Sep 2, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Desktop: 웹뷰가 404 문서에 도달하면 앱이 사용 불능이 됨 — 알려진 진입 경로 2가지

1 participant