feat(web): redirect /fleet → /agents/live with deprecation toast #1019

Closed
opened 2026-05-09 18:18:25 +00:00 by claude-desktop · 1 comment
Collaborator

As an operator who has bookmarks or screenshots pointing at /fleet,
I want old /fleet URLs to redirect to /agents/live with a one-time deprecation notice,
so that I am not left on a 404 and I learn the new URL without surprise.

Acceptance criteria

Redirect

  • /fleet route now redirects (302) to /agents/live, preserving search params (detail, agent, repo, provider).
  • Redirect works for both deep-linked drawer (/fleet?detail=…) and bare /fleet.

Deprecation notice

  • On the first hit per session, a non-blocking toast surfaces: /fleet has moved to /agents/live — update your bookmarks.
  • Session-scoped suppression key (sessionStorage) prevents the toast from re-firing on the same tab.
  • Toast styled via existing showToast API; tone "info"; auto-dismiss 6 s; manually dismissible.

Lifetime

  • Redirect kept for at least 2 minor releases (track removal in #nav-v2-cleanup or follow-up issue).

Tests

  • E2E: navigate to /fleet?detail=abc → final URL /agents/live?detail=abc.
  • E2E: deprecation toast appears once per fresh session, not on second visit in same tab.

Out of scope

  • Deleting the /fleet route file (still serves the redirect).
  • Renaming nav entry (top-bar still says "Fleet" until the sidebar lands — #nav-v2-5).

References

  • Spec: docs/specs/nav-consolidation.md § Route changes, Risks.
  • Current route: apps/web/src/routes/fleet.tsx.
**As an** operator who has bookmarks or screenshots pointing at `/fleet`, **I want** old `/fleet` URLs to redirect to `/agents/live` with a one-time deprecation notice, **so that** I am not left on a 404 and I learn the new URL without surprise. ## Acceptance criteria ### Redirect - [ ] `/fleet` route now redirects (302) to `/agents/live`, preserving search params (`detail`, `agent`, `repo`, `provider`). - [ ] Redirect works for both deep-linked drawer (`/fleet?detail=…`) and bare `/fleet`. ### Deprecation notice - [ ] On the first hit per session, a non-blocking toast surfaces: `/fleet has moved to /agents/live — update your bookmarks`. - [ ] Session-scoped suppression key (`sessionStorage`) prevents the toast from re-firing on the same tab. - [ ] Toast styled via existing `showToast` API; tone "info"; auto-dismiss 6 s; manually dismissible. ### Lifetime - [ ] Redirect kept for at least 2 minor releases (track removal in #nav-v2-cleanup or follow-up issue). ### Tests - [ ] E2E: navigate to `/fleet?detail=abc` → final URL `/agents/live?detail=abc`. - [ ] E2E: deprecation toast appears once per fresh session, not on second visit in same tab. ## Out of scope - Deleting the `/fleet` route file (still serves the redirect). - Renaming nav entry (top-bar still says "Fleet" until the sidebar lands — #nav-v2-5). ## References - Spec: `docs/specs/nav-consolidation.md` § Route changes, Risks. - Current route: `apps/web/src/routes/fleet.tsx`.
claude-desktop added this to the nav-v2 milestone 2026-05-09 18:18:25 +00:00
Author
Collaborator

Closing — operator policy is no compat bridges (memory: feedback_no_compat_bridge.md). Redirect + deprecation toast are exactly the kind of "two systems fighting" shim to avoid. /fleet deletes outright when /agents/live lands; folded into #1017. Stale bookmarks 404 — acceptable, audience is the operator only.

Closing — operator policy is no compat bridges (memory: `feedback_no_compat_bridge.md`). Redirect + deprecation toast are exactly the kind of "two systems fighting" shim to avoid. `/fleet` deletes outright when `/agents/live` lands; folded into #1017. Stale bookmarks 404 — acceptable, audience is the operator only.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/claude-hooks#1019
No description provided.