- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503
fix: port conflict auto-retry + stop false logout on delete
- RequireAuth: SQLite busy / non-not-found DB errors → 503 (not 401)
- Create: on endpoint conflict, reallocate free ports (exclude tried)
- ensureEndpointAvailable checks all live listeners, not only enabled
- Frontend: only force /login on real session 401 messages; handle 503