Skip to content

fix: preserve edit and lane legacy console routes - #48

Merged
alice-viola merged 2 commits into
masterfrom
fix/legacy-console-route-suffixes
Sep 7, 2026
Merged

fix: preserve edit and lane legacy console routes#48
alice-viola merged 2 commits into
masterfrom
fix/legacy-console-route-suffixes

Conversation

@albertovincenzi

Copy link
Copy Markdown
Collaborator

Problema

La console risolve gli URL legacy senza applicazione (/targets/:name/...) cercando prima il grafo nell'indice. La funzione di risoluzione ricostruiva però sempre e soltanto l'URL del dettaglio:

  • /targets/foo/edit apriva il dettaglio invece dell'editor;
  • /targets/foo/lanes/urgent apriva il grafo ma perdeva urgent, quindi non evidenziava il path corrispondente.

La variante già qualificata con /apps/:app/... conservava la lane, ma aveva una costruzione separata dell'URL di edit.

Fix

  • centralizza la costruzione della destinazione in graphLocation;
  • conserva /edit e converte lanes/:lane in ?path=:lane anche dopo la risoluzione asincrona dell'applicazione;
  • usa lo stesso helper per le route qualificate e non qualificate;
  • codifica sempre app, name e path come segmenti/query URI.

Le route legacy budget mantengono deliberatamente il comportamento esistente (aprono il grafo): dal solo URL legacy non è possibile ricavare in modo affidabile il nodo di un documento v2.

Verifica

  • cd ui && npm run build (52 moduli trasformati, build Vite riuscita);
  • git diff --check.

Per Alice

È un fix di compatibilità dei link/runbook esistenti; non modifica le route canoniche né il modello dati. Il punto da verificare manualmente è che browser back/forward tra un URL legacy di lane e il dettaglio mantenga l'evidenziazione: la reattività del query param è corretta in una PR separata.

albertovincenzi and others added 2 commits September 5, 2026 01:02
`graphLocation` decided the suffix with `to.path.endsWith('/edit')`, which is
the concrete URL and therefore carries user data. `ok_name` admits `edit` as a
graph name, so `/apps/a/targets/edit` and `/targets/edit` both end with `/edit`
while naming no suffix at all: that graph was redirected to
`/apps/a/graphs/edit/edit`, the editor, instead of to its detail page.

The matched record's `path` is the pattern the router registered and cannot
contain a name, so it answers the question the URL was being asked.

Claude-Session: https://claude.ai/code/session_012K8u7BEJyd6nDNMCQAgH3z
@alice-viola
alice-viola merged commit 7c87b9d into master Sep 7, 2026
1 check 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.

2 participants