- Fixes `cf push` remove spin lock in PollStart(). This reduces the CPU time when waiting for apps to start. Also affects `cf start`, `cf restart` and `cf restage` [story](https://www.pivotaltracker.com/story/show/165861946)
- Fixes a documentation url in output [story](https://www.pivotaltracker.com/story/show/166249597)
- Fixes an issue whereby if you are logged in as a client, the user name was not printed in the output [story](https://www.pivotaltracker.com/story/show/166848659)
- Targeting a space for `cf copy-source` is no longer case sensitive [story](https://www.pivotaltracker.com/story/show/166110649)
- Fixes a regression for `v3-push` whilst viewing logs when authenticated as a client. Now you are able to see logs if you are logged in as a client and you attempt to view logs (cf logs for example).
- A new flag `--no-plans` added to `cf marketplace` to view the table without the `plans` column [story](https://www.pivotaltracker.com/story/show/164981967)
### Minor Enhancements
- `cf help ` now displays a more prominent `TIP` so that users can discover `cf help -a`
- Roles for the `set-org-role` and `set-space-role` commands are case insensitive [story](https://www.pivotaltracker.com/story/show/163495325)
- Piping a multi-line file to `cf login` now works as expected [story](https://www.pivotaltracker.com/story/show/164256604)
- Updated the help text for `cf delete-orphaned-routes` to clarify that the command is spaced-scoped [story](https://www.pivotaltracker.com/story/show/164657893)
### Bug Fixes
- Fixes a bug for `cf update-buildpack` for assigning stacks [story](https://www.pivotaltracker.com/story/show/164998479)
- Fixes an issue with `cf-bind-route-service` whereby if a user does not have a `org` or `space` targeted, instead of returning a useful error, the CLI would attempt to `GET` the `private_domains` endpoint [story](https://www.pivotaltracker.com/story/show/164157632)
- `v3-apply-manifest` now works for defining environment variables in a multi-app manifest [story](https://www.pivotaltracker.com/story/show/164998227)
- Now the CLI checks the expiration time of an access token and refreshes it automatically before making a call the CF API [story](https://github.com/cloudfoundry/cli/pull/1594)
- `cf curl` supports a new `--fail` flag (primarily for scripting purposes) which returns exit code `22` for server errors [story](https://www.pivotaltracker.com/story/show/130060949)
- Improves `cf delete-orphaned-routes` such that it uses a different endpoint, reducing the chance of a race condition when two users are simultaneously deleting orphaned routes and associating routes with applications [story](https://www.pivotaltracker.com/story/show/163156064)
- we've improved the speed of cf services - it now hits a single endpoint instead of making individual API calls
### Bug Fixes
## Other Bug Fixes
- Updates help text for `cf curl`[story](https://www.pivotaltracker.com/story/show/133394731)
- Now refresh tokens work properly whilst using `cf curl` with V3 CC API endpoints [story](https://www.pivotaltracker.com/story/show/142716197)
- Fixes performance degradation for `cf services` [story](https://www.pivotaltracker.com/story/show/163296235)
- `cf delete-service` requires that you are targeting a space [story](https://www.pivotaltracker.com/n/projects/2105761/stories/162635933)
- `cf enable-service access` for a service in an org will succeed if you have already enabled access for that service in that org [story](https://www.pivotaltracker.com/n/projects/2105761/stories/162747373)
- `rename-service` updated to no longer fail if a plan has been removed from the catalog [story](https://www.pivotaltracker.com/story/show/162550421)
- A new flag `--no-plans` added to `cf marketplace` to view the table without the `plans` column [story](https://www.pivotaltracker.com/story/show/164981967)
## Minor Enhancements
- `cf help ` now displays a more prominent `TIP` so that users can discover `cf help -a`
- Roles for the `set-org-role` and `set-space-role` commands are case insensitive [story](https://www.pivotaltracker.com/story/show/163495325)
- Piping a multi-line file to `cf login` now works as expected [story](https://www.pivotaltracker.com/story/show/164256604)
- Updated the help text for `cf delete-orphaned-routes` to clarify that the command is spaced-scoped [story](https://www.pivotaltracker.com/story/show/164657893)
## Bug Fixes
- Fixes a bug for `cf update-buildpack` for assigning stacks [story](https://www.pivotaltracker.com/story/show/164998479)
- Fixes an issue with `cf-bind-route-service` whereby if a user does not have a `org` or `space` targeted, instead of returning a useful error, the CLI would attempt to `GET` the `private_domains` endpoint [story](https://www.pivotaltracker.com/story/show/164157632)
- `v3-apply-manifest` no works for defining environment variables in a multi-app manifest [story](https://www.pivotaltracker.com/story/show/164998227)
- Now the CLI checks the expiration time of an access token and refreshes it automatically before making a call the CF API [story](https://github.com/cloudfoundry/cli/pull/1594)
- `cf marketplace` no longer lists disabled plans [story](https://www.pivotaltracker.com/story/show/165674475)
- `cf curl` supports a new `--fail` flag (primarily for scripting purposes) which returns exit code `22` for server errors [story](https://www.pivotaltracker.com/story/show/130060949)
- Improves `cf delete-orphaned-routes` such that it uses a different endpoint, reducing the chance of a race condition when two users are simultaneously deleting orphaned routes and associating routes with applications [story](https://www.pivotaltracker.com/story/show/163156064)
- we've improved the speed of cf services - it now hits a single endpoint instead of making individual API calls
### Bug Fixes
#### Security
- Fixes issue with running cf login in verbose mode whereby passwords which contains regex were not completely redacted
- Fixes issue whilst running commands in verbose mode refresh tokens were not completely redacted
### Other Bug Fixes
- Updates help text for cf curlstory
- Now refresh tokens work properly whilst using cf curl with V3 CC API endpoints story
- Fixes performance degradation for cf services story
- cf delete-service requires that you are targeting a space story
- cf enable-service access for a service in an org will succeed if you have already enabled access for that service in that org story
- updated `cf restage` help text and the first line in the command's output to indicate that using this command will cause app downtime [story](https://www.pivotaltracker.com/story/show/151841382)
- updated the `cf bind-route-service` help text to clarify usage instructions [story](https://www.pivotaltracker.com/story/show/150111078)
- improved an error message for `cf create-service-boker` to be more helpful when the CC API returns a `502` due to an invalid service broker catalog
- upgraded to Golang 1.11.4 [story](https://www.pivotaltracker.com/story/show/162745359)
- added a short name `ue` for `cf unset-env` [story](https://www.pivotaltracker.com/story/show/161632713)
- updated `cf marketplace` command to include a new `broker` column to prepare for a upcoming services-related feature which will allow services to have the same name as long as they are associated with different service brokers [story](https://www.pivotaltracker.com/story/show/162699756)
### Bugs
- fix for `cf enable-service-access -p plan` whereby when we refactored the code in CLI `v6.41.0` it created service plan visibilities as part of a subsequent run of the command (the unrefactored code skipped creating the service plan visibilities); now the command will skip creating service plan visibilities as it did prior to the refactor [story](https://www.pivotaltracker.com/story/show/162747373)
- updated the `cf rename-buildpack` help text which was missing reference to the `-s` stack flag [story](https://www.pivotaltracker.com/story/show/162428661)
- updated help text for when users use `brew search cloudfoundry-cli` [story](https://www.pivotaltracker.com/story/show/161770940)
- now when you run `cf service service-instance` for a route service, the route service url appears in the key value table [story](https://www.pivotaltracker.com/story/show/162498211)
- Updates the minimum version for the buildpacks-stacks association feature. In [CLI v6.39.0](https://github.com/cloudfoundry/cli/releases/tag/v6.39.0), when the feature was released, we incorrectly set the minimum to cc api version as`2.114`. The minimum cc api version is now correctly set to [`2.112`](https://github.com/cloudfoundry/capi-release/releases/tag/1.58.0). [story](https://www.pivotaltracker.com/story/show/161464797)
- Fixes a bug with inspecting a service instance `cf service service-instance`, now the `documentation` url displays correctly for services which populate that field [story](https://www.pivotaltracker.com/story/show/161251875)
- Fix bug where trailing slash on cf api would break listing commands for older CC APIs story. For older versions of CC API, if the API URL had a trailing slash, some requests would fail with an "Unknown request" error. These requests are now handled properly.
- for users on cc api 3.27, cf start is enhanced to display the new cf app v3 output. For users on cc api 3.27 or lower, users will see the same v2 output. Note that if you use v3 commands to create and start your app, if you subsequently use cf stop and cf start, the routes property in cf app will not populate even though the route exists story
- for users on cc api 3.27, cf restart is enhanced to display the new cf app v3 output. For users on cc api 3.27 or lower, users will see the same v2 output. story
- for users on cc api 3.27, cf restage is enhanced to display the new cf app v3 output. For users on cc api 3.27 or lower, users will see the same v2 output. story
- improved help text for -d domains for cf push to include examples of usage story
- cf v3-scale displays additional app information story
- if you've created an internal domain, and it is the first domain in cc, the CLI will now ignore the internal domain and instead choose the next non-internal domain when you push an app story
### Bug Fixes
- Fix for users on macOS attempting to brew install cf-cli the CF CLI using the unreleased master branch of Homebrew story
- Fixes an issue whereby, due to a recent cc api change, when you execute cf push and watch the cf app command, the app display returned a 400 error story
- Fixes a bug whereby if you logged in using client credentials, cf auth user pass --client credentials you were unable to create an org; now create-org will assign the role to the user id specified in your manifest story
- fixes an issue introduced when we refactored cf start and as part of that work, we stopped blocking on the initial connection with the logging backend; now the CLI blocks until the NOAA connection is made, or the default dial timeout of five seconds is reached story
- Support added for setting tags for user provided service instances story
- Now a warning appears if you attempt to use deprecated properties and variable substitution story
- Updated usage so now you can rename the cf binary use it with every command story
- cf events now displays the Diego cell_id and instance guid in crash events story
- Includes cf service service-instance table display improvements wherein the service instance information is now grouped separately from the binding information story
- cf service service-instance table display information for user provided services changed: status has been added to the table story
### Bug Fixes
- the CLI now properly handles escaped commas in the X-Cf-Warnings header