diff --git a/.eslintrc.json b/.eslintrc.json index 5b05017ed8e..33b237e806c 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -2,44 +2,50 @@ "extends": [ "standard", "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended" + "plugin:@typescript-eslint/recommended", + "prettier", + "prettier/standard", + "prettier/@typescript-eslint" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 2018, "sourceType": "module" }, - "plugins": [ - "@typescript-eslint" - ], + "plugins": ["@typescript-eslint"], "rules": { "no-undef": "off", - "@typescript-eslint/camelcase": ["error", { - "allow": [ - "wrap_line_length", - "indent_size", - "api_key", - "apigw_token", - "apigw_space_guid", - "ignore_certs", - "__cloudshell_decorations", - "follow_max", - "open_timeout", - "read_timeout", - "get_activation", - "action_body", - "rule_body", - "invoke_options", - "invoke_params", - "convert_to_fqn" - ] - }], + "@typescript-eslint/camelcase": [ + "error", + { + "allow": [ + "wrap_line_length", + "indent_size", + "api_key", + "apigw_token", + "apigw_space_guid", + "ignore_certs", + "__cloudshell_decorations", + "follow_max", + "open_timeout", + "read_timeout", + "get_activation", + "action_body", + "rule_body", + "invoke_options", + "invoke_params", + "convert_to_fqn" + ] + } + ], "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/indent": ["error", 2], - "@typescript-eslint/member-delimiter-style": ["error", { - "multiline": { - "delimiter": "none" + "@typescript-eslint/member-delimiter-style": [ + "error", + { + "multiline": { + "delimiter": "none" + } } - }] + ] } } diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000000..50814c2403e --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +build/ +node_modules/ +*.d.ts +package-lock.json +plugins/plugin-apache-composer/tests/data/composer/composer-source-expect-errors/if-bad.js diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 00000000000..b2095be81e4 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,4 @@ +{ + "semi": false, + "singleQuote": true +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index a99e2432b22..b3d9cb49e13 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,4 @@ { - "recommendations": [ - "dbaeumer.vscode-eslint" - ], + "recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"], "unwantedRecommendations": [] } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8cc89b4a56d..b66f30773b7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,9 +4,10 @@ This page contains information about reporting issues, how to suggest changes as well as the guidelines we follow for how our documents are formatted. ## Table of Contents -* [Reporting an Issue](#reporting-an-issue) -* [Suggesting a Change](#suggesting-a-change) -* [Spec Formatting Conventions](#spec-formatting-conventions) + +- [Reporting an Issue](#reporting-an-issue) +- [Suggesting a Change](#suggesting-a-change) +- [Spec Formatting Conventions](#spec-formatting-conventions) ## Reporting an Issue @@ -42,9 +43,9 @@ This project uses [Conventional Commits](https://www.conventionalcommits.org) as type(component?): message ``` -*type* is one of: feat, fix, docs, chore, style, refactor, perf, test +_type_ is one of: feat, fix, docs, chore, style, refactor, perf, test -*component* optionally is the name of the module you are fixing; either "core" or a named module in `plugins/` directory. Note: Please specify the full name of the module (e.g. plugin-bash-like) instead of abbreviation. It helps us generate the correct CHANGELOG.md. +_component_ optionally is the name of the module you are fixing; either "core" or a named module in `plugins/` directory. Note: Please specify the full name of the module (e.g. plugin-bash-like) instead of abbreviation. It helps us generate the correct CHANGELOG.md. #### Sign your work @@ -102,7 +103,7 @@ If you set your `user.name` and `user.email` git configs, you can sign your commit automatically with `git commit -s`. Note: If your git config information is set properly then viewing the - `git log` information for your commit will look something like this: +`git log` information for your commit will look something like this: ``` Author: Joe Smith @@ -119,6 +120,7 @@ your PR will be rejected by the automated DCO check. ## Spec Formatting Conventions Documents in this repository will adhere to the following rules: - * Lines are wrapped at 80 columns (when possible) - * Specifications will use [RFC2119](https://tools.ietf.org/html/rfc2119) - keywords to indicate normative requirements + +- Lines are wrapped at 80 columns (when possible) +- Specifications will use [RFC2119](https://tools.ietf.org/html/rfc2119) + keywords to indicate normative requirements diff --git a/README.md b/README.md index 7e67bfd2f0e..af369c99b25 100644 --- a/README.md +++ b/README.md @@ -53,9 +53,9 @@ complex menu structures. For example, to see a visual summary of your Kubernetes pods, issue this command from your favorite terminal: -|Example Command|Thumbnail of Output| -|:--------------------------|:------------------------------| -|`kubectl kui get pods --ui`|[![](docs/readme/images/kubectl-get-pods-thumbnail.jpg)](docs/readme/images/kubectl-get-pods.png)| +| Example Command | Thumbnail of Output | +| :-------------------------- | :------------------------------------------------------------------------------------------------ | +| `kubectl kui get pods --ui` | [![](docs/readme/images/kubectl-get-pods-thumbnail.jpg)](docs/readme/images/kubectl-get-pods.png) | Without the `--ui` option, Kui will display the output in your terminal directly; you will observe that the output is identical to diff --git a/docs/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md index 49ed8a9a3d8..5c0bffbe2c4 100644 --- a/docs/CODE_OF_CONDUCT.md +++ b/docs/CODE_OF_CONDUCT.md @@ -14,22 +14,22 @@ appearance, race, religion, or sexual identity and orientation. Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting ## Our Responsibilities diff --git a/docs/dev/README.md b/docs/dev/README.md index 25f14ff78b2..975c1add95a 100644 --- a/docs/dev/README.md +++ b/docs/dev/README.md @@ -20,10 +20,10 @@ concerned. Otherwise, consult the [Kui installation guide](../installation.md) for more information on setting up credentials. - - [Coding Strategy](#coding-strategy) - - [Packaging](packaging.md) - - [Running Tests](#local-testing) - - [Live Webpack Development](live-webpack-development.md) +- [Coding Strategy](#coding-strategy) +- [Packaging](packaging.md) +- [Running Tests](#local-testing) +- [Live Webpack Development](live-webpack-development.md) ## Coding Strategy @@ -54,7 +54,7 @@ from edit to use, is usually on the order of a few seconds. There are several cases where a simple reload will not suffice to realize your changes. - 1. **Adding new commands** For efficiency, Kui relies on a +1. **Adding new commands** For efficiency, Kui relies on a precompiled model of the command tree. This allows Kui to load plugin code lazily. If you add a new command, or move a command from one plugin to another, you must therefore recompile the @@ -64,7 +64,7 @@ realize your changes. > npm run compile ``` - 2. **Changing code in the main process** Electron applications +2. **Changing code in the main process** Electron applications consist of two groups of processes: the renderer processes (e.g. one per window, web view, web worker, etc.), and the "main" or server-side processes. The javascript code under the @@ -72,7 +72,7 @@ realize your changes. run in the main/server process. Thus, changes to these files require a full quit and relaunch of the Electron application. - 3. **Changing the HTML templates** Changes to files under the +3. **Changing the HTML templates** Changes to files under the `packages/app/templates/` directory, such as `packages/app/templates/index.html` require a rebuild, accomplished via @@ -83,15 +83,20 @@ realize your changes. ## Local Testing ### Setup: -* To install Kubernetes on your local machine, consult the official [Kubernetes Local Machine Solutions](https://kubernetes.io/docs/setup/pick-right-solution/#local-machine-solutions) . + +- To install Kubernetes on your local machine, consult the official [Kubernetes Local Machine Solutions](https://kubernetes.io/docs/setup/pick-right-solution/#local-machine-solutions) . ### Testing: -* Go to the root of the project folder -* Run all the test suites + +- Go to the root of the project folder +- Run all the test suites + ```bash > npm test ``` -* Filter test execution + +- Filter test execution + ```bash > TEST_FILTER='About command' npm test # Only run test suites containing 'About command' in suite titles ``` diff --git a/docs/dev/customization-guide.md b/docs/dev/customization-guide.md index 1a0f0f20981..f22f805f5ff 100644 --- a/docs/dev/customization-guide.md +++ b/docs/dev/customization-guide.md @@ -45,8 +45,7 @@ npm install --save @kui-shell/core npx kui-init ``` -You may mix in additional Kui plugins by adding more `npm install ---save` lines. For example, a useful plugin is +You may mix in additional Kui plugins by adding more `npm install --save` lines. For example, a useful plugin is `@kui-shell/core-support` which adds the help system and the screenshot capability to the electron builds. You now should have a directory structure such as shown above. @@ -82,22 +81,22 @@ hello world ## Theming In `theme.json, you may specify overrides of the [default - theme](../../clients/default/theme/theme.json). For example, this - [example - theme](../../packages/kui-builder/examples/build-configs/material-design/theme.json) - changes the product name to "Kui Fun Shell", and changes the UI - theme to use a [material design](https://material.io/) color - scheme. +theme](../../clients/default/theme/theme.json). For example, this +[example +theme](../../packages/kui-builder/examples/build-configs/material-design/theme.json) +changes the product name to "Kui Fun Shell", and changes the UI +theme to use a [material design](https://material.io/) color +scheme. ## Injecting Build-time Values Via a `config.json`, you have the opportunity to inject - configuration options into your plugin code. Using the - [example config injection](../../packages/kui-builder/examples/build-configs/material-design/config.json) as an example, - you would access that example configuration setting via: - ```typescript - import { config } from '@kui-shell/core/core/settings' +configuration options into your plugin code. Using the +[example config injection](../../packages/kui-builder/examples/build-configs/material-design/config.json) as an example, +you would access that example configuration setting via: - if (config['disableProxy']) { ... } - ``` +```typescript +import { config } from '@kui-shell/core/core/settings' +if (config['disableProxy']) { ... } +``` diff --git a/docs/dev/packaging.md b/docs/dev/packaging.md index 921644b14a2..28c6bc815b8 100644 --- a/docs/dev/packaging.md +++ b/docs/dev/packaging.md @@ -4,9 +4,9 @@ Beyond local development of Kui, you may want to package and distribute Kui to others. The code base currently supports three packaging modes: - - [Headless](#headless-packaging) — making a lightweight headless release - - [Electron](#electron-packaging) — building an Electron client app - - [Browser](#browser-packaging) — building for the browser, using [webpack](https://webpack.js.org/) +- [Headless](#headless-packaging) — making a lightweight headless release +- [Electron](#electron-packaging) — building an Electron client app +- [Browser](#browser-packaging) — building for the browser, using [webpack](https://webpack.js.org/) ## Headless packaging @@ -45,6 +45,7 @@ To build for use in a browser, Kui uses [webpack](https://webpack.js.org/). Option A) Build webpack with [proxy support](../../packages/proxy/doc/proxy-architecture.pdf). + ```bash > cd clients/default # or: cd clients/[your-customized-client] > npm run build:proxy @@ -52,19 +53,21 @@ Option A) Build webpack with [proxy support](../../packages/proxy/doc/proxy-arch > ls dist/webpack ... lots of *.bundle.js.br files ... ``` + Option B) Build webpack without proxy support + ```bash > cd clients/default # or: cd clients/[your-customized-client] > KUI_USE_PROXY=false npm run build:webpack > ls dist/webpack ... lots of *.bundle.js.br files ... ``` + The first time you do so, you will be asked to set up a local https certificate. You should see the normal openssl series of prompts; make sure that you provide at least one non-empty answer to the self-signed certificate prompts, otherwise it will fail in odd ways. - After you have built the webpack bundles, you can test them out locally: @@ -76,4 +79,5 @@ https://localhost:9080 ``` ## Internal Details + See: [Internal Development Details](../../packages/kui-builder/README.md). diff --git a/docs/dev/plugins.md b/docs/dev/plugins.md index 4383e82a244..2ac8b791f1f 100644 --- a/docs/dev/plugins.md +++ b/docs/dev/plugins.md @@ -3,10 +3,10 @@ The Kui commands are implemented via plugins. This repository includes a suite of plugins, located in the `plugins/` directory. - - [Sample Plugin](../../packages/kui-builder/examples/plugin-sample/) - - [Code Layout](#code-layout) - - [Activating a New Plugin](#activating-a-new-plugin) - - [Plugin API](#plugin-api) +- [Sample Plugin](../../packages/kui-builder/examples/plugin-sample/) +- [Code Layout](#code-layout) +- [Activating a New Plugin](#activating-a-new-plugin) +- [Plugin API](#plugin-api) If, in the process of development, you add, remove, or otherwise change the way a command will map to plugins, you **must** re-execute @@ -18,15 +18,15 @@ Plugins must be named as `plugin-` followed by any name you like. The prefix `pl Plugins must have a top-level file: - - a `package.json`, which can also be used to import any npm dependencies required by the plugin. +- a `package.json`, which can also be used to import any npm dependencies required by the plugin. Plugins must have a top-level directory: - - `src/`, which has all the TypeScript source code of the plugin. +- `src/`, which has all the TypeScript source code of the plugin. Tests of the plugin must be placed in: - - `src/test/{customized-test-unit-name}/` directory. +- `src/test/{customized-test-unit-name}/` directory. Any non-TypeScript code should be placed outside of `src/` directory. @@ -42,9 +42,9 @@ plugin-sample/ │ │ └── sample-test2/ │ │ └── test-command3.ts │ └── lib/ -│ ├── command1.ts -│ ├── command2.ts -│ └── command3.ts +│ ├── command1.ts +│ ├── command2.ts +│ └── command3.ts │ ├── tests/ │ ├── lib/ @@ -68,21 +68,21 @@ the `plugins/` directory. Then, execute `npm run compile` and reload or relaunch A plugin consists of three parts, some optional. - 1. Registering as a listener for commands. This is done by calling +1. Registering as a listener for commands. This is done by calling ```typescript commandTree.listen('/sample/echo', sayHello, { docs: 'Say hello!' }) ``` - As a result of this registration, the Kui REPL will respond to `sample echo` with the return value of the `sayHello` handler. +As a result of this registration, the Kui REPL will respond to `sample echo` with the return value of the `sayHello` handler. - 2. Command handlers. Handlers can return plain strings, which will - then be printed in the CLI portion of the UI. +2. Command handlers. Handlers can return plain strings, which will + then be printed in the CLI portion of the UI. - More sophisticated examples can return Promises of values. If the - value, or promise thereof, evaluates to a openwhisk entity, then the - sidecar will be opened to show it. +More sophisticated examples can return Promises of values. If the +value, or promise thereof, evaluates to a openwhisk entity, then the +sidecar will be opened to show it. - If you want the REPL only to print "ok", then `return true`. Lastly, - if you want the REPL to print an error string in red text, then - `throw new Error("error message")` +If you want the REPL only to print "ok", then `return true`. Lastly, +if you want the REPL to print an error string in red text, then +`throw new Error("error message")` diff --git a/docs/installation.md b/docs/installation.md index d4c306547e8..7c01fa32028 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -31,12 +31,12 @@ a command line experience. [Kui-MacOS.tar.bz2](https://macos-tarball.kui-shell.org) **|** [Kui-Linux.zip](https://linux-zip.kui-shell.org) -*Coming soon: MacOS .dmg, Linux .deb, Linux .rpm, Windows .zip* +_Coming soon: MacOS .dmg, Linux .deb, Linux .rpm, Windows .zip_ ##### Example Download for MacOS double-clickable > curl -L https://macos-tarball.kui-shell.org/ | tar jxf - -open Kui-darwin-x64/Kui.app +> open Kui-darwin-x64/Kui.app ### Important Note on Unsigned Builds @@ -60,7 +60,7 @@ kui shell # <-- this should launch the graphical shell The `shell` command should open the graphical shell. The first time you open a graphical window, you should see a message indicating that the graphical bits are being downloaded. This is a one-time download -of the Electron components. (*warning*: there is currently a +of the Electron components. (_warning_: there is currently a superficial bug in the downloader; you may see the "downloading" message repeated twice) @@ -92,7 +92,7 @@ storage. If you are currently a user of Apache OpenWhisk, then your `.wskprops` file is sufficient to get you started; you may skip over this -section. If you have *not* yet configured your local environment for +section. If you have _not_ yet configured your local environment for use with OpenWhisk, then continue reading. ### Getting an Authorization Key for IBM Cloud diff --git a/docs/pull_request_template.md b/docs/pull_request_template.md index 99206cbd276..601e6116123 100644 --- a/docs/pull_request_template.md +++ b/docs/pull_request_template.md @@ -1,4 +1,5 @@ #### Please confirm that your PR fulfills these requirements + - [ ] Multiple commits are squashed into one commit. - [ ] The commit message follows [Conventional Commits](https://github.com/IBM/kui/blob/master/CONTRIBUTING.md#conventional-commits), which allows us to autogenerate release notes; e.g. `fix(plugins/plugin-k8s): fixed annoying bugs` - [ ] All npm dependencies are pinned. diff --git a/docs/readme/examples/composer.md b/docs/readme/examples/composer.md index 736d269165e..ad5f0b1142f 100644 --- a/docs/readme/examples/composer.md +++ b/docs/readme/examples/composer.md @@ -24,12 +24,12 @@ language. Some commands work well in textual mode, without any need for graphical assistance: -|Command | Output | -|:-------------------------------------|:------------------------------| -|`kui app create hello @demos/hello.js`|![ok: updated composition hello](https://ibm.box.com/shared/static/6mz8xvdw3wbldh7o111cuu7gnh1kwss4.png)| -|`kui app list` |![hello composition](https://ibm.box.com/shared/static/w8m0jigs07bv59a7pl3lf3phwj27orwj.png)| -|`kui app async hello` |![ok: invoked hello with id ...](https://ibm.box.com/shared/static/b646dsiqylqv4b9wom6tj8xquitdkf27.png)| -|`kui session list` |![session list output](https://ibm.box.com/shared/static/hym083s3zt6oe1byyapxu0ap5xzhom37.png)| +| Command | Output | +| :------------------------------------- | :------------------------------------------------------------------------------------------------------- | +| `kui app create hello @demos/hello.js` | ![ok: updated composition hello](https://ibm.box.com/shared/static/6mz8xvdw3wbldh7o111cuu7gnh1kwss4.png) | +| `kui app list` | ![hello composition](https://ibm.box.com/shared/static/w8m0jigs07bv59a7pl3lf3phwj27orwj.png) | +| `kui app async hello` | ![ok: invoked hello with id ...](https://ibm.box.com/shared/static/b646dsiqylqv4b9wom6tj8xquitdkf27.png) | +| `kui session list` | ![session list output](https://ibm.box.com/shared/static/hym083s3zt6oe1byyapxu0ap5xzhom37.png) | ## Examples that provide visualizations @@ -38,6 +38,7 @@ graphical assistance: ```bash $ kui preview @demos/looper.js ``` + ![visualization of composition](https://ibm.box.com/shared/static/xantjhxwwm0zmp31kckh8s0fe07gawew.png) ### Trace visualization @@ -45,8 +46,8 @@ $ kui preview @demos/looper.js ```bash $ kui activation logs eda8a.. ``` -![trace view](https://ibm.box.com/shared/static/1gga6iqforftnn3zdnz3dyj4875cp539.png) +![trace view](https://ibm.box.com/shared/static/1gga6iqforftnn3zdnz3dyj4875cp539.png) ## Next Steps diff --git a/docs/readme/examples/openwhisk.md b/docs/readme/examples/openwhisk.md index 720f949bb45..07e2e7cd3a3 100644 --- a/docs/readme/examples/openwhisk.md +++ b/docs/readme/examples/openwhisk.md @@ -8,9 +8,9 @@ Some commands work well in textual mode, without any need for graphical assistance: -|Command | Functionality | -|:-------------------------------------|:------------------------------| -|`kui action list` |list deployed actions | +| Command | Functionality | +| :---------------- | :-------------------- | +| `kui action list` | list deployed actions | ## Examples that provide visualizations @@ -22,36 +22,44 @@ command takes only a second or so. -------------------------------------------- +--- + ### A grid view of recent activations ```bash $ kui grid ``` + ![grid view](https://ibm.box.com/shared/static/kzgsbdeou04twohdlbzp20fsdqhzb334.gif) --------------------------------------------- +--- + ### Log viewer ```bash $ kui activation logs c5dba.. ``` + ![logs view](https://ibm.box.com/shared/static/21668bkuw4925y35tydx7btjq2hor5mn.png) --------------------------------------------- +--- + ### A statistical view of recent invocations ```bash $ kui table ``` + ![table view](https://ibm.box.com/shared/static/zisacj7inozq2pamjun3suf8qxi6dvd2.png) --------------------------------------------- +--- + ### A temporal view of recent invocations ```bash $ kui grid --timeline ``` + ![timeline view](https://ibm.box.com/shared/static/3iuczlken4geeknqkrt0pbrvk2sjlag0.png) ## Next Steps diff --git a/lerna.json b/lerna.json index e070ff7280c..54bef2de100 100644 --- a/lerna.json +++ b/lerna.json @@ -1,8 +1,5 @@ { - "packages": [ - "packages/*", - "plugins/*" - ], + "packages": ["packages/*", "plugins/*"], "version": "independent", "command": { "publish": { diff --git a/package.json b/package.json index b96e80ea06a..106ca34caa3 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "main": "build/packages/app/src/main/main.js", "scripts": { "lint": "eslint '**/*.ts'", + "format": "prettier --write '**/*.{js,json,md,ts}'", "test": "cd packages/tests && npm run test", "compile": "MONOREPO_MODE=true CLIENT_HOME=./clients/default ./packages/kui-builder/bin/compile.sh", "watch": "./packages/kui-builder/bin/watch.sh", @@ -28,7 +29,11 @@ }, "lint-staged": { "linters": { - "*.ts": [ + "**/*.{js,json,md,ts}": [ + "prettier --write", + "git add" + ], + "**/*.ts": [ "eslint --fix", "git add" ] diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 465c7ec27bb..76e2b566498 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -5,3606 +5,3400 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline # 2.34.0 (2019-06-17) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) -* **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) -* **packages/app:** ascii-to-usage versus git commit ([a3e3082](https://github.com/IBM/kui/commit/a3e3082)), closes [#1668](https://github.com/IBM/kui/issues/1668) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** code-style text in repl is too small ([794a87b](https://github.com/IBM/kui/commit/794a87b)), closes [#1473](https://github.com/IBM/kui/issues/1473) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) -* **packages/app:** don't show application icon by default for webpack clients ([78dfbb3](https://github.com/IBM/kui/commit/78dfbb3)), closes [#1719](https://github.com/IBM/kui/issues/1719) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** eliminate some any types from ui.d.ts ([8ed54b0](https://github.com/IBM/kui/commit/8ed54b0)), closes [#1434](https://github.com/IBM/kui/issues/1434) -* **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) -* **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for sidecar header overflow on firefox ([be1b909](https://github.com/IBM/kui/commit/be1b909)), closes [#1334](https://github.com/IBM/kui/issues/1334) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) -* make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) -* **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** increase spacing between repl blocks ([7785f40](https://github.com/IBM/kui/commit/7785f40)), closes [#1732](https://github.com/IBM/kui/issues/1732) -* **packages/app:** linux OS menu items do not work ([86f0e2a](https://github.com/IBM/kui/commit/86f0e2a)), closes [#1717](https://github.com/IBM/kui/issues/1717) -* **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) -* **packages/app:** mac activate handling issues ([5319083](https://github.com/IBM/kui/commit/5319083)), closes [#1316](https://github.com/IBM/kui/issues/1316) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minimized sidecar vertical text outflow ([de320c8](https://github.com/IBM/kui/commit/de320c8)), closes [#1665](https://github.com/IBM/kui/issues/1665) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** missing right-pad on tables ([4fd8f6e](https://github.com/IBM/kui/commit/4fd8f6e)), closes [#1428](https://github.com/IBM/kui/issues/1428) -* **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) -* **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** pageup/pagedown scroll more than one more ([83128ba](https://github.com/IBM/kui/commit/83128ba)), closes [#1598](https://github.com/IBM/kui/issues/1598) -* **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) -* **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) -* **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) -* **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) -* **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) -* **packages/app:** register capabilities before preloading plugins ([871d9de](https://github.com/IBM/kui/commit/871d9de)), closes [#1724](https://github.com/IBM/kui/issues/1724) -* **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) -* **packages/app:** remove stale entries from OS Help menu ([21f59c5](https://github.com/IBM/kui/commit/21f59c5)), closes [#1703](https://github.com/IBM/kui/issues/1703) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) -* **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) -* **packages/app:** repl input should use normal font weight ([858a4e5](https://github.com/IBM/kui/commit/858a4e5)), closes [#1386](https://github.com/IBM/kui/issues/1386) -* **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) -* **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) -* **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) -* **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) -* **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) -* **packages/app:** stop disabling default font smoothing policy ([6151179](https://github.com/IBM/kui/commit/6151179)), closes [#1359](https://github.com/IBM/kui/issues/1359) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-bash-like:** ls should support sorting by size ([be666c4](https://github.com/IBM/kui/commit/be666c4)), closes [#1375](https://github.com/IBM/kui/issues/1375) -* **plugins/plugin-bash-like:** pty sizing and resizing issues ([8272486](https://github.com/IBM/kui/commit/8272486)), closes [#1525](https://github.com/IBM/kui/issues/1525) -* **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) -* **plugins/plugin-core-support:** reverse-i-search bugs ([895ae59](https://github.com/IBM/kui/commit/895ae59)), closes [#1559](https://github.com/IBM/kui/issues/1559) -* **plugins/plugin-core-support:** tab completion of dirs versus ~ ([c6190c5](https://github.com/IBM/kui/commit/c6190c5)), closes [#1483](https://github.com/IBM/kui/issues/1483) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** fixed the zooming issue in monaco-editor ([117fe7e](https://github.com/IBM/kui/commit/117fe7e)), closes [#1565](https://github.com/IBM/kui/issues/1565) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) -* **plugins/plugin-k8s:** fixed missing notes of helm status ([a4a3b76](https://github.com/IBM/kui/commit/a4a3b76)) -* **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) -* **plugins/plugin-k8s:** HorizontalPodAutoscaler status support ([666b54a](https://github.com/IBM/kui/commit/666b54a)), closes [#1220](https://github.com/IBM/kui/issues/1220) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** add type declarations for openwhisk test utils ([80e45e2](https://github.com/IBM/kui/commit/80e45e2)), closes [#1436](https://github.com/IBM/kui/issues/1436) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugin-proxy-support:** override execOptions.tab in proxy executor ([a3af5e1](https://github.com/IBM/kui/commit/a3af5e1)), closes [#1649](https://github.com/IBM/kui/issues/1649) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* allow for log-lines tables to specify a looser layout ([e3b8997](https://github.com/IBM/kui/commit/e3b8997)), closes [#1471](https://github.com/IBM/kui/issues/1471) -* app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) -* ascii-to-table with duplicate final column ([f43cda0](https://github.com/IBM/kui/commit/f43cda0)), closes [#1561](https://github.com/IBM/kui/issues/1561) -* avoid catchall registration if in browser and no proxy ([5de02c2](https://github.com/IBM/kui/commit/5de02c2)), closes [#1494](https://github.com/IBM/kui/issues/1494) -* cd versus spaces and backslash escape ([ad7306f](https://github.com/IBM/kui/commit/ad7306f)), closes [#1330](https://github.com/IBM/kui/issues/1330) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* editor swallows escape sidecar toggle ([0fb4f2e](https://github.com/IBM/kui/commit/0fb4f2e)), closes [#1317](https://github.com/IBM/kui/issues/1317) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* expose webpack hash to plugins ([c37bcbf](https://github.com/IBM/kui/commit/c37bcbf)), closes [#1350](https://github.com/IBM/kui/issues/1350) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* for a few minor UI glitches ([ea0a0d2](https://github.com/IBM/kui/commit/ea0a0d2)), closes [#1653](https://github.com/IBM/kui/issues/1653) [#1652](https://github.com/IBM/kui/issues/1652) [#1651](https://github.com/IBM/kui/issues/1651) -* forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) -* further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) -* further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* helm list and helm list test fixes ([22694f7](https://github.com/IBM/kui/commit/22694f7)), closes [#1721](https://github.com/IBM/kui/issues/1721) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) -* improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) -* improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) -* improved pty alt buffer mode ([f9a7b4d](https://github.com/IBM/kui/commit/f9a7b4d)), closes [#1399](https://github.com/IBM/kui/issues/1399) -* improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* improvements for ascii-to-usage ([28089f9](https://github.com/IBM/kui/commit/28089f9)), closes [#1551](https://github.com/IBM/kui/issues/1551) -* improvements for wskflow zoom buttons ([91a2590](https://github.com/IBM/kui/commit/91a2590)), closes [#1453](https://github.com/IBM/kui/issues/1453) -* improvements to ascii-to-table ([dec911a](https://github.com/IBM/kui/commit/dec911a)), closes [#1572](https://github.com/IBM/kui/issues/1572) -* increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) -* initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) -* log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) -* ls -l and ls -la do not display properly ([3388d7a](https://github.com/IBM/kui/commit/3388d7a)), closes [#1296](https://github.com/IBM/kui/issues/1296) [#1278](https://github.com/IBM/kui/issues/1278) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* multiple fixes for tab management ([c125f7f](https://github.com/IBM/kui/commit/c125f7f)), closes [#1493](https://github.com/IBM/kui/issues/1493) -* node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* optimize pty ([c23d6b8](https://github.com/IBM/kui/commit/c23d6b8)), closes [#1503](https://github.com/IBM/kui/issues/1503) -* overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) -* pty alt buffer flashes ([955ff83](https://github.com/IBM/kui/commit/955ff83)), closes [#1664](https://github.com/IBM/kui/issues/1664) -* PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) -* PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) -* PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) -* pty versus resize fixes ([5bc8ce9](https://github.com/IBM/kui/commit/5bc8ce9)), closes [#1509](https://github.com/IBM/kui/issues/1509) -* refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* remove UI inconsistencies with cursor block ([7db0680](https://github.com/IBM/kui/commit/7db0680)), closes [#1657](https://github.com/IBM/kui/issues/1657) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) -* screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) -* screenshot sidecar versus escape key ([559bd18](https://github.com/IBM/kui/commit/559bd18)), closes [#1445](https://github.com/IBM/kui/issues/1445) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) -* two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) -* UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various fixes for tab management ([f7817e3](https://github.com/IBM/kui/commit/f7817e3)), closes [#1411](https://github.com/IBM/kui/issues/1411) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* webpack versus editor ([956a72f](https://github.com/IBM/kui/commit/956a72f)), closes [#1333](https://github.com/IBM/kui/issues/1333) -* window resize versus pty size cache ([c53a093](https://github.com/IBM/kui/commit/c53a093)), closes [#1505](https://github.com/IBM/kui/issues/1505) -* wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) -* wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) -* yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) +- **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) +- **packages/app:** ascii-to-usage versus git commit ([a3e3082](https://github.com/IBM/kui/commit/a3e3082)), closes [#1668](https://github.com/IBM/kui/issues/1668) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** code-style text in repl is too small ([794a87b](https://github.com/IBM/kui/commit/794a87b)), closes [#1473](https://github.com/IBM/kui/issues/1473) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) +- **packages/app:** don't show application icon by default for webpack clients ([78dfbb3](https://github.com/IBM/kui/commit/78dfbb3)), closes [#1719](https://github.com/IBM/kui/issues/1719) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** eliminate some any types from ui.d.ts ([8ed54b0](https://github.com/IBM/kui/commit/8ed54b0)), closes [#1434](https://github.com/IBM/kui/issues/1434) +- **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) +- **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for sidecar header overflow on firefox ([be1b909](https://github.com/IBM/kui/commit/be1b909)), closes [#1334](https://github.com/IBM/kui/issues/1334) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) +- make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) +- **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** increase spacing between repl blocks ([7785f40](https://github.com/IBM/kui/commit/7785f40)), closes [#1732](https://github.com/IBM/kui/issues/1732) +- **packages/app:** linux OS menu items do not work ([86f0e2a](https://github.com/IBM/kui/commit/86f0e2a)), closes [#1717](https://github.com/IBM/kui/issues/1717) +- **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) +- **packages/app:** mac activate handling issues ([5319083](https://github.com/IBM/kui/commit/5319083)), closes [#1316](https://github.com/IBM/kui/issues/1316) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minimized sidecar vertical text outflow ([de320c8](https://github.com/IBM/kui/commit/de320c8)), closes [#1665](https://github.com/IBM/kui/issues/1665) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** missing right-pad on tables ([4fd8f6e](https://github.com/IBM/kui/commit/4fd8f6e)), closes [#1428](https://github.com/IBM/kui/issues/1428) +- **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) +- **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** pageup/pagedown scroll more than one more ([83128ba](https://github.com/IBM/kui/commit/83128ba)), closes [#1598](https://github.com/IBM/kui/issues/1598) +- **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) +- **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) +- **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) +- **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) +- **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) +- **packages/app:** register capabilities before preloading plugins ([871d9de](https://github.com/IBM/kui/commit/871d9de)), closes [#1724](https://github.com/IBM/kui/issues/1724) +- **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) +- **packages/app:** remove stale entries from OS Help menu ([21f59c5](https://github.com/IBM/kui/commit/21f59c5)), closes [#1703](https://github.com/IBM/kui/issues/1703) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) +- **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) +- **packages/app:** repl input should use normal font weight ([858a4e5](https://github.com/IBM/kui/commit/858a4e5)), closes [#1386](https://github.com/IBM/kui/issues/1386) +- **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) +- **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) +- **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) +- **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) +- **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) +- **packages/app:** stop disabling default font smoothing policy ([6151179](https://github.com/IBM/kui/commit/6151179)), closes [#1359](https://github.com/IBM/kui/issues/1359) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-bash-like:** ls should support sorting by size ([be666c4](https://github.com/IBM/kui/commit/be666c4)), closes [#1375](https://github.com/IBM/kui/issues/1375) +- **plugins/plugin-bash-like:** pty sizing and resizing issues ([8272486](https://github.com/IBM/kui/commit/8272486)), closes [#1525](https://github.com/IBM/kui/issues/1525) +- **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) +- **plugins/plugin-core-support:** reverse-i-search bugs ([895ae59](https://github.com/IBM/kui/commit/895ae59)), closes [#1559](https://github.com/IBM/kui/issues/1559) +- **plugins/plugin-core-support:** tab completion of dirs versus ~ ([c6190c5](https://github.com/IBM/kui/commit/c6190c5)), closes [#1483](https://github.com/IBM/kui/issues/1483) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** fixed the zooming issue in monaco-editor ([117fe7e](https://github.com/IBM/kui/commit/117fe7e)), closes [#1565](https://github.com/IBM/kui/issues/1565) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) +- **plugins/plugin-k8s:** fixed missing notes of helm status ([a4a3b76](https://github.com/IBM/kui/commit/a4a3b76)) +- **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) +- **plugins/plugin-k8s:** HorizontalPodAutoscaler status support ([666b54a](https://github.com/IBM/kui/commit/666b54a)), closes [#1220](https://github.com/IBM/kui/issues/1220) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** add type declarations for openwhisk test utils ([80e45e2](https://github.com/IBM/kui/commit/80e45e2)), closes [#1436](https://github.com/IBM/kui/issues/1436) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugin-proxy-support:** override execOptions.tab in proxy executor ([a3af5e1](https://github.com/IBM/kui/commit/a3af5e1)), closes [#1649](https://github.com/IBM/kui/issues/1649) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- allow for log-lines tables to specify a looser layout ([e3b8997](https://github.com/IBM/kui/commit/e3b8997)), closes [#1471](https://github.com/IBM/kui/issues/1471) +- app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) +- ascii-to-table with duplicate final column ([f43cda0](https://github.com/IBM/kui/commit/f43cda0)), closes [#1561](https://github.com/IBM/kui/issues/1561) +- avoid catchall registration if in browser and no proxy ([5de02c2](https://github.com/IBM/kui/commit/5de02c2)), closes [#1494](https://github.com/IBM/kui/issues/1494) +- cd versus spaces and backslash escape ([ad7306f](https://github.com/IBM/kui/commit/ad7306f)), closes [#1330](https://github.com/IBM/kui/issues/1330) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- editor swallows escape sidecar toggle ([0fb4f2e](https://github.com/IBM/kui/commit/0fb4f2e)), closes [#1317](https://github.com/IBM/kui/issues/1317) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- expose webpack hash to plugins ([c37bcbf](https://github.com/IBM/kui/commit/c37bcbf)), closes [#1350](https://github.com/IBM/kui/issues/1350) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- for a few minor UI glitches ([ea0a0d2](https://github.com/IBM/kui/commit/ea0a0d2)), closes [#1653](https://github.com/IBM/kui/issues/1653) [#1652](https://github.com/IBM/kui/issues/1652) [#1651](https://github.com/IBM/kui/issues/1651) +- forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) +- further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) +- further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- helm list and helm list test fixes ([22694f7](https://github.com/IBM/kui/commit/22694f7)), closes [#1721](https://github.com/IBM/kui/issues/1721) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) +- improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) +- improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) +- improved pty alt buffer mode ([f9a7b4d](https://github.com/IBM/kui/commit/f9a7b4d)), closes [#1399](https://github.com/IBM/kui/issues/1399) +- improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- improvements for ascii-to-usage ([28089f9](https://github.com/IBM/kui/commit/28089f9)), closes [#1551](https://github.com/IBM/kui/issues/1551) +- improvements for wskflow zoom buttons ([91a2590](https://github.com/IBM/kui/commit/91a2590)), closes [#1453](https://github.com/IBM/kui/issues/1453) +- improvements to ascii-to-table ([dec911a](https://github.com/IBM/kui/commit/dec911a)), closes [#1572](https://github.com/IBM/kui/issues/1572) +- increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) +- initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) +- log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) +- ls -l and ls -la do not display properly ([3388d7a](https://github.com/IBM/kui/commit/3388d7a)), closes [#1296](https://github.com/IBM/kui/issues/1296) [#1278](https://github.com/IBM/kui/issues/1278) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- multiple fixes for tab management ([c125f7f](https://github.com/IBM/kui/commit/c125f7f)), closes [#1493](https://github.com/IBM/kui/issues/1493) +- node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- optimize pty ([c23d6b8](https://github.com/IBM/kui/commit/c23d6b8)), closes [#1503](https://github.com/IBM/kui/issues/1503) +- overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) +- pty alt buffer flashes ([955ff83](https://github.com/IBM/kui/commit/955ff83)), closes [#1664](https://github.com/IBM/kui/issues/1664) +- PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) +- PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) +- PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) +- pty versus resize fixes ([5bc8ce9](https://github.com/IBM/kui/commit/5bc8ce9)), closes [#1509](https://github.com/IBM/kui/issues/1509) +- refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- remove UI inconsistencies with cursor block ([7db0680](https://github.com/IBM/kui/commit/7db0680)), closes [#1657](https://github.com/IBM/kui/issues/1657) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) +- screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) +- screenshot sidecar versus escape key ([559bd18](https://github.com/IBM/kui/commit/559bd18)), closes [#1445](https://github.com/IBM/kui/issues/1445) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) +- two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) +- UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various fixes for tab management ([f7817e3](https://github.com/IBM/kui/commit/f7817e3)), closes [#1411](https://github.com/IBM/kui/issues/1411) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- webpack versus editor ([956a72f](https://github.com/IBM/kui/commit/956a72f)), closes [#1333](https://github.com/IBM/kui/issues/1333) +- window resize versus pty size cache ([c53a093](https://github.com/IBM/kui/commit/c53a093)), closes [#1505](https://github.com/IBM/kui/issues/1505) +- wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) +- wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) +- yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* add tekton sample inputs ([f8a212a](https://github.com/IBM/kui/commit/f8a212a)), closes [#1499](https://github.com/IBM/kui/issues/1499) -* add watchableTable model and port kubectl get [entity] -w to use the watchable table ([af9a757](https://github.com/IBM/kui/commit/af9a757)), closes [#1450](https://github.com/IBM/kui/issues/1450) -* allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) -* improved support for custom k8s modes ([8e3ca5a](https://github.com/IBM/kui/commit/8e3ca5a)), closes [#1481](https://github.com/IBM/kui/issues/1481) -* k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) -* k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) -* kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) -* kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) -* kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) -* minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) -* pty table parsing ([090f9df](https://github.com/IBM/kui/commit/090f9df)), closes [#1516](https://github.com/IBM/kui/issues/1516) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) -* **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) -* tab close button ([b4d0d0d](https://github.com/IBM/kui/commit/b4d0d0d)), closes [#1739](https://github.com/IBM/kui/issues/1739) -* tekton log navigation support ([85f19d9](https://github.com/IBM/kui/commit/85f19d9)), closes [#1608](https://github.com/IBM/kui/issues/1608) [#1609](https://github.com/IBM/kui/issues/1609) -* tekton pipelinerun view ([565a94c](https://github.com/IBM/kui/commit/565a94c)), closes [#1448](https://github.com/IBM/kui/issues/1448) -* tekton pipelinerun view ([615f2bb](https://github.com/IBM/kui/commit/615f2bb)), closes [#1448](https://github.com/IBM/kui/issues/1448) -* top tab stripe ([6167a22](https://github.com/IBM/kui/commit/6167a22)), closes [#1699](https://github.com/IBM/kui/issues/1699) -* type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* use system fonts ([f26afed](https://github.com/IBM/kui/commit/f26afed)), closes [#1353](https://github.com/IBM/kui/issues/1353) -* **packages/app:** add tooltips to new tab and theme buttons ([5697527](https://github.com/IBM/kui/commit/5697527)), closes [#1491](https://github.com/IBM/kui/issues/1491) -* **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) -* **packages/app:** remove theme button from UI ([3e2765e](https://github.com/IBM/kui/commit/3e2765e)), closes [#1713](https://github.com/IBM/kui/issues/1713) -* **packages/app:** show cwd in prompt ([ca8559f](https://github.com/IBM/kui/commit/ca8559f)), closes [#1727](https://github.com/IBM/kui/issues/1727) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) -* **plugins/plugin-bash-like:** only show OWNER and GROUP for ls -l ([9b003f6](https://github.com/IBM/kui/commit/9b003f6)), closes [#1440](https://github.com/IBM/kui/issues/1440) -* **plugins/plugin-bash-like:** support simple bash export command ([14aa7eb](https://github.com/IBM/kui/commit/14aa7eb)) -* **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-tekton:** add Runnable badge to tekton flow view ([ba6fa0b](https://github.com/IBM/kui/commit/ba6fa0b)), closes [#1501](https://github.com/IBM/kui/issues/1501) -* **plugins/plugin-tekton:** tekton support for step visualization ([b176899](https://github.com/IBM/kui/commit/b176899)), closes [#1448](https://github.com/IBM/kui/issues/1448) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- add tekton sample inputs ([f8a212a](https://github.com/IBM/kui/commit/f8a212a)), closes [#1499](https://github.com/IBM/kui/issues/1499) +- add watchableTable model and port kubectl get [entity] -w to use the watchable table ([af9a757](https://github.com/IBM/kui/commit/af9a757)), closes [#1450](https://github.com/IBM/kui/issues/1450) +- allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) +- improved support for custom k8s modes ([8e3ca5a](https://github.com/IBM/kui/commit/8e3ca5a)), closes [#1481](https://github.com/IBM/kui/issues/1481) +- k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) +- k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) +- kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) +- kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) +- kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) +- minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) +- pty table parsing ([090f9df](https://github.com/IBM/kui/commit/090f9df)), closes [#1516](https://github.com/IBM/kui/issues/1516) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) +- **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) +- tab close button ([b4d0d0d](https://github.com/IBM/kui/commit/b4d0d0d)), closes [#1739](https://github.com/IBM/kui/issues/1739) +- tekton log navigation support ([85f19d9](https://github.com/IBM/kui/commit/85f19d9)), closes [#1608](https://github.com/IBM/kui/issues/1608) [#1609](https://github.com/IBM/kui/issues/1609) +- tekton pipelinerun view ([565a94c](https://github.com/IBM/kui/commit/565a94c)), closes [#1448](https://github.com/IBM/kui/issues/1448) +- tekton pipelinerun view ([615f2bb](https://github.com/IBM/kui/commit/615f2bb)), closes [#1448](https://github.com/IBM/kui/issues/1448) +- top tab stripe ([6167a22](https://github.com/IBM/kui/commit/6167a22)), closes [#1699](https://github.com/IBM/kui/issues/1699) +- type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- use system fonts ([f26afed](https://github.com/IBM/kui/commit/f26afed)), closes [#1353](https://github.com/IBM/kui/issues/1353) +- **packages/app:** add tooltips to new tab and theme buttons ([5697527](https://github.com/IBM/kui/commit/5697527)), closes [#1491](https://github.com/IBM/kui/issues/1491) +- **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) +- **packages/app:** remove theme button from UI ([3e2765e](https://github.com/IBM/kui/commit/3e2765e)), closes [#1713](https://github.com/IBM/kui/issues/1713) +- **packages/app:** show cwd in prompt ([ca8559f](https://github.com/IBM/kui/commit/ca8559f)), closes [#1727](https://github.com/IBM/kui/issues/1727) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) +- **plugins/plugin-bash-like:** only show OWNER and GROUP for ls -l ([9b003f6](https://github.com/IBM/kui/commit/9b003f6)), closes [#1440](https://github.com/IBM/kui/issues/1440) +- **plugins/plugin-bash-like:** support simple bash export command ([14aa7eb](https://github.com/IBM/kui/commit/14aa7eb)) +- **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-tekton:** add Runnable badge to tekton flow view ([ba6fa0b](https://github.com/IBM/kui/commit/ba6fa0b)), closes [#1501](https://github.com/IBM/kui/issues/1501) +- **plugins/plugin-tekton:** tekton support for step visualization ([b176899](https://github.com/IBM/kui/commit/b176899)), closes [#1448](https://github.com/IBM/kui/issues/1448) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.33.0 (2019-05-22) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) -* **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** eliminate some any types from ui.d.ts ([8ed54b0](https://github.com/IBM/kui/commit/8ed54b0)), closes [#1434](https://github.com/IBM/kui/issues/1434) -* **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) -* **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for sidecar header overflow on firefox ([be1b909](https://github.com/IBM/kui/commit/be1b909)), closes [#1334](https://github.com/IBM/kui/issues/1334) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) -* **packages/app:** mac activate handling issues ([5319083](https://github.com/IBM/kui/commit/5319083)), closes [#1316](https://github.com/IBM/kui/issues/1316) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** missing right-pad on tables ([4fd8f6e](https://github.com/IBM/kui/commit/4fd8f6e)), closes [#1428](https://github.com/IBM/kui/issues/1428) -* **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) -* **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) -* **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) -* **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) -* **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) -* **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) -* **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) -* **packages/app:** repl input should use normal font weight ([858a4e5](https://github.com/IBM/kui/commit/858a4e5)), closes [#1386](https://github.com/IBM/kui/issues/1386) -* **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) -* **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) -* **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) -* **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) -* **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) -* **packages/app:** stop disabling default font smoothing policy ([6151179](https://github.com/IBM/kui/commit/6151179)), closes [#1359](https://github.com/IBM/kui/issues/1359) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-bash-like:** ls should support sorting by size ([be666c4](https://github.com/IBM/kui/commit/be666c4)), closes [#1375](https://github.com/IBM/kui/issues/1375) -* **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) -* **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) -* **plugins/plugin-k8s:** HorizontalPodAutoscaler status support ([666b54a](https://github.com/IBM/kui/commit/666b54a)), closes [#1220](https://github.com/IBM/kui/issues/1220) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** add type declarations for openwhisk test utils ([80e45e2](https://github.com/IBM/kui/commit/80e45e2)), closes [#1436](https://github.com/IBM/kui/issues/1436) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) -* cd versus spaces and backslash escape ([ad7306f](https://github.com/IBM/kui/commit/ad7306f)), closes [#1330](https://github.com/IBM/kui/issues/1330) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* editor swallows escape sidecar toggle ([0fb4f2e](https://github.com/IBM/kui/commit/0fb4f2e)), closes [#1317](https://github.com/IBM/kui/issues/1317) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* expose webpack hash to plugins ([c37bcbf](https://github.com/IBM/kui/commit/c37bcbf)), closes [#1350](https://github.com/IBM/kui/issues/1350) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) -* further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) -* further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) -* improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) -* improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) -* improved pty alt buffer mode ([f9a7b4d](https://github.com/IBM/kui/commit/f9a7b4d)), closes [#1399](https://github.com/IBM/kui/issues/1399) -* improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* improvements for wskflow zoom buttons ([91a2590](https://github.com/IBM/kui/commit/91a2590)), closes [#1453](https://github.com/IBM/kui/issues/1453) -* increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) -* initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) -* log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) -* ls -l and ls -la do not display properly ([3388d7a](https://github.com/IBM/kui/commit/3388d7a)), closes [#1296](https://github.com/IBM/kui/issues/1296) [#1278](https://github.com/IBM/kui/issues/1278) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) -* make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) -* PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) -* PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) -* PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) -* refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) -* screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) -* screenshot sidecar versus escape key ([559bd18](https://github.com/IBM/kui/commit/559bd18)), closes [#1445](https://github.com/IBM/kui/issues/1445) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) -* two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) -* UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* various fixes for tab management ([f7817e3](https://github.com/IBM/kui/commit/f7817e3)), closes [#1411](https://github.com/IBM/kui/issues/1411) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* webpack versus editor ([956a72f](https://github.com/IBM/kui/commit/956a72f)), closes [#1333](https://github.com/IBM/kui/issues/1333) -* wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) -* wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) -* yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) +- **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** eliminate some any types from ui.d.ts ([8ed54b0](https://github.com/IBM/kui/commit/8ed54b0)), closes [#1434](https://github.com/IBM/kui/issues/1434) +- **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) +- **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for sidecar header overflow on firefox ([be1b909](https://github.com/IBM/kui/commit/be1b909)), closes [#1334](https://github.com/IBM/kui/issues/1334) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) +- **packages/app:** mac activate handling issues ([5319083](https://github.com/IBM/kui/commit/5319083)), closes [#1316](https://github.com/IBM/kui/issues/1316) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** missing right-pad on tables ([4fd8f6e](https://github.com/IBM/kui/commit/4fd8f6e)), closes [#1428](https://github.com/IBM/kui/issues/1428) +- **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) +- **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) +- **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) +- **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) +- **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) +- **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) +- **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) +- **packages/app:** repl input should use normal font weight ([858a4e5](https://github.com/IBM/kui/commit/858a4e5)), closes [#1386](https://github.com/IBM/kui/issues/1386) +- **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) +- **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) +- **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) +- **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) +- **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) +- **packages/app:** stop disabling default font smoothing policy ([6151179](https://github.com/IBM/kui/commit/6151179)), closes [#1359](https://github.com/IBM/kui/issues/1359) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-bash-like:** ls should support sorting by size ([be666c4](https://github.com/IBM/kui/commit/be666c4)), closes [#1375](https://github.com/IBM/kui/issues/1375) +- **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) +- **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) +- **plugins/plugin-k8s:** HorizontalPodAutoscaler status support ([666b54a](https://github.com/IBM/kui/commit/666b54a)), closes [#1220](https://github.com/IBM/kui/issues/1220) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** add type declarations for openwhisk test utils ([80e45e2](https://github.com/IBM/kui/commit/80e45e2)), closes [#1436](https://github.com/IBM/kui/issues/1436) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) +- cd versus spaces and backslash escape ([ad7306f](https://github.com/IBM/kui/commit/ad7306f)), closes [#1330](https://github.com/IBM/kui/issues/1330) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- editor swallows escape sidecar toggle ([0fb4f2e](https://github.com/IBM/kui/commit/0fb4f2e)), closes [#1317](https://github.com/IBM/kui/issues/1317) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- expose webpack hash to plugins ([c37bcbf](https://github.com/IBM/kui/commit/c37bcbf)), closes [#1350](https://github.com/IBM/kui/issues/1350) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) +- further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) +- further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) +- improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) +- improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) +- improved pty alt buffer mode ([f9a7b4d](https://github.com/IBM/kui/commit/f9a7b4d)), closes [#1399](https://github.com/IBM/kui/issues/1399) +- improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- improvements for wskflow zoom buttons ([91a2590](https://github.com/IBM/kui/commit/91a2590)), closes [#1453](https://github.com/IBM/kui/issues/1453) +- increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) +- initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) +- log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) +- ls -l and ls -la do not display properly ([3388d7a](https://github.com/IBM/kui/commit/3388d7a)), closes [#1296](https://github.com/IBM/kui/issues/1296) [#1278](https://github.com/IBM/kui/issues/1278) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) +- make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) +- PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) +- PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) +- PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) +- refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) +- screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) +- screenshot sidecar versus escape key ([559bd18](https://github.com/IBM/kui/commit/559bd18)), closes [#1445](https://github.com/IBM/kui/issues/1445) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) +- two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) +- UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- various fixes for tab management ([f7817e3](https://github.com/IBM/kui/commit/f7817e3)), closes [#1411](https://github.com/IBM/kui/issues/1411) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- webpack versus editor ([956a72f](https://github.com/IBM/kui/commit/956a72f)), closes [#1333](https://github.com/IBM/kui/issues/1333) +- wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) +- wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) +- yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) -* k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) -* k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) -* kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) -* kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) -* kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) -* **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) -* **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-bash-like:** only show OWNER and GROUP for ls -l ([9b003f6](https://github.com/IBM/kui/commit/9b003f6)), closes [#1440](https://github.com/IBM/kui/issues/1440) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* **plugins/plugin-tekton:** tekton support for step visualization ([b176899](https://github.com/IBM/kui/commit/b176899)), closes [#1448](https://github.com/IBM/kui/issues/1448) -* lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) -* minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) -* type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* use system fonts ([f26afed](https://github.com/IBM/kui/commit/f26afed)), closes [#1353](https://github.com/IBM/kui/issues/1353) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) +- k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) +- k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) +- kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) +- kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) +- kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) +- **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) +- **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-bash-like:** only show OWNER and GROUP for ls -l ([9b003f6](https://github.com/IBM/kui/commit/9b003f6)), closes [#1440](https://github.com/IBM/kui/issues/1440) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- **plugins/plugin-tekton:** tekton support for step visualization ([b176899](https://github.com/IBM/kui/commit/b176899)), closes [#1448](https://github.com/IBM/kui/issues/1448) +- lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) +- minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) +- type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- use system fonts ([f26afed](https://github.com/IBM/kui/commit/f26afed)), closes [#1353](https://github.com/IBM/kui/issues/1353) # 2.32.0 (2019-05-08) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) -* **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) -* **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* **packages/app:** fix for sidecar header overflow on firefox ([be1b909](https://github.com/IBM/kui/commit/be1b909)), closes [#1334](https://github.com/IBM/kui/issues/1334) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) -* **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) -* **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) -* **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) -* **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) -* **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) -* **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) -* **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) -* **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) -* **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) -* **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) -* **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) -* **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) -* **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) -* further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) -* further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) -* improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) -* improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) -* improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) -* initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) -* log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) -* make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) -* PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) -* PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) -* PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) -* refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) -* screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) -* two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) -* UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* webpack versus editor ([956a72f](https://github.com/IBM/kui/commit/956a72f)), closes [#1333](https://github.com/IBM/kui/issues/1333) -* wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) -* wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) -* yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) +- **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) +- **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- **packages/app:** fix for sidecar header overflow on firefox ([be1b909](https://github.com/IBM/kui/commit/be1b909)), closes [#1334](https://github.com/IBM/kui/issues/1334) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) +- **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) +- **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) +- **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) +- **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) +- **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) +- **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) +- **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) +- **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) +- **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) +- **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) +- **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) +- **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) +- **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) +- further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) +- further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) +- improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) +- improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) +- improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) +- initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) +- log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) +- make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) +- PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) +- PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) +- PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) +- refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) +- screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) +- two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) +- UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- webpack versus editor ([956a72f](https://github.com/IBM/kui/commit/956a72f)), closes [#1333](https://github.com/IBM/kui/issues/1333) +- wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) +- wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) +- yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) -* k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) -* k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) -* kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) -* kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) -* minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) -* **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) -* switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) -* type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) -* **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) +- k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) +- k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) +- kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) +- kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) +- minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) +- **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) +- switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) +- type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) +- **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.31.0 (2019-05-07) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) -* **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) -* **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) -* **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) -* **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) -* **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) -* **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) -* **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) -* **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) -* **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) -* **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) -* **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) -* **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) -* **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) -* **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) -* **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) -* further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) -* further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) -* improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) -* improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) -* improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) -* initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) -* log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) -* make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) -* PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) -* PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) -* PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) -* refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) -* screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) -* two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) -* UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) -* wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) -* yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) +- **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) +- **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) +- **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) +- **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) +- **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) +- **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) +- **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) +- **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) +- **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) +- **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) +- **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) +- **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) +- **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) +- **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) +- **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) +- further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) +- further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) +- improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) +- improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) +- improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) +- initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) +- log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) +- make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) +- PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) +- PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) +- PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) +- refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) +- screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) +- two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) +- UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) +- wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) +- yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) -* k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) -* k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) -* kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) -* kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) -* minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) -* **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) -* switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) -* type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) -* **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) +- k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) +- k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) +- kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) +- kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) +- minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) +- **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) +- switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) +- type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) +- **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.30.0 (2019-05-06) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) -* **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) -* **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) -* **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) -* **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) -* **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) -* **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) -* **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) -* **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) -* **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) -* **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) -* **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) -* **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) -* **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) -* **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) -* **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) -* further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) -* further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) -* improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) -* improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) -* improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) -* initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) -* log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) -* make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) -* PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) -* PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) -* PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) -* refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) -* screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) -* two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) -* UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) -* wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) -* yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) +- **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) +- **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) +- **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) +- **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) +- **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) +- **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) +- **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) +- **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) +- **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) +- **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) +- **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) +- **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) +- **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) +- **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) +- **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) +- further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) +- further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) +- improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) +- improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) +- improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) +- initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) +- log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) +- make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) +- PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) +- PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) +- PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) +- refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) +- screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) +- two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) +- UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) +- wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) +- yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) -* k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) -* k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) -* kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) -* kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) -* minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) -* **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) -* switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) -* type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) -* **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) +- k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) +- k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) +- kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) +- kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) +- minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) +- **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) +- switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) +- type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) +- **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.29.0 (2019-05-06) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) -* **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) -* **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) -* **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) -* **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) -* **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) -* **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) -* **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) -* **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) -* **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) -* **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) -* **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) -* **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) -* **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) -* **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) -* **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) -* further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) -* further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) -* improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) -* improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) -* improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) -* initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) -* log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) -* make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) -* PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) -* PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) -* PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) -* refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) -* screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) -* two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) -* UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) -* wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) -* yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) +- **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) +- **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix sidecar multi-table ui ([056b1ba](https://github.com/IBM/kui/commit/056b1ba)), closes [#1255](https://github.com/IBM/kui/issues/1255) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) +- **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) +- **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) +- **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) +- **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) +- **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) +- **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) +- **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) +- **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) +- **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) +- **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) +- **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) +- **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** fix kubectl table regression in sidecar ([88f6cb3](https://github.com/IBM/kui/commit/88f6cb3)), closes [#1262](https://github.com/IBM/kui/issues/1262) +- **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) +- further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) +- further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) +- improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) +- improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) +- improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) +- initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) +- log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) +- make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) +- PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) +- PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) +- PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) +- refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) +- screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) +- two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) +- UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) +- wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) +- yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) -* k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) -* k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) -* kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) -* kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) -* minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) -* **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) -* switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) -* type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) -* **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- allow for client-provided localStorage impl ([829bc1d](https://github.com/IBM/kui/commit/829bc1d)), closes [#1294](https://github.com/IBM/kui/issues/1294) +- k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) +- k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) +- kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) +- kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) +- minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) +- **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) +- switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) +- type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) +- **plugins/plugin-grid:** add more types ([696d80b](https://github.com/IBM/kui/commit/696d80b)), closes [#1291](https://github.com/IBM/kui/issues/1291) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.28.0 (2019-05-04) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) -* **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) -* **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) -* **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) -* **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) -* **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) -* **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) -* **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) -* **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) -* **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) -* **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) -* **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) -* **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) -* **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) -* **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) -* **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) -* further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) -* further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) -* improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) -* improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) -* improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) -* initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) -* log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) -* make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) -* PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) -* PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) -* PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) -* refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) -* screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) -* two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) -* wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) -* yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) +- **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) +- **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** ls files should render with normal text ([4866e08](https://github.com/IBM/kui/commit/4866e08)), closes [#1270](https://github.com/IBM/kui/issues/1270) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) +- **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) +- **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) +- **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) +- **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) +- **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) +- **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) +- **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** REPL block index management versus clear command ([f13cf4b](https://github.com/IBM/kui/commit/f13cf4b)), closes [#1275](https://github.com/IBM/kui/issues/1275) +- **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) +- **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) +- **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) +- **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) +- **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) +- **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** PTY content escapes to new tabs ([28c4344](https://github.com/IBM/kui/commit/28c4344)), closes [#1263](https://github.com/IBM/kui/issues/1263) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** fixed the issue that empty helm list returns {} as output and added tests for empty helm list ([ad61cc4](https://github.com/IBM/kui/commit/ad61cc4)), closes [#1246](https://github.com/IBM/kui/issues/1246) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) +- further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) +- further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) +- improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) +- improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) +- improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) +- initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) +- log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) +- make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) +- PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) +- PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) +- PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) +- refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) +- screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) +- two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) +- wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) +- yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) -* k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) -* kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) -* kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) -* kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) -* minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) -* **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) -* type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) +- k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) +- kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) +- kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) +- kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- lucario theme ([59a3f53](https://github.com/IBM/kui/commit/59a3f53)), closes [#1235](https://github.com/IBM/kui/issues/1235) +- minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) +- **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) +- type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.27.0 (2019-04-26) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) -* **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) -* **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) -* **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) -* **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) -* **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) -* **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) -* **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) -* **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) -* **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) -* **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) -* **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) -* **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) -* **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) -* further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) -* further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) -* improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) -* improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) -* improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) -* initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) -* log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) -* make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) -* node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) -* PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) -* PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) -* PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) -* refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) -* screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) -* two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) -* wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) -* yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) +- **packages/app:** ascii-to-usage triggers too aggressively ([19e58fd](https://github.com/IBM/kui/commit/19e58fd)), closes [#1099](https://github.com/IBM/kui/issues/1099) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) +- **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) +- **packages/app:** oops handler for qexec issued by onclick ([4fa46ae](https://github.com/IBM/kui/commit/4fa46ae)), closes [#1204](https://github.com/IBM/kui/issues/1204) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) +- **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) +- **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) +- **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) +- **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) +- **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) +- **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) +- **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) +- **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) +- **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) +- **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) +- further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) +- further work on type coverage ([3805002](https://github.com/IBM/kui/commit/3805002)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) +- improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) +- improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) +- improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) +- initial work on improving core type coverage ([0f042a8](https://github.com/IBM/kui/commit/0f042a8)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) +- log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) +- make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- more type coverage for core ([293b9f2](https://github.com/IBM/kui/commit/293b9f2)), closes [#1206](https://github.com/IBM/kui/issues/1206) +- node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) +- PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) +- PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) +- PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) +- refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) +- screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) +- two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) +- wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) +- yet more typecov work ([9441631](https://github.com/IBM/kui/commit/9441631)), closes [#1206](https://github.com/IBM/kui/issues/1206) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) -* k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) -* kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) -* kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) -* kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) -* type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) -* **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) -* **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) +- k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) +- kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) +- kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) +- kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) +- type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) +- **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) +- **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.26.0 (2019-04-23) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) -* **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) -* **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) -* **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) -* **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) -* **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) -* **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) -* **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) -* **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) -* **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) -* **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) -* **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) -* further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) -* improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) -* improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) -* improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) -* improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) -* kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) -* log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) -* make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) -* PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) -* PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) -* PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) -* refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) -* screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) -* two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) -* wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** /sidecar/maximize event comes too early ([b619652](https://github.com/IBM/kui/commit/b619652)), closes [#1136](https://github.com/IBM/kui/issues/1136) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) +- **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** poor overflow in contexts table ([0ba7598](https://github.com/IBM/kui/commit/0ba7598)), closes [#1189](https://github.com/IBM/kui/issues/1189) +- **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) +- **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) +- **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) +- **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) +- **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) +- **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) +- **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) +- **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) +- **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) +- **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** text selection regression ([55aa109](https://github.com/IBM/kui/commit/55aa109)), closes [#1174](https://github.com/IBM/kui/issues/1174) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** k8s contexts click handler regression ([31fb7a3](https://github.com/IBM/kui/commit/31fb7a3)), closes [#1180](https://github.com/IBM/kui/issues/1180) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- forbid tab focus more carefully for elements that should not receive focus ([faa3b86](https://github.com/IBM/kui/commit/faa3b86)), closes [#1160](https://github.com/IBM/kui/issues/1160) +- further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) +- improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) +- improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) +- improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) +- improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) +- kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) +- log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) +- make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- node-pty versus electron ([1263c74](https://github.com/IBM/kui/commit/1263c74)), closes [#1155](https://github.com/IBM/kui/issues/1155) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) +- PTY copy support ([bd67a31](https://github.com/IBM/kui/commit/bd67a31)), closes [#1188](https://github.com/IBM/kui/issues/1188) +- PTY scrolling is a bit off ([788bd5a](https://github.com/IBM/kui/commit/788bd5a)), closes [#1128](https://github.com/IBM/kui/issues/1128) +- PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) +- refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) +- screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) +- two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) +- wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) -* k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) -* kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) -* kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) -* kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) -* type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) -* **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) -* **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) +- k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) +- kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) +- kubectl edit support ([de44c9a](https://github.com/IBM/kui/commit/de44c9a)), closes [#1164](https://github.com/IBM/kui/issues/1164) +- kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- minimal table rendering mode ([7c73550](https://github.com/IBM/kui/commit/7c73550)), closes [#1145](https://github.com/IBM/kui/issues/1145) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) +- type coverage metric ([9ae1c62](https://github.com/IBM/kui/commit/9ae1c62)), closes [#1186](https://github.com/IBM/kui/issues/1186) +- **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) +- **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.25.0 (2019-04-10) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) -* **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) -* **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) -* **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) -* **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) -* **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) -* **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) -* **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) -* **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) -* **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) -* **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) -* improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) -* improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) -* kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) -* log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) -* make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) -* PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) -* refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) -* screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) -* two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) -* UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) -* wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** another tweak to default font color ([025162d](https://github.com/IBM/kui/commit/025162d)), closes [#1097](https://github.com/IBM/kui/issues/1097) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** don't rotate application icon ([c173608](https://github.com/IBM/kui/commit/c173608)), closes [#1070](https://github.com/IBM/kui/issues/1070) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** eliminate use of fade-in for usage-error UI ([5f11461](https://github.com/IBM/kui/commit/5f11461)), closes [#950](https://github.com/IBM/kui/issues/950) +- **packages/app:** extend picture-in-picture use for popup mode ([74f5b50](https://github.com/IBM/kui/commit/74f5b50)), closes [#938](https://github.com/IBM/kui/issues/938) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** grid legend overflow ([d702075](https://github.com/IBM/kui/commit/d702075)), closes [#951](https://github.com/IBM/kui/issues/951) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast ([e5f34a5](https://github.com/IBM/kui/commit/e5f34a5)), closes [#1075](https://github.com/IBM/kui/issues/1075) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase bottom padding for active repl block ([2b23890](https://github.com/IBM/kui/commit/2b23890)), closes [#1082](https://github.com/IBM/kui/issues/1082) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing glitch in sidecar header ([00f9969](https://github.com/IBM/kui/commit/00f9969)), closes [#946](https://github.com/IBM/kui/issues/946) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** no border-right for left tab stripe ([130d915](https://github.com/IBM/kui/commit/130d915)), closes [#1034](https://github.com/IBM/kui/issues/1034) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** paste versus popup mode ([8ae6299](https://github.com/IBM/kui/commit/8ae6299)), closes [#972](https://github.com/IBM/kui/issues/972) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** popup mode was not displaying errors ([ecbc8fc](https://github.com/IBM/kui/commit/ecbc8fc)), closes [#919](https://github.com/IBM/kui/issues/919) +- **packages/app:** popup scrolling issues ([7ad4034](https://github.com/IBM/kui/commit/7ad4034)), closes [#924](https://github.com/IBM/kui/issues/924) +- **packages/app:** popup tables should snap to fit ([b201e79](https://github.com/IBM/kui/commit/b201e79)), closes [#978](https://github.com/IBM/kui/issues/978) +- **packages/app:** refinements to left tab stripe ui ([13746de](https://github.com/IBM/kui/commit/13746de)), closes [#1032](https://github.com/IBM/kui/issues/1032) +- **packages/app:** remove direction: rtl from sidecar header ([bf92060](https://github.com/IBM/kui/commit/bf92060)), closes [#1111](https://github.com/IBM/kui/issues/1111) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** repl input should overflow with ellipsis ([f88d0ab](https://github.com/IBM/kui/commit/f88d0ab)), closes [#995](https://github.com/IBM/kui/issues/995) +- **packages/app:** several UI fixes for back button ([1077848](https://github.com/IBM/kui/commit/1077848)), closes [#910](https://github.com/IBM/kui/issues/910) +- **packages/app:** sidecar and repl UI glitch fixes ([a1f4713](https://github.com/IBM/kui/commit/a1f4713)), closes [#1027](https://github.com/IBM/kui/issues/1027) [#1028](https://github.com/IBM/kui/issues/1028) +- **packages/app:** sidecar back button is huge ([a4467bd](https://github.com/IBM/kui/commit/a4467bd)), closes [#1085](https://github.com/IBM/kui/issues/1085) +- **packages/app:** sidecar sticks to fullscreen ([048fab7](https://github.com/IBM/kui/commit/048fab7)), closes [#1079](https://github.com/IBM/kui/issues/1079) +- **packages/app:** some usage error formatting issues ([a9523c6](https://github.com/IBM/kui/commit/a9523c6)), closes [#956](https://github.com/IBM/kui/issues/956) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tables go full width when sidecar is minimized ([cefd511](https://github.com/IBM/kui/commit/cefd511)), closes [#998](https://github.com/IBM/kui/issues/998) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update "total catastrophe" rendering ([3edcaba](https://github.com/IBM/kui/commit/3edcaba)), closes [#1042](https://github.com/IBM/kui/issues/1042) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/app:** usage UI uses REM font size ([d477faa](https://github.com/IBM/kui/commit/d477faa)), closes [#1116](https://github.com/IBM/kui/issues/1116) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-apache-composer:** app list table header should show "compositions" ([70f543c](https://github.com/IBM/kui/commit/70f543c)), closes [#948](https://github.com/IBM/kui/issues/948) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- improved log rendering, especially for istio ([dca663a](https://github.com/IBM/kui/commit/dca663a)), closes [#1017](https://github.com/IBM/kui/issues/1017) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve exit code handling of pty ([d096fe9](https://github.com/IBM/kui/commit/d096fe9)), closes [#1054](https://github.com/IBM/kui/issues/1054) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugins-k8s:** describe versus unknown resource type ([5b7f0ca](https://github.com/IBM/kui/commit/5b7f0ca)), closes [#1007](https://github.com/IBM/kui/issues/1007) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few minor usage tweaks ([e6f8e23](https://github.com/IBM/kui/commit/e6f8e23)), closes [#958](https://github.com/IBM/kui/issues/958) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- app list table header row ([0e1a491](https://github.com/IBM/kui/commit/0e1a491)), closes [#926](https://github.com/IBM/kui/issues/926) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- further screenshot ui improvements ([7ec7808](https://github.com/IBM/kui/commit/7ec7808)), closes [#916](https://github.com/IBM/kui/issues/916) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve input queueing versus PTY ([98120da](https://github.com/IBM/kui/commit/98120da)), closes [#1095](https://github.com/IBM/kui/issues/1095) +- improve ls output with sidecar open ([b3396fd](https://github.com/IBM/kui/commit/b3396fd)), closes [#1030](https://github.com/IBM/kui/issues/1030) +- improve prettyPrintTime for small deltas ([8b43230](https://github.com/IBM/kui/commit/8b43230)), closes [#1023](https://github.com/IBM/kui/issues/1023) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved about window UI ([9fe5a51](https://github.com/IBM/kui/commit/9fe5a51)), closes [#1103](https://github.com/IBM/kui/issues/1103) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved scrolling behavior for PTY ([8953d8b](https://github.com/IBM/kui/commit/8953d8b)), closes [#1093](https://github.com/IBM/kui/issues/1093) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- increase contrast of screenshot "ok" icon ([cc2e5d4](https://github.com/IBM/kui/commit/cc2e5d4)), closes [#914](https://github.com/IBM/kui/issues/914) +- kedit breakage ([e237336](https://github.com/IBM/kui/commit/e237336)), closes [#982](https://github.com/IBM/kui/issues/982) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- log formatting issues ([8bc375c](https://github.com/IBM/kui/commit/8bc375c)), closes [#1036](https://github.com/IBM/kui/issues/1036) +- log parsing updates ([b7b91db](https://github.com/IBM/kui/commit/b7b91db)), closes [#1019](https://github.com/IBM/kui/issues/1019) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- make sidecar header repl look more like a repl ([f01e3a3](https://github.com/IBM/kui/commit/f01e3a3)), closes [#912](https://github.com/IBM/kui/issues/912) +- make sure we don't label multiple columns as NAME-like ([c64386a](https://github.com/IBM/kui/commit/c64386a)), closes [#936](https://github.com/IBM/kui/issues/936) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- overflowing table cells ([e57fadf](https://github.com/IBM/kui/commit/e57fadf)), closes [#1004](https://github.com/IBM/kui/issues/1004) +- PTY should respond to sidecar open/close ([4972f1a](https://github.com/IBM/kui/commit/4972f1a)), closes [#1056](https://github.com/IBM/kui/issues/1056) +- refinements to kedit ([13ae0bf](https://github.com/IBM/kui/commit/13ae0bf)), closes [#986](https://github.com/IBM/kui/issues/986) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- restore missing application icon ([a363b33](https://github.com/IBM/kui/commit/a363b33)), closes [#1046](https://github.com/IBM/kui/issues/1046) [#432](https://github.com/IBM/kui/issues/432) +- screenshot should respect scrollTop ([3d7e04c](https://github.com/IBM/kui/commit/3d7e04c)), closes [#970](https://github.com/IBM/kui/issues/970) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- slowPoll sometimes never terminates ([c974e5e](https://github.com/IBM/kui/commit/c974e5e)), closes [#1050](https://github.com/IBM/kui/issues/1050) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- tab management should work when tabs are active ([615213d](https://github.com/IBM/kui/commit/615213d)), closes [#1067](https://github.com/IBM/kui/issues/1067) +- two reverse-i-search issues ([69fd8bc](https://github.com/IBM/kui/commit/69fd8bc)), closes [#1011](https://github.com/IBM/kui/issues/1011) +- UI tweaks for grid+table views ([6b4bbbf](https://github.com/IBM/kui/commit/6b4bbbf)), closes [#922](https://github.com/IBM/kui/issues/922) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- wskflow theming and css cleanup ([28fed89](https://github.com/IBM/kui/commit/28fed89)), closes [#1025](https://github.com/IBM/kui/issues/1025) +- wskflow versus popup mode ([629bf44](https://github.com/IBM/kui/commit/629bf44)), closes [#1107](https://github.com/IBM/kui/issues/1107) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) -* k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) -* kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) -* kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) -* **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) -* **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- k8s parsing of nginx access logs ([86fd92f](https://github.com/IBM/kui/commit/86fd92f)), closes [#1040](https://github.com/IBM/kui/issues/1040) +- k8s tables should have header ([996a3c3](https://github.com/IBM/kui/commit/996a3c3)), closes [#942](https://github.com/IBM/kui/issues/942) +- kiali graph ([d51e3e1](https://github.com/IBM/kui/commit/d51e3e1)), closes [#965](https://github.com/IBM/kui/issues/965) [#966](https://github.com/IBM/kui/issues/966) +- kubectl get -w ([fc833d9](https://github.com/IBM/kui/commit/fc833d9)), closes [#981](https://github.com/IBM/kui/issues/981) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- pty ([a3ad81d](https://github.com/IBM/kui/commit/a3ad81d)), closes [#572](https://github.com/IBM/kui/issues/572) [#414](https://github.com/IBM/kui/issues/414) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- switch from IBM Plex Mono to Roboto Mono ([5f87724](https://github.com/IBM/kui/commit/5f87724)), closes [#1074](https://github.com/IBM/kui/issues/1074) +- **packages/app:** cmd/ctrl+L in popup mode should focus sidecar input ([e518400](https://github.com/IBM/kui/commit/e518400)), closes [#930](https://github.com/IBM/kui/issues/930) +- **packages/app:** cmd+K on macos should clear repl ([f75766d](https://github.com/IBM/kui/commit/f75766d)), closes [#1013](https://github.com/IBM/kui/issues/1013) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- **packages/app:** queue up input while commands are executed ([51ec7e9](https://github.com/IBM/kui/commit/51ec7e9)), closes [#1044](https://github.com/IBM/kui/issues/1044) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-bash-like:** asciidoc support ([af29e03](https://github.com/IBM/kui/commit/af29e03)), closes [#934](https://github.com/IBM/kui/issues/934) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.24.0 (2019-03-19) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** fix for pageup/pagedown keys in webpack ([474ba54](https://github.com/IBM/kui/commit/474ba54)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- enhanced support for subtext rendering of sidecar ([b54f1ff](https://github.com/IBM/kui/commit/b54f1ff)), closes [#907](https://github.com/IBM/kui/issues/907) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.23.0 (2019-03-19) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) -* **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) -* **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) -* **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) -* **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) -* **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) -* **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) -* **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) -* **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) -* export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) -* fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) -* improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) -* improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) -* refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) -* refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) -* repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) -* resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) -* screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** bottom stripe does not scale well with fonts ([622fbe6](https://github.com/IBM/kui/commit/622fbe6)), closes [#828](https://github.com/IBM/kui/issues/828) +- **packages/app:** cmd+W does not close dev tools window ([c81ebac](https://github.com/IBM/kui/commit/c81ebac)), closes [#887](https://github.com/IBM/kui/issues/887) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** fix webpack in safari and firefox by removing negative lookbehind regex ([bd25bdb](https://github.com/IBM/kui/commit/bd25bdb)), closes [#848](https://github.com/IBM/kui/issues/848) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** headless pretty printer fixes for usage output ([e02f1b9](https://github.com/IBM/kui/commit/e02f1b9)), closes [#767](https://github.com/IBM/kui/issues/767) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve consistency of "ok" spacing ([ec939eb](https://github.com/IBM/kui/commit/ec939eb)), closes [#815](https://github.com/IBM/kui/issues/815) +- **packages/app:** improve handling of heterogeneous badges ([1388227](https://github.com/IBM/kui/commit/1388227)), closes [#807](https://github.com/IBM/kui/issues/807) +- **packages/app:** improve text contrast for README.md rendering ([786365c](https://github.com/IBM/kui/commit/786365c)), closes [#819](https://github.com/IBM/kui/issues/819) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase contrast of table header ([3a5412c](https://github.com/IBM/kui/commit/3a5412c)), closes [#778](https://github.com/IBM/kui/issues/778) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** minor spacing tweaks to repl ([ff51e08](https://github.com/IBM/kui/commit/ff51e08)), closes [#789](https://github.com/IBM/kui/issues/789) +- **packages/app:** pageup/down key support for webpack ([f3c64ad](https://github.com/IBM/kui/commit/f3c64ad)), closes [#678](https://github.com/IBM/kui/issues/678) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** text placement of minimized sidecar title ([438d7cc](https://github.com/IBM/kui/commit/438d7cc)), closes [#813](https://github.com/IBM/kui/issues/813) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/app:** tweak sidecar header type shorthand heuristic ([56f380b](https://github.com/IBM/kui/commit/56f380b)), closes [#784](https://github.com/IBM/kui/issues/784) +- **packages/app:** tweaks for sidecar bottom stripe UI ([b8c7f6e](https://github.com/IBM/kui/commit/b8c7f6e)), closes [#885](https://github.com/IBM/kui/issues/885) +- **packages/app:** update last updated date daily ([4e6c7d0](https://github.com/IBM/kui/commit/4e6c7d0)), closes [#876](https://github.com/IBM/kui/issues/876) +- **packages/app:** usage links should be target:blank ([b3ca81e](https://github.com/IBM/kui/commit/b3ca81e)), closes [#827](https://github.com/IBM/kui/issues/827) +- **packages/app:** usage rendering always shows red text ([211297b](https://github.com/IBM/kui/commit/211297b)), closes [#821](https://github.com/IBM/kui/issues/821) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** bash-like was not registering its catchall on preload ([99bf827](https://github.com/IBM/kui/commit/99bf827)), closes [#285](https://github.com/IBM/kui/issues/285) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** k get namespace does not show green for Active ([6146269](https://github.com/IBM/kui/commit/6146269)), closes [#782](https://github.com/IBM/kui/issues/782) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-openwhisk:** hover over failure bar and execution time legend is activated ([4708f2c](https://github.com/IBM/kui/commit/4708f2c)), closes [#865](https://github.com/IBM/kui/issues/865) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- eliminate tiny fonts for "package prefix" of default table view ([0ef5904](https://github.com/IBM/kui/commit/0ef5904)), closes [#855](https://github.com/IBM/kui/issues/855) +- export default window width and height ([a4e8e9e](https://github.com/IBM/kui/commit/a4e8e9e)), closes [#897](https://github.com/IBM/kui/issues/897) +- fix for overflowing badge text ([6caaeaf](https://github.com/IBM/kui/commit/6caaeaf)), closes [#795](https://github.com/IBM/kui/issues/795) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- improve support for kube all-namespaces ([8fab11a](https://github.com/IBM/kui/commit/8fab11a)), closes [#797](https://github.com/IBM/kui/issues/797) +- improved activation list UI ([fe69bd6](https://github.com/IBM/kui/commit/fe69bd6)), closes [#837](https://github.com/IBM/kui/issues/837) +- improved support for long vertical "resource type" sidecar header ([73ac7b4](https://github.com/IBM/kui/commit/73ac7b4)), closes [#780](https://github.com/IBM/kui/issues/780) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- openwhisk package list UI fixes ([6d1c2d9](https://github.com/IBM/kui/commit/6d1c2d9)), closes [#296](https://github.com/IBM/kui/issues/296) +- refinements to openwhisk list views ([5f822ca](https://github.com/IBM/kui/commit/5f822ca)), closes [#851](https://github.com/IBM/kui/issues/851) +- refinements to popup UI ([a6cab89](https://github.com/IBM/kui/commit/a6cab89)), closes [#874](https://github.com/IBM/kui/issues/874) +- repl should use outer scrolling when in popup mode ([434ed21](https://github.com/IBM/kui/commit/434ed21)), closes [#870](https://github.com/IBM/kui/issues/870) +- resolve multiple issues with popups ([09c252f](https://github.com/IBM/kui/commit/09c252f)), closes [#872](https://github.com/IBM/kui/issues/872) +- screenshot UI improvements ([0f4e970](https://github.com/IBM/kui/commit/0f4e970)), closes [#890](https://github.com/IBM/kui/issues/890) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- simplify core log formatter ([4877029](https://github.com/IBM/kui/commit/4877029)), closes [#842](https://github.com/IBM/kui/issues/842) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- use 2-space indent for js-beautify ([f6f9795](https://github.com/IBM/kui/commit/f6f9795)), closes [#845](https://github.com/IBM/kui/issues/845) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- --ui should open repl-free windows ([088c24f](https://github.com/IBM/kui/commit/088c24f)), closes [#830](https://github.com/IBM/kui/issues/830) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **packages/app:** popup window should offer an ([a49236e](https://github.com/IBM/kui/commit/a49236e)), closes [#878](https://github.com/IBM/kui/issues/878) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-k8s:** kubectl describe refinements ([6b6e8c5](https://github.com/IBM/kui/commit/6b6e8c5)), closes [#756](https://github.com/IBM/kui/issues/756) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.22.0 (2019-03-10) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) ### Features -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- pretty-print kubectl error+usage output ([b6e235b](https://github.com/IBM/kui/commit/b6e235b)), closes [#751](https://github.com/IBM/kui/issues/751) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.21.0 (2019-03-10) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- user should be able to select text in sidecar header ([9a8a2e2](https://github.com/IBM/kui/commit/9a8a2e2)), closes [#741](https://github.com/IBM/kui/issues/741) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) ### Features -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- switch about window to use a sidecar DOM ([90d3ad3](https://github.com/IBM/kui/commit/90d3ad3)), closes [#746](https://github.com/IBM/kui/issues/746) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.20.0 (2019-03-10) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** further improve multi-line table rendering ([807ce72](https://github.com/IBM/kui/commit/807ce72)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** improve usage rendering for ascii lists and optional args ([eba6397](https://github.com/IBM/kui/commit/eba6397)), closes [#730](https://github.com/IBM/kui/issues/730) [#731](https://github.com/IBM/kui/issues/731) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** poor display of multi-line table cells ([6292e91](https://github.com/IBM/kui/commit/6292e91)), closes [#726](https://github.com/IBM/kui/issues/726) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- make improved use of sidecar header for k8s ([e9c34d0](https://github.com/IBM/kui/commit/e9c34d0)), closes [#735](https://github.com/IBM/kui/issues/735) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) ### Features -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) - - - - +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) # 2.19.0 (2019-03-09) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) -* **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) -* various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** eliminate remaining uses of tiny text in core table view ([7f18d9a](https://github.com/IBM/kui/commit/7f18d9a)), closes [#695](https://github.com/IBM/kui/issues/695) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix incorrect data-status-code when command is not resolved by any plugin and add help suggestion to command-not-found error ([01a288e](https://github.com/IBM/kui/commit/01a288e)), closes [#680](https://github.com/IBM/kui/issues/680) +- **packages/app:** fix small vertical wiggle in table cells ([84ab2b4](https://github.com/IBM/kui/commit/84ab2b4)), closes [#711](https://github.com/IBM/kui/issues/711) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** height of first repl input changes after execution ([9a40f5e](https://github.com/IBM/kui/commit/9a40f5e)), closes [#706](https://github.com/IBM/kui/issues/706) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** make sure badges don't overflow tables ([9ba1e89](https://github.com/IBM/kui/commit/9ba1e89)), closes [#704](https://github.com/IBM/kui/issues/704) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/app:** try to keep the REPL prompt in focus ([665a953](https://github.com/IBM/kui/commit/665a953)), closes [#700](https://github.com/IBM/kui/issues/700) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- a few more tab tweaks ([8e31e5e](https://github.com/IBM/kui/commit/8e31e5e)), closes [#719](https://github.com/IBM/kui/issues/719) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- git status UI fixes ([cf0f5cb](https://github.com/IBM/kui/commit/cf0f5cb)), closes [#702](https://github.com/IBM/kui/issues/702) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) +- various small fixes for tab UI ([c41d388](https://github.com/IBM/kui/commit/c41d388)), closes [#717](https://github.com/IBM/kui/issues/717) ### Features -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) -* **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) - - - - +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- sidecar full screen ([4f21cb2](https://github.com/IBM/kui/commit/4f21cb2)), closes [#294](https://github.com/IBM/kui/issues/294) [#721](https://github.com/IBM/kui/issues/721) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **packages/app:** eliminate | repl spinner ([eb8e3f5](https://github.com/IBM/kui/commit/eb8e3f5)), closes [#698](https://github.com/IBM/kui/issues/698) +- **packages/app:** support declarative bottom stripe direct buttons ([efa0f8a](https://github.com/IBM/kui/commit/efa0f8a)), closes [#708](https://github.com/IBM/kui/issues/708) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) # 2.18.0 (2019-03-08) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) -* **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) -* **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) -* **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** badge text renders off-center in firefox ([bb4f6c5](https://github.com/IBM/kui/commit/bb4f6c5)), closes [#659](https://github.com/IBM/kui/issues/659) +- **packages/app:** balloon-css tooltips should follow theme ([e8a73b9](https://github.com/IBM/kui/commit/e8a73b9)), closes [#663](https://github.com/IBM/kui/issues/663) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** double-click on electron app doesn't give full size window ([4cde270](https://github.com/IBM/kui/commit/4cde270)), closes [#406](https://github.com/IBM/kui/issues/406) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** remove table border transition effect ([ffc5bc0](https://github.com/IBM/kui/commit/ffc5bc0)), closes [#672](https://github.com/IBM/kui/issues/672) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/app:** table row selection does not pre-highlight on hover ([bba1f58](https://github.com/IBM/kui/commit/bba1f58)), closes [#670](https://github.com/IBM/kui/issues/670) +- **packages/app:** tighten spacing in repl UI ([2525ffa](https://github.com/IBM/kui/commit/2525ffa)), closes [#682](https://github.com/IBM/kui/issues/682) +- **packages/app:** tone down dark mode entity display ([c7ab2e8](https://github.com/IBM/kui/commit/c7ab2e8)), closes [#691](https://github.com/IBM/kui/issues/691) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-k8s:** kubectl logs -h does not display usage ([67f56fa](https://github.com/IBM/kui/commit/67f56fa)), closes [#571](https://github.com/IBM/kui/issues/571) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- allow clients to take control over entity name table cell coloring ([77b99d9](https://github.com/IBM/kui/commit/77b99d9)), closes [#675](https://github.com/IBM/kui/issues/675) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- screenshots of repl output should have padding ([1b89795](https://github.com/IBM/kui/commit/1b89795)), closes [#668](https://github.com/IBM/kui/issues/668) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) ### Features -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) -* use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) - - - - +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) +- use editor more widely ([fe063de](https://github.com/IBM/kui/commit/fe063de)), closes [#532](https://github.com/IBM/kui/issues/532) # 2.17.0 (2019-03-06) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) ### Features -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.16.0 (2019-03-06) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) ### Features -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.15.0 (2019-03-06) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) -* **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) -* **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) -* handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) -* switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** fix for row striping contrast in sidecar tables ([c8f0231](https://github.com/IBM/kui/commit/c8f0231)), closes [#626](https://github.com/IBM/kui/issues/626) +- **packages/app:** fix for spinner going off-viewport ([0d095f0](https://github.com/IBM/kui/commit/0d095f0)), closes [#602](https://github.com/IBM/kui/issues/602) +- **packages/app:** fix use of undefined css variable ([8e05681](https://github.com/IBM/kui/commit/8e05681)), closes [#633](https://github.com/IBM/kui/issues/633) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** make annoying 'ok' invisible ([0a0f7f7](https://github.com/IBM/kui/commit/0a0f7f7)), closes [#597](https://github.com/IBM/kui/issues/597) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- color contrast issues with dark mode ([15afe23](https://github.com/IBM/kui/commit/15afe23)), closes [#605](https://github.com/IBM/kui/issues/605) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- smoother transitions as themes switch ([1ad91c1](https://github.com/IBM/kui/commit/1ad91c1)), closes [#613](https://github.com/IBM/kui/issues/613) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- clicks on sidecar header etc. result in prompt losing focus ([2f78dfc](https://github.com/IBM/kui/commit/2f78dfc)), closes [#610](https://github.com/IBM/kui/issues/610) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- git diff should use side-by-side ([4fe215b](https://github.com/IBM/kui/commit/4fe215b)), closes [#617](https://github.com/IBM/kui/issues/617) +- handle custom clients that don't provide plugin-core-support ([eb10966](https://github.com/IBM/kui/commit/eb10966)), closes [#615](https://github.com/IBM/kui/issues/615) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) +- switch to base16 theme scheme ([5c6a88a](https://github.com/IBM/kui/commit/5c6a88a)), closes [#600](https://github.com/IBM/kui/issues/600) ### Features -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) -* **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- add a few more themes ([92199d3](https://github.com/IBM/kui/commit/92199d3)), closes [#608](https://github.com/IBM/kui/issues/608) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **plugins/plugin-k8s:** initial istio and kiali support ([0072725](https://github.com/IBM/kui/commit/0072725)), closes [#644](https://github.com/IBM/kui/issues/644) +- **plugins/plugin-wrk:** wrk plugin ([d39a331](https://github.com/IBM/kui/commit/d39a331)), closes [#624](https://github.com/IBM/kui/issues/624) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.14.0 (2019-02-28) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.13.0 (2019-02-28) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** adjust behavior of usage with sidecar open ([b5cff00](https://github.com/IBM/kui/commit/b5cff00)), closes [#580](https://github.com/IBM/kui/issues/580) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- improve handling of non-zero exit codes in bash-like usage formatting ([98bb8b3](https://github.com/IBM/kui/commit/98bb8b3)), closes [#582](https://github.com/IBM/kui/issues/582) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- some tables overflowed due to buggy scrollable css ([23d3353](https://github.com/IBM/kui/commit/23d3353)), closes [#575](https://github.com/IBM/kui/issues/575) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.12.0 (2019-02-27) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) -* **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) -* **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) -* **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) -* **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) -* **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) -* **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) -* **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/app:** dark mode fixes for help display ([6df5c7d](https://github.com/IBM/kui/commit/6df5c7d)), closes [#539](https://github.com/IBM/kui/issues/539) +- **packages/app:** increase contrast of yellow badge ([56a2375](https://github.com/IBM/kui/commit/56a2375)), closes [#550](https://github.com/IBM/kui/issues/550) +- **packages/app:** streaming stdout should appear above (not next to) stderr ([2900492](https://github.com/IBM/kui/commit/2900492)), closes [#543](https://github.com/IBM/kui/issues/543) +- **packages/kui-builder:** minor dark mode border color tweak ([2d20fda](https://github.com/IBM/kui/commit/2d20fda)), closes [#561](https://github.com/IBM/kui/issues/561) +- **packages/kui-builder:** theming fixes for webpack ([5254b73](https://github.com/IBM/kui/commit/5254b73)), closes [#524](https://github.com/IBM/kui/issues/524) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **plugins/plugin-bash-like:** improve markdown rendering ([fd37be5](https://github.com/IBM/kui/commit/fd37be5)), closes [#159](https://github.com/IBM/kui/issues/159) +- **plugins/plugin-core-support:** tab completion should support dot files ([507b86f](https://github.com/IBM/kui/commit/507b86f)), closes [#547](https://github.com/IBM/kui/issues/547) +- **plugins/plugin-editor:** improved dark mode for editor ([8a7fd03](https://github.com/IBM/kui/commit/8a7fd03)), closes [#533](https://github.com/IBM/kui/issues/533) [#530](https://github.com/IBM/kui/issues/530) +- **plugins/plugin-tutorial:** tutorials versus dark mode fixes ([8f842ab](https://github.com/IBM/kui/commit/8f842ab)), closes [#531](https://github.com/IBM/kui/issues/531) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- more dark mode tweaks, including for editor text ([1d353ae](https://github.com/IBM/kui/commit/1d353ae)), closes [#554](https://github.com/IBM/kui/issues/554) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) -* **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **packages/app:** dark theme support ([51f8736](https://github.com/IBM/kui/commit/51f8736)), closes [#522](https://github.com/IBM/kui/issues/522) +- **plugin-k8s:** add conditions and containers tabs to kubectl get ([7ca6130](https://github.com/IBM/kui/commit/7ca6130)), closes [#517](https://github.com/IBM/kui/issues/517) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.11.0 (2019-02-22) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **packages/tests:** remove bin/corral from test runner ([1f7c263](https://github.com/IBM/kui/commit/1f7c263)), closes [#510](https://github.com/IBM/kui/issues/510) [#425](https://github.com/IBM/kui/issues/425) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.10.0 (2019-02-21) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.9.0 (2019-02-21) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **plugin-k8s:** add "k" alias for "kubectl" ([4611ffe](https://github.com/IBM/kui/commit/4611ffe)), closes [#498](https://github.com/IBM/kui/issues/498) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **test:** refactor /tests ([98f6096](https://github.com/IBM/kui/commit/98f6096)), closes [#496](https://github.com/IBM/kui/issues/496) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) ## 2.8.1 (2019-02-20) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.8.0 (2019-02-20) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.7.0 (2019-02-19) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) -* **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **plugin-k8s:** improve k8s in absence of plugin-openwhisk ([30f8a3a](https://github.com/IBM/kui/commit/30f8a3a)), closes [#457](https://github.com/IBM/kui/issues/457) [#458](https://github.com/IBM/kui/issues/458) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **plugin-openwhisk:** code highlight race bugs ([717b563](https://github.com/IBM/kui/commit/717b563)), closes [#475](https://github.com/IBM/kui/issues/475) +- **plugins-editor, plugins-openwhisk-editor-extensions:** fixes for lock/unlock and deploy n editor ([d0801a1](https://github.com/IBM/kui/commit/d0801a1)), closes [#472](https://github.com/IBM/kui/issues/472) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.6.0 (2019-02-13) - ### Bug Fixes -* **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) -* **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) -* **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) -* **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- **app:** fixes for --ui and headless to graphics transitions ([38c4e98](https://github.com/IBM/kui/commit/38c4e98)), closes [#408](https://github.com/IBM/kui/issues/408) +- **app:** opening Kui Electron Builds from macOS Finder adds additional argv -psn ([5ac8393](https://github.com/IBM/kui/commit/5ac8393)), closes [#382](https://github.com/IBM/kui/issues/382) +- **app:** table watch handler was installing a row-level onclick handler ([ecdd93b](https://github.com/IBM/kui/commit/ecdd93b)), closes [#388](https://github.com/IBM/kui/issues/388) +- **app:** tone down ENOENT while precompiling plugin model ([dc99c90](https://github.com/IBM/kui/commit/dc99c90)), closes [#375](https://github.com/IBM/kui/issues/375) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **plugin-k8s:** k8s status enters infinite loop if resources absent ([e714c3f](https://github.com/IBM/kui/commit/e714c3f)), closes [#393](https://github.com/IBM/kui/issues/393) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.5.0 (2019-02-04) - ### Bug Fixes -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.4.0 (2019-02-03) - ### Bug Fixes -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.3.0 (2019-02-03) - ### Bug Fixes -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.2.0 (2019-02-03) - ### Bug Fixes -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **core:** another fix for error handling in plugin precompiler ([41c15db](https://github.com/IBM/kui/commit/41c15db)), closes [#306](https://github.com/IBM/kui/issues/306) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) - - - - +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) # 2.1.0 (2019-02-03) - ### Bug Fixes -* fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) -* local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) -* **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) -* **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) -* **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) -* **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) -* **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) - +- fixes for auth in browser+proxy mode ([a441c33](https://github.com/IBM/kui/commit/a441c33)), closes [#287](https://github.com/IBM/kui/issues/287) [#286](https://github.com/IBM/kui/issues/286) [#289](https://github.com/IBM/kui/issues/289) +- local dev-mode ./bin/kui is missing theme ([e41e159](https://github.com/IBM/kui/commit/e41e159)), closes [#319](https://github.com/IBM/kui/issues/319) +- **core:** confine global repl hack to test mode ([e37d933](https://github.com/IBM/kui/commit/e37d933)), closes [#212](https://github.com/IBM/kui/issues/212) +- **core:** more gracefully handle dom and errors in plugin compiler ([34e6f48](https://github.com/IBM/kui/commit/34e6f48)), closes [#306](https://github.com/IBM/kui/issues/306) +- **k8s:** fix for kubectl status in headless mode ([072626f](https://github.com/IBM/kui/commit/072626f)), closes [#327](https://github.com/IBM/kui/issues/327) +- **webpack:** fixes for webpack build regressions ([f636fb6](https://github.com/IBM/kui/commit/f636fb6)), closes [#259](https://github.com/IBM/kui/issues/259) +- **wskflow:** fix for preview [@demos](https://github.com/demos) in webpack mode ([d1b4e75](https://github.com/IBM/kui/commit/d1b4e75)), closes [#329](https://github.com/IBM/kui/issues/329) ### Features -* kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) -* **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) +- kuiproxy ([530c278](https://github.com/IBM/kui/commit/530c278)), closes [#266](https://github.com/IBM/kui/issues/266) [#278](https://github.com/IBM/kui/issues/278) [#279](https://github.com/IBM/kui/issues/279) +- **webpack:** dockerized webpack build ([bc65dc2](https://github.com/IBM/kui/commit/bc65dc2)), closes [#274](https://github.com/IBM/kui/issues/274) diff --git a/packages/app/src/core/capabilities.ts b/packages/app/src/core/capabilities.ts index 93768a97896..0721da5529e 100644 --- a/packages/app/src/core/capabilities.ts +++ b/packages/app/src/core/capabilities.ts @@ -67,7 +67,9 @@ export const hasProxy = () => state.hasProxy * Assert that Kui is supported by a remote proxy * */ -export const assertHasProxy = () => { state.hasProxy = true } +export const assertHasProxy = () => { + state.hasProxy = true +} /** * Update the media, e.g. to indicate that we are running in a browser @@ -127,7 +129,8 @@ export const setValidCredentials = (creds: CredentialsMap): void => { * Do we have valid credentials to interface with the given provider? * */ -export const hasAuth = (provider: string): boolean => !!state.validCredentials[provider] +export const hasAuth = (provider: string): boolean => + !!state.validCredentials[provider] /** * Do we have access to a local system? diff --git a/packages/app/src/core/command-tree.ts b/packages/app/src/core/command-tree.ts index c0bacdb256a..4c7e305bf3d 100644 --- a/packages/app/src/core/command-tree.ts +++ b/packages/app/src/core/command-tree.ts @@ -16,7 +16,20 @@ import * as Debug from 'debug' -import { CommandHandler, CommandTree, CommandTreeResolution, Disambiguator, ExecType, CatchAllOffer, CatchAllHandler, Command, CommandBase, CommandHandlerWithEvents, CommandOptions, Event } from '../models/command' +import { + CommandHandler, + CommandTree, + CommandTreeResolution, + Disambiguator, + ExecType, + CatchAllOffer, + CatchAllHandler, + Command, + CommandBase, + CommandHandlerWithEvents, + CommandOptions, + Event +} from '../models/command' import eventBus from './events' import { UsageError } from './usage-error' @@ -34,7 +47,13 @@ const debug = Debug('core/command-tree') const root = () => undefined // this will trigger a re-parse using Context.current as the path prefix // eslint-disable-next-line @typescript-eslint/no-unused-vars const interior = (x?: string[], y?: number, z?: number) => undefined // this will trigger a re-parse using Context.current as the path prefix -const newTree = (): CommandTree => ({ $: root(), key: '/', route: '/', children: {}, parent: undefined }) +const newTree = (): CommandTree => ({ + $: root(), + key: '/', + route: '/', + children: {}, + parent: undefined +}) const model: CommandTree = newTree() // this is the model of registered listeners, a tree const intentions: CommandTree = newTree() // this is the model of registered intentional listeners @@ -55,7 +74,8 @@ export const endScan = (state: Disambiguator): Disambiguator => { const map: Disambiguator = {} for (const command in disambiguator) { map[command] = disambiguator[command].map(({ route, options }) => ({ - route, plugin: options && options.plugin + route, + plugin: options && options.plugin })) } if (state) { @@ -102,7 +122,14 @@ const exactlyTheSameRoute = (route: string, path: string[]): boolean => { * Navigate the given tree model, following the given path as [n1,n2,n3] * */ -const treeMatch = (model: CommandTree, path: string[], readonly = false, hide = false, idxStart = 0, noWildcard = false): Command => { +const treeMatch = ( + model: CommandTree, + path: string[], + readonly = false, + hide = false, + idxStart = 0, + noWildcard = false +): Command => { let parent = model let cur @@ -141,13 +168,16 @@ const treeMatch = (model: CommandTree, path: string[], readonly = false, hide = cur = parent } - if (cur.options && cur.options.noArgs && !exactlyTheSameRoute(cur.route, path)) { + if ( + cur.options && + cur.options.noArgs && + !exactlyTheSameRoute(cur.route, path) + ) { // if cur represents a command registration that has asserted // it takes no extra arguments, we can fast-path this as a // non-match, if cur's route doesn't contain the requested // command path // debug('no match', path, cur) - } else { return cur } @@ -156,14 +186,18 @@ const match = (path: string[], readonly: boolean): Command => { return treeMatch(model, path, readonly) } -class DefaultCommandOptions implements CommandOptions { -} +class DefaultCommandOptions implements CommandOptions {} /** * Register a command handler on the given route * */ -const _listen = (model: CommandTree, route: string, handler: CommandHandler, options: CommandOptions = new DefaultCommandOptions()) => { +const _listen = ( + model: CommandTree, + route: string, + handler: CommandHandler, + options: CommandOptions = new DefaultCommandOptions() +) => { const path = route.split('/').splice(1) const leaf = treeMatch(model, path, false, options.hide) @@ -190,8 +224,11 @@ const _listen = (model: CommandTree, route: string, handler: CommandHandler, opt leaf.route = route // update the disambiguator map - if (/*! (options && options.synonymFor) && */ // leaf is NOT a synonym - !(leaf.parent && leaf.parent.options && leaf.parent.options.synonymFor)) { // tree is NOT a synonym + if ( + /*! (options && options.synonymFor) && */ // leaf is NOT a synonym + !(leaf.parent && leaf.parent.options && leaf.parent.options.synonymFor) + ) { + // tree is NOT a synonym let resolutions = disambiguator[leaf.key] if (!resolutions) { resolutions = disambiguator[leaf.key] = [] @@ -205,7 +242,11 @@ const _listen = (model: CommandTree, route: string, handler: CommandHandler, opt return leaf } } -export const listen = (route: string, handler: CommandHandler, options: CommandOptions) => _listen(model, route, handler, options) +export const listen = ( + route: string, + handler: CommandHandler, + options: CommandOptions +) => _listen(model, route, handler, options) /** * Register a subtree in the command tree @@ -227,8 +268,11 @@ export const subtree = (route: string, options: CommandOptions) => { debug('subtree help', route, options) // the usage message - const usage = options.usage || - (options.synonymFor && options.synonymFor.options && options.synonymFor.options.usage) + const usage = + options.usage || + (options.synonymFor && + options.synonymFor.options && + options.synonymFor.options.usage) /* if (options.synonymFor) { usageMessage.synonymFor = options.synonymFor @@ -240,7 +284,12 @@ export const subtree = (route: string, options: CommandOptions) => { // // listen on /kubectl and /kubectl/help to present usage information // - const opts = { noArgs: true, subtreeHandler: true, noAuthOk: true, requiresFullyQualifiedRoute: true } + const opts = { + noArgs: true, + subtreeHandler: true, + noAuthOk: true, + requiresFullyQualifiedRoute: true + } myListen(route, help, Object.assign({}, options, opts)) myListen(`${route}/help`, help, Object.assign({}, options, opts)) @@ -252,9 +301,17 @@ export const subtree = (route: string, options: CommandOptions) => { * Register a synonym of a subtree * */ -export const subtreeSynonym = (route: string, master: Command, options = master.options) => { - if (route !== master.route) { // <-- don't alias to yourself! - const mySubtree = subtree(route, Object.assign({}, options, { synonymFor: master })) +export const subtreeSynonym = ( + route: string, + master: Command, + options = master.options +) => { + if (route !== master.route) { + // <-- don't alias to yourself! + const mySubtree = subtree( + route, + Object.assign({}, options, { synonymFor: master }) + ) // reverse mapping from master to synonym if (!master.synonyms) master.synonyms = {} @@ -267,10 +324,19 @@ export const subtreeSynonym = (route: string, master: Command, options = master. * master is the return value of `listen` * */ -export const synonym = (route: string, handler: CommandHandler, master: Command, options = master.options) => { +export const synonym = ( + route: string, + handler: CommandHandler, + master: Command, + options = master.options +) => { if (route !== master.route) { // don't alias to yourself! - const node = listen(route, handler, Object.assign({}, options, { synonymFor: master })) + const node = listen( + route, + handler, + Object.assign({}, options, { synonymFor: master }) + ) // reverse mapping from master to synonym if (!master.synonyms) master.synonyms = {} @@ -282,7 +348,17 @@ export const synonym = (route: string, handler: CommandHandler, master: Command, * Register an intentional action * */ -export const intention = (route: string, handler: CommandHandler, options: CommandOptions) => _listen(intentions, route, handler, Object.assign({}, options, { isIntention: true })) +export const intention = ( + route: string, + handler: CommandHandler, + options: CommandOptions +) => + _listen( + intentions, + route, + handler, + Object.assign({}, options, { isIntention: true }) + ) /** * Oops, we couldn't resolve the given command. But maybe we found @@ -290,7 +366,8 @@ export const intention = (route: string, handler: CommandHandler, options: Comma * */ const commandNotFoundMessage = 'Command not found' -const commandNotFoundMessageWithPartialMatches = 'The following commands are partial matches for your request.' +const commandNotFoundMessageWithPartialMatches = + 'The following commands are partial matches for your request.' /** * Help the user with some partial matches for a command not found @@ -303,29 +380,45 @@ const commandNotFoundMessageWithPartialMatches = 'The following commands are par * */ const formatPartialMatches = (partialMatches: Command[]): UsageError => { - return new UsageError({ - message: commandNotFoundMessage, - usage: { - header: commandNotFoundMessageWithPartialMatches, - available: partialMatches.map(({ options }) => options.usage) - } - }, { noBreadcrumb: true, noHide: true }) + return new UsageError( + { + message: commandNotFoundMessage, + usage: { + header: commandNotFoundMessageWithPartialMatches, + available: partialMatches.map(({ options }) => options.usage) + } + }, + { noBreadcrumb: true, noHide: true } + ) } -export const suggestPartialMatches = (partialMatches?: Command[], noThrow = false, hide = false): CodedError => { +export const suggestPartialMatches = ( + partialMatches?: Command[], + noThrow = false, + hide = false +): CodedError => { debug('suggestPartialMatches', partialMatches) // filter out any partial matches without usage info - const availablePartials = (partialMatches || []).filter(({ options }) => options.usage) + const availablePartials = (partialMatches || []).filter( + ({ options }) => options.usage + ) const anyPartials = availablePartials.length > 0 - const error: CodedError = anyPartials ? formatPartialMatches(availablePartials) : new Error(commandNotFoundMessage) + const error: CodedError = anyPartials + ? formatPartialMatches(availablePartials) + : new Error(commandNotFoundMessage) error.code = 404 // to allow for programmatic use of the partial matches, e.g. for tab completion if (anyPartials) { - error['partialMatches'] = availablePartials.map(_ => ({ command: _.route.split('/').slice(1).join(' '), - usage: _.options && _.options.usage })) + error['partialMatches'] = availablePartials.map(_ => ({ + command: _.route + .split('/') + .slice(1) + .join(' '), + usage: _.options && _.options.usage + })) } else { error['hide'] = hide } @@ -342,7 +435,11 @@ export const suggestPartialMatches = (partialMatches?: Command[], noThrow = fals * @return a command handler with success and failure event handlers * */ -const withEvents = (evaluator: CommandHandler, leaf: CommandBase, partialMatches?: Command[]): CommandHandlerWithEvents => { +const withEvents = ( + evaluator: CommandHandler, + leaf: CommandBase, + partialMatches?: Command[] +): CommandHandlerWithEvents => { // let the world know we have resolved a command, and are about to evaluate it const event: Event = { // context: currentContext() @@ -365,7 +462,13 @@ const withEvents = (evaluator: CommandHandler, leaf: CommandBase, partialMatches route: leaf.route, eval: evaluator, options: leaf && leaf.options, - success: ({ tab, type: execType, command, isDrilldown = false, parsedOptions }) => { + success: ({ + tab, + type: execType, + command, + isDrilldown = false, + parsedOptions + }) => { event.tab = tab event.execType = execType event.command = command @@ -381,7 +484,12 @@ const withEvents = (evaluator: CommandHandler, leaf: CommandBase, partialMatches if (leaf && eventBus) eventBus.emit('/command/complete', event) }, - error: (command: string, tab: Tab, execType: ExecType, err: CodedError): CodedError => { + error: ( + command: string, + tab: Tab, + execType: ExecType, + err: CodedError + ): CodedError => { event.tab = tab event.execType = execType event.command = command @@ -390,8 +498,15 @@ const withEvents = (evaluator: CommandHandler, leaf: CommandBase, partialMatches if (err.code === 127) { // command not found - const suggestions = suggestPartialMatches(partialMatches, true, err['hide']) // true: don't throw an exception - debug('got suggestions after unresolvable command not found', suggestions) + const suggestions = suggestPartialMatches( + partialMatches, + true, + err['hide'] + ) // true: don't throw an exception + debug( + 'got suggestions after unresolvable command not found', + suggestions + ) return suggestions } @@ -416,7 +531,12 @@ export const getDefaultCommandContext = () => _defaultContext * Parse the given argv, and return an evaluator or throw an Error * */ -const _read = async (model: CommandTree, argv: string[], contextRetry: string[], originalArgv: string[]): Promise => { +const _read = async ( + model: CommandTree, + argv: string[], + contextRetry: string[], + originalArgv: string[] +): Promise => { let leaf = treeMatch(model, argv, true) // true means read-only, don't modify the context model please let evaluator = leaf && leaf.$ debug('read', argv) @@ -446,12 +566,18 @@ const _read = async (model: CommandTree, argv: string[], contextRetry: string[], } else if (contextRetry.length === 0) { debug('no context') return _read(model, originalArgv, undefined, originalArgv) - } else if (contextRetry.length > 0 && contextRetry[contextRetry.length - 1] !== originalArgv[originalArgv.length - 1]) { + } else if ( + contextRetry.length > 0 && + contextRetry[contextRetry.length - 1] !== + originalArgv[originalArgv.length - 1] + ) { // command not found so far, look further afield. - const maybeInContextRetry = _read(model, + const maybeInContextRetry = _read( + model, contextRetry.concat(originalArgv), contextRetry.slice(0, contextRetry.length - 1), - originalArgv) + originalArgv + ) if (maybeInContextRetry) { debug('context retry helped', maybeInContextRetry) @@ -460,8 +586,15 @@ const _read = async (model: CommandTree, argv: string[], contextRetry: string[], // oof, fallback plan: look in /wsk/action debug('fallback to wsk action') - const newContext = _defaultContext.concat(originalArgv).filter((elt, idx, A) => elt !== A[idx - 1]) - const maybeInWskAction = _read(model, newContext, contextRetry.slice(0, contextRetry.length - 1), originalArgv) + const newContext = _defaultContext + .concat(originalArgv) + .filter((elt, idx, A) => elt !== A[idx - 1]) + const maybeInWskAction = _read( + model, + newContext, + contextRetry.slice(0, contextRetry.length - 1), + originalArgv + ) return maybeInWskAction } else { // if we get here, we can't find a matching command @@ -469,15 +602,21 @@ const _read = async (model: CommandTree, argv: string[], contextRetry: string[], return false } } else { - if (leaf.options && - leaf.options.requiresFullyQualifiedRoute) { + if (leaf.options && leaf.options.requiresFullyQualifiedRoute) { const routeWithoutContext = `/${originalArgv.join('/')}` if (leaf.route !== routeWithoutContext) { // e.g. executing "help" we don't want to use the default // context (see "subtree help" above for an example use of // this feature) - debug('mismatch on fully qualified route %s!=%s', leaf.route, routeWithoutContext) - if (argv.length === originalArgv.length && argv.every((elt, idx) => elt === originalArgv[idx])) { + debug( + 'mismatch on fully qualified route %s!=%s', + leaf.route, + routeWithoutContext + ) + if ( + argv.length === originalArgv.length && + argv.every((elt, idx) => elt === originalArgv[idx]) + ) { debug('giving up') return false } else { @@ -511,7 +650,10 @@ export const setDefaultCommandContext = (commandContext: string[]) => { } /** read, with retries based on the current context */ -const internalRead = (model: CommandTree, argv: string[]): Promise => { +const internalRead = ( + model: CommandTree, + argv: string[] +): Promise => { if (argv[0] === 'kui') argv.shift() return _read(model, argv, Context.current, argv) } @@ -545,7 +687,12 @@ const disambiguate = async (argv: string[], noRetry = false) => { debug('disambiguate') let idx - const resolutions = ((((idx = 0) || true) && resolver.disambiguate(argv[idx])) || (argv.length > 1 && ((idx = argv.length - 1) || true) && resolver.disambiguate(argv[idx])) || []) + const resolutions = + (((idx = 0) || true) && resolver.disambiguate(argv[idx])) || + (argv.length > 1 && + ((idx = argv.length - 1) || true) && + resolver.disambiguate(argv[idx])) || + [] debug('disambiguate', idx, argv, resolutions) if (resolutions.length === 0 && !noRetry) { @@ -558,7 +705,10 @@ const disambiguate = async (argv: string[], noRetry = false) => { // double-check: if the resolution is a subtree, then it better have a child that matches const argvForMatch = resolutions[0].route.split('/').slice(1) const cmdMatch = treeMatch(model, argvForMatch) - const leaf = cmdMatch && cmdMatch.$ ? areCompatible(argvForMatch, argv) && cmdMatch : treeMatch(intentions, argvForMatch) + const leaf = + cmdMatch && cmdMatch.$ + ? areCompatible(argvForMatch, argv) && cmdMatch + : treeMatch(intentions, argvForMatch) debug('disambiguate single match', idx, argv) @@ -598,7 +748,11 @@ const disambiguate = async (argv: string[], noRetry = false) => { * We could not find a registered command handler * */ -const commandNotFound = async (argv: string[], partialMatches?: Command[], execOptions?: ExecOptions) => { +const commandNotFound = async ( + argv: string[], + partialMatches?: Command[], + execOptions?: ExecOptions +) => { // first, see if we have any catchall handlers; offer the argv, and // choose the highest priority handler that accepts the argv if (!execOptions || !execOptions.failWithUsage) { @@ -637,7 +791,10 @@ const findPartialMatchesAt = (subtree: Command, partial: string): Command[] => { for (const cmd in subtree.children) { if (cmd.indexOf(partial) === 0) { const match = subtree.children[cmd] - if (!match.options || (!match.options.synonymFor && !match.options.hide)) { + if ( + !match.options || + (!match.options.synonymFor && !match.options.hide) + ) { // don't include synonyms or hidden commands matches.push(match) } @@ -656,24 +813,32 @@ interface Route { const removeDuplicates = async (arr: Route[]): Promise => { return (await Promise.all(arr)) .filter(x => x) - .reduce((state, item) => { - const { M, A } = state - // const route = item.route - - if (item && !M[item.route]) { - M[item.route] = true - A.push(item) - } + .reduce( + (state, item) => { + const { M, A } = state + // const route = item.route + + if (item && !M[item.route]) { + M[item.route] = true + A.push(item) + } - return state - }, { M: {}, A: [] })['A'] + return state + }, + { M: {}, A: [] } + )['A'] } -export function isSuccessfulCommandResolution (resolution: CommandTreeResolution): resolution is CommandHandlerWithEvents { +export function isSuccessfulCommandResolution( + resolution: CommandTreeResolution +): resolution is CommandHandlerWithEvents { return (resolution as CommandHandlerWithEvents).eval !== undefined } /** here, we don't use any implicit context resolutions */ -export const readIntention = async (argv: string[], noRetry = false): Promise => { +export const readIntention = async ( + argv: string[], + noRetry = false +): Promise => { const cmd = _read(intentions, argv, undefined, argv) if (!cmd) { @@ -691,8 +856,13 @@ export const readIntention = async (argv: string[], noRetry = false): Promise => { - let cmd = (await disambiguate(argv)) +export const read = async ( + argv: string[], + noRetry = false, + noSubtreeRetry = false, + execOptions: ExecOptions +): Promise => { + let cmd = await disambiguate(argv) if (cmd && resolver.isOverridden(cmd.route) && !noRetry) { debug('overridden') @@ -733,17 +903,27 @@ export const read = async (argv: string[], noRetry = false, noSubtreeRetry = fal // disambiguatePartial takes a partial command, and // returns an array of matching full commands, which we // can turn into leafs via `disambiguate` - matches = await removeDuplicates(findPartialMatchesAt(model, argv[0]) - .concat(resolver.disambiguatePartial(argv[0]).map(_ => [_]).map(_ => disambiguate(_)))) + matches = await removeDuplicates( + findPartialMatchesAt(model, argv[0]).concat( + resolver + .disambiguatePartial(argv[0]) + .map(_ => [_]) + .map(_ => disambiguate(_)) + ) + ) } else { const allButLast = argv.slice(0, argv.length - 1) const last = argv[argv.length - 1] - const parent = (await internalRead(model, allButLast)) || (await disambiguate(allButLast)) + const parent = + (await internalRead(model, allButLast)) || + (await disambiguate(allButLast)) debug('searching for partial matches for subcommand', allButLast, parent) if (parent) { - matches = await removeDuplicates(findPartialMatchesAt(parent.subtree, last)) + matches = await removeDuplicates( + findPartialMatchesAt(parent.subtree, last) + ) } } @@ -766,7 +946,7 @@ class CommandModel { * */ // eslint-disable-next-line @typescript-eslint/explicit-member-accessibility - forEachNode (fn: (command: Command) => void) { + forEachNode(fn: (command: Command) => void) { const iter = (root: Command) => { if (root) { fn(root) @@ -799,16 +979,32 @@ export const getModel = () => new CommandModel() * */ export const proxy = (plugin: string) => ({ - catchall: (offer: CatchAllOffer, handler: CommandHandler, prio = 0, options: CommandOptions = new DefaultCommandOptions()) => catchalls.push({ route: '*', offer, eval: handler, prio, plugin, options }), - listen: (route: string, handler: CommandHandler, options: CommandOptions) => listen(route, handler, Object.assign({}, options, { plugin: plugin })), - intention: (route: string, handler: CommandHandler, options: CommandOptions) => intention(route, handler, Object.assign({}, options, { plugin: plugin })), + catchall: ( + offer: CatchAllOffer, + handler: CommandHandler, + prio = 0, + options: CommandOptions = new DefaultCommandOptions() + ) => + catchalls.push({ route: '*', offer, eval: handler, prio, plugin, options }), + listen: (route: string, handler: CommandHandler, options: CommandOptions) => + listen(route, handler, Object.assign({}, options, { plugin: plugin })), + intention: ( + route: string, + handler: CommandHandler, + options: CommandOptions + ) => + intention(route, handler, Object.assign({}, options, { plugin: plugin })), synonym, subtree, subtreeSynonym, commandNotFoundMessage, find: async (route: string, noOverride = true) => { const cmd = match(route.split('/').slice(1), true) - if (!cmd || cmd.route !== route || (!noOverride && resolver && resolver.isOverridden(cmd.route))) { + if ( + !cmd || + cmd.route !== route || + (!noOverride && resolver && resolver.isOverridden(cmd.route)) + ) { if (resolver) { debug('find invoking resolver', route, cmd, noOverride) await resolver.resolve(route) diff --git a/packages/app/src/core/find-file.ts b/packages/app/src/core/find-file.ts index 9fa793e09ca..69edb11d3f6 100644 --- a/packages/app/src/core/find-file.ts +++ b/packages/app/src/core/find-file.ts @@ -34,15 +34,23 @@ interface SpecialPath { command?: string } const specialPaths: SpecialPath[] = [] // any special paths added via self.addPath -const defaultSpecial: SpecialPath = { prefix: '', filepath: join(__dirname, '..') } // default special is the app/ top-level +const defaultSpecial: SpecialPath = { + prefix: '', + filepath: join(__dirname, '..') +} // default special is the app/ top-level /** * If original has a trailing slash, make sure resolved has one, too * */ -const withMatchingTrailingSlash = (original: string, resolved: string): string => { - if (original.charAt(original.length - 1) === '/' && - resolved.charAt(resolved.length - 1) !== '/') { +const withMatchingTrailingSlash = ( + original: string, + resolved: string +): string => { + if ( + original.charAt(original.length - 1) === '/' && + resolved.charAt(resolved.length - 1) !== '/' + ) { return `${resolved}/` } else { return resolved @@ -53,13 +61,17 @@ const withMatchingTrailingSlash = (original: string, resolved: string): string = * Is this a special @ directory? * */ -export const isSpecialDirectory = (filepath: string) => basename(filepath).charAt(0) === '@' +export const isSpecialDirectory = (filepath: string) => + basename(filepath).charAt(0) === '@' /** * Behaves like `findFile` with an extra call to `commandPrefix` * */ -export const findFileWithViewer = (filepath: string, { safe = false, keepRelative = false } = {}): { resolved: string; viewer?: string } => { +export const findFileWithViewer = ( + filepath: string, + { safe = false, keepRelative = false } = {} +): { resolved: string; viewer?: string } => { if (!filepath) { if (!safe) { throw new Error('Please specify a file') @@ -69,24 +81,39 @@ export const findFileWithViewer = (filepath: string, { safe = false, keepRelativ } } else if (filepath.charAt(0) === '@') { // the === '.' part handles the case where the call was e.g. findFile('@demos'), i.e. the special dir itself - const desiredPrefix = filepath.endsWith('/') ? filepath.slice(0, filepath.length - 1) : dirname(filepath) === '.' ? filepath : dirname(filepath) + const desiredPrefix = filepath.endsWith('/') + ? filepath.slice(0, filepath.length - 1) + : dirname(filepath) === '.' + ? filepath + : dirname(filepath) const longestMatchingSpecial = specialPaths - .filter(({ prefix }) => filepath === prefix || desiredPrefix.indexOf(prefix) === 0) + .filter( + ({ prefix }) => + filepath === prefix || desiredPrefix.indexOf(prefix) === 0 + ) .sort((a, b) => b.prefix.length - a.prefix.length)[0] const special = longestMatchingSpecial || defaultSpecial debug('resolving @ file', filepath, desiredPrefix, special) return { - resolved: withMatchingTrailingSlash(filepath, join(special.filepath, filepath)), + resolved: withMatchingTrailingSlash( + filepath, + join(special.filepath, filepath) + ), viewer: special.command } } else if (keepRelative) { return { resolved: filepath } } else { debug('resolving normal file', filepath) - return { resolved: withMatchingTrailingSlash(filepath, resolve(expandHomeDir(filepath))) } + return { + resolved: withMatchingTrailingSlash( + filepath, + resolve(expandHomeDir(filepath)) + ) + } } } @@ -96,7 +123,10 @@ export const findFileWithViewer = (filepath: string, { safe = false, keepRelativ * @param safe throw and exception if the file is not found * @param keepRelative don't expand ~ */ -export const findFile = (filepath: string, { safe = false, keepRelative = false } = {}): string => { +export const findFile = ( + filepath: string, + { safe = false, keepRelative = false } = {} +): string => { return findFileWithViewer(filepath, { safe, keepRelative }).resolved } @@ -123,7 +153,10 @@ export const viewer = (prefix: string): string | never => { * @param prefix e.g. @demos/tekton which is a valid extension of `filepath` * @param command a command prefix that is used to view files in this special directory */ -export const addPath = (filepath: string, { prefix = basename(filepath), command = '' } = {}): void => { +export const addPath = ( + filepath: string, + { prefix = basename(filepath), command = '' } = {} +): void => { if (!inBrowser()) { debug('addPath', filepath) try { diff --git a/packages/app/src/core/fuzz-testing.ts b/packages/app/src/core/fuzz-testing.ts index c9aa73662e6..4fa9b39fec0 100644 --- a/packages/app/src/core/fuzz-testing.ts +++ b/packages/app/src/core/fuzz-testing.ts @@ -29,8 +29,10 @@ debug('loading') * */ const nope = (filepath: string) => { - return filepath.toString().indexOf('.wskprops') >= 0 || + return ( + filepath.toString().indexOf('.wskprops') >= 0 || filepath.toString().indexOf('.cf/config.json') >= 0 + ) } /** @@ -44,10 +46,13 @@ const fuzzies = { const rf = fs.readFile const rfs = fs.readFileSync - fs.readFile = function (filepath: string, options, cb) { + fs.readFile = function(filepath: string, options, cb) { if (nope(filepath)) { debug('fs.readFile blocked', filepath) - rf('fjdioafjadisofjadsoifasfsdfjadisfjadisofjasifas', options ? cb : options) + rf( + 'fjdioafjadisofjadsoifasfsdfjadisfjadisofjasifas', + options ? cb : options + ) } else { if (!cb) { rf(filepath, options) @@ -57,7 +62,7 @@ const fuzzies = { } } - fs.readFileSync = function (filepath: string, options) { + fs.readFileSync = function(filepath: string, options) { if (nope(filepath)) { console.error(`fs.readFileSync blocked ${filepath}`) return rfs('fjdioafjadisofjadsoifasfsdfjadisfjadisofjasifas') @@ -75,7 +80,7 @@ export default fuzz => { // debug('options', fuzz.rules) - (fuzz.rules || []).forEach(rule => { + ;(fuzz.rules || []).forEach(rule => { // intentionally unprotected against failures, because we // want the test to fail debug('rule', rule) diff --git a/packages/app/src/core/oops.ts b/packages/app/src/core/oops.ts index 8e24ab69c88..56ff0c8d29b 100644 --- a/packages/app/src/core/oops.ts +++ b/packages/app/src/core/oops.ts @@ -24,9 +24,16 @@ interface ErrorWithResultField { } } -function isErrorWithResultField (error: ErrorLike): error is ErrorWithResultField { +function isErrorWithResultField( + error: ErrorLike +): error is ErrorWithResultField { const err = error as ErrorWithResultField - return !!(err.error && err.error.response && err.error.response.result && err.error.response.result.error) + return !!( + err.error && + err.error.response && + err.error.response.result && + err.error.response.result.error + ) } interface ErrorWithNestedResultField { @@ -41,9 +48,17 @@ interface ErrorWithNestedResultField { } } -function isErrorWithNestedResultField (error: ErrorLike): error is ErrorWithNestedResultField { +function isErrorWithNestedResultField( + error: ErrorLike +): error is ErrorWithNestedResultField { const err = error as ErrorWithNestedResultField - return !!(err.error && err.error.response && err.error.response.result && err.error.response.result.error && err.error.response.result.error.error) + return !!( + err.error && + err.error.response && + err.error.response.result && + err.error.response.result.error && + err.error.response.result.error.error + ) } interface ErrorWithNestedErrorField { @@ -52,7 +67,9 @@ interface ErrorWithNestedErrorField { } } -function isErrorWithNestedErrorField (error: ErrorLike): error is ErrorWithNestedErrorField { +function isErrorWithNestedErrorField( + error: ErrorLike +): error is ErrorWithNestedErrorField { const err = error as ErrorWithNestedErrorField return !!(err.error && err.error.error) } @@ -62,12 +79,18 @@ interface ErrorWithErrorField { error: string } -function isErrorWithErrorField (error: ErrorLike): error is ErrorWithErrorField { +function isErrorWithErrorField(error: ErrorLike): error is ErrorWithErrorField { const err = error as ErrorWithErrorField return !!(err.error && !err.message) } -type ErrorLike = string | Error | ErrorWithResultField | ErrorWithNestedResultField | ErrorWithNestedErrorField | ErrorWithErrorField +type ErrorLike = + | string + | Error + | ErrorWithResultField + | ErrorWithNestedResultField + | ErrorWithNestedErrorField + | ErrorWithErrorField /** * Try to pull out some meaningful message from the given error diff --git a/packages/app/src/core/plugin-assembler.ts b/packages/app/src/core/plugin-assembler.ts index c06443028d9..e68db11b9aa 100644 --- a/packages/app/src/core/plugin-assembler.ts +++ b/packages/app/src/core/plugin-assembler.ts @@ -78,7 +78,11 @@ const readFile = async (): Promise => { * Find what's new in after versus before, two structures * */ -const diff = (beforeModel: Prescan, afterModel: Prescan, reverseDiff = false): PrescanDiff => { +const diff = ( + beforeModel: Prescan, + afterModel: Prescan, + reverseDiff = false +): PrescanDiff => { const { commandToPlugin: before } = beforeModel const { commandToPlugin: after } = afterModel @@ -101,14 +105,20 @@ const diff = (beforeModel: Prescan, afterModel: Prescan, reverseDiff = false): P * */ const readDirRecursively = (dir: string): string[] => { - if (path.basename(dir) !== 'helpers' && - path.basename(dir) !== 'bin' && - path.basename(dir) !== 'modules' && - path.basename(dir) !== 'node_modules' && - fs.statSync(dir).isDirectory()) { - return Array.prototype.concat(...fs.readdirSync(dir).map((f: string) => readDirRecursively(path.join(dir, f)))) + if ( + path.basename(dir) !== 'helpers' && + path.basename(dir) !== 'bin' && + path.basename(dir) !== 'modules' && + path.basename(dir) !== 'node_modules' && + fs.statSync(dir).isDirectory() + ) { + return Array.prototype.concat( + ...fs + .readdirSync(dir) + .map((f: string) => readDirRecursively(path.join(dir, f))) + ) } else { - return [ dir ] // was dir + return [dir] // was dir } } @@ -116,7 +126,8 @@ const readDirRecursively = (dir: string): string[] => { * Scan the given directory, recursively, for javascript files * */ -export const scanForJsFiles = (dir: string) => readDirRecursively(dir).filter(s => s.endsWith('.js')) +export const scanForJsFiles = (dir: string) => + readDirRecursively(dir).filter(s => s.endsWith('.js')) interface File { path: string @@ -161,7 +172,8 @@ const makeTree = (map: plugins.PrescanUsage, docs: plugins.PrescanDocs) => { /** create new node */ const newLeaf = (route: string): Node => ({ route }) - const newNode = (route: string): Node => Object.assign(newLeaf(route), { children: {} }) + const newNode = (route: string): Node => + Object.assign(newLeaf(route), { children: {} }) /** get or create a subtree */ const getOrCreate = (tree: Node, pathPrefix: string) => { @@ -187,7 +199,7 @@ const makeTree = (map: plugins.PrescanUsage, docs: plugins.PrescanDocs) => { } if (!subtree.children) subtree.children = {} - const leaf = subtree.children[route] = newLeaf(route) + const leaf = (subtree.children[route] = newLeaf(route)) leaf.usage = map[route] leaf.docs = map[route].header || docs[route] @@ -214,8 +226,12 @@ const amendWithUsageModels = (modules: plugins.PrescanModel) => { if (options.needsUI) modules.usage[route].needsUI = true if (options.requiresLocal) modules.usage[route].requiresLocal = true if (options.noAuthOk) modules.usage[route].noAuthOk = true - if (options.synonymFor) modules.usage[route].synonymFor = options.synonymFor.route - if (synonyms) modules.usage[route].synonyms = Object.keys(synonyms).map(route => synonyms[route].key) + if (options.synonymFor) + modules.usage[route].synonymFor = options.synonymFor.route + if (synonyms) + modules.usage[route].synonyms = Object.keys(synonyms).map( + route => synonyms[route].key + ) } if (options && options.docs) { @@ -236,7 +252,12 @@ const amendWithUsageModels = (modules: plugins.PrescanModel) => { * and write the list to the .pre-scanned.json file * */ -export default async (pluginRoot = process.env.PLUGIN_ROOT || path.join(__dirname, plugins.pluginRoot), externalOnly = false, reverseDiff = false) => { +export default async ( + pluginRoot = process.env.PLUGIN_ROOT || + path.join(__dirname, plugins.pluginRoot), + externalOnly = false, + reverseDiff = false +) => { debug('pluginRoot is %s', pluginRoot) debug('externalOnly is %s', externalOnly) @@ -256,9 +277,12 @@ export default async (pluginRoot = process.env.PLUGIN_ROOT || path.join(__dirnam .replace(/\/src/, '') // client-hosted plugins .replace(/^(.*\/)(plugin-.*)$/, '$2') // client-required plugins } - const fixupPaths = (pluginList: plugins.PrescanCommandDefinitions) => pluginList.map(plugin => Object.assign(plugin, { - path: fixupOnePath(plugin.path) - })) + const fixupPaths = (pluginList: plugins.PrescanCommandDefinitions) => + pluginList.map(plugin => + Object.assign(plugin, { + path: fixupOnePath(plugin.path) + }) + ) const model: plugins.PrescanModel = Object.assign(modules, { preloads: fixupPaths(modules.preloads), @@ -267,9 +291,7 @@ export default async (pluginRoot = process.env.PLUGIN_ROOT || path.join(__dirnam const modelWithUsage = amendWithUsageModels(model) - await Promise.all([ - writeToFile(modelWithUsage) - ]) + await Promise.all([writeToFile(modelWithUsage)]) // resolve with what is new return diff(before, modelWithUsage, reverseDiff) diff --git a/packages/app/src/core/plugins.ts b/packages/app/src/core/plugins.ts index cc13cae4a9a..3034750f812 100644 --- a/packages/app/src/core/plugins.ts +++ b/packages/app/src/core/plugins.ts @@ -56,7 +56,11 @@ let prescan: PrescanModel * */ type Filter = (path: string) => boolean -export const scanForModules = async (dir: string, quiet = false, filter: Filter = () => true) => { +export const scanForModules = async ( + dir: string, + quiet = false, + filter: Filter = () => true +) => { debug('scanForModules %s', dir) const fs = await import('fs') @@ -67,24 +71,38 @@ export const scanForModules = async (dir: string, quiet = false, filter: Filter const plugins = {} const preloads = {} - const doScan = ({ modules, moduleDir }: { modules: string[]; moduleDir: string }) => { + const doScan = ({ + modules, + moduleDir + }: { + modules: string[] + moduleDir: string + }) => { modules.forEach(module => { const modulePath = path.join(moduleDir, module) if (module.charAt(0) === '@') { // support for @owner/repo style modules; see shell issue #260 - return doScan({ modules: fs.readdirSync(modulePath), moduleDir: modulePath }) + return doScan({ + modules: fs.readdirSync(modulePath), + moduleDir: modulePath + }) } // eslint-disable-next-line @typescript-eslint/ban-types - function lookFor (filename: string, destMap: Object, color: string) { + function lookFor(filename: string, destMap: Object, color: string) { const pluginPath = path.join(moduleDir, module, filename) debug('lookFor', filename, pluginPath) if (fs.existsSync(pluginPath)) { if (!quiet) { debug('found') - console.log(colors.green(' \u2713 ') + colors[color](filename.replace(/\..*$/, '')) + '\t' + path.basename(module)) + console.log( + colors.green(' \u2713 ') + + colors[color](filename.replace(/\..*$/, '')) + + '\t' + + path.basename(module) + ) } destMap[module] = pluginPath } else { @@ -94,29 +112,52 @@ export const scanForModules = async (dir: string, quiet = false, filter: Filter if (fs.existsSync(backupPluginPath)) { if (!quiet) { debug('found2') - console.log(colors.green(' \u2713 ') + colors[color](filename.replace(/\..*$/, '')) + '\t' + path.basename(module)) + console.log( + colors.green(' \u2713 ') + + colors[color](filename.replace(/\..*$/, '')) + + '\t' + + path.basename(module) + ) } destMap[module] = backupPluginPath } else { // support for javascript-coded plugins (monorepo) - const backupPluginPath = path.join(modulePath, 'src/plugin', filename) + const backupPluginPath = path.join( + modulePath, + 'src/plugin', + filename + ) debug('lookFor3', filename, backupPluginPath) if (fs.existsSync(backupPluginPath)) { if (!quiet) { debug('found3') - console.log(colors.green(' \u2713 ') + colors[color](filename.replace(/\..*$/, '')) + '\t' + path.basename(module)) + console.log( + colors.green(' \u2713 ') + + colors[color](filename.replace(/\..*$/, '')) + + '\t' + + path.basename(module) + ) } destMap[module] = backupPluginPath } else { // support for javascript-coded plugins (external client) - const backupPluginPath = path.join(modulePath, 'plugin', filename) + const backupPluginPath = path.join( + modulePath, + 'plugin', + filename + ) debug('lookFor4', filename, backupPluginPath) if (fs.existsSync(backupPluginPath)) { if (!quiet) { debug('found4') - console.log(colors.green(' \u2713 ') + colors[color](filename.replace(/\..*$/, '')) + '\t' + path.basename(module)) + console.log( + colors.green(' \u2713 ') + + colors[color](filename.replace(/\..*$/, '')) + + '\t' + + path.basename(module) + ) } destMap[module] = backupPluginPath // console.error('Skipping plugin, because it does not have a plugin.js', module) @@ -147,7 +188,10 @@ export const scanForModules = async (dir: string, quiet = false, filter: Filter packageJsonDepsArray.push(module) } } - doScan({ modules: packageJsonDepsArray, moduleDir: path.join(dir, 'node_modules') }) + doScan({ + modules: packageJsonDepsArray, + moduleDir: path.join(dir, 'node_modules') + }) } return { plugins, preloads } @@ -155,7 +199,7 @@ export const scanForModules = async (dir: string, quiet = false, filter: Filter if (err.code !== 'ENOENT') { console.error('Error scanning for external plugins', err) } - return { } + return {} } } @@ -163,7 +207,7 @@ export const scanForModules = async (dir: string, quiet = false, filter: Filter * Turn a map {k1:true, k2:true} into an array of the keys * */ -function toArray (M: { [key: string]: T }): string[] { +function toArray(M: { [key: string]: T }): string[] { const A: string[] = [] for (const key in M) { A.push(key) @@ -189,27 +233,27 @@ const loadPlugin = async (route: string, pluginPath: string) => { const subtree = ctree.subtree const subtreeSynonym = ctree.subtreeSynonym - ctree.subtreeSynonym = function (route, master) { + ctree.subtreeSynonym = function(route, master) { if (route !== master.route) { isSubtreeSynonym[route] = true isSubtreeSynonym[master.route] = true return subtreeSynonym(route, master, {}) } } - ctree.listen = function (commandRoute) { + ctree.listen = function(commandRoute) { cmdToPlugin[commandRoute] = route // eslint-disable-next-line prefer-rest-params, prefer-spread return listen.apply(undefined, arguments) } - ctree.subtree = function (route, options) { + ctree.subtree = function(route, options) { return subtree(route, Object.assign({ listen: ctree.listen }, options)) } - ctree.intention = function (commandRoute) { + ctree.intention = function(commandRoute) { cmdToPlugin[commandRoute] = route // eslint-disable-next-line prefer-rest-params, prefer-spread return intention.apply(undefined, arguments) } - ctree.synonym = function (commandRoute) { + ctree.synonym = function(commandRoute) { cmdToPlugin[commandRoute] = route isSynonym[commandRoute] = true // eslint-disable-next-line prefer-rest-params, prefer-spread @@ -217,7 +261,8 @@ const loadPlugin = async (route: string, pluginPath: string) => { } const pluginLoaderRef = await import(pluginPath) - const pluginLoader: PluginRegistration = pluginLoaderRef.default || pluginLoaderRef + const pluginLoader: PluginRegistration = + pluginLoaderRef.default || pluginLoaderRef if (typeof pluginLoader === 'function') { // invoke the plugin loader @@ -252,7 +297,12 @@ const loadPlugin = async (route: string, pluginPath: string) => { * @param lastError so we don't repeat making the same mistake 100 times! * */ -const topologicalSortForScan = async (pluginPaths: string[], iter: number, lastError?: Error, lastErrorAlreadyEmitted?: boolean) => { +const topologicalSortForScan = async ( + pluginPaths: string[], + iter: number, + lastError?: Error, + lastErrorAlreadyEmitted?: boolean +) => { debug('topologicalSortForScan', iter) if (iter >= 100) { @@ -276,9 +326,13 @@ const topologicalSortForScan = async (pluginPaths: string[], iter: number, lastE flat.push(module) delete pluginPaths[route] } catch (err) { - const notFound = err.message.indexOf('Module not found') >= 0 || + const notFound = + err.message.indexOf('Module not found') >= 0 || err.message.indexOf('Cannot find module') >= 0 - if ((!notFound || iter > 10) && (lastError && lastError.message !== err.message)) { + if ( + (!notFound || iter > 10) && + (lastError && lastError.message !== err.message) + ) { // // note how we do not print the error if any of three // conditions hold (but we still continue iterating) @@ -308,7 +362,12 @@ const topologicalSortForScan = async (pluginPaths: string[], iter: number, lastE if (nUnresolved > 0) { debug('nUnresolved', nUnresolved, unresolved) - return topologicalSortForScan(pluginPaths, iter + 1, lastError, lastErrorAlreadyEmitted) + return topologicalSortForScan( + pluginPaths, + iter + 1, + lastError, + lastErrorAlreadyEmitted + ) } else { debug('topologicalSortForScan done') } @@ -325,19 +384,26 @@ const resolveFromLocalFilesystem = async (opts: LocalOptions = {}) => { debug('resolveFromLocalFilesystem') const path = await import('path') - const pluginRootAbsolute = process.env.PLUGIN_ROOT || path.join(__dirname, pluginRoot) // filesystem path for the plugins + const pluginRootAbsolute = + process.env.PLUGIN_ROOT || path.join(__dirname, pluginRoot) // filesystem path for the plugins debug('pluginRootAbsolute', pluginRootAbsolute) // this scan looks for plugins offered by the client - const clientHosted = await scanForModules(opts.pluginRootAbsolute || pluginRootAbsolute) + const clientHosted = await scanForModules( + opts.pluginRootAbsolute || pluginRootAbsolute + ) // this scan looks for plugins npm install'd by the client let clientRequired try { - const secondary = path.dirname(path.dirname(require.resolve('@kui-shell/core/package.json'))) - clientRequired = await scanForModules(secondary, + const secondary = path.dirname( + path.dirname(require.resolve('@kui-shell/core/package.json')) + ) + clientRequired = await scanForModules( + secondary, false, - (filename: string) => !!filename.match(/^plugin-/)) + (filename: string) => !!filename.match(/^plugin-/) + ) } catch (err) { if (err.code !== 'ENOENT') { console.error('error scanning for client-required plugins', err) @@ -345,8 +411,16 @@ const resolveFromLocalFilesystem = async (opts: LocalOptions = {}) => { } // we take the union of the client-provided plugins and the client-required plugins - const plugins = Object.assign({}, clientHosted.plugins, clientRequired.plugins) - const preloads = Object.assign({}, clientHosted.preloads, clientRequired.preloads) + const plugins = Object.assign( + {}, + clientHosted.plugins, + clientRequired.plugins + ) + const preloads = Object.assign( + {}, + clientHosted.preloads, + clientRequired.preloads + ) debug('availablePlugins %s', JSON.stringify(plugins)) @@ -386,9 +460,15 @@ const prequire = async (route: string, options?: object) => { // NOTE ON @kui-shell relativization: this is important so that // webpack can be isntructed to pull in the plugins into the build // see the corresponding NOTE in ./plugin-assembler.ts and ./preloader.ts - const registrationRef = await import('@kui-shell/plugin-' + module.path.replace(/^plugin-/, '')) - const registration: PluginRegistration = registrationRef.default || registrationRef - const combinedOptions = Object.assign({ usage: prescan.usage, docs: prescan.docs }, options) + const registrationRef = await import( + '@kui-shell/plugin-' + module.path.replace(/^plugin-/, '') + ) + const registration: PluginRegistration = + registrationRef.default || registrationRef + const combinedOptions = Object.assign( + { usage: prescan.usage, docs: prescan.docs }, + options + ) resolve(registration(commandTree.proxy(route), combinedOptions)) debug('prequire success %s', route) @@ -408,7 +488,8 @@ const prequire = async (route: string, options?: object) => { return registrar[route] } -export const preload = () => preloader(prescan, { usage: prescan.usage, docs: prescan.docs }) +export const preload = () => + preloader(prescan, { usage: prescan.usage, docs: prescan.docs }) /** * Make a plugin resolver from a given prescan model @@ -460,7 +541,8 @@ const makeResolver = (prescan: PrescanModel) => { /** a plugin resolver impl */ const resolver = { - isOverridden: (route: string): boolean => prescan.overrides[route] !== undefined, + isOverridden: (route: string): boolean => + prescan.overrides[route] !== undefined, resolveOne, @@ -487,7 +569,8 @@ const makeResolver = (prescan: PrescanModel) => { }, /** load any plugins required by the given command */ - resolve: (command: string, { subtree = false } = {}) => { // subpath if we are looking for plugins for a subtree, e.g. for cd /auth + resolve: (command: string, { subtree = false } = {}) => { + // subpath if we are looking for plugins for a subtree, e.g. for cd /auth debug('resolve', command) let plugin @@ -496,7 +579,11 @@ const makeResolver = (prescan: PrescanModel) => { if (route === command) { plugin = prescan.commandToPlugin[route] break - } else if (subtree ? route.indexOf(command) === 0 : command.indexOf(`${route}/`) === 0) { + } else if ( + subtree + ? route.indexOf(command) === 0 + : command.indexOf(`${route}/`) === 0 + ) { if (!matchLen || route.length > matchLen) { plugin = prescan.commandToPlugin[route] matchLen = route.length @@ -601,7 +688,9 @@ interface PrescanOptions { * Generate a prescan model * */ -export const generatePrescanModel = async (opts: PrescanOptions): Promise => { +export const generatePrescanModel = async ( + opts: PrescanOptions +): Promise => { debug('generatePrescanModel', opts) const state = opts.externalOnly && commandTree.startScan() @@ -638,7 +727,10 @@ export const generatePrescanModel = async (opts: PrescanOptions): Promise ({ route, path: preloads[route] })), + preloads: Object.keys(preloads).map(route => ({ + route, + path: preloads[route] + })), commandToPlugin, topological, flat, diff --git a/packages/app/src/core/preloader.ts b/packages/app/src/core/preloader.ts index 624fb75ac81..b74555c7271 100644 --- a/packages/app/src/core/preloader.ts +++ b/packages/app/src/core/preloader.ts @@ -30,36 +30,48 @@ debug('loading') export default async (prescan: PrescanModel, options) => { debug('init', prescan.preloads) - const jobs = Promise.all(prescan.preloads.map(async module => { - // extends the capabilities of Kui - try { - const registrationRef = await import('@kui-shell/plugin-' + module.path.replace(/^plugin-/, '')) - const registration: CapabilityRegistration = registrationRef.registerCapability - if (registration) { - await registration() - debug('registered capabilities %s', module.path) + const jobs = Promise.all( + prescan.preloads.map(async module => { + // extends the capabilities of Kui + try { + const registrationRef = await import( + '@kui-shell/plugin-' + module.path.replace(/^plugin-/, '') + ) + const registration: CapabilityRegistration = + registrationRef.registerCapability + if (registration) { + await registration() + debug('registered capabilities %s', module.path) + } + } catch (err) { + debug('error registering capabilities', module.path, err) + console.error(err) } - } catch (err) { - debug('error registering capabilities', module.path, err) - console.error(err) - } - })).then(() => Promise.all(prescan.preloads.map(async module => { - // FIXME to support field-installed plugin paths - try { - debug('preloading %s', module.path) - // NOTE ON @kui-shell relativization: this is important so that - // webpack can be isntructed to pull in the plugins into the - // build see the corresponding NOTE in ./plugin-assembler.ts and - // ./plugins.ts - const registrationRef = await import('@kui-shell/plugin-' + module.path.replace(/^plugin-/, '')) - const registration: PreloadRegistration = registrationRef.default || registrationRef - await registration(commandTree.proxy(module.route), options) - debug('done preloading %s', module.path) - } catch (err) { - debug('error invoking preload', module.path, err) - console.error(err) - } - }))) + }) + ).then(() => + Promise.all( + prescan.preloads.map(async module => { + // FIXME to support field-installed plugin paths + try { + debug('preloading %s', module.path) + // NOTE ON @kui-shell relativization: this is important so that + // webpack can be isntructed to pull in the plugins into the + // build see the corresponding NOTE in ./plugin-assembler.ts and + // ./plugins.ts + const registrationRef = await import( + '@kui-shell/plugin-' + module.path.replace(/^plugin-/, '') + ) + const registration: PreloadRegistration = + registrationRef.default || registrationRef + await registration(commandTree.proxy(module.route), options) + debug('done preloading %s', module.path) + } catch (err) { + debug('error invoking preload', module.path, err) + console.error(err) + } + }) + ) + ) try { await jobs diff --git a/packages/app/src/core/repl.ts b/packages/app/src/core/repl.ts index a776b205e37..2dfdd933fbd 100644 --- a/packages/app/src/core/repl.ts +++ b/packages/app/src/core/repl.ts @@ -23,16 +23,31 @@ import * as Debug from 'debug' -import { CommandTreeResolution, ExecType, Evaluator, EvaluatorArgs, YargsParserFlags } from '../models/command' - -import { ExecOptions, DefaultExecOptions, DefaultExecOptionsForTab, ParsedOptions } from '../models/execOptions' +import { + CommandTreeResolution, + ExecType, + Evaluator, + EvaluatorArgs, + YargsParserFlags +} from '../models/command' + +import { + ExecOptions, + DefaultExecOptions, + DefaultExecOptionsForTab, + ParsedOptions +} from '../models/execOptions' import eventBus from '@kui-shell/core/core/events' import { add as addToHistory } from '../models/history' import { CodedError } from '../models/errors' import * as commandTree from './command-tree' import { UsageError, UsageModel, IUsageRow } from './usage-error' -import { isHeadless, hasLocalAccess, hasAuth as hasAuthCapability } from './capabilities' +import { + isHeadless, + hasLocalAccess, + hasAuth as hasAuthCapability +} from './capabilities' import { streamTo as headlessStreamTo } from '../main/headless-support' // FIXME import pictureInPicture from '../webapp/picture-in-picture' // FIXME import { currentSelection, maybeHideEntity } from '../webapp/views/sidecar' // FIXME @@ -59,7 +74,7 @@ export const key = 'kui.symbol_table' */ export interface Executor { name: string - exec (commandUntrimmed: string, execOptions: ExecOptions) + exec(commandUntrimmed: string, execOptions: ExecOptions) } /** @@ -68,7 +83,12 @@ export interface Executor { */ export interface ReplEval { name: string - apply (commandUntrimmed: string, execOptions: ExecOptions, evaluator: Evaluator, args: EvaluatorArgs) + apply( + commandUntrimmed: string, + execOptions: ExecOptions, + evaluator: Evaluator, + args: EvaluatorArgs + ) } /** @@ -78,7 +98,12 @@ export interface ReplEval { */ export class DirectReplEval implements ReplEval { name = 'DirectReplEval' - apply (commandUntrimmed: string, execOptions: ExecOptions, evaluator: Evaluator, args: EvaluatorArgs) { + apply( + commandUntrimmed: string, + execOptions: ExecOptions, + evaluator: Evaluator, + args: EvaluatorArgs + ) { return evaluator.eval(args) } } @@ -144,7 +169,12 @@ export interface Split { A: string[] endIndices: number[] } -export const _split = (str: string, removeOuterQuotes = true, returnIndices = false, removeInlineOuterQuotes = false): Split | string[] => { +export const _split = ( + str: string, + removeOuterQuotes = true, + returnIndices = false, + removeInlineOuterQuotes = false +): Split | string[] => { const A: string[] = [] const endIndices: number[] = [] const stack: string[] = [] @@ -196,7 +226,7 @@ export const _split = (str: string, removeOuterQuotes = true, returnIndices = fa stack.pop() } - if (!escapeActive && (char === '\'' || char === '"')) { + if (!escapeActive && (char === "'" || char === '"')) { if (char === last) { // found matching close quote stack.pop() @@ -208,9 +238,13 @@ export const _split = (str: string, removeOuterQuotes = true, returnIndices = fa } } else { // found open quote - const removeQuote = removeOuterQuotes && + const removeQuote = + removeOuterQuotes && endsWithQuoteSpace(idx, char) && - (idx === 0 || (stack.length === 0 && (removeInlineOuterQuotes || patterns.whitespace.test(str.charAt(idx - 1))))) + (idx === 0 || + (stack.length === 0 && + (removeInlineOuterQuotes || + patterns.whitespace.test(str.charAt(idx - 1))))) removedLastOpenQuote.push(removeQuote) @@ -238,8 +272,17 @@ export const _split = (str: string, removeOuterQuotes = true, returnIndices = fa return A } } -export const split = (str: string, removeOuterQuotes = true, removeInlineOuterQuotes = false): string[] => { - return _split(str, removeOuterQuotes, undefined, removeInlineOuterQuotes) as string[] +export const split = ( + str: string, + removeOuterQuotes = true, + removeInlineOuterQuotes = false +): string[] => { + return _split( + str, + removeOuterQuotes, + undefined, + removeInlineOuterQuotes + ) as string[] } /** an empty promise, for blank lines */ @@ -259,13 +302,20 @@ const unflag = (opt: string) => opt && stripTrailer(opt.replace(/^[-]+/, '')) * override the graphical default * */ -type OopsHandler = (block: HTMLElement, nextBlock: HTMLElement) => (err: Error) => void +type OopsHandler = ( + block: HTMLElement, + nextBlock: HTMLElement +) => (err: Error) => void let oopsHandler: OopsHandler export const installOopsHandler = (fn: OopsHandler) => { debug('installing oops handler') oopsHandler = fn } -const oops = (command?: string, block?: HTMLElement, nextBlock?: HTMLElement) => (err: Error) => { +const oops = ( + command?: string, + block?: HTMLElement, + nextBlock?: HTMLElement +) => (err: Error) => { if (oopsHandler) { debug('invoking registered oops handler') return oopsHandler(block, nextBlock)(err) @@ -283,7 +333,7 @@ const emptyExecOptions = (): ExecOptions => new DefaultExecOptions() class InProcessExecutor implements Executor { name = 'InProcessExecutor' - async exec (commandUntrimmed: string, execOptions = emptyExecOptions()) { + async exec(commandUntrimmed: string, execOptions = emptyExecOptions()) { // debug(`repl::exec ${new Date()}`) debug('exec', commandUntrimmed) const tab = execOptions.tab || cli.getCurrentTab() @@ -298,7 +348,8 @@ class InProcessExecutor implements Executor { } const echo = !execOptions || execOptions.echo !== false - const nested = execOptions && execOptions.noHistory && !execOptions.replSilence + const nested = + execOptions && execOptions.noHistory && !execOptions.replSilence if (nested) execOptions.nested = nested const block = (execOptions && execOptions.block) || cli.getCurrentBlock(tab) @@ -310,7 +361,13 @@ class InProcessExecutor implements Executor { if (execOptions && execOptions.pip) { const { container, returnTo } = execOptions.pip try { - return pictureInPicture(tab, commandUntrimmed, undefined, document.querySelector(container), returnTo)() + return pictureInPicture( + tab, + commandUntrimmed, + undefined, + document.querySelector(container), + returnTo + )() } catch (err) { console.error(err as Error) // fall through to normal execution, if pip fails @@ -323,7 +380,9 @@ class InProcessExecutor implements Executor { if (!execOptions || (!execOptions.noHistory && echo)) { // this is a top-level exec cli.unlisten(prompt) - nextBlock = (execOptions && execOptions.nextBlock) || (block.cloneNode(true) as HTMLElement) + nextBlock = + (execOptions && execOptions.nextBlock) || + (block.cloneNode(true) as HTMLElement) // since we cloned it, make sure it's all cleaned out nextBlock.querySelector('input').value = '' @@ -374,7 +433,7 @@ class InProcessExecutor implements Executor { debug(`issuing ${command} ${new Date()}`) // add a history entry - if ((!execOptions || !execOptions.noHistory)) { + if (!execOptions || !execOptions.noHistory) { if (!execOptions || !execOptions.quiet) { execOptions.history = addToHistory({ raw: command @@ -384,25 +443,31 @@ class InProcessExecutor implements Executor { // the Read part of REPL const argvNoOptions = argv.filter(_ => _.charAt(0) !== '-') - const evaluator: CommandTreeResolution = await ( - execOptions && execOptions.intentional - ? commandTree.readIntention(argvNoOptions) - : commandTree.read(argvNoOptions, false, false, execOptions)) + const evaluator: CommandTreeResolution = await (execOptions && + execOptions.intentional + ? commandTree.readIntention(argvNoOptions) + : commandTree.read(argvNoOptions, false, false, execOptions)) if (commandTree.isSuccessfulCommandResolution(evaluator)) { // // fetch the usage model for the command // const _usage: UsageModel = evaluator.options && evaluator.options.usage - const usage: UsageModel = _usage && _usage.fn ? _usage.fn(_usage.command) : _usage + const usage: UsageModel = + _usage && _usage.fn ? _usage.fn(_usage.command) : _usage // debug('usage', usage) if (execOptions && execOptions.failWithUsage && !usage) { - debug('caller needs usage model, but none exists for this command', evaluator) + debug( + 'caller needs usage model, but none exists for this command', + evaluator + ) return false } - const builtInOptions: IUsageRow[] = [{ name: '--quiet', alias: '-q', hidden: true, boolean: true }] + const builtInOptions: IUsageRow[] = [ + { name: '--quiet', alias: '-q', hidden: true, boolean: true } + ] if (!usage || !usage.noHelp) { // usage might tell us not to add help, or not to add the -h help alias const help = { name: '--help', hidden: true, boolean: true } @@ -414,35 +479,58 @@ class InProcessExecutor implements Executor { // here, we encode some common aliases, and then overlay any flags from the command // narg: any flags that take more than one argument e.g. -p key value would have { narg: { p: 2 } } - const commandFlags: YargsParserFlags = (evaluator.options && evaluator.options.flags) || - (evaluator.options && evaluator.options.synonymFor && - evaluator.options.synonymFor.options && evaluator.options.synonymFor.options.flags) || + const commandFlags: YargsParserFlags = + (evaluator.options && evaluator.options.flags) || + (evaluator.options && + evaluator.options.synonymFor && + evaluator.options.synonymFor.options && + evaluator.options.synonymFor.options.flags) || ({} as YargsParserFlags) // eslint-disable-line @typescript-eslint/no-object-literal-type-assertion - const optional = builtInOptions.concat((evaluator.options && evaluator.options.usage && evaluator.options.usage.optional) || []) - const optionalBooleans = optional && optional.filter(({ boolean }) => boolean).map(_ => unflag(_.name)) + const optional = builtInOptions.concat( + (evaluator.options && + evaluator.options.usage && + evaluator.options.usage.optional) || + [] + ) + const optionalBooleans = + optional && + optional.filter(({ boolean }) => boolean).map(_ => unflag(_.name)) interface CanonicalArgs { [key: string]: string } - const optionalAliases = optional && optional.filter(({ alias }) => alias).reduce((M: CanonicalArgs, { name, alias }) => { - M[unflag(alias)] = unflag(name) - return M - }, {}) + const optionalAliases = + optional && + optional + .filter(({ alias }) => alias) + .reduce((M: CanonicalArgs, { name, alias }) => { + M[unflag(alias)] = unflag(name) + return M + }, {}) interface ArgCount { [key: string]: number } const allFlags = { - configuration: Object.assign({ 'camel-case-expansion': false }, (usage && usage.configuration) || {}), + configuration: Object.assign( + { 'camel-case-expansion': false }, + (usage && usage.configuration) || {} + ), boolean: (commandFlags.boolean || []).concat(optionalBooleans || []), - alias: Object.assign({}, commandFlags.alias || {}, optionalAliases || {}), - narg: optional && optional.reduce((N: ArgCount, { name, alias, narg }) => { - if (narg) { - N[unflag(name)] = narg - N[unflag(alias)] = narg - } - return N - }, {}) + alias: Object.assign( + {}, + commandFlags.alias || {}, + optionalAliases || {} + ), + narg: + optional && + optional.reduce((N: ArgCount, { name, alias, narg }) => { + if (narg) { + N[unflag(name)] = narg + N[unflag(alias)] = narg + } + return N + }, {}) } // now use minimist to parse the command line options @@ -456,31 +544,60 @@ class InProcessExecutor implements Executor { // to involve the plugin. this lets us avoid having each // plugin check for options.help // - if ((!usage || !usage.noHelp) && parsedOptions.help && evaluator.options && evaluator.options.usage) { + if ( + (!usage || !usage.noHelp) && + parsedOptions.help && + evaluator.options && + evaluator.options.usage + ) { if (execOptions && execOptions.failWithUsage) { return evaluator.options.usage } else { - return oops(command, block, nextBlock)(new UsageError({ usage: evaluator.options.usage })) + return oops(command, block, nextBlock)( + new UsageError({ usage: evaluator.options.usage }) + ) } } // // here is where we enforce the usage model // - if (usage && usage.strict) { // strict: command wants *us* to enforce conformance + if (usage && usage.strict) { + // strict: command wants *us* to enforce conformance // required and optional parameters - const { strict: cmd, onlyEnforceOptions = false, required = [], oneof = [], optional: _optional = [] } = usage - const optLikeOneOfs: IUsageRow[] = oneof.filter(({ command, name = command }) => name.charAt(0) === '-') // some one-ofs might be of the form --foo - const positionalConsumers = _optional.filter(({ name, alias, consumesPositional }) => consumesPositional && (parsedOptions[unflag(name)] || parsedOptions[unflag(alias)])) - const optional = builtInOptions.concat(_optional).concat(optLikeOneOfs) - const positionalOptionals = optional.filter(({ positional }) => positional) + const { + strict: cmd, + onlyEnforceOptions = false, + required = [], + oneof = [], + optional: _optional = [] + } = usage + const optLikeOneOfs: IUsageRow[] = oneof.filter( + ({ command, name = command }) => name.charAt(0) === '-' + ) // some one-ofs might be of the form --foo + const positionalConsumers = _optional.filter( + ({ name, alias, consumesPositional }) => + consumesPositional && + (parsedOptions[unflag(name)] || parsedOptions[unflag(alias)]) + ) + const optional = builtInOptions + .concat(_optional) + .concat(optLikeOneOfs) + const positionalOptionals = optional.filter( + ({ positional }) => positional + ) const nPositionalOptionals = positionalOptionals.length // just introducing a shorter variable name, here const args = argvNoOptions const nPositionalsConsumed = positionalConsumers.length - const nRequiredArgs = required.length + (oneof.length > 0 ? 1 : 0) - nPositionalsConsumed - const optLikeActuals = optLikeOneOfs.filter(({ name, alias = '' }) => parsedOptions.hasOwnProperty(unflag(name)) || parsedOptions.hasOwnProperty(unflag(alias))) + const nRequiredArgs = + required.length + (oneof.length > 0 ? 1 : 0) - nPositionalsConsumed + const optLikeActuals = optLikeOneOfs.filter( + ({ name, alias = '' }) => + parsedOptions.hasOwnProperty(unflag(name)) || + parsedOptions.hasOwnProperty(unflag(alias)) + ) const nOptLikeActuals = optLikeActuals.length const cmdArgsStart = args.indexOf(cmd) const nActualArgs = args.length - cmdArgsStart - 1 + nOptLikeActuals @@ -488,15 +605,19 @@ class InProcessExecutor implements Executor { // did the user pass an unsupported optional parameter? for (const optionalArg in parsedOptions) { // skip over minimist's _ - if (optionalArg === '_' || - parsedOptions[optionalArg] === false) { // minimist nonsense + if (optionalArg === '_' || parsedOptions[optionalArg] === false) { + // minimist nonsense continue } // should we enforce this option? const enforceThisOption = - onlyEnforceOptions === undefined || typeof onlyEnforceOptions === 'boolean' ? true - : !!onlyEnforceOptions.find(_ => _ === `-${optionalArg}` || _ === `--${optionalArg}`) + onlyEnforceOptions === undefined || + typeof onlyEnforceOptions === 'boolean' + ? true + : !!onlyEnforceOptions.find( + _ => _ === `-${optionalArg}` || _ === `--${optionalArg}` + ) if (!enforceThisOption) { // then neither did the spec didn't mention anything about enforcement (!onlyEnforceOptions) @@ -507,9 +628,11 @@ class InProcessExecutor implements Executor { // find a matching declared optional arg const match = optional.find(({ name, alias }) => { - return stripTrailer(alias) === `-${optionalArg}` || + return ( + stripTrailer(alias) === `-${optionalArg}` || stripTrailer(name) === `-${optionalArg}` || stripTrailer(name) === `--${optionalArg}` + ) }) if (!match) { @@ -527,31 +650,66 @@ class InProcessExecutor implements Executor { } else { return oops(command, block, nextBlock)(err) } - } else if ((match.boolean && typeof parsedOptions[optionalArg] !== 'boolean') || - (match.file && typeof parsedOptions[optionalArg] !== 'string') || - (match.booleanOK && !(typeof parsedOptions[optionalArg] === 'boolean' || typeof parsedOptions[optionalArg] === 'string')) || - (match.numeric && typeof parsedOptions[optionalArg] !== 'number') || - (match.narg > 1 && !Array.isArray(parsedOptions[optionalArg])) || - (!match.boolean && !match.booleanOK && !match.numeric && (!match.narg || match.narg === 1) && - !(typeof parsedOptions[optionalArg] === 'string' || - typeof parsedOptions[optionalArg] === 'number' || - typeof parsedOptions[optionalArg] === 'boolean')) || - - // is the given option not one of the allowed options - (match.allowed && !match.allowed.find(_ => _ === parsedOptions[optionalArg] || - _ === '...' || - (match.allowedIsPrefixMatch && parsedOptions[optionalArg].indexOf(_) === 0)))) { + } else if ( + (match.boolean && + typeof parsedOptions[optionalArg] !== 'boolean') || + (match.file && typeof parsedOptions[optionalArg] !== 'string') || + (match.booleanOK && + !( + typeof parsedOptions[optionalArg] === 'boolean' || + typeof parsedOptions[optionalArg] === 'string' + )) || + (match.numeric && + typeof parsedOptions[optionalArg] !== 'number') || + (match.narg > 1 && !Array.isArray(parsedOptions[optionalArg])) || + (!match.boolean && + !match.booleanOK && + !match.numeric && + (!match.narg || match.narg === 1) && + !( + typeof parsedOptions[optionalArg] === 'string' || + typeof parsedOptions[optionalArg] === 'number' || + typeof parsedOptions[optionalArg] === 'boolean' + )) || + // is the given option not one of the allowed options + (match.allowed && + !match.allowed.find( + _ => + _ === parsedOptions[optionalArg] || + _ === '...' || + (match.allowedIsPrefixMatch && + parsedOptions[optionalArg].indexOf(_) === 0) + )) + ) { // // then the user passed an option, but of the wrong type // - debug('bad value for option', optionalArg, match, parsedOptions, args, allFlags) - - const expectedMessage = match.boolean ? ', expected boolean' - : match.numeric ? ', expected a number' - : match.file ? ', expected a file path' - : '' - - const message = `Bad value for option ${optionalArg}${expectedMessage}${typeof parsedOptions[optionalArg] === 'boolean' ? '' : ', got ' + parsedOptions[optionalArg]}${match.allowed ? ' expected one of: ' + match.allowed.join(', ') : ''}` + debug( + 'bad value for option', + optionalArg, + match, + parsedOptions, + args, + allFlags + ) + + const expectedMessage = match.boolean + ? ', expected boolean' + : match.numeric + ? ', expected a number' + : match.file + ? ', expected a file path' + : '' + + const message = `Bad value for option ${optionalArg}${expectedMessage}${ + typeof parsedOptions[optionalArg] === 'boolean' + ? '' + : ', got ' + parsedOptions[optionalArg] + }${ + match.allowed + ? ' expected one of: ' + match.allowed.join(', ') + : '' + }` const error = new UsageError({ message, usage }) debug(message, match) error.code = 498 @@ -568,20 +726,33 @@ class InProcessExecutor implements Executor { // if (!onlyEnforceOptions && nActualArgs !== nRequiredArgs) { // it's ok if we have nActualArgs in the range [nRequiredArgs, nRequiredArgs + nPositionalOptionals] - if (!(nActualArgs >= nRequiredArgs && - nActualArgs <= nRequiredArgs + nPositionalOptionals)) { + if ( + !( + nActualArgs >= nRequiredArgs && + nActualArgs <= nRequiredArgs + nPositionalOptionals + ) + ) { // yup, scan for implicitOK - const implicitIdx = required.findIndex(({ implicitOK }) => implicitOK !== undefined) + const implicitIdx = required.findIndex( + ({ implicitOK }) => implicitOK !== undefined + ) const selection = currentSelection(tab) let nActualArgsWithImplicit = nActualArgs - if (implicitIdx >= 0 && selection && required[implicitIdx].implicitOK.find(_ => _ === selection.type || - _ === selection.prettyType)) { + if ( + implicitIdx >= 0 && + selection && + required[implicitIdx].implicitOK.find( + _ => _ === selection.type || _ === selection.prettyType + ) + ) { nActualArgsWithImplicit++ // if implicit, maybe other required parameters aren't needed - const notNeededIfImplicit = required.filter(({ notNeededIfImplicit }) => notNeededIfImplicit) + const notNeededIfImplicit = required.filter( + ({ notNeededIfImplicit }) => notNeededIfImplicit + ) nActualArgsWithImplicit += notNeededIfImplicit.length } @@ -590,13 +761,28 @@ class InProcessExecutor implements Executor { // implicitOK, or the current selection // (or lack thereof) didn't match with the // command's typing requirement - const message = nRequiredArgs === 0 && nPositionalOptionals === 0 - ? 'This command accepts no positional arguments' - : nPositionalOptionals > 0 ? 'This command does not accept this number of arguments' - : `This command requires ${nRequiredArgs} parameter${nRequiredArgs === 1 ? '' : 's'}, but you provided ${nActualArgsWithImplicit === 0 ? 'none' : nActualArgsWithImplicit}` + const message = + nRequiredArgs === 0 && nPositionalOptionals === 0 + ? 'This command accepts no positional arguments' + : nPositionalOptionals > 0 + ? 'This command does not accept this number of arguments' + : `This command requires ${nRequiredArgs} parameter${ + nRequiredArgs === 1 ? '' : 's' + }, but you provided ${ + nActualArgsWithImplicit === 0 + ? 'none' + : nActualArgsWithImplicit + }` const err = new UsageError({ message, usage }) err.code = 497 - debug(message, cmd, nActualArgs, nRequiredArgs, args, optLikeActuals) + debug( + message, + cmd, + nActualArgs, + nRequiredArgs, + args, + optLikeActuals + ) if (execOptions && execOptions.nested) { debug('returning usage error') @@ -608,28 +794,57 @@ class InProcessExecutor implements Executor { } else { debug('repl selection', selection) // for activation, the proper entity path is an annotation - const activationPath = selection.type === 'activations' && selection.annotations && selection.annotations.find(_ => _.key === 'path') + const activationPath = + selection.type === 'activations' && + selection.annotations && + selection.annotations.find(_ => _.key === 'path') if (activationPath) { // ooh, then splice in the implicit parameter and entity type. We splice entity type here for later commands to easily distinguish composition/action. - args.splice(implicitIdx, cmdArgsStart + 1, `/${activationPath.value}`, selection['sessionId'] || selection['ast'] ? 'composition' : 'action') + args.splice( + implicitIdx, + cmdArgsStart + 1, + `/${activationPath.value}`, + selection['sessionId'] || selection['ast'] + ? 'composition' + : 'action' + ) } else { // ooh, then splice in the implicit parameter - args.splice(implicitIdx, cmdArgsStart + 1, selection.namespace ? `/${selection.namespace}/${selection.name}` : selection.name) + args.splice( + implicitIdx, + cmdArgsStart + 1, + selection.namespace + ? `/${selection.namespace}/${selection.name}` + : selection.name + ) } - debug('spliced in implicit argument', cmdArgsStart, implicitIdx, args) + debug( + 'spliced in implicit argument', + cmdArgsStart, + implicitIdx, + args + ) } } } } /* strict usage model conformance checking */ - if (evaluator.options && !(await hasAuth()) && !evaluator.options.noAuthOk) { + if ( + evaluator.options && + !(await hasAuth()) && + !evaluator.options.noAuthOk + ) { debug('command requires auth, and we do not have it') const err = new Error('Command requires authentication') err['code'] = 403 return oops(command, block, nextBlock)(err) } - if (evaluator.options && evaluator.options.requiresLocal && !hasLocalAccess()) { + if ( + evaluator.options && + evaluator.options.requiresLocal && + !hasLocalAccess() + ) { debug('command does not work in a browser') const err = new Error('Command requires local access') err['code'] = 406 // http not acceptable @@ -640,10 +855,16 @@ class InProcessExecutor implements Executor { // requires one, then ask for a head and try again. note // that we ignore this needsUI constraint if the user is // asking for help - if (isHeadless() && !parsedOptions.cli && !parsedOptions.help && - ((process.env.DEFAULT_TO_UI && !parsedOptions.cli) || - (evaluator.options && evaluator.options.needsUI))) { - import('../main/headless').then(({ createWindow }) => createWindow(argv, evaluator.options.fullscreen, evaluator.options)) + if ( + isHeadless() && + !parsedOptions.cli && + !parsedOptions.help && + ((process.env.DEFAULT_TO_UI && !parsedOptions.cli) || + (evaluator.options && evaluator.options.needsUI)) + ) { + import('../main/headless').then(({ createWindow }) => + createWindow(argv, evaluator.options.fullscreen, evaluator.options) + ) return Promise.resolve(true) } @@ -659,28 +880,44 @@ class InProcessExecutor implements Executor { // the Eval part of REPL // debug('eval', currentEvaluatorImpl.name) - return Promise.resolve().then(() => { - eventBus.emit('/command/start', { - tab, - route: evaluator.route, - command, - execType: (execOptions && execOptions.type) || ExecType.TopLevel - }) + return Promise.resolve() + .then(() => { + eventBus.emit('/command/start', { + tab, + route: evaluator.route, + command, + execType: (execOptions && execOptions.type) || ExecType.TopLevel + }) - return currentEvaluatorImpl.apply(commandUntrimmed, execOptions, evaluator, { - tab, - block: block || true, - nextBlock, - argv, - command, - execOptions, - argvNoOptions, - parsedOptions, - createOutputStream: execOptions.createOutputStream || (() => isHeadless() ? headlessStreamTo() : cli.streamTo(tab, block)) + return currentEvaluatorImpl.apply( + commandUntrimmed, + execOptions, + evaluator, + { + tab, + block: block || true, + nextBlock, + argv, + command, + execOptions, + argvNoOptions, + parsedOptions, + createOutputStream: + execOptions.createOutputStream || + (() => + isHeadless() + ? headlessStreamTo() + : cli.streamTo(tab, block)) + } + ) }) - }) .then(response => { - if (!execOptions.rawResponse && response && response.context && nextBlock) { + if ( + !execOptions.rawResponse && + response && + response.context && + nextBlock + ) { // cli.setContextUI(response, nextBlock) return response.message } else { @@ -724,16 +961,37 @@ class InProcessExecutor implements Executor { }) // response=true means we are in charge of 'ok' - if (nested || response.mode === 'prompt' || (block && block['_isFakeDom'])) { + if ( + nested || + response.mode === 'prompt' || + (block && block['_isFakeDom']) + ) { // the parent exec will deal with the repl - debug('passing control back to prompt processor or headless', response, commandUntrimmed) + debug( + 'passing control back to prompt processor or headless', + response, + commandUntrimmed + ) return Promise.resolve(response) } else { // we're the top-most exec, so deal with the repl! debug('displaying response') - const resultDom = block.querySelector('.repl-result') as HTMLElement + const resultDom = block.querySelector( + '.repl-result' + ) as HTMLElement return new Promise(resolve => { - cli.printResults(block, nextBlock, tab, resultDom, echo, execOptions, parsedOptions, command, evaluator)(response) // <--- the Print part of REPL + cli + .printResults( + block, + nextBlock, + tab, + resultDom, + echo, + execOptions, + parsedOptions, + command, + evaluator + )(response) // <--- the Print part of REPL .then(() => { if (echo) { // <-- create a new input, for the next iter of the Loop @@ -772,7 +1030,12 @@ class InProcessExecutor implements Executor { throw err } else { // indicate that the command was NOT successfuly completed - err = evaluator.error(command, tab, (execOptions && execOptions.type) || ExecType.TopLevel, err) + err = evaluator.error( + command, + tab, + (execOptions && execOptions.type) || ExecType.TopLevel, + err + ) if (!nested && !rethrowIt) { debug('reporting command execution error to user via repl') @@ -782,7 +1045,9 @@ class InProcessExecutor implements Executor { debug('rethrowing command execution error') if (reportIt) { // maybe the caller also wants us to report it via the repl? - debug('also reporting command execution error to user via repl') + debug( + 'also reporting command execution error to user via repl' + ) oops(command, block, nextBlock)(err) } throw err @@ -796,9 +1061,13 @@ class InProcessExecutor implements Executor { if (isHeadless()) { try { debug('attempting to run the command graphically', e) - const command = commandUntrimmed.trim().replace(patterns.commentLine, '') + const command = commandUntrimmed + .trim() + .replace(patterns.commentLine, '') const argv = split(command) - await import('../main/spawn-electron').then(({ initElectron }) => initElectron(argv, { forceUI: true }, true, { fullscreen: true })) + await import('../main/spawn-electron').then(({ initElectron }) => + initElectron(argv, { forceUI: true }, true, { fullscreen: true }) + ) } catch (err) { debug('nope, we failed to run the command graphically') console.error(err) @@ -828,10 +1097,18 @@ class InProcessExecutor implements Executor { oops(command, block, nextBlock)(e) } else { const cmd = cli.showHelp(command, blockForError, nextBlock, e) - const resultDom = blockForError.querySelector('.repl-result') as HTMLElement + const resultDom = blockForError.querySelector( + '.repl-result' + ) as HTMLElement return Promise.resolve(cmd) .then(cli.printResults(blockForError, nextBlock, tab, resultDom)) - .then(cli.installBlock(blockForError.parentNode, blockForError, nextBlock)) + .then( + cli.installBlock( + blockForError.parentNode, + blockForError, + nextBlock + ) + ) } }) } @@ -844,7 +1121,10 @@ class InProcessExecutor implements Executor { * */ let currentExecutorImpl: Executor = new InProcessExecutor() -export const exec = (commandUntrimmed: string, execOptions = emptyExecOptions()) => { +export const exec = ( + commandUntrimmed: string, + execOptions = emptyExecOptions() +) => { return currentExecutorImpl.exec(commandUntrimmed, execOptions) } @@ -852,7 +1132,10 @@ export const exec = (commandUntrimmed: string, execOptions = emptyExecOptions()) * User hit enter in the REPL * */ -export const doEval = ({ block = cli.getCurrentBlock(), prompt = cli.getPrompt(block) } = {}) => { +export const doEval = ({ + block = cli.getCurrentBlock(), + prompt = cli.getPrompt(block) +} = {}) => { const command = prompt.value.trim() if (block['completion']) { @@ -860,7 +1143,10 @@ export const doEval = ({ block = cli.getCurrentBlock(), prompt = cli.getPrompt(b block['completion'](prompt.value) } else { // otherwise, this is a plain old eval, resulting from the user hitting Enter - return exec(command, new DefaultExecOptionsForTab(cli.getTabFromTarget(prompt))) + return exec( + command, + new DefaultExecOptionsForTab(cli.getTabFromTarget(prompt)) + ) } } @@ -868,25 +1154,55 @@ export const doEval = ({ block = cli.getCurrentBlock(), prompt = cli.getPrompt(b * If, while evaluating a command, it needs to evaluate a sub-command... * */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const qexec = (command: string, block?: HTMLElement | boolean, contextChangeOK?: boolean, execOptions?: ExecOptions, nextBlock?: HTMLElement): Promise => { - return exec(command, Object.assign({ - block: block, - nextBlock: nextBlock, - noHistory: true, - contextChangeOK - }, execOptions, { - type: ExecType.Nested - })) +export const qexec = ( + command: string, + block?: HTMLElement | boolean, + contextChangeOK?: boolean, + execOptions?: ExecOptions, + nextBlock?: HTMLElement + // eslint-disable-next-line @typescript-eslint/no-explicit-any +): Promise => { + return exec( + command, + Object.assign( + { + block: block, + nextBlock: nextBlock, + noHistory: true, + contextChangeOK + }, + execOptions, + { + type: ExecType.Nested + } + ) + ) } -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const qfexec = (command: string, block?: HTMLElement, nextBlock?: HTMLElement, execOptions?: ExecOptions): Promise => { +export const qfexec = ( + command: string, + block?: HTMLElement, + nextBlock?: HTMLElement, + execOptions?: ExecOptions + // eslint-disable-next-line @typescript-eslint/no-explicit-any +): Promise => { // context change ok, final exec in a chain of nested execs return qexec(command, block, true, execOptions, nextBlock) } -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const iexec = (command: string, block?: HTMLElement, contextChangeOK?: boolean, execOptions?: ExecOptions, nextBlock?: HTMLElement): Promise => { - return qexec(command, block, contextChangeOK, Object.assign({}, execOptions, { intentional: true }), nextBlock) +export const iexec = ( + command: string, + block?: HTMLElement, + contextChangeOK?: boolean, + execOptions?: ExecOptions, + nextBlock?: HTMLElement + // eslint-disable-next-line @typescript-eslint/no-explicit-any +): Promise => { + return qexec( + command, + block, + contextChangeOK, + Object.assign({}, execOptions, { intentional: true }), + nextBlock + ) } /** @@ -894,7 +1210,12 @@ export const iexec = (command: string, block?: HTMLElement, contextChangeOK?: bo * */ export const rexec = (command: string, execOptions = emptyExecOptions()) => { - return qexec(command, undefined, undefined, Object.assign({ raw: true }, execOptions)) + return qexec( + command, + undefined, + undefined, + Object.assign({ raw: true }, execOptions) + ) } /** @@ -902,7 +1223,10 @@ export const rexec = (command: string, execOptions = emptyExecOptions()) => { * */ export const pexec = (command: string, execOptions?: ExecOptions) => { - return exec(command, Object.assign({ echo: true, type: ExecType.ClickHandler }, execOptions)) + return exec( + command, + Object.assign({ echo: true, type: ExecType.ClickHandler }, execOptions) + ) } /** @@ -921,10 +1245,12 @@ export const setExecutorImpl = (impl: Executor): void => { export const encodeComponent = (component: string, quote = '"') => { if (component === undefined) { return '' - } else if (typeof component === 'string' && - patterns.whitespace.test(component) && - component.charAt(0) !== quote && - component.charAt(component.length - 1) !== quote) { + } else if ( + typeof component === 'string' && + patterns.whitespace.test(component) && + component.charAt(0) !== quote && + component.charAt(component.length - 1) !== quote + ) { return `${quote}${component}${quote}` } else { return component diff --git a/packages/app/src/core/settings.ts b/packages/app/src/core/settings.ts index 66d2c0913f1..bab7123ad12 100644 --- a/packages/app/src/core/settings.ts +++ b/packages/app/src/core/settings.ts @@ -14,7 +14,11 @@ * limitations under the License. */ -import { theme as t, env as e, config as c } from '@kui-shell/settings/config.json' +import { + theme as t, + env as e, + config as c +} from '@kui-shell/settings/config.json' // eslint-disable-next-line @typescript-eslint/no-explicit-any let devOverrides: Record diff --git a/packages/app/src/core/usage-error.ts b/packages/app/src/core/usage-error.ts index 0ad118ef6c5..089a886cc4b 100644 --- a/packages/app/src/core/usage-error.ts +++ b/packages/app/src/core/usage-error.ts @@ -30,15 +30,17 @@ interface UsageOptions { noHide?: boolean noBreadcrumb?: boolean } -class DefaultUsageOptions implements UsageOptions { -} +class DefaultUsageOptions implements UsageOptions {} /** * Map a asynchronous function to an array sequentially from front to * back. * */ -async function promiseEach (arr: T[], fn: (t: T) => Promise): Promise { +async function promiseEach( + arr: T[], + fn: (t: T) => Promise +): Promise { const result = [] for (const item of arr) { result.push(await fn(item)) @@ -47,7 +49,11 @@ async function promiseEach (arr: T[], fn: (t: T) => Promise): Promise | Element, css: string | string[] = undefined, tag = 'div'): HTMLElement => { +const div = ( + str?: string | Promise | Element, + css: string | string[] = undefined, + tag = 'div' +): HTMLElement => { const result = document.createElement(tag) if (str) { @@ -69,7 +75,8 @@ const div = (str?: string | Promise | Element, css: string | string[] = } return result } -const span = (str?: string | Element, css?: string): HTMLElement => div(str, css, 'span') +const span = (str?: string | Element, css?: string): HTMLElement => + div(str, css, 'span') /** * The start of every section, e.g. Usage: @@ -113,13 +120,18 @@ interface BreadcrumbWithClickCommand { interface BreadcrumbWithLabelProvider { command: string } -type BreadcrumbLabel = string | BreadcrumbWithLabelProvider | BreadcrumbWithClickCommand -function isBreadcrumbWithClickCommand (crumb: BreadcrumbLabel): crumb is BreadcrumbWithClickCommand { - const breadcrumb = (crumb as BreadcrumbWithClickCommand) +type BreadcrumbLabel = + | string + | BreadcrumbWithLabelProvider + | BreadcrumbWithClickCommand +function isBreadcrumbWithClickCommand( + crumb: BreadcrumbLabel +): crumb is BreadcrumbWithClickCommand { + const breadcrumb = crumb as BreadcrumbWithClickCommand return !!(breadcrumb.label && breadcrumb.command) } -function isMessageWithUsageModel (msg: UsageLike): msg is MessageWithUsageModel { +function isMessageWithUsageModel(msg: UsageLike): msg is MessageWithUsageModel { const message = msg as MessageWithUsageModel return !!message.usage } @@ -129,7 +141,12 @@ function isMessageWithUsageModel (msg: UsageLike): msg is MessageWithUsageModel * */ const breadcrumbFromCommand = async (command: string): Promise => { - const usageError: UsageError = await repl.qexec(command, undefined, undefined, { failWithUsage: true }) + const usageError: UsageError = await repl.qexec( + command, + undefined, + undefined, + { failWithUsage: true } + ) if (isMessageWithUsageModel(usageError.raw)) { const usage = usageError.raw.usage @@ -159,30 +176,29 @@ const makeBreadcrumb = (options: CrumbOptions): Promise => { label = breadcrumbFromCommand(cmd) } - return Promise.resolve(label) - .then(label => { - const item = span() - item.classList.add('bx--breadcrumb-item') + return Promise.resolve(label).then(label => { + const item = span() + item.classList.add('bx--breadcrumb-item') - if (!options.preserveCase) { - item.classList.add('capitalize') - } + if (!options.preserveCase) { + item.classList.add('capitalize') + } - const dom = span(label, 'bx--no-link') - dom.setAttribute('data-label', label) - item.appendChild(dom) + const dom = span(label, 'bx--no-link') + dom.setAttribute('data-label', label) + item.appendChild(dom) - if (!options.noSlash) { - item.appendChild(span('/', 'bx--breadcrumb-item--slash')) - } + if (!options.noSlash) { + item.appendChild(span('/', 'bx--breadcrumb-item--slash')) + } - if (cmd) { - dom.classList.add('bx--link') - dom.onclick = () => repl.pexec(cmd) - } + if (cmd) { + dom.classList.add('bx--link') + dom.onclick = () => repl.pexec(cmd) + } - return item - }) + return item + }) } interface Generator { @@ -190,7 +206,7 @@ interface Generator { fn: (command: string) => IUsageRow } -function isGenerator (row: UsageRow): row is Generator { +function isGenerator(row: UsageRow): row is Generator { return !!(row as Generator).fn } @@ -198,7 +214,10 @@ function isGenerator (row: UsageRow): row is Generator { * Format the given usage message * */ -const format = async (message: UsageLike, options: UsageOptions = new DefaultUsageOptions()): Promise => { +const format = async ( + message: UsageLike, + options: UsageOptions = new DefaultUsageOptions() +): Promise => { debug('format message', message) if (typeof message === 'string') { @@ -214,13 +233,28 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa // these are the fields of the usage message const usage: UsageModel = message.usage - const { command, docs, title, breadcrumb = title || command, header = docs && `${docs}.`, example, detailedExample, sampleInputs, - intro, sections, // the more general case: the usage model has custom sections - commandPrefix, commandPrefixNotNeeded, + const { + command, + docs, + title, + breadcrumb = title || command, + header = docs && `${docs}.`, + example, + detailedExample, + sampleInputs, + intro, + sections, // the more general case: the usage model has custom sections + commandPrefix, + commandPrefixNotNeeded, commandSuffix = '', drilldownWithPip = false, preserveCase = false, // in breadcrumbs - available, related, required, optional, oneof } = usage + available, + related, + required, + optional, + oneof + } = usage const outerCommandPrefix = commandPrefix const outerCommandSuffix = commandSuffix const outerCommand = command @@ -229,15 +263,25 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa // those fields now; `body` is the flex-wrap portion of the // content const resultWrapper = div(undefined, 'usage-error-wrapper') - const result = div(undefined, options.noHide ? '' : ['hideable', 'page-content'], 'p') + const result = div( + undefined, + options.noHide ? '' : ['hideable', 'page-content'], + 'p' + ) const body = div() const left = div() // usage and detailedExample const right = div() // required and optional parameters // if we have a great many detailed examples, place them in a scroll region - const scrollableDetailedExamples = detailedExample && Array.isArray(detailedExample) && detailedExample.length > 4 - - if ((sections && sections.length > 1) || (scrollableDetailedExamples && sections && sections.length > 0)) { + const scrollableDetailedExamples = + detailedExample && + Array.isArray(detailedExample) && + detailedExample.length > 4 + + if ( + (sections && sections.length > 1) || + (scrollableDetailedExamples && sections && sections.length > 0) + ) { left.classList.add('fifty-fifty') right.classList.add('fifty-fifty') } else { @@ -250,7 +294,10 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa const messageDom = div(undefined, '', 'div') const prefacePart = span('') - const messagePart = span(messageString, 'red-text usage-error-message-string') + const messagePart = span( + messageString, + 'red-text usage-error-message-string' + ) if (message.messageDom) { if (typeof message.messageDom === 'string') { messagePart.appendChild(document.createTextNode(message.messageDom)) @@ -268,9 +315,15 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa resultWrapper.appendChild(messageDom) if (!isHeadless() && !options.noHide) { - const usagePart = div(undefined, 'small-top-pad hideable click-here-for-usage-container') + const usagePart = div( + undefined, + 'small-top-pad hideable click-here-for-usage-container' + ) const frontPart = span('Click ') - const clickyPart = span('here', 'clickable clickable-blatant click-here-for-usage') + const clickyPart = span( + 'here', + 'clickable clickable-blatant click-here-for-usage' + ) const restPart = span(' for usage information.') usagePart.appendChild(frontPart) @@ -292,8 +345,12 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa // if (!options.noBreadcrumb) { // breadcrumb model chain - const rootCrumb = { breadcrumb: { label: 'Shell Docs', command: 'help' } } - const parentChain = (usage.parents || []).map(breadcrumb => ({ breadcrumb })) + const rootCrumb = { + breadcrumb: { label: 'Shell Docs', command: 'help' } + } + const parentChain = (usage.parents || []).map(breadcrumb => ({ + breadcrumb + })) const thisCommand = { breadcrumb, noSlash: true, preserveCase } const breadcrumbs: CrumbOptions[] = [ rootCrumb, @@ -305,7 +362,11 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa const crumbs = await promiseEach(breadcrumbs, makeBreadcrumb) // attach the breadcrumb to the view - const container = div(undefined, 'bx--breadcrumb bx--breadcrumb--no-trailing-slash', 'h2') + const container = div( + undefined, + 'bx--breadcrumb bx--breadcrumb--no-trailing-slash', + 'h2' + ) result.appendChild(container) crumbs.forEach(breadcrumb => container.appendChild(breadcrumb)) } @@ -365,7 +426,10 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa const scrollRegions = [] // any minimally formatted sections? e.g. `intro` and `section` fields - const makeSection = (parent = right, noMargin = false) => ({ title, content }: TitledContent) => { + const makeSection = (parent = right, noMargin = false) => ({ + title, + content + }: TitledContent) => { const wrapper = bodyPart(noMargin) const prePart = prefix(title) const contentPart = document.createElement('pre') @@ -403,7 +467,9 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa // detailed example command if (detailedExample) { - const examples = !Array.isArray(detailedExample) ? [detailedExample] : detailedExample + const examples = !Array.isArray(detailedExample) + ? [detailedExample] + : detailedExample const examplePart = bodyPart() const prePart = prefix(examples.length === 1 ? 'Example' : 'Examples') @@ -412,9 +478,12 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa // only if we there are other sections to show, render the // detailed examples in a scroll region - const examplesInScrollRegion = examples.length > 4 && sections && sections.length > 0 + const examplesInScrollRegion = + examples.length > 4 && sections && sections.length > 0 - const rowsPart = examplesInScrollRegion ? div(undefined, ['scrollable', 'scrollable-auto']) : examplePart + const rowsPart = examplesInScrollRegion + ? div(undefined, ['scrollable', 'scrollable-auto']) + : examplePart if (examplesInScrollRegion) { scrollRegions.push(rowsPart) @@ -441,7 +510,12 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa * Render a table of options * */ - const makeTable = (title: string, rows: IUsageRow[], parent = right, nRowsInViewport = (usage && usage.nRowsInViewport) || 5): HTMLElement => { + const makeTable = ( + title: string, + rows: IUsageRow[], + parent = right, + nRowsInViewport = (usage && usage.nRowsInViewport) || 5 + ): HTMLElement => { const wrapper = bodyPart() const prePart = prefix(title) @@ -467,8 +541,16 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa // bottom border; the 3em part must .log-line's height in // ui.css; nRowsInViewport = true means disable inner scrolling if (rows.length > nRowsInViewport && nRowsInViewport !== true) { - const tableScrollable = div(undefined, ['scrollable', 'scrollable-auto']) - const nRows = (sections && (sections.length === 2 || (sections.length === 1 && scrollableDetailedExamples))) ? 8 : nRowsInViewport + const tableScrollable = div(undefined, [ + 'scrollable', + 'scrollable-auto' + ]) + const nRows = + sections && + (sections.length === 2 || + (sections.length === 1 && scrollableDetailedExamples)) + ? 8 + : nRowsInViewport tableScrollable.style.maxHeight = `calc(${nRows} * 3em + 1px)` tableScrollable.appendChild(table) wrapper.appendChild(tableScrollable) @@ -486,14 +568,29 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa // fields of the row model // debug('row', rowData) - const { commandPrefix = outerCommandPrefix, commandSuffix = outerCommandSuffix, + const { + commandPrefix = outerCommandPrefix, + commandSuffix = outerCommandSuffix, command = outerCommand, - name = command, label = name, + name = command, + label = name, noclick = false, - synonyms, alias, numeric, aliases = (synonyms || [alias]).filter(x => x), hidden = false, advanced = false, + synonyms, + alias, + numeric, + aliases = (synonyms || [alias]).filter(x => x), + hidden = false, + advanced = false, available, - example = numeric && 'N', dir: isDir = available || false, - title, header, docs = header || title, partial = false, allowed, defaultValue } = rowData + example = numeric && 'N', + dir: isDir = available || false, + title, + header, + docs = header || title, + partial = false, + allowed, + defaultValue + } = rowData // row is either hidden or only shown for advanced users if (hidden) return @@ -504,16 +601,29 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa const cmdCell = row.insertCell(-1) const docsCell = row.insertCell(-1) - const cmdPart = span(label && label.replace(/=/g, '=\u00ad'), 'pre-wrap not-very-wide') + const cmdPart = span( + label && label.replace(/=/g, '=\u00ad'), + 'pre-wrap not-very-wide' + ) const dirPart = isDir && label && span('/') - const examplePart = example && span(example, label || dirPart ? 'left-pad lighter-text smaller-text' : '') // for -p key value, "key value" - const aliasesPart = aliases && aliases.length > 0 && span(undefined, 'lighter-text smaller-text small-left-pad') + const examplePart = + example && + span( + example, + label || dirPart ? 'left-pad lighter-text smaller-text' : '' + ) // for -p key value, "key value" + const aliasesPart = + aliases && + aliases.length > 0 && + span(undefined, 'lighter-text smaller-text small-left-pad') const docsPart = span(docs) const allowedPart = allowed && smaller(span(undefined)) // for repl.exec, const commandForExec = (alias: string, cmd = ''): string => { - return `${commandPrefix && !commandPrefixNotNeeded ? commandPrefix + ' ' : ''}${alias} ${cmd} ${commandSuffix}` + return `${ + commandPrefix && !commandPrefixNotNeeded ? commandPrefix + ' ' : '' + }${alias} ${cmd} ${commandSuffix}` } cmdCell.className = 'log-field' @@ -524,19 +634,23 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa // command aliases if (aliases) { - aliases.filter(x => x).forEach(alias => { - const cmdCell = span() - const cmdPart = span(alias /* noclick ? '' : 'clickable clickable-blatant' */) // don't make aliases clickable - const dirPart = isDir && span('/') - - if (!noclick) { - cmdPart.onclick = () => repl.pexec(commandForExec(alias)) - } + aliases + .filter(x => x) + .forEach(alias => { + const cmdCell = span() + const cmdPart = span( + alias /* noclick ? '' : 'clickable clickable-blatant' */ + ) // don't make aliases clickable + const dirPart = isDir && span('/') + + if (!noclick) { + cmdPart.onclick = () => repl.pexec(commandForExec(alias)) + } - aliasesPart.appendChild(cmdCell) - cmdCell.appendChild(cmdPart) - if (dirPart) cmdCell.appendChild(smaller(dirPart)) - }) + aliasesPart.appendChild(cmdCell) + cmdCell.appendChild(cmdPart) + if (dirPart) cmdCell.appendChild(smaller(dirPart)) + }) } // allowed and default values @@ -544,7 +658,11 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa allowedPart.style.color = 'var(--color-text-02)' allowedPart.appendChild(span('options: ')) allowed.forEach((value, idx) => { - const option = span(`${idx > 0 ? ', ' : ''}${value}${value !== defaultValue ? '' : '*'}`) + const option = span( + `${idx > 0 ? ', ' : ''}${value}${ + value !== defaultValue ? '' : '*' + }` + ) allowedPart.appendChild(option) }) } @@ -564,16 +682,26 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa cmdPart.onclick = async event => { const cli = await import('../webapp/cli') if (partial) { - return cli.partial(commandForExec(alias, command) + `${partial === true ? '' : ' ' + partial}`) + return cli.partial( + commandForExec(alias, command) + + `${partial === true ? '' : ' ' + partial}` + ) } else { if (drilldownWithPip) { - return pip(cli.getCurrentTab(), // FIXME; i don't think this is right; tab needs to be passed through - commandForExec(command, name !== command ? name : undefined), + return pip( + cli.getCurrentTab(), // FIXME; i don't think this is right; tab needs to be passed through + commandForExec( + command, + name !== command ? name : undefined + ), undefined, resultWrapper.parentNode.parentNode as Element, - 'Previous Usage')(event) + 'Previous Usage' + )(event) } else { - return repl.pexec(commandForExec(command, name !== command ? name : undefined)) + return repl.pexec( + commandForExec(command, name !== command ? name : undefined) + ) } } } @@ -603,20 +731,28 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa tableSections.sort(({ rows: a }, { rows: b }) => a.length - b.length) const nRowsOf = (section: UsageSection, idx: number) => { - debug('nRowsOf', section, section.rows.length, section.nRowsInViewport, defaultNRowsInViewport(idx, section.rows.length)) - return Math.min(section.rows.length, - section.nRowsInViewport || defaultNRowsInViewport(idx, section.rows.length) || section.rows.length) + debug( + 'nRowsOf', + section, + section.rows.length, + section.nRowsInViewport, + defaultNRowsInViewport(idx, section.rows.length) + ) + return Math.min( + section.rows.length, + section.nRowsInViewport || + defaultNRowsInViewport(idx, section.rows.length) || + section.rows.length + ) } const totalRows = tableSections.reduce((total, section, idx) => { return total + nRowsOf(section, idx) }, 0) - stringSections.forEach((section) => { + stringSections.forEach(section => { const { title, rows } = section - makeTable(title, - rows, - left) + makeTable(title, rows, left) }) let runningSum = 0 @@ -625,10 +761,12 @@ const format = async (message: UsageLike, options: UsageOptions = new DefaultUsa runningSum += nRowsOf(section, idx) debug('running', runningSum, totalRows) - makeTable(title, + makeTable( + title, rows, runningSum < totalRows / 2 ? left : right, - nRowsInViewport || defaultNRowsInViewport(idx, rows.length)) + nRowsInViewport || defaultNRowsInViewport(idx, rows.length) + ) }) } @@ -824,9 +962,12 @@ interface MessageWithUsageModel extends MessageWithCode { extra?: any // eslint-disable-line @typescript-eslint/no-explicit-any } -function isMessageWithCode (msg: UsageLike): msg is MessageWithCode { +function isMessageWithCode(msg: UsageLike): msg is MessageWithCode { const message = msg as MessageWithCode - return !!(message.message && (message.code || message.statusCode || message.exitCode)) + return !!( + message.message && + (message.code || message.statusCode || message.exitCode) + ) } type MessageLike = string | HTMLElement @@ -837,14 +978,16 @@ export class UsageError extends Error implements CodedError { raw: UsageLike code: number - constructor (message: UsageLike, extra?: UsageOptions) { + constructor(message: UsageLike, extra?: UsageOptions) { super() if (Error.captureStackTrace) { Error.captureStackTrace(this, this.constructor) } this.raw = message - this.code = isMessageWithCode(message) ? message.statusCode || message.code || message.exitCode : 500 + this.code = isMessageWithCode(message) + ? message.statusCode || message.code || message.exitCode + : 500 if (typeof message === 'string') { this.message = message @@ -853,15 +996,17 @@ export class UsageError extends Error implements CodedError { } } - getUsageModel (): UsageModel { + getUsageModel(): UsageModel { return (this.raw as MessageWithUsageModel).usage } - getFormattedMessage (): Promise { - return this.formattedMessage ? this.formattedMessage : Promise.resolve(span(this.message)) + getFormattedMessage(): Promise { + return this.formattedMessage + ? this.formattedMessage + : Promise.resolve(span(this.message)) } - static isUsageError (error: Entity): error is UsageError { + static isUsageError(error: Entity): error is UsageError { const err = error as UsageError return !!(err.formattedMessage && err.code) } diff --git a/packages/app/src/core/userdata.ts b/packages/app/src/core/userdata.ts index 2227331c199..9a0c11522b2 100644 --- a/packages/app/src/core/userdata.ts +++ b/packages/app/src/core/userdata.ts @@ -165,7 +165,10 @@ export const getPreference = async (key: string): Promise => { * @return the preference value * */ -export const setPreference = async (key: string, value: string): Promise => { +export const setPreference = async ( + key: string, + value: string +): Promise => { debug('setPreference', key, value) const prefs = await preferences() prefs[key] = value diff --git a/packages/app/src/core/utility.ts b/packages/app/src/core/utility.ts index cc53b396f90..1364dd6f603 100644 --- a/packages/app/src/core/utility.ts +++ b/packages/app/src/core/utility.ts @@ -29,10 +29,19 @@ export const optionsToString = (options: Options) => { let str = '' for (const key in options) { // underscore comes from minimist - if (key !== '_' && options[key] !== undefined && key !== 'name' && key !== 'theme' && typeof options[key] !== 'object') { + if ( + key !== '_' && + options[key] !== undefined && + key !== 'name' && + key !== 'theme' && + typeof options[key] !== 'object' + ) { const dash = key.length === 1 ? '-' : '--' const prefix = options[key] === false ? 'no-' : '' // e.g. --no-help - const value = options[key] === true || options[key] === false ? '' : ` ${options[key]}` + const value = + options[key] === true || options[key] === false + ? '' + : ` ${options[key]}` if (!(dash === '-' && options[key] === false)) { // avoid -no-q, i.e. single dash @@ -49,7 +58,10 @@ export const optionsToString = (options: Options) => { * */ export const hasUnknownOptions = (options: Options, expected: string[]) => { - const M = expected.reduce((M, key) => { M[key] = true; return M }, {}) + const M = expected.reduce((M, key) => { + M[key] = true + return M + }, {}) for (const opt in options) { // underscore comes from minimist if (opt !== '_' && !M[opt]) { diff --git a/packages/app/src/main/headless-pretty-print.ts b/packages/app/src/main/headless-pretty-print.ts index d381d892aa7..3ed75b7eee1 100644 --- a/packages/app/src/main/headless-pretty-print.ts +++ b/packages/app/src/main/headless-pretty-print.ts @@ -27,7 +27,9 @@ const error = console.error const verbose = process.argv.find(_ => _ === '-v') const colorAlways = process.argv.find(_ => _ === '--color=always') -const neverColor = process.argv.find(_ => _ === '--no-color' || _ === '--no-colors') +const neverColor = process.argv.find( + _ => _ === '--no-color' || _ === '--no-colors' +) const rawOutput = process.argv.find(_ => _ === '--raw-output') // don't try to pretty-print the JSON; c.f. jq's --raw-output /** @@ -36,7 +38,8 @@ const rawOutput = process.argv.find(_ => _ === '--raw-output') // don't try to p * the user specified --color=always. * */ -const stdoutIsFIFO = process.platform !== 'win32' && fstatSync && fstatSync(1).isFIFO() // 1 is the file descriptor for stdout +const stdoutIsFIFO = + process.platform !== 'win32' && fstatSync && fstatSync(1).isFIFO() // 1 is the file descriptor for stdout const noColor = neverColor || (stdoutIsFIFO && !colorAlways) debug('stdoutIsFIFO', stdoutIsFIFO, noColor) @@ -72,15 +75,28 @@ interface PrettyOptions { columnWidths?: { [key: number]: number } extraColor?: string } -class DefaultPrettyOptions implements PrettyOptions { -} +class DefaultPrettyOptions implements PrettyOptions {} let firstPrettyDom = true // so we can avoid initial newlines for headers -const prettyDom = (dom: ElementMimic, logger = log, stream = process.stdout, _color: string, { columnWidths, extraColor: _extraColor }: PrettyOptions = new DefaultPrettyOptions()) => { +const prettyDom = ( + dom: ElementMimic, + logger = log, + stream = process.stdout, + _color: string, + { + columnWidths, + extraColor: _extraColor + }: PrettyOptions = new DefaultPrettyOptions() +) => { debug('prettyDom') - const isHeader = dom.nodeType === 'h1' || dom.nodeType === 'h2' || dom.nodeType === 'h3' || dom.nodeType === 'h4' + const isHeader = + dom.nodeType === 'h1' || + dom.nodeType === 'h2' || + dom.nodeType === 'h3' || + dom.nodeType === 'h4' const capitalize = dom.className.indexOf('bx--no-link') >= 0 - const hasMargin = dom.className.indexOf('bx--breadcrumb-item--slash') >= 0 || + const hasMargin = + dom.className.indexOf('bx--breadcrumb-item--slash') >= 0 || dom.className.indexOf('left-pad') >= 0 || dom.style['margin'] || dom.style['padding'] @@ -89,10 +105,14 @@ const prettyDom = (dom: ElementMimic, logger = log, stream = process.stdout, _co stream.write(' ') } - const extraColor = isHeader || dom.hasStyle('fontWeight', 'bold') ? 'bold' - : dom.hasStyle('fontWeight', 500) ? 'green' - : dom.hasStyle('fontSize', '0.875em') ? 'gray' - : _extraColor || 'reset' + const extraColor = + isHeader || dom.hasStyle('fontWeight', 'bold') + ? 'bold' + : dom.hasStyle('fontWeight', 500) + ? 'green' + : dom.hasStyle('fontSize', '0.875em') + ? 'gray' + : _extraColor || 'reset' const colorCode = (dom.hasStyle('color') as string) || _color const color = colorMap[colorCode] || colorCode // debug('colors', isHeader, colorCode, color, extraColor) @@ -109,7 +129,8 @@ const prettyDom = (dom: ElementMimic, logger = log, stream = process.stdout, _co } if (dom.innerText) { - const text = capitalize ? dom.innerText.charAt(0).toUpperCase() + dom.innerText.slice(1) + const text = capitalize + ? dom.innerText.charAt(0).toUpperCase() + dom.innerText.slice(1) : dom.innerText // debug('text', color, extraColor) stream.write(colors[color][extraColor](text)) @@ -131,7 +152,9 @@ const prettyDom = (dom: ElementMimic, logger = log, stream = process.stdout, _co } // recurse to the children of this fake DOM - dom.children.forEach(child => prettyDom(child, logger, stream, _color, { extraColor })) + dom.children.forEach(child => + prettyDom(child, logger, stream, _color, { extraColor }) + ) // handle table rows and cells: if (dom.rows) { @@ -202,7 +225,9 @@ const prettyJSON = (msg, logger = log) => { * Render a name with an optional package name * */ -const pn = (actionName: string, packageName?: string) => colors.dim(`${packageName ? packageName + '/' : ''}`) + colors.blue(actionName) +const pn = (actionName: string, packageName?: string) => + colors.dim(`${packageName ? packageName + '/' : ''}`) + + colors.blue(actionName) /** * Render a date; if it is from today, show just the time @@ -211,9 +236,11 @@ const pn = (actionName: string, packageName?: string) => colors.dim(`${packageNa const prettyDate = (millis: number): string => { const date = new Date(millis) const now = new Date() - if (date.getUTCFullYear() === now.getUTCFullYear() && - date.getUTCMonth() === now.getUTCMonth() && - date.getUTCDate() === now.getUTCDate()) { + if ( + date.getUTCFullYear() === now.getUTCFullYear() && + date.getUTCMonth() === now.getUTCMonth() && + date.getUTCDate() === now.getUTCDate() + ) { return date.toLocaleTimeString() } else { return date.toLocaleString() @@ -229,17 +256,45 @@ const pp = _ => colors.dim(_ ? 'public' : 'private') // pretty publish const pk = _ => colors.green(_.find(({ key }) => key === 'exec').value) // pretty kind const rowify = { - compositions: ({ name, packageName, prettyKind }) => ({ name: pn(name, packageName), type: prettyKind }), - session: ({ sessionId, name, success, status, start }) => ({ sessionId, app: pn(name), start: colors.dim(prettyDate(start)), status: status === 'pending' ? colors.yellow(status) : success ? colors.green(status) : colors.red(status) }), + compositions: ({ name, packageName, prettyKind }) => ({ + name: pn(name, packageName), + type: prettyKind + }), + session: ({ sessionId, name, success, status, start }) => ({ + sessionId, + app: pn(name), + start: colors.dim(prettyDate(start)), + status: + status === 'pending' + ? colors.yellow(status) + : success + ? colors.green(status) + : colors.red(status) + }), activations: ({ activationId, name }) => ({ activationId, name: pn(name) }), - actions: ({ name, packageName, publish, annotations, version }) => ({ name: pn(name, packageName), 'published?': pp(publish), kind: pk(annotations), version: colors.dim(version) }), - triggers: ({ name, publish }) => ({ name: pn(name), 'published?': pp(publish) }), - packages: ({ name, publish, binding }) => ({ name: pn(name), 'published?': pp(publish), binding }), + actions: ({ name, packageName, publish, annotations, version }) => ({ + name: pn(name, packageName), + 'published?': pp(publish), + kind: pk(annotations), + version: colors.dim(version) + }), + triggers: ({ name, publish }) => ({ + name: pn(name), + 'published?': pp(publish) + }), + packages: ({ name, publish, binding }) => ({ + name: pn(name), + 'published?': pp(publish), + binding + }), plugins: ({ name, attributes }) => { - return { name: pn(name), version: colors.dim(attributes.find(({ key }) => key === 'version').value) } + return { + name: pn(name), + version: colors.dim(attributes.find(({ key }) => key === 'version').value) + } }, _default: ({ key, name, attributes }) => { - const row = { } + const row = {} row[key || 'name'] = pn(name) @@ -262,7 +317,13 @@ rowify['live'] = rowify.session // same formatter... * pretty printers (such as prettyDom and prettyjson) * */ -export const print = (msg, logger = log, stream = process.stdout, color = 'reset', ok = 'ok') => { +export const print = ( + msg, + logger = log, + stream = process.stdout, + color = 'reset', + ok = 'ok' +) => { debug('printing in this color: %s', color) if (verbose && typeof msg === 'string') { @@ -316,9 +377,11 @@ export const print = (msg, logger = log, stream = process.stdout, color = 'reset // then this is a log line const color = logline[1] === 'stdout' ? 'reset' : 'red' - logger(colors.dim(new Date(logline[0].trim()).toLocaleString()) + // timestamp - // + ' ' + colors.yellow(logline[1]) // stream (stdout, stderr) - colors[color](logline[2].replace(/^:/, ''))) // log message + logger( + colors.dim(new Date(logline[0].trim()).toLocaleString()) + // timestamp + // + ' ' + colors.yellow(logline[1]) // stream (stdout, stderr) + colors[color](logline[2].replace(/^:/, '')) + ) // log message } else { // otherwise, we're not sure what this is, // so do not attempt to render it in a special way @@ -330,34 +393,80 @@ export const print = (msg, logger = log, stream = process.stdout, color = 'reset msg.map(_ => print(_, logger, stream, color, ok)) } else { // strip off header row, as we'll make our own - msg = msg.filter(row => !row.header && (!row.outerCSS || !row.outerCSS.match(/header-cell/))) - const print = rowify[msg[0].prettyType || msg[0].type] || rowify._default - logger(require('columnify')(msg.map(print), { headingTransform: _ => colors.dim(_) })) + msg = msg.filter( + row => + !row.header && + (!row.outerCSS || !row.outerCSS.match(/header-cell/)) + ) + const print = + rowify[msg[0].prettyType || msg[0].type] || rowify._default + logger( + require('columnify')(msg.map(print), { + headingTransform: _ => colors.dim(_) + }) + ) } } catch (err) { error(err) } } - } else if (msg.verb && msg.name && (msg.verb === 'create' || msg.verb === 'update')) { + } else if ( + msg.verb && + msg.name && + (msg.verb === 'create' || msg.verb === 'update') + ) { // msg is an entity, that has just been created or updated debug('printing create or update') - const isWebExported = msg.annotations && msg.annotations.find(({ key }) => key === 'web-export') + const isWebExported = + msg.annotations && + msg.annotations.find(({ key }) => key === 'web-export') if (isWebExported) { - const contentType = (msg.annotations && msg.annotations.find(({ key }) => key === 'content-type-extension')) || { value: 'json' } - const https = msg.apiHost.startsWith('https://') || msg.apiHost.startsWith('http://') ? '' - : msg.apiHost === 'localhost' ? 'http://' : 'https://' - const urlText = `${https}${msg.apiHost}/api/v1/web/${msg.namespace}/${!msg.packageName ? 'default/' : ''}${msg.name}.${contentType.value}` + const contentType = (msg.annotations && + msg.annotations.find( + ({ key }) => key === 'content-type-extension' + )) || { value: 'json' } + const https = + msg.apiHost.startsWith('https://') || + msg.apiHost.startsWith('http://') + ? '' + : msg.apiHost === 'localhost' + ? 'http://' + : 'https://' + const urlText = `${https}${msg.apiHost}/api/v1/web/${ + msg.namespace + }/${!msg.packageName ? 'default/' : ''}${msg.name}.${ + contentType.value + }` logger(colors.blue(urlText)) } - logger(colors.green(`${ok}:`) + ` updated ${msg.type.replace(/s$/, '')} ${msg.name}`) + logger( + colors.green(`${ok}:`) + + ` updated ${msg.type.replace(/s$/, '')} ${msg.name}` + ) } else if (msg.verb === 'delete') { debug('printing delete') - logger(colors.green(`${ok}:`) + ` deleted ${msg.type.replace(/s$/, '')} ${msg.name}`) - } else if (msg.verb === 'async' && msg.activationId /* && msg.response */) { + logger( + colors.green(`${ok}:`) + + ` deleted ${msg.type.replace(/s$/, '')} ${msg.name}` + ) + } else if ( + msg.verb === 'async' && + msg.activationId /* && msg.response */ + ) { // The returned msgs of action and app are different - msg.type === 'activations' ? logger(colors.green(`${ok}:`) + ` invoked ${msg.entity.name} with id ${msg.activationId}`) - : logger(colors.green(`${ok}:`) + ` invoked ${msg.name} with id ${msg.activationId}`) - } else if (msg.verb === 'get' && msg.activationId /* && msg.response */) { + msg.type === 'activations' + ? logger( + colors.green(`${ok}:`) + + ` invoked ${msg.entity.name} with id ${msg.activationId}` + ) + : logger( + colors.green(`${ok}:`) + + ` invoked ${msg.name} with id ${msg.activationId}` + ) + } else if ( + msg.verb === 'get' && + msg.activationId /* && msg.response */ + ) { // msg is an entity representing an invocation // commenting out this line diverges us from bx wsk output, but we're ok with that: // logger(colors.green(`${ok}:`) + ` got activation ${msg.activationId}`) diff --git a/packages/app/src/main/headless.ts b/packages/app/src/main/headless.ts index 38aec39d63c..5c5e143daa6 100644 --- a/packages/app/src/main/headless.ts +++ b/packages/app/src/main/headless.ts @@ -94,7 +94,9 @@ const success = quit => async out => { debug('graphical shell is open') } } -const failure = (quit, execOptions?: ExecOptions) => async (err: CodedError) => { +const failure = (quit, execOptions?: ExecOptions) => async ( + err: CodedError +) => { if (execOptions && execOptions.rethrowErrors) { throw err } @@ -129,11 +131,14 @@ const failure = (quit, execOptions?: ExecOptions) => async (err: CodedError) => error(colors.red(msg)) } } else { - completion = print(msg, error, process.stderr, 'red', 'error') || Promise.resolve() + completion = + print(msg, error, process.stderr, 'red', 'error') || Promise.resolve() } } } else { - error(`No credentials found. Consider trying again with "kui help" command.`) + error( + `No credentials found. Consider trying again with "kui help" command.` + ) } return completion.then(() => { @@ -163,7 +168,11 @@ const insufficientArgs = (argv: string[]) => argv.length === 0 * */ let electronCreateWindowFn -export const createWindow = (argv: string[], subwindowPlease: boolean, subwindowPrefs: ISubwindowPrefs) => { +export const createWindow = ( + argv: string[], + subwindowPlease: boolean, + subwindowPrefs: ISubwindowPrefs +) => { try { graphicalShellIsOpen = true setGraphicalShellIsOpen() @@ -186,8 +195,10 @@ export const createWindow = (argv: string[], subwindowPlease: boolean, subwindow const initCommandContext = async (commandContext: string) => { if (commandContext) { try { - debug('setting command context', commandContext); - (await import('../core/command-tree')).setDefaultCommandContext(JSON.parse(commandContext.substring(commandContext.indexOf('=') + 1))) + debug('setting command context', commandContext) + ;(await import('../core/command-tree')).setDefaultCommandContext( + JSON.parse(commandContext.substring(commandContext.indexOf('=') + 1)) + ) } catch (err) { debug('Error initializing command context', err) } @@ -198,7 +209,12 @@ const initCommandContext = async (commandContext: string) => { * Initialize headless mode * */ -export const main = async (app, mainFunctions, rawArgv = process.argv, execOptions?: ExecOptions) => { +export const main = async ( + app, + mainFunctions, + rawArgv = process.argv, + execOptions?: ExecOptions +) => { debug('main') const ourCommandContext = rawArgv.find(_ => !!_.match(commandContextPattern)) @@ -207,7 +223,19 @@ export const main = async (app, mainFunctions, rawArgv = process.argv, execOptio commandContext = ourCommandContext } - const argv = rawArgv.slice(argStart).filter(arg => !arg.match(commandContextPattern) && arg !== '--kui-headless' && arg !== '-v' && arg !== '--raw-output' && arg !== '--no-color' && arg !== '--no-colors' && arg !== '--color=always' && arg !== '--ui') + const argv = rawArgv + .slice(argStart) + .filter( + arg => + !arg.match(commandContextPattern) && + arg !== '--kui-headless' && + arg !== '-v' && + arg !== '--raw-output' && + arg !== '--no-color' && + arg !== '--no-colors' && + arg !== '--color=always' && + arg !== '--ui' + ) debug('argv', argv) const { quit } = app @@ -222,17 +250,23 @@ export const main = async (app, mainFunctions, rawArgv = process.argv, execOptio * Evaluate the given command * */ - const evaluate = (cmd: string) => Promise.resolve(repl.exec(cmd, execOptions)) - .then(success(quit)) - - console.log = function () { - if (arguments[0] !== undefined && - (!arguments[0].indexOf || (arguments[0].indexOf('::') < 0 && arguments[0].indexOf('Resolving') < 0 && - arguments[0].indexOf('using implicit context') < 0 && - arguments[0].indexOf('Using timeout') < 0 && - arguments[0].indexOf('Updates') < 0 && - arguments[0].indexOf("Couldn't set selectedTextBackgroundColor") < 0 && - arguments[0].indexOf('Unresolved') < 0 && arguments[0].indexOf('Processing catch-alls') < 0))) { + const evaluate = (cmd: string) => + Promise.resolve(repl.exec(cmd, execOptions)).then(success(quit)) + + console.log = function() { + if ( + arguments[0] !== undefined && + (!arguments[0].indexOf || + (arguments[0].indexOf('::') < 0 && + arguments[0].indexOf('Resolving') < 0 && + arguments[0].indexOf('using implicit context') < 0 && + arguments[0].indexOf('Using timeout') < 0 && + arguments[0].indexOf('Updates') < 0 && + arguments[0].indexOf("Couldn't set selectedTextBackgroundColor") < + 0 && + arguments[0].indexOf('Unresolved') < 0 && + arguments[0].indexOf('Processing catch-alls') < 0)) + ) { log.apply(undefined, arguments) } } @@ -243,7 +277,7 @@ export const main = async (app, mainFunctions, rawArgv = process.argv, execOptio trace() console.error = tmp } - console.error = function () { + console.error = function() { if (!noAuth && typeof arguments[0] === 'string') { const args = Object.keys(arguments).map(key => { if (typeof arguments[key] === 'string') { @@ -258,11 +292,13 @@ export const main = async (app, mainFunctions, rawArgv = process.argv, execOptio } try { - if (!process.env.TRAVIS_JOB_ID && - !process.env.RUNNING_SHELL_TEST && - !process.env.CLOUD_SHELL_GO && - !process.env.KUI_REPL_MODE && - !process.env.KUI_DEV) { + if ( + !process.env.TRAVIS_JOB_ID && + !process.env.RUNNING_SHELL_TEST && + !process.env.CLOUD_SHELL_GO && + !process.env.KUI_REPL_MODE && + !process.env.KUI_DEV + ) { const { fetch, watch } = await import('../webapp/util/fetch-ui') const { userDataDir } = await import('../core/userdata') const stagingArea = userDataDir() @@ -277,37 +313,42 @@ export const main = async (app, mainFunctions, rawArgv = process.argv, execOptio /** main work starts here */ debug('bootstrap') - return pluginsInit(/* { app } */).then(async () => { - debug('plugins initialized') + return pluginsInit(/* { app } */) + .then(async () => { + debug('plugins initialized') - await initCommandContext(commandContext) + await initCommandContext(commandContext) - const maybeRetry = (err: Error) => { - // nothing, yet - return failure(quit, execOptions)(err) - } + const maybeRetry = (err: Error) => { + // nothing, yet + return failure(quit, execOptions)(err) + } - debug('invoking plugin preloader') - await preload() - debug('invoking plugin preloader... done') + debug('invoking plugin preloader') + await preload() + debug('invoking plugin preloader... done') - if (insufficientArgs(argv)) { - debug('insufficient args, invoking help command') - return evaluate('help') - } + if (insufficientArgs(argv)) { + debug('insufficient args, invoking help command') + return evaluate('help') + } - // - // execute a single command from the CLI - // - const cmd = argv.map(_ => _.match(/\s+/) ? `"${_}"` : _).join(' ').trim() - if (cmd && cmd.length > 0) { - debug('about to execute command') - return evaluate(cmd).catch(maybeRetry) - } else { - debug('exiting, no command') - if (!process.env.KUI_REPL_MODE) { - process.exit(0) + // + // execute a single command from the CLI + // + const cmd = argv + .map(_ => (_.match(/\s+/) ? `"${_}"` : _)) + .join(' ') + .trim() + if (cmd && cmd.length > 0) { + debug('about to execute command') + return evaluate(cmd).catch(maybeRetry) + } else { + debug('exiting, no command') + if (!process.env.KUI_REPL_MODE) { + process.exit(0) + } } - } - }).catch(failure(quit, execOptions)) + }) + .catch(failure(quit, execOptions)) } diff --git a/packages/app/src/main/main.ts b/packages/app/src/main/main.ts index 6e8069ecf04..4fe0dc5ecc5 100644 --- a/packages/app/src/main/main.ts +++ b/packages/app/src/main/main.ts @@ -25,7 +25,11 @@ debug('loading') * This is the main entry point to kui * */ -export const main = (argv: string[], env = process.env, execOptions?: ExecOptions) => { +export const main = ( + argv: string[], + env = process.env, + execOptions?: ExecOptions +) => { const forceUI = !!argv.find(arg => arg === '--ui') || !!env.KUI_POPUP const isShell = !!argv.find(arg => arg === 'shell') const kuiShell = forceUI || isShell @@ -34,14 +38,19 @@ export const main = (argv: string[], env = process.env, execOptions?: ExecOption if (!isRunningHeadless) { // then spawn the electron graphics debug('shortcut to graphics') - const { argv: strippedArgv, subwindowPlease, subwindowPrefs } = getCommand(argv) - initElectron(strippedArgv, + const { argv: strippedArgv, subwindowPlease, subwindowPrefs } = getCommand( + argv + ) + initElectron( + strippedArgv, { isRunningHeadless, forceUI }, !!(env.subwindowPlease || subwindowPlease), env.subwindowPrefs ? typeof env.subwindowPrefs === 'string' - ? JSON.parse(env.subwindowPrefs) : env.subwindowPrefs - : subwindowPrefs) + ? JSON.parse(env.subwindowPrefs) + : env.subwindowPrefs + : subwindowPrefs + ) } else { // otherwise, don't spawn the graphics; stay in headless mode const result = initHeadless(argv, false, isRunningHeadless, execOptions) diff --git a/packages/app/src/main/menu.ts b/packages/app/src/main/menu.ts index 578a25e57e6..0a9bb26ff0e 100644 --- a/packages/app/src/main/menu.ts +++ b/packages/app/src/main/menu.ts @@ -28,16 +28,21 @@ const { productName, gettingStarted } = theme */ const tellRendererToExecute = async (command: string, exec = 'qexec') => { const { webContents } = await import('electron') - const focusedWindow = webContents.getFocusedWebContents() || - webContents.getAllWebContents()[0] // see https://github.com/IBM/kui/issues/1717 + const focusedWindow = + webContents.getFocusedWebContents() || webContents.getAllWebContents()[0] // see https://github.com/IBM/kui/issues/1717 - const devTools = webContents.getAllWebContents().map(_ => _.devToolsWebContents).filter(x => x) + const devTools = webContents + .getAllWebContents() + .map(_ => _.devToolsWebContents) + .filter(x => x) const isFocusedWindowDevTools = devTools.find(_ => _.id === focusedWindow.id) if (isFocusedWindowDevTools) { // debug('closing dev tools') const owningWindow = webContents.getAllWebContents().find(_ => { - return _.devToolsWebContents && _.devToolsWebContents.id === focusedWindow.id + return ( + _.devToolsWebContents && _.devToolsWebContents.id === focusedWindow.id + ) }) if (owningWindow) { owningWindow.closeDevTools() @@ -63,16 +68,19 @@ const closeTab = () => tellRendererToExecute('tab close') export const install = (createWindow: () => void) => { if (!isDev) { const fileMenuItems: MenuItemConstructorOptions[] = [ - { label: 'New Window', + { + label: 'New Window', click: () => createWindow(), accelerator: 'CommandOrControl+N' }, - { label: 'New Tab', + { + label: 'New Tab', click: () => newTab(), accelerator: 'CommandOrControl+T' }, { type: 'separator' }, - { label: 'Close Tab', + { + label: 'Close Tab', click: closeTab, accelerator: 'CommandOrControl+W' }, @@ -108,7 +116,11 @@ export const install = (createWindow: () => void) => { { type: 'separator' }, { label: 'Report Issue...', - click () { require('electron').shell.openExternal('https://github.com/IBM/kui/issues/new') } + click() { + require('electron').shell.openExternal( + 'https://github.com/IBM/kui/issues/new' + ) + } } ] @@ -137,7 +149,11 @@ export const install = (createWindow: () => void) => { submenu: [ themeMenuItem, { type: 'separator' }, - { accelerator: process.platform === 'darwin' ? 'Meta+R' : 'Shift+CmdOrCtrl+R', role: 'reload' }, + { + accelerator: + process.platform === 'darwin' ? 'Meta+R' : 'Shift+CmdOrCtrl+R', + role: 'reload' + }, // { role: 'forcereload' }, { role: 'toggledevtools' }, { type: 'separator' }, @@ -151,10 +167,7 @@ export const install = (createWindow: () => void) => { { role: 'window', - submenu: [ - { role: 'minimize' }, - { role: 'close' } - ] + submenu: [{ role: 'minimize' }, { role: 'close' }] }, { @@ -163,7 +176,8 @@ export const install = (createWindow: () => void) => { } ] - const about: MenuItemConstructorOptions = { label: `About ${productName}`, + const about: MenuItemConstructorOptions = { + label: `About ${productName}`, click: () => { try { tellRendererToExecute('about', 'pexec') diff --git a/packages/app/src/main/spawn-electron.ts b/packages/app/src/main/spawn-electron.ts index f1b53b6260c..b4819d75016 100644 --- a/packages/app/src/main/spawn-electron.ts +++ b/packages/app/src/main/spawn-electron.ts @@ -38,7 +38,12 @@ let nWindows = 0 let electron let app -function createWindow (noHeadless = false, executeThisArgvPlease?: string[], subwindowPlease?: boolean, subwindowPrefs?: ISubwindowPrefs) { +function createWindow( + noHeadless = false, + executeThisArgvPlease?: string[], + subwindowPlease?: boolean, + subwindowPrefs?: ISubwindowPrefs +) { debug('createWindow', executeThisArgvPlease) if (subwindowPrefs && subwindowPrefs.bringYourOwnWindow) { @@ -69,10 +74,16 @@ function createWindow (noHeadless = false, executeThisArgvPlease?: string[], sub debug('we need to spawn electron', subwindowPlease, subwindowPrefs) delete subwindowPrefs.synonymFor // circular JSON // eslint-disable-next-line @typescript-eslint/no-use-before-define - promise = initElectron(['--'].concat(executeThisArgvPlease), {}, subwindowPlease, subwindowPrefs) + promise = initElectron( + ['--'].concat(executeThisArgvPlease), + {}, + subwindowPlease, + subwindowPrefs + ) .then(async () => { electron = await import('electron') - }).catch((err: Error) => { + }) + .catch((err: Error) => { // headless debug('not ready for graphics', err) }) @@ -90,16 +101,18 @@ function createWindow (noHeadless = false, executeThisArgvPlease?: string[], sub } const Electron = await import('electron') - const opts: Electron.BrowserWindowConstructorOptions = Object.assign({ - width, - height, - webPreferences: { - nodeIntegration: true // prior to electron 5, this was the default + const opts: Electron.BrowserWindowConstructorOptions = Object.assign( + { + width, + height, + webPreferences: { + nodeIntegration: true // prior to electron 5, this was the default + }, + show: false, // do not remove without consulting the ready-to-show comment below + titleBarStyle: process.platform === 'darwin' ? 'hiddenInset' : 'default' }, - show: false, // do not remove without consulting the ready-to-show comment below - titleBarStyle: process.platform === 'darwin' ? 'hiddenInset' : 'default' - }, - subwindowPrefs && subwindowPrefs.position) + subwindowPrefs && subwindowPrefs.position + ) if (subwindowPlease) { // this tells electron to size content to the given width and height, @@ -136,14 +149,24 @@ function createWindow (noHeadless = false, executeThisArgvPlease?: string[], sub // remember certain classes of windows, so we don't have multiple // open; e.g. one for docs, one for videos... const fixedWindows = {} - const openFixedWindow = (opts) => { - const { type, event, url, size = mainWindow.getBounds(), position = mainWindow.getBounds() } = opts + const openFixedWindow = opts => { + const { + type, + event, + url, + size = mainWindow.getBounds(), + position = mainWindow.getBounds() + } = opts const existing = fixedWindows[type] || {} const { window: existingWindow, url: currentURL } = existing if (!existingWindow || existingWindow.isDestroyed()) { - const window = new Electron.BrowserWindow({ width: size.width, height: size.height, frame: true }) + const window = new Electron.BrowserWindow({ + width: size.width, + height: size.height, + frame: true + }) fixedWindows[type] = { window, url } window.setPosition(position.x + 62, position.y + 62) // window.on('closed', () => { docsWindow = null }) @@ -165,7 +188,8 @@ function createWindow (noHeadless = false, executeThisArgvPlease?: string[], sub // BrowserWindow opts doesn't stick; and... this has to be on // did-finish-load, for some reason... at least these are true // statements for electron 1.6.x - const productName = (await import('@kui-shell/settings/config.json')).theme.productName + const productName = (await import('@kui-shell/settings/config.json')) + .theme.productName if (mainWindow) { mainWindow.setTitle(productName) @@ -173,25 +197,35 @@ function createWindow (noHeadless = false, executeThisArgvPlease?: string[], sub if (mainWindow) { try { - const { switchToPersistedThemeChoice } = await import('@kui-shell/plugin-core-support/lib/cmds/theme') + const { switchToPersistedThemeChoice } = await import( + '@kui-shell/plugin-core-support/lib/cmds/theme' + ) switchToPersistedThemeChoice(mainWindow.webContents) } catch (err) { debug('theme support not found', err) const { theme, env } = await import('@kui-shell/core/core/settings') const { readFile } = await import('fs') const { join, dirname } = await import('path') - const themeModel = theme.themes.find(_ => _.name === theme.defaultTheme) - const filepath = join(dirname(require.resolve('@kui-shell/settings/package.json')), + const themeModel = theme.themes.find( + _ => _.name === theme.defaultTheme + ) + const filepath = join( + dirname(require.resolve('@kui-shell/settings/package.json')), env.cssHome, - themeModel.css) + themeModel.css + ) debug('default theme filepath', filepath) readFile(filepath, (err, data) => { if (err) { throw err } else { mainWindow.webContents.insertCSS(data.toString()) - mainWindow.webContents.executeJavaScript(`document.body.setAttribute('kui-theme', '${themeModel.name}')`) - mainWindow.webContents.executeJavaScript(`document.body.setAttribute('kui-theme-style', '${themeModel.style}')`) + mainWindow.webContents.executeJavaScript( + `document.body.setAttribute('kui-theme', '${themeModel.name}')` + ) + mainWindow.webContents.executeJavaScript( + `document.body.setAttribute('kui-theme-style', '${themeModel.style}')` + ) } }) } @@ -199,19 +233,35 @@ function createWindow (noHeadless = false, executeThisArgvPlease?: string[], sub }) /** jump in and manage the way popups create new windows */ - mainWindow.webContents.on('new-window', (event, url: string, frameName: string, disposition: string, options /*, additionalFeatures */) => { + mainWindow.webContents.on('new-window', ( + event, + url: string, + frameName: string, + disposition: string, + options /*, additionalFeatures */ + ) => { if (url.startsWith('https://youtu.be')) { // special handling of youtube links - openFixedWindow({ type: 'videos', event, url, options, size: { width: 800, height: 600 } }) + openFixedWindow({ + type: 'videos', + event, + url, + options, + size: { width: 800, height: 600 } + }) } else { event.preventDefault() require('open')(url) } }) - let commandContext = executeThisArgvPlease && executeThisArgvPlease.find(_ => /--command-context/.test(_)) + let commandContext = + executeThisArgvPlease && + executeThisArgvPlease.find(_ => /--command-context/.test(_)) if (commandContext) { - executeThisArgvPlease = executeThisArgvPlease.filter(_ => !_.match(/--command-context/)) + executeThisArgvPlease = executeThisArgvPlease.filter( + _ => !_.match(/--command-context/) + ) // strip off the leading --, to help with URL window.location.search commandContext = commandContext.replace(/^--/, '') @@ -227,7 +277,9 @@ function createWindow (noHeadless = false, executeThisArgvPlease?: string[], sub } // and load the index.html of the app. - const root = require('path').dirname(require.resolve('@kui-shell/settings/package.json')) + const root = require('path').dirname( + require.resolve('@kui-shell/settings/package.json') + ) const urlSpec = { pathname: require('path').join(root, 'index.html'), protocol: 'file:', @@ -244,10 +296,10 @@ function createWindow (noHeadless = false, executeThisArgvPlease?: string[], sub // mainWindow.webContents.openDevTools() // Emitted when the window is closed. - mainWindow.once('closed', function () { - // Dereference the window object, usually you would store windows - // in an array if your app supports multi windows, this is the time - // when you should delete the corresponding element. + mainWindow.once('closed', function() { + // Dereference the window object, usually you would store windows + // in an array if your app supports multi windows, this is the time + // when you should delete the corresponding element. nWindows-- }) @@ -266,35 +318,50 @@ function createWindow (noHeadless = false, executeThisArgvPlease?: string[], sub // plugin has to pollute main.js // debug('ipc registration') - ipcMain.on('capture-page-to-clipboard', (event, contentsId: string, rect) => { - try { - const { clipboard, nativeImage, webContents } = electron - webContents.fromId(contentsId).capturePage(rect, image => { - try { - const buf = image.toPNG() - clipboard.writeImage(nativeImage.createFromBuffer(buf)) - event.sender.send('capture-page-to-clipboard-done', buf) - } catch (err) { - console.log(err) - event.sender.send('capture-page-to-clipboard-done') - } - }) - } catch (err) { - console.log(err) - event.sender.send('capture-page-to-clipboard-done') + ipcMain.on( + 'capture-page-to-clipboard', + (event, contentsId: string, rect) => { + try { + const { clipboard, nativeImage, webContents } = electron + webContents.fromId(contentsId).capturePage(rect, image => { + try { + const buf = image.toPNG() + clipboard.writeImage(nativeImage.createFromBuffer(buf)) + event.sender.send('capture-page-to-clipboard-done', buf) + } catch (err) { + console.log(err) + event.sender.send('capture-page-to-clipboard-done') + } + }) + } catch (err) { + console.log(err) + event.sender.send('capture-page-to-clipboard-done') + } } - }) + ) // end of screenshot logic ipcMain.on('synchronous-message', (event, arg: string) => { const message = JSON.parse(arg) switch (message.operation) { - case 'quit': app.quit(); break - case 'open-graphical-shell': createWindow(true); break - case 'enlarge-window': mainWindow.setContentSize(1400, 1050, true); break - case 'reduce-window': mainWindow.setContentSize(1024, 768, true); break - case 'maximize-window': mainWindow.maximize(); break - case 'unmaximize-window': mainWindow.unmaximize(); break + case 'quit': + app.quit() + break + case 'open-graphical-shell': + createWindow(true) + break + case 'enlarge-window': + mainWindow.setContentSize(1400, 1050, true) + break + case 'reduce-window': + mainWindow.setContentSize(1024, 768, true) + break + case 'maximize-window': + mainWindow.maximize() + break + case 'unmaximize-window': + mainWindow.unmaximize() + break } event.returnValue = 'ok' }) @@ -310,16 +377,22 @@ function createWindow (noHeadless = false, executeThisArgvPlease?: string[], sub const returnValue = await mod[message.main || 'main'](message.args) debug('invoke got returnValue', returnValue) - event.sender.send(channel, JSON.stringify({ - success: true, - returnValue - })) + event.sender.send( + channel, + JSON.stringify({ + success: true, + returnValue + }) + ) } catch (error) { debug('error in exec', error) - event.sender.send(channel, JSON.stringify({ - success: false, - error - })) + event.sender.send( + channel, + JSON.stringify({ + success: false, + error + }) + ) } }) @@ -342,21 +415,31 @@ export const getCommand = (argv: string[]): Command => { argv = dashDash === -1 ? argv.slice(1) : argv.slice(dashDash + 1) // re: the -psn bit, opening Kui from macOS Finder adds additional argv -psn; see: https://github.com/IBM/kui/issues/382 - argv = argv.filter(_ => _ !== '--ui' && _ !== '--no-color' && !_.match(/^-psn/)) + argv = argv.filter( + _ => _ !== '--ui' && _ !== '--no-color' && !_.match(/^-psn/) + ) // re: argv.length === 0, this should happen for double-click launches - const isShell = !process.env.KUI_POPUP && (argv.length === 0 || argv.find(_ => _ === 'shell') || (process.env.RUNNING_SHELL_TEST && !process.env.KUI_TEE_TO_FILE)) + const isShell = + !process.env.KUI_POPUP && + (argv.length === 0 || + argv.find(_ => _ === 'shell') || + (process.env.RUNNING_SHELL_TEST && !process.env.KUI_TEE_TO_FILE)) debug('isShell', argv, isShell) let subwindowPlease = true - let subwindowPrefs: ISubwindowPrefs = { fullscreen: true, width: windowDefaults.width, height: windowDefaults.height } + let subwindowPrefs: ISubwindowPrefs = { + fullscreen: true, + width: windowDefaults.width, + height: windowDefaults.height + } if (isShell) { // use a full window for 'shell' argv = ['shell'] subwindowPlease = false - subwindowPrefs = { } + subwindowPrefs = {} } else if (process.env.KUI_POPUP) { argv = JSON.parse(process.env.KUI_POPUP) } @@ -369,7 +452,12 @@ export const getCommand = (argv: string[]): Command => { * Bootstrap headless mode * */ -export async function initHeadless (argv: string[], force = false, isRunningHeadless = false, execOptions?: ExecOptions) { +export async function initHeadless( + argv: string[], + force = false, + isRunningHeadless = false, + execOptions?: ExecOptions +) { if (/* noHeadless !== true && */ force || isRunningHeadless) { debug('initHeadless') @@ -381,13 +469,27 @@ export async function initHeadless (argv: string[], force = false, isRunningHead // HEADLESS MODE // try { - return (await import('./headless')).main(app, { - createWindow: (executeThisArgvPlease: string[], subwindowPlease: boolean, subwindowPrefs: ISubwindowPrefs) => { - // craft a createWindow that has a first argument of true, which will indicate `noHeadless` - // because this will be called for cases where we want a headless -> GUI transition - return createWindow(true, executeThisArgvPlease, subwindowPlease, subwindowPrefs) - } - }, argv, execOptions) + return (await import('./headless')).main( + app, + { + createWindow: ( + executeThisArgvPlease: string[], + subwindowPlease: boolean, + subwindowPrefs: ISubwindowPrefs + ) => { + // craft a createWindow that has a first argument of true, which will indicate `noHeadless` + // because this will be called for cases where we want a headless -> GUI transition + return createWindow( + true, + executeThisArgvPlease, + subwindowPlease, + subwindowPrefs + ) + } + }, + argv, + execOptions + ) } catch (err) { // oof, something real bad happened console.error('Internal Error, please report this bug:') @@ -410,7 +512,12 @@ export async function initHeadless (argv: string[], force = false, isRunningHead * Spawn electron * */ -export async function initElectron (command: string[] = [], { isRunningHeadless = false, forceUI = false } = {}, subwindowPlease?: boolean, subwindowPrefs?: ISubwindowPrefs) { +export async function initElectron( + command: string[] = [], + { isRunningHeadless = false, forceUI = false } = {}, + subwindowPlease?: boolean, + subwindowPrefs?: ISubwindowPrefs +) { debug('initElectron', command, subwindowPlease, subwindowPrefs) let promise: Promise @@ -424,7 +531,8 @@ export async function initElectron (command: string[] = [], { isRunningHeadless const spawnGraphics = () => { debug('waiting for graphics') return app.graphics.wait().then(async graphics => { - const argv = command.slice(command.indexOf('--') + 1) + const argv = command + .slice(command.indexOf('--') + 1) .concat(forceUI ? ['--ui'] : []) debug('spawning graphics', graphics, argv) @@ -433,7 +541,9 @@ export async function initElectron (command: string[] = [], { isRunningHeadless const child = spawn(graphics, argv, { detached: !debug.enabled, env: Object.assign({}, process.env, { - KUI_HEADLESS: true, subwindowPlease, subwindowPrefs: JSON.stringify(subwindowPrefs) + KUI_HEADLESS: true, + subwindowPlease, + subwindowPrefs: JSON.stringify(subwindowPrefs) }) }) child.stdout.on('data', data => { @@ -538,12 +648,12 @@ export async function initElectron (command: string[] = [], { isRunningHeadless // is not enabled this allows you (as a developer) to // debug issues with spawning the subprocess by passing // DEBUG=* or DEBUG=main - const env = Object.assign({}, - process.env, - windowOptions) + const env = Object.assign({}, process.env, windowOptions) delete env.KUI_HEADLESS - const child = spawn(electron, args, { stdio: debug.enabled ? 'inherit' : 'ignore', - env }) + const child = spawn(electron, args, { + stdio: debug.enabled ? 'inherit' : 'ignore', + env + }) if (!debug.enabled) { // as with the "ignore stdio" comment immediately @@ -572,10 +682,16 @@ export async function initElectron (command: string[] = [], { isRunningHeadless // Someone tried to run a second instance, open a new window // to handle it const { argv, subwindowPlease, subwindowPrefs } = getCommand(commandLine) - debug('opening window for second instance', commandLine, subwindowPlease, subwindowPrefs) + debug( + 'opening window for second instance', + commandLine, + subwindowPlease, + subwindowPrefs + ) createWindow(true, argv, subwindowPlease, subwindowPrefs) }) - if (!app.requestSingleInstanceLock()) { // The primary instance of app failed to optain the lock, which means another instance of app is already running with the lock + if (!app.requestSingleInstanceLock()) { + // The primary instance of app failed to optain the lock, which means another instance of app is already running with the lock debug('exiting, since we are not the first instance') return app.exit(0) } @@ -586,7 +702,12 @@ export async function initElectron (command: string[] = [], { isRunningHeadless // Some APIs can only be used after this event occurs. app.once('ready', () => { debug('opening primary window', command) - createWindow(true, command.length > 0 && command, subwindowPlease, subwindowPrefs) + createWindow( + true, + command.length > 0 && command, + subwindowPlease, + subwindowPrefs + ) }) if (process.env.RUNNING_SHELL_TEST) { @@ -602,7 +723,7 @@ export async function initElectron (command: string[] = [], { isRunningHeadless } // Quit when all windows are closed. - app.on('window-all-closed', function () { + app.on('window-all-closed', function() { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q if (process.platform !== 'darwin' || isRunningHeadless) { @@ -613,7 +734,7 @@ export async function initElectron (command: string[] = [], { isRunningHeadless } }) - app.on('activate', function () { + app.on('activate', function() { // On OS X it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (nWindows === 0) { diff --git a/packages/app/src/main/store.ts b/packages/app/src/main/store.ts index 2eda5c9aaea..d7672ac0025 100644 --- a/packages/app/src/main/store.ts +++ b/packages/app/src/main/store.ts @@ -67,7 +67,9 @@ export default () => { debug('flush done') } catch (err) { if (err.code === 'ENOENT') { - debug('we decided not to initialize the store, but a plugin is trying to write to it') + debug( + 'we decided not to initialize the store, but a plugin is trying to write to it' + ) } else { console.error(err) } diff --git a/packages/app/src/main/tray.ts b/packages/app/src/main/tray.ts index 05a67326744..6fd56ef43cc 100644 --- a/packages/app/src/main/tray.ts +++ b/packages/app/src/main/tray.ts @@ -32,40 +32,65 @@ import { Quittable } from './main-models' */ export default ({ Tray, Menu }, app: Quittable, createWindow: Function) => { const screen = require('electron').screen - const screenSize = screen.getDisplayNearestPoint(screen.getCursorScreenPoint()).workArea + const screenSize = screen.getDisplayNearestPoint( + screen.getCursorScreenPoint() + ).workArea const dimensions = { width: 800, height: 600 } const template = [ { label: 'Visualize a Composition', - click: () => createWindow(true, 'app preview --select', true, { - title: 'App Visualization', - sidecarOnly: true, - theme: 'dark', - width: 1024, - height: 768 - }) + click: () => + createWindow(true, 'app preview --select', true, { + title: 'App Visualization', + sidecarOnly: true, + theme: 'dark', + width: 1024, + height: 768 + }) }, { type: 'separator' }, { label: 'Activity Timeline', - click: () => createWindow(true, 'loading activity timeline ...', true, Object.assign({ - title: 'Activity Timeline', - theme: 'dark', - position: { x: screenSize.x + (screenSize.width - dimensions.width - 100), - y: screenSize.y /* + screenSize.height - dimensions.height */ } - }, dimensions)) + click: () => + createWindow( + true, + 'loading activity timeline ...', + true, + Object.assign( + { + title: 'Activity Timeline', + theme: 'dark', + position: { + x: screenSize.x + (screenSize.width - dimensions.width - 100), + y: screenSize.y /* + screenSize.height - dimensions.height */ + } + }, + dimensions + ) + ) }, { label: 'Activity Grid', - click: () => createWindow(true, 'loading activity grid ...', true, Object.assign({ - title: 'Activity Grid', - theme: 'dark', - position: { x: screenSize.x + (screenSize.width - dimensions.width - 100), - y: screenSize.y + /* screenSize.height - */ dimensions.height } - }, dimensions)) + click: () => + createWindow( + true, + 'loading activity grid ...', + true, + Object.assign( + { + title: 'Activity Grid', + theme: 'dark', + position: { + x: screenSize.x + (screenSize.width - dimensions.width - 100), + y: screenSize.y + /* screenSize.height - */ dimensions.height + } + }, + dimensions + ) + ) }, { label: 'CLI', @@ -75,23 +100,39 @@ export default ({ Tray, Menu }, app: Quittable, createWindow: Function) => { { type: 'separator' }, { label: 'Run a Load Test', - click: () => createWindow(true, 'lt --numThreads 1 --numIters 10 -p key value', true, { - title: 'Load Test', - sidecarOnly: false, - partialExec: true, - width: dimensions.width, - height: 130 - /* position: { x: screenSize.x + (screenSize.width - 2 * dimensions.width - 100), + click: () => + createWindow( + true, + 'lt --numThreads 1 --numIters 10 -p key value', + true, + { + title: 'Load Test', + sidecarOnly: false, + partialExec: true, + width: dimensions.width, + height: 130 + /* position: { x: screenSize.x + (screenSize.width - 2 * dimensions.width - 100), y: screenSize.y + screenSize.height - dimensions.height } */ - }) + } + ) }, { label: 'Switch Namespace', - click: () => createWindow(true, 'auth list # click on a namespace to switch', true, Object.assign({ - title: 'Namespace Chooser', sidecarOnly: false - /* position: { x: screenSize.x + (screenSize.width - 2 * dimensions.width - 100), + click: () => + createWindow( + true, + 'auth list # click on a namespace to switch', + true, + Object.assign( + { + title: 'Namespace Chooser', + sidecarOnly: false + /* position: { x: screenSize.x + (screenSize.width - 2 * dimensions.width - 100), y: screenSize.y + screenSize.height - dimensions.height } */ - }, dimensions)) + }, + dimensions + ) + ) }, { label: 'Quit Kui', @@ -100,8 +141,10 @@ export default ({ Tray, Menu }, app: Quittable, createWindow: Function) => { ] const platform = require('os').platform() - const image = platform === 'win32' ? '../../content/icons/ico/kui.ico' - : '../../content/icons/png/kui.png' + const image = + platform === 'win32' + ? '../../content/icons/ico/kui.ico' + : '../../content/icons/png/kui.png' // tray.setToolTip('Common Kui tasks') diff --git a/packages/app/src/models/ReplResponse.ts b/packages/app/src/models/ReplResponse.ts index 4d84c306610..6e5c9c6e225 100644 --- a/packages/app/src/models/ReplResponse.ts +++ b/packages/app/src/models/ReplResponse.ts @@ -15,12 +15,15 @@ */ // eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface ResponseStructure { -} +export interface ResponseStructure {} export type IReplResponse = - void | - boolean | Promise | - number | Promise | - string | Promise | - ResponseStructure | Promise + | void + | boolean + | Promise + | number + | Promise + | string + | Promise + | ResponseStructure + | Promise diff --git a/packages/app/src/models/command.ts b/packages/app/src/models/command.ts index e57bae6c779..ef0a2fda7a0 100644 --- a/packages/app/src/models/command.ts +++ b/packages/app/src/models/command.ts @@ -157,7 +157,9 @@ export interface EvaluatorArgs extends CommandLine { export type CommandResponse = any // eslint-disable-line @typescript-eslint/no-explicit-any /** base command handler */ -export type CommandHandler = (args: EvaluatorArgs) => CommandResponse | Promise +export type CommandHandler = ( + args: EvaluatorArgs +) => CommandResponse | Promise /** * Evaluator @@ -205,16 +207,32 @@ export interface CommandHandlerWithEvents extends Evaluator { subtree: CommandBase route: string options: CommandOptions - // eslint-disable-next-line @typescript-eslint/no-explicit-any - success: (args: { tab: Tab; type: ExecType; command: string; isDrilldown: boolean; parsedOptions: { [ key: string ]: any } }) => void - error: (command: string, tab: Tab, type: ExecType, err: CodedError) => CodedError + success: (args: { + tab: Tab + type: ExecType + command: string + isDrilldown: boolean + // eslint-disable-next-line @typescript-eslint/no-explicit-any + parsedOptions: { [key: string]: any } + }) => void + error: ( + command: string, + tab: Tab, + type: ExecType, + err: CodedError + ) => CodedError } -export function isCommandHandlerWithEvents (evaluator: Evaluator): evaluator is CommandHandlerWithEvents { +export function isCommandHandlerWithEvents( + evaluator: Evaluator +): evaluator is CommandHandlerWithEvents { const handler = evaluator as CommandHandlerWithEvents return handler.options !== undefined } -export type CommandTreeResolution = boolean | CommandHandlerWithEvents | CodedError +export type CommandTreeResolution = + | boolean + | CommandHandlerWithEvents + | CodedError export type YargsParserFlags = { [key in 'boolean' | 'alias']: string[] } @@ -230,8 +248,17 @@ export interface CatchAllHandler extends CommandBase { export interface CommandRegistrar { find: (route: string, noOverride?: boolean) => Promise - listen: (route: string, handler: CommandHandler, options: CommandOptions) => Command - synonym: (route: string, handler: CommandHandler, master: Command, options: CommandOptions) => void + listen: ( + route: string, + handler: CommandHandler, + options: CommandOptions + ) => Command + synonym: ( + route: string, + handler: CommandHandler, + master: Command, + options: CommandOptions + ) => void subtree: (route: string, options: CommandOptions) => Command subtreeSynonym: (route: string, masterTree: Command) => void } diff --git a/packages/app/src/models/entity.ts b/packages/app/src/models/entity.ts index 51870936dde..e59b8cbcfe9 100644 --- a/packages/app/src/models/entity.ts +++ b/packages/app/src/models/entity.ts @@ -47,13 +47,19 @@ export interface MessageBearingEntity { message: string } -export function isMessageBearingEntity (entity: Entity): entity is MessageBearingEntity { +export function isMessageBearingEntity( + entity: Entity +): entity is MessageBearingEntity { return (entity as MessageBearingEntity).message !== undefined } -export function isEntitySpec (entity: Entity): entity is EntitySpec { +export function isEntitySpec(entity: Entity): entity is EntitySpec { const spec = entity as EntitySpec - return spec.verb !== undefined || spec.type !== undefined || spec.name !== undefined + return ( + spec.verb !== undefined || + spec.type !== undefined || + spec.name !== undefined + ) } /** @@ -72,19 +78,26 @@ export interface MetadataBearing { displayName?: string } } -export function isMetadataBearing (spec: EntitySpec): spec is MetadataBearing { +export function isMetadataBearing(spec: EntitySpec): spec is MetadataBearing { const meta = spec as MetadataBearing - return meta !== undefined && + return ( + meta !== undefined && meta.kind !== undefined && meta.metadata !== undefined && meta.metadata.name !== undefined + ) } /** * A mostly scalar entity * */ -export type SimpleEntity = Error | string | number | HTMLElement | MessageBearingEntity +export type SimpleEntity = + | Error + | string + | number + | HTMLElement + | MessageBearingEntity /** * A potentially more complex entity with a "spec" @@ -92,5 +105,10 @@ export type SimpleEntity = Error | string | number | HTMLElement | MessageBearin * Note: Array will go away once we have fully typed tables * */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export type Entity = SimpleEntity | EntitySpec | CustomSpec | boolean | any[] | Table +export type Entity = + | SimpleEntity + | EntitySpec + | CustomSpec + | boolean + | any[] // eslint-disable-line @typescript-eslint/no-explicit-any + | Table diff --git a/packages/app/src/models/errors.ts b/packages/app/src/models/errors.ts index 63d04b28f03..3c1a8054f97 100644 --- a/packages/app/src/models/errors.ts +++ b/packages/app/src/models/errors.ts @@ -21,7 +21,7 @@ export interface CodedError extends Error { statusCode?: number } -export function isCodedError (err: Error): err is CodedError { +export function isCodedError(err: Error): err is CodedError { const error = err as CodedError return !!(UsageError.isUsageError(err) || error.code || error.statusCode) } diff --git a/packages/app/src/models/execOptions.ts b/packages/app/src/models/execOptions.ts index 06a99ba7ab2..e407a73d7a0 100644 --- a/packages/app/src/models/execOptions.ts +++ b/packages/app/src/models/execOptions.ts @@ -76,7 +76,7 @@ export interface ExecOptions { export class DefaultExecOptions implements ExecOptions { readonly type: ExecType - constructor (type: ExecType = ExecType.TopLevel) { + constructor(type: ExecType = ExecType.TopLevel) { this.type = type } } @@ -84,7 +84,7 @@ export class DefaultExecOptions implements ExecOptions { export class DefaultExecOptionsForTab extends DefaultExecOptions { readonly tab: Tab - constructor (tab: Tab) { + constructor(tab: Tab) { super() this.tab = tab } @@ -92,5 +92,5 @@ export class DefaultExecOptionsForTab extends DefaultExecOptions { /** command line options */ export interface ParsedOptions { - [ key: string ]: any // eslint-disable-line @typescript-eslint/no-explicit-any + [key: string]: any // eslint-disable-line @typescript-eslint/no-explicit-any } diff --git a/packages/app/src/models/history.ts b/packages/app/src/models/history.ts index b87cd271281..91d9ed05d98 100644 --- a/packages/app/src/models/history.ts +++ b/packages/app/src/models/history.ts @@ -27,7 +27,8 @@ export interface HistoryLine { raw?: string } -export let lines: HistoryLine[] = (typeof window !== 'undefined' && JSON.parse(store().getItem(key))) || [] +export let lines: HistoryLine[] = + (typeof window !== 'undefined' && JSON.parse(store().getItem(key))) || [] let cursor = lines.length // pointer to historic line export const getCursor = (): number => cursor @@ -56,7 +57,10 @@ export const wipe = () => { /** add a line of repl history */ export const add = (line: HistoryLine) => { - if (lines.length === 0 || JSON.stringify(lines[lines.length - 1]) !== JSON.stringify(line)) { + if ( + lines.length === 0 || + JSON.stringify(lines[lines.length - 1]) !== JSON.stringify(line) + ) { // don't add sequential duplicates lines.push(line) store().setItem(key, JSON.stringify(lines)) @@ -75,13 +79,20 @@ export const update = (cursor: number, updateFn) => { /** return the given line of history */ export const line = (idx: number): HistoryLine => lines[idx] -export const lineByIncr = (incr: number): HistoryLine => line(guardedChange(incr)) +export const lineByIncr = (incr: number): HistoryLine => + line(guardedChange(incr)) /** go back/forward one entry */ export const previous = (): HistoryLine => lineByIncr(-1) export const next = (): HistoryLine => lineByIncr(+1) -export const first = (): HistoryLine => { cursor = 0; return line(cursor) } -export const last = (): HistoryLine => { cursor = lines.length - 1; return line(cursor) } +export const first = (): HistoryLine => { + cursor = 0 + return line(cursor) +} +export const last = (): HistoryLine => { + cursor = lines.length - 1 + return line(cursor) +} type FilterFunction = (line: HistoryLine) => boolean @@ -93,7 +104,10 @@ type FilterFunction = (line: HistoryLine) => boolean * search backwards from the given index * */ -export const findIndex = (filter: string | RegExp | FilterFunction, startIdx?: number): number => { +export const findIndex = ( + filter: string | RegExp | FilterFunction, + startIdx?: number +): number => { let filterFn: FilterFunction if (typeof filter === 'string') { @@ -105,7 +119,12 @@ export const findIndex = (filter: string | RegExp | FilterFunction, startIdx?: n filterFn = filter } - for (let idx = startIdx !== undefined && startIdx >= 0 ? startIdx : lines.length - 1; idx >= 0; idx--) { + for ( + let idx = + startIdx !== undefined && startIdx >= 0 ? startIdx : lines.length - 1; + idx >= 0; + idx-- + ) { if (filterFn(lines[idx])) { return idx } diff --git a/packages/app/src/models/plugin.ts b/packages/app/src/models/plugin.ts index 02351345960..46e4495e4d5 100644 --- a/packages/app/src/models/plugin.ts +++ b/packages/app/src/models/plugin.ts @@ -20,9 +20,14 @@ import { CommandRegistrar } from './command' // eslint-disable-next-line @typescript-eslint/no-explicit-any export type KuiPlugin = any -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export type PluginRegistration = (commandTree: CommandRegistrar, options?) => Promise +export type PluginRegistration = ( + commandTree: CommandRegistrar, + options? +) => Promise // eslint-disable-line @typescript-eslint/no-explicit-any -export type PreloadRegistration = (commandTree: CommandRegistrar, options?) => Promise +export type PreloadRegistration = ( + commandTree: CommandRegistrar, + options? +) => Promise export type CapabilityRegistration = () => Promise diff --git a/packages/app/src/models/sessionStore.ts b/packages/app/src/models/sessionStore.ts index c712f0e8362..a9c182432d6 100644 --- a/packages/app/src/models/sessionStore.ts +++ b/packages/app/src/models/sessionStore.ts @@ -1,4 +1,3 @@ - /* * Copyright 2019 IBM Corporation * @@ -23,8 +22,9 @@ interface SessionStorage { } /** - * This shim allows clients to define a sessionStorage scheme, if they - * cannot provide window.sessionStorage. - * - */ -export default (): SessionStorage => window['kuiSessionStorage'] || window.sessionStorage + * This shim allows clients to define a sessionStorage scheme, if they + * cannot provide window.sessionStorage. + * + */ +export default (): SessionStorage => + window['kuiSessionStorage'] || window.sessionStorage diff --git a/packages/app/src/models/store.ts b/packages/app/src/models/store.ts index 4c97638d4d0..d0af1f09b84 100644 --- a/packages/app/src/models/store.ts +++ b/packages/app/src/models/store.ts @@ -26,4 +26,5 @@ interface LocalStorage { * cannot provide window.localStorage. * */ -export default (): LocalStorage => window['kuiLocalStorage'] || window.localStorage +export default (): LocalStorage => + window['kuiLocalStorage'] || window.localStorage diff --git a/packages/app/src/test/core/about.ts b/packages/app/src/test/core/about.ts index 84271acfcf3..81b39d2b8ab 100644 --- a/packages/app/src/test/core/about.ts +++ b/packages/app/src/test/core/about.ts @@ -16,21 +16,28 @@ import * as assert from 'assert' -import { ISuite, before as commonBefore, after as commonAfter, oops } from '@kui-shell/core/tests/lib/common' +import { + ISuite, + before as commonBefore, + after as commonAfter, + oops +} from '@kui-shell/core/tests/lib/common' import * as ui from '@kui-shell/core/tests/lib/ui' import { theme as settings } from '@kui-shell/core/core/settings' const { cli, sidecar } = ui -describe('About command', function (this: ISuite) { +describe('About command', function(this: ISuite) { before(commonBefore(this)) after(commonAfter(this)) - it('should open the about window via command execution', () => cli.do('about', this.app) - .then(cli.expectJustOK) - .then(sidecar.expectOpen) - .then(sidecar.expectShowing(settings.productName)) - .catch(oops(this))) + it('should open the about window via command execution', () => + cli + .do('about', this.app) + .then(cli.expectJustOK) + .then(sidecar.expectOpen) + .then(sidecar.expectShowing(settings.productName)) + .catch(oops(this))) it('should open the getting started tutor via button click', async () => { try { @@ -39,7 +46,9 @@ describe('About command', function (this: ISuite) { await this.app.client.waitForVisible('#tutorialPane') - const tutorialName = await this.app.client.getText('#tutorialPane .tutorial-header .tutorial-header-tutorial-name') + const tutorialName = await this.app.client.getText( + '#tutorialPane .tutorial-header .tutorial-header-tutorial-name' + ) assert.strict.equal(tutorialName.toLowerCase(), 'getting started') } catch (err) { oops(this)(err) diff --git a/packages/app/src/test/core/basic-functionality.ts b/packages/app/src/test/core/basic-functionality.ts index c94fa03ce82..2459b9211dd 100644 --- a/packages/app/src/test/core/basic-functionality.ts +++ b/packages/app/src/test/core/basic-functionality.ts @@ -22,7 +22,13 @@ import * as assert from 'assert' import { Application } from 'spectron' -import { ISuite, before as commonBefore, after as commonAfter, oops, localDescribe } from '@kui-shell/core/tests/lib/common' +import { + ISuite, + before as commonBefore, + after as commonAfter, + oops, + localDescribe +} from '@kui-shell/core/tests/lib/common' const APP_TITLE = process.env.APP_TITLE || 'Kui Shell' // const CLI_PLACEHOLDER = process.env.CLI_PLACEHOLDER || 'enter your command' @@ -35,19 +41,20 @@ const selectors = { } selectors.PROMPT = `${selectors.PROMPT_BLOCK} input` -localDescribe('Basic Functionality', function (this: ISuite) { +localDescribe('Basic Functionality', function(this: ISuite) { before(commonBefore(this)) after(commonAfter(this)) - const openWindow = (app: Application) => app.client.getWindowCount() - .then(count => assert.strictEqual(count, 1)) // Verify that one window is open - .then(() => app.browserWindow.isVisible()) // Check if the window is visible - .then(isVisible => assert.strictEqual(isVisible, true)) // Verify the window is visible - .then(() => app.client.getTitle()) // Get the window's title - .then(title => assert.strictEqual(title, APP_TITLE)) // Verify the window's title + const openWindow = (app: Application) => + app.client + .getWindowCount() + .then(count => assert.strictEqual(count, 1)) // Verify that one window is open + .then(() => app.browserWindow.isVisible()) // Check if the window is visible + .then(isVisible => assert.strictEqual(isVisible, true)) // Verify the window is visible + .then(() => app.client.getTitle()) // Get the window's title + .then(title => assert.strictEqual(title, APP_TITLE)) // Verify the window's title - it('shows an initial window', () => openWindow(this.app) - .catch(oops(this))) + it('shows an initial window', () => openWindow(this.app).catch(oops(this))) it('has an initial focus on the CLI prompt', () => assert.ok(this.app.client.hasFocus(selectors.PROMPT))) diff --git a/packages/app/src/test/core/command-not-found-suggestions.ts b/packages/app/src/test/core/command-not-found-suggestions.ts index 959e04964a7..99e2bd4ea75 100644 --- a/packages/app/src/test/core/command-not-found-suggestions.ts +++ b/packages/app/src/test/core/command-not-found-suggestions.ts @@ -16,7 +16,12 @@ import * as assert from 'assert' -import { ISuite, before as commonBefore, after as commonAfter, oops } from '@kui-shell/core/tests/lib/common' +import { + ISuite, + before as commonBefore, + after as commonAfter, + oops +} from '@kui-shell/core/tests/lib/common' import * as ui from '@kui-shell/core/tests/lib/ui' const { cli, sidecar } = ui @@ -30,74 +35,99 @@ const { cli, sidecar } = ui * or: expect the sidecar icon to be "sidecar" * */ -export const expectSuggestionsFor = function (cmd: string, expectedAvailable: string[], { click = undefined, expectedBreadcrumb = undefined, sidecar: expectedIcon = undefined, expectedString = undefined } = {}) { - return cli.do(cmd, this.app) +export const expectSuggestionsFor = function( + cmd: string, + expectedAvailable: string[], + { + click = undefined, + expectedBreadcrumb = undefined, + sidecar: expectedIcon = undefined, + expectedString = undefined + } = {} +) { + return cli + .do(cmd, this.app) .then(cli.expectErrorWithPassthrough(404, 'Command not found')) .then(N => { - const base = `${ui.selectors.OUTPUT_N(N)} .user-error-available-commands .log-line` + const base = `${ui.selectors.OUTPUT_N( + N + )} .user-error-available-commands .log-line` const availableItems = `${base} .clickable` - return this.app.client.getText(availableItems) + return this.app.client + .getText(availableItems) .then(ui.expectArray(expectedAvailable)) .then(() => { if (click !== undefined) { // then click on the given index; note that nth-child is 1-indexed, hence the + 1 part const clickOn = `${base}:nth-child(${click + 1}) .clickable` - return this.app.client.click(clickOn) - .then(() => { - if (expectedBreadcrumb) { - // - // then expect the next command to have the given terminal breadcrumb - // - const breadcrumb = `${ui.selectors.OUTPUT_N(N + 1)} .bx--breadcrumb-item:last-child .bx--no-link` - return this.app.client.getText(breadcrumb) - .then(actualBreadcrumb => assert.strictEqual(actualBreadcrumb, expectedBreadcrumb)) - } else if (expectedIcon) { - // - // then wait for the sidecar to be open and showing the expected sidecar icon text - // - const icon = `${ui.selectors.SIDECAR} .sidecar-header-icon-wrapper .sidecar-header-icon` - return sidecar.expectOpen(this.app) - .then(() => this.app.client.getText(icon)) - .then(actualIcon => actualIcon.toLowerCase()) - .then(actualIcon => assert.strictEqual(actualIcon, expectedIcon)) - } else if (expectedString) { - // - // then wait for the given command output - // - return this.app.client.waitUntil(async () => { - const text = await this.app.client.getText(ui.selectors.OUTPUT_N(N + 1)) - return text === expectedString - }) - } - }) + return this.app.client.click(clickOn).then(() => { + if (expectedBreadcrumb) { + // + // then expect the next command to have the given terminal breadcrumb + // + const breadcrumb = `${ui.selectors.OUTPUT_N( + N + 1 + )} .bx--breadcrumb-item:last-child .bx--no-link` + return this.app.client + .getText(breadcrumb) + .then(actualBreadcrumb => + assert.strictEqual(actualBreadcrumb, expectedBreadcrumb) + ) + } else if (expectedIcon) { + // + // then wait for the sidecar to be open and showing the expected sidecar icon text + // + const icon = `${ui.selectors.SIDECAR} .sidecar-header-icon-wrapper .sidecar-header-icon` + return sidecar + .expectOpen(this.app) + .then(() => this.app.client.getText(icon)) + .then(actualIcon => actualIcon.toLowerCase()) + .then(actualIcon => + assert.strictEqual(actualIcon, expectedIcon) + ) + } else if (expectedString) { + // + // then wait for the given command output + // + return this.app.client.waitUntil(async () => { + const text = await this.app.client.getText( + ui.selectors.OUTPUT_N(N + 1) + ) + return text === expectedString + }) + } + }) } }) }) .catch(oops(this)) } -describe('Suggestions for command not found', function (this: ISuite) { +describe('Suggestions for command not found', function(this: ISuite) { before(commonBefore(this)) after(commonAfter(this)) it('should present suggestions for "ne" -> new', () => { - return expectSuggestionsFor.call(this, + return expectSuggestionsFor.call( + this, 'ne', // type this ['new'] // expect these completions ) }) it('should present suggestions for "edi" -> edit', () => { - return expectSuggestionsFor.call(this, + return expectSuggestionsFor.call( + this, 'edi', // type this ['edit'] // expect these completions ) }) it('should present suggestions for "versio" -> version', () => { - return expectSuggestionsFor.call(this, + return expectSuggestionsFor.call( + this, 'versio', // type this ['version'] // expect these completions ) diff --git a/packages/app/src/test/core/error-handling.ts b/packages/app/src/test/core/error-handling.ts index e1271e0f536..af31d3d5967 100644 --- a/packages/app/src/test/core/error-handling.ts +++ b/packages/app/src/test/core/error-handling.ts @@ -14,16 +14,23 @@ * limitations under the License. */ -import { ISuite, before as commonBefore, after as commonAfter, oops } from '@kui-shell/core/tests/lib/common' +import { + ISuite, + before as commonBefore, + after as commonAfter, + oops +} from '@kui-shell/core/tests/lib/common' import * as ui from '@kui-shell/core/tests/lib/ui' const { cli } = ui -describe('Error handling', function (this: ISuite) { +describe('Error handling', function(this: ISuite) { before(commonBefore(this)) after(commonAfter(this)) - it('bind with no args', () => cli.do('bind', this.app) - .then(cli.expectError(497)) - .catch(oops(this))) + it('bind with no args', () => + cli + .do('bind', this.app) + .then(cli.expectError(497)) + .catch(oops(this))) }) diff --git a/packages/app/src/test/core/input-queueing.ts b/packages/app/src/test/core/input-queueing.ts index af095c7aca8..fae882eb6b5 100644 --- a/packages/app/src/test/core/input-queueing.ts +++ b/packages/app/src/test/core/input-queueing.ts @@ -18,13 +18,16 @@ import * as common from '@kui-shell/core/tests/lib/common' import * as ui from '@kui-shell/core/tests/lib/ui' const { cli, keys, selectors } = ui -describe('input queueing', function (this: common.ISuite) { +describe('input queueing', function(this: common.ISuite) { before(common.before(this)) after(common.after(this)) const queueUp = (textWhileQueued: string, N: number, sleepTime = 2) => { return { - thenType: (textAfterQueued: string, verify = cli.expectOKWithCustom({ expect: common.expectedVersion })) => { + thenType: ( + textAfterQueued: string, + verify = cli.expectOKWithCustom({ expect: common.expectedVersion }) + ) => { it(`should queue ${textWhileQueued} while we sleep, then ${textAfterQueued}`, async () => { try { // do something that takes a while @@ -38,7 +41,9 @@ describe('input queueing', function (this: common.ISuite) { // now await completion of the first command; sleep should // result in blank output, i.e. no "ok" - await outstanding.then(cli.expectBlankWithOpts({ nonBlankPromptOk: true })) + await outstanding.then( + cli.expectBlankWithOpts({ nonBlankPromptOk: true }) + ) if (textAfterQueued !== undefined) { // finally, type the trailing text and verify the output (use @@ -46,7 +51,10 @@ describe('input queueing', function (this: common.ISuite) { return await cli.do(textAfterQueued, this.app).then(verify) } else { // otherwise, the ENTER was typed while queued - return await Promise.resolve({ app: this.app, count: N + 1 }).then(verify) + return await Promise.resolve({ + app: this.app, + count: N + 1 + }).then(verify) } } catch (err) { common.oops(this)(err) @@ -58,22 +66,23 @@ describe('input queueing', function (this: common.ISuite) { // type "version" while queued, then "\n" after queued let nPromptBlocksSoFar = 0 - queueUp('version', nPromptBlocksSoFar) - .thenType('') // '' because cli.do will add a newline for us + queueUp('version', nPromptBlocksSoFar).thenType('') // '' because cli.do will add a newline for us nPromptBlocksSoFar += 2 // type "version\n" while queued, then "" after queued - queueUp(`version${keys.ENTER}`, nPromptBlocksSoFar) - .thenType(undefined) + queueUp(`version${keys.ENTER}`, nPromptBlocksSoFar).thenType(undefined) nPromptBlocksSoFar += 2 // double newlines while queued up - queueUp(`version${keys.ENTER}${keys.ENTER}`, nPromptBlocksSoFar) - .thenType(undefined) + queueUp(`version${keys.ENTER}${keys.ENTER}`, nPromptBlocksSoFar).thenType( + undefined + ) nPromptBlocksSoFar += 3 // triple newlines while queued up - queueUp(`version${keys.ENTER}${keys.ENTER}${keys.ENTER}`, nPromptBlocksSoFar) - .thenType(undefined) + queueUp( + `version${keys.ENTER}${keys.ENTER}${keys.ENTER}`, + nPromptBlocksSoFar + ).thenType(undefined) nPromptBlocksSoFar += 4 }) diff --git a/packages/app/src/test/core/version.ts b/packages/app/src/test/core/version.ts index 85a36205d69..5df2f1e0baf 100644 --- a/packages/app/src/test/core/version.ts +++ b/packages/app/src/test/core/version.ts @@ -19,15 +19,23 @@ * */ -import { ISuite, before as commonBefore, after as commonAfter, oops, expectedVersion } from '@kui-shell/core/tests/lib/common' +import { + ISuite, + before as commonBefore, + after as commonAfter, + oops, + expectedVersion +} from '@kui-shell/core/tests/lib/common' import * as ui from '@kui-shell/core/tests/lib/ui' const { cli } = ui -describe('Version command', function (this: ISuite) { +describe('Version command', function(this: ISuite) { before(commonBefore(this)) after(commonAfter(this)) - it('should report proper version', () => cli.do('version', this.app) - .then(cli.expectOKWithCustom({ expect: expectedVersion })) - .catch(oops(this))) + it('should report proper version', () => + cli + .do('version', this.app) + .then(cli.expectOKWithCustom({ expect: expectedVersion })) + .catch(oops(this))) }) diff --git a/packages/app/src/util/home.ts b/packages/app/src/util/home.ts index 9d1ab7a27fb..373d77bdc66 100644 --- a/packages/app/src/util/home.ts +++ b/packages/app/src/util/home.ts @@ -19,7 +19,7 @@ import { homedir as home } from 'os' const homedir = home() -export default function (path: string): string { +export default function(path: string): string { if (!path) { return path } else if (path === '~') { diff --git a/packages/app/src/util/mimic-dom.ts b/packages/app/src/util/mimic-dom.ts index ac47789d92b..25b2df953e8 100644 --- a/packages/app/src/util/mimic-dom.ts +++ b/packages/app/src/util/mimic-dom.ts @@ -38,15 +38,15 @@ debug('loading') class ClassList { private classList: string[] = [] - add (_: string) { + add(_: string) { return this.classList.push(_) } - contains (_: string): boolean { + contains(_: string): boolean { return this.classList.indexOf(_) >= 0 } - remove (_: string) { + remove(_: string) { const idx = this.classList.findIndex((x: string) => x === _) if (idx >= 0) { this.classList.splice(idx, 1) @@ -55,7 +55,7 @@ class ClassList { } /** generic clone */ -function clone (instance: T): T { +function clone(instance: T): T { const copy = new (instance.constructor as { new (): T })() Object.assign(copy, instance) return copy @@ -76,47 +76,47 @@ export class ElementMimic { private _attrs: { [key: string]: string } = {} - focus () { + focus() { /* empty ok */ } - appendChild (c: ElementMimic) { + appendChild(c: ElementMimic) { return this.children.push(c) } - getAttribute (k: string): string { + getAttribute(k: string): string { return this._attrs[k] || '' } - setAttribute (k: string, v: string): string { + setAttribute(k: string, v: string): string { this._attrs[k] = v return v } - removeAttribute (k: string): string { + removeAttribute(k: string): string { const attr = this._attrs[k] delete this._attrs[k] return attr } - cloneNode (): ElementMimic { + cloneNode(): ElementMimic { return clone(this) } // eslint-disable-next-line @typescript-eslint/no-unused-vars - querySelectorAll (selector: string): ElementMimic[] { + querySelectorAll(selector: string): ElementMimic[] { return [] } - querySelector (sel: string): ElementMimic { + querySelector(sel: string): ElementMimic { return this[sel] || new ElementMimic() } - addEventListener () { + addEventListener() { return true } - hasStyle (style: string, desiredValue?: number | string): boolean | string { + hasStyle(style: string, desiredValue?: number | string): boolean | string { const actualValue = this.style && this.style[style] // intentional double equals, so that 500=='500' // eslint-disable-next-line eqeqeq @@ -124,11 +124,17 @@ export class ElementMimic { else return actualValue } - recursiveInnerTextLength (): number { - return this.innerText.length + this.children.reduce((sum: number, child) => sum + child.recursiveInnerTextLength(), 0) + recursiveInnerTextLength(): number { + return ( + this.innerText.length + + this.children.reduce( + (sum: number, child) => sum + child.recursiveInnerTextLength(), + 0 + ) + ) } - static isFakeDom (dom: object): dom is ElementMimic { + static isFakeDom(dom: object): dom is ElementMimic { return (dom as ElementMimic)._isFakeDom } } @@ -137,7 +143,7 @@ export class ElementMimic { * Create structures to mimic having a head * */ -export default function () { +export default function() { debug('mimicDom') try { @@ -148,7 +154,10 @@ export default function () { const localStorage = {} global['localStorage'] = { - setItem: (k: string, v: string) => { localStorage[k] = v; return v }, + setItem: (k: string, v: string) => { + localStorage[k] = v + return v + }, getItem: (k: string) => localStorage[k] || null } } finally { @@ -185,7 +194,11 @@ export default function () { return element }, addEventListener: () => true, - createTextNode: (text: string) => { const element = dom0(); element.innerText = text; return element }, + createTextNode: (text: string) => { + const element = dom0() + element.innerText = text + return element + }, // eslint-disable-next-line @typescript-eslint/no-unused-vars querySelector: (selector: string) => { return dom0() diff --git a/packages/app/src/util/types.ts b/packages/app/src/util/types.ts index 5bd98826ba8..31d2c4428f9 100644 --- a/packages/app/src/util/types.ts +++ b/packages/app/src/util/types.ts @@ -15,6 +15,6 @@ */ // eslint-disable-next-line @typescript-eslint/no-explicit-any -export function isHTML (message: any): message is HTMLElement { +export function isHTML(message: any): message is HTMLElement { return !!(message as HTMLElement).nodeName } diff --git a/packages/app/src/webapp/bootstrap/boot.ts b/packages/app/src/webapp/bootstrap/boot.ts index 1e70d5d69c9..f8ebda1ae5e 100644 --- a/packages/app/src/webapp/bootstrap/boot.ts +++ b/packages/app/src/webapp/bootstrap/boot.ts @@ -31,14 +31,14 @@ import * as electronEvents from '../electron-events' const debug = require('debug')('webapp/bootstrap/boot') debug('loading') -function catastrophe (err: Error) { +function catastrophe(err: Error) { console.error('restart needed') console.error(err) document.body.classList.add('oops-total-catastrophe') } // note: the q npm doesn't like functions called "bootstrap"! -const domReady = (prefs) => async () => { +const domReady = prefs => async () => { debug('domReady') try { diff --git a/packages/app/src/webapp/bootstrap/init.ts b/packages/app/src/webapp/bootstrap/init.ts index 73e65468850..c8e8b2ecf6b 100644 --- a/packages/app/src/webapp/bootstrap/init.ts +++ b/packages/app/src/webapp/bootstrap/init.ts @@ -43,8 +43,12 @@ const disableDragAndDrop = () => { * */ const setDefaultCommandContext = () => { - const contextString = process.env.KAON_CONTEXT || - (typeof window !== 'undefined' && window.location && window.location.search && extractSearchKey('command-context')) + const contextString = + process.env.KAON_CONTEXT || + (typeof window !== 'undefined' && + window.location && + window.location.search && + extractSearchKey('command-context')) if (contextString) { try { @@ -86,10 +90,16 @@ export const init = (prefs = {}) => { const prefs = electronWindow['subwindow'] const argv = electronWindow['executeThisArgvPlease'] const maybeExecuteThis = argv && argv.length > 0 ? argv : undefined - const fullShell = maybeExecuteThis && maybeExecuteThis.length === 1 && maybeExecuteThis[0] === 'shell' + const fullShell = + maybeExecuteThis && + maybeExecuteThis.length === 1 && + maybeExecuteThis[0] === 'shell' if (maybeExecuteThis && !fullShell) { - const command = typeof maybeExecuteThis === 'string' ? maybeExecuteThis : maybeExecuteThis.join(' ') + const command = + typeof maybeExecuteThis === 'string' + ? maybeExecuteThis + : maybeExecuteThis.join(' ') debug('maybeExecuteThis', maybeExecuteThis, command) if (prefs && prefs.partialExec) { @@ -99,7 +109,14 @@ export const init = (prefs = {}) => { } else { const repl = await import('../../core/repl') const noEcho = prefs && prefs.noEcho // don't echo the command, just do it - repl.pexec(command, Object.assign(prefs || {}, { causedByHeadless: true, echo: !noEcho })) + repl + .pexec( + command, + Object.assign(prefs || {}, { + causedByHeadless: true, + echo: !noEcho + }) + ) .then(() => { /* if (!noEcho && prefs && prefs.clearREPLOnLoad) { setTimeout(() => repl.pexec('clear'), 1000) @@ -120,7 +137,9 @@ export const preinit = () => { if (process.env.___IBM_FSH_FUZZ) { // for testing, we sometimes want to monkey patch out certain features try { - prefs = require('../../core/fuzz-testing').default(process.env.___IBM_FSH_FUZZ) + prefs = require('../../core/fuzz-testing').default( + process.env.___IBM_FSH_FUZZ + ) } catch (err) { debug('fuzz testing raw', process.env.___IBM_FSH_FUZZ) console.error('Error parsing fuzz testing prefs', err) @@ -138,7 +157,8 @@ export const preinit = () => { debug('subwindow', subwindow) if (subwindow && subwindow.fullscreen !== false) { // sidecarOnly = subwindow.sidecarOnly === undefined ? true : subwindow.sidecarOnly - document.title = typeof subwindow === 'string' ? subwindow : subwindow.title + document.title = + typeof subwindow === 'string' ? subwindow : subwindow.title // set the current mode, if we have one, so that back // button can inform the user of what they're going back @@ -149,7 +169,8 @@ export const preinit = () => { // body styling document.body.classList.add('subwindow') - if (subwindow.theme) document.body.classList.add(`theme-${subwindow.theme}`) + if (subwindow.theme) + document.body.classList.add(`theme-${subwindow.theme}`) return subwindow } diff --git a/packages/app/src/webapp/bottom-stripe.ts b/packages/app/src/webapp/bottom-stripe.ts index eb2db4b59e0..6b9abdfea82 100644 --- a/packages/app/src/webapp/bottom-stripe.ts +++ b/packages/app/src/webapp/bottom-stripe.ts @@ -20,7 +20,13 @@ import { Tab } from './cli' import { removeAllDomChildren } from './util/dom' import { isTable } from './models/table' import { formatTable } from './views/table' -import { getSidecar, showCustom, isCustomSpec, CustomSpec, insertView } from './views/sidecar' +import { + getSidecar, + showCustom, + isCustomSpec, + CustomSpec, + insertView +} from './views/sidecar' import sidecarSelector from './views/sidecar-selector' import { ExecOptions } from '../models/execOptions' import { apply as addRelevantModes } from '@kui-shell/core/webapp/views/registrar/modes' @@ -39,14 +45,23 @@ const debug = Debug('webapp/picture-in-picture') * across remote proxies, and thus is preferable to the former. * */ -type DirectViewController = string | DirectViewControllerFunction | DirectViewControllerSpec | DirectViewEntity -type DirectViewControllerFunction = (tab: Tab, entity: object) => PromiseLike | object | void +type DirectViewController = + | string + | DirectViewControllerFunction + | DirectViewControllerSpec + | DirectViewEntity +type DirectViewControllerFunction = ( + tab: Tab, + entity: object +) => PromiseLike | object | void interface DirectViewEntity extends CustomSpec { isEntity: boolean } -function isDirectViewEntity (direct: DirectViewController): direct is DirectViewEntity { +function isDirectViewEntity( + direct: DirectViewController +): direct is DirectViewEntity { const entity = direct as DirectViewEntity return entity.isEntity !== undefined } @@ -62,13 +77,23 @@ interface DirectViewControllerSpec { * Call a "direct" impl * */ -const callDirect = async (tab: Tab, makeView: DirectViewController, entity, execOptions: ExecOptions) => { +const callDirect = async ( + tab: Tab, + makeView: DirectViewController, + entity, + execOptions: ExecOptions +) => { if (typeof makeView === 'string') { debug('makeView as string') if (execOptions && execOptions.exec === 'pexec') { return repl.pexec(makeView, execOptions) } else { - return repl.qexec(makeView, undefined, undefined, Object.assign({}, execOptions, { rethrowErrors: true })) + return repl.qexec( + makeView, + undefined, + undefined, + Object.assign({}, execOptions, { rethrowErrors: true }) + ) } } else if (typeof makeView === 'function') { debug('makeView as function') @@ -78,7 +103,9 @@ const callDirect = async (tab: Tab, makeView: DirectViewController, entity, exec const combined = Object.assign({}, entity, makeView) return combined } else { - const provider = await import(`@kui-shell/plugin-${makeView.plugin}/${makeView.module}`) + const provider = await import( + `@kui-shell/plugin-${makeView.plugin}/${makeView.module}` + ) return provider[makeView.operation](tab, makeView.parameters) } } @@ -144,23 +171,59 @@ export const rawCSS = { } export const css = { buttons: (tab: Tab) => sidecarSelector(tab, rawCSS.buttons), - backContainer: (tab: Tab) => sidecarSelector(tab, '.sidecar-bottom-stripe .sidecar-bottom-stripe-left-bits .sidecar-bottom-stripe-back-bits'), // houses the back button text and << - backButton: (tab: Tab) => sidecarSelector(tab, '.sidecar-bottom-stripe .sidecar-bottom-stripe-left-bits .sidecar-bottom-stripe-back-button'), // houses the back button text + backContainer: (tab: Tab) => + sidecarSelector( + tab, + '.sidecar-bottom-stripe .sidecar-bottom-stripe-left-bits .sidecar-bottom-stripe-back-bits' + ), // houses the back button text and << + backButton: (tab: Tab) => + sidecarSelector( + tab, + '.sidecar-bottom-stripe .sidecar-bottom-stripe-left-bits .sidecar-bottom-stripe-back-button' + ), // houses the back button text button: 'sidecar-bottom-stripe-button', buttonActingAsButton: 'sidecar-bottom-stripe-button-as-button', buttonActingAsRadioButton: 'sidecar-bottom-stripe-button-as-radio-button', - modeContainer: (tab: Tab) => sidecarSelector(tab, '.sidecar-bottom-stripe .sidecar-bottom-stripe-left-bits .sidecar-bottom-stripe-mode-bits'), + modeContainer: (tab: Tab) => + sidecarSelector( + tab, + '.sidecar-bottom-stripe .sidecar-bottom-stripe-left-bits .sidecar-bottom-stripe-mode-bits' + ), active: 'sidecar-bottom-stripe-button-active', selected: 'selected', hidden: 'hidden' } -const _addModeButton = (tab: Tab, bottomStripe: Element, opts: SidecarMode, entity, show: string) => { - const { mode, label, flush, selected, selectionController, visibleWhen, +const _addModeButton = ( + tab: Tab, + bottomStripe: Element, + opts: SidecarMode, + entity, + show: string +) => { + const { + mode, + label, + flush, + selected, + selectionController, + visibleWhen, leaveBottomStripeAlone = false, - fontawesome, labelBelow, // show label below the fontawesome? - balloon, balloonLength, data, command = () => mode, direct, execOptions, - defaultMode, actAsButton, radioButton = false, echo = false, noHistory = true, replSilence = true } = opts + fontawesome, + labelBelow, // show label below the fontawesome? + balloon, + balloonLength, + data, + command = () => mode, + direct, + execOptions, + defaultMode, + actAsButton, + radioButton = false, + echo = false, + noHistory = true, + replSilence = true + } = opts // create the button dom, and attach it const button = document.createElement('div') @@ -194,7 +257,10 @@ const _addModeButton = (tab: Tab, bottomStripe: Element, opts: SidecarMode, enti } } - if ((((!show || show === 'default') && defaultMode) || show === mode) && !actAsButton) { + if ( + (((!show || show === 'default') && defaultMode) || show === mode) && + !actAsButton + ) { button.classList.add(css.active) } button.setAttribute('data-mode', mode) @@ -229,7 +295,9 @@ const _addModeButton = (tab: Tab, bottomStripe: Element, opts: SidecarMode, enti let container = bottomStripe if (flush === 'right' || flush === 'weak') { - let fillContainer = bottomStripe.querySelector('.fill-container.flush-right') + let fillContainer = bottomStripe.querySelector( + '.fill-container.flush-right' + ) if (!fillContainer) { fillContainer = document.createElement('div') fillContainer.className = 'fill-container flush-right' @@ -265,7 +333,9 @@ const _addModeButton = (tab: Tab, bottomStripe: Element, opts: SidecarMode, enti } button.classList.add(css.active) - const visibleWhens = bottomStripe.querySelectorAll('.sidecar-bottom-stripe-button[data-visible-when]') + const visibleWhens = bottomStripe.querySelectorAll( + '.sidecar-bottom-stripe-button[data-visible-when]' + ) for (let idx = 0; idx < visibleWhens.length; idx++) { const otherButton = visibleWhens[idx] as HTMLElement const when = otherButton.getAttribute('data-visible-when') @@ -279,7 +349,9 @@ const _addModeButton = (tab: Tab, bottomStripe: Element, opts: SidecarMode, enti if (radioButton) { button.classList.toggle(css.selected) } else { - const currentSelected = bottomStripe.querySelector(`.${css.selected}`) + const currentSelected = bottomStripe.querySelector( + `.${css.selected}` + ) if (currentSelected) { currentSelected.classList.remove(css.selected) } @@ -293,27 +365,43 @@ const _addModeButton = (tab: Tab, bottomStripe: Element, opts: SidecarMode, enti try { const view = await callDirect(tab, direct, entity, execOptions) if (view && !actAsButton) { - if (isTable(view) || isDirectViewEntity(direct) || leaveBottomStripeAlone) { + if ( + isTable(view) || + isDirectViewEntity(direct) || + leaveBottomStripeAlone + ) { changeActiveButton() } if (typeof view === 'string') { const dom = document.createElement('div') - dom.classList.add('padding-content', 'scrollable', 'scrollable-auto') + dom.classList.add( + 'padding-content', + 'scrollable', + 'scrollable-auto' + ) dom.innerText = view insertView(tab)(dom) } else if (view.nodeName) { const dom = document.createElement('div') - dom.classList.add('padding-content', 'scrollable', 'scrollable-auto') + dom.classList.add( + 'padding-content', + 'scrollable', + 'scrollable-auto' + ) dom.appendChild(view) insertView(tab)(dom) } else if (isCustomSpec(view)) { - // Promise.resolve(view as Promise).then(custom => showCustom(tab, custom, { leaveBottomStripeAlone })) + // Promise.resolve(view as Promise).then(custom => showCustom(tab, custom, { leaveBottomStripeAlone })) showCustom(tab, view, { leaveBottomStripeAlone }) } else if (isTable(view)) { const dom1 = document.createElement('div') const dom2 = document.createElement('div') - dom1.classList.add('padding-content', 'scrollable', 'scrollable-auto') + dom1.classList.add( + 'padding-content', + 'scrollable', + 'scrollable-auto' + ) dom2.classList.add('result-as-table', 'repl-result') dom1.appendChild(dom2) formatTable(tab, view, dom2, { usePip: true }) @@ -321,7 +409,9 @@ const _addModeButton = (tab: Tab, bottomStripe: Element, opts: SidecarMode, enti } } else if (actAsButton && view && view.toggle) { view.toggle.forEach(({ mode, disabled }) => { - const button = bottomStripe.querySelector(`.sidecar-bottom-stripe-button[data-mode="${mode}"]`) + const button = bottomStripe.querySelector( + `.sidecar-bottom-stripe-button[data-mode="${mode}"]` + ) if (button) { if (disabled) { button.classList.add('disabled') @@ -355,13 +445,21 @@ const _addModeButton = (tab: Tab, bottomStripe: Element, opts: SidecarMode, enti return button } -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const addModeButton = (tab: Tab, mode: SidecarMode, entity: Record) => { +export const addModeButton = ( + tab: Tab, + mode: SidecarMode, + entity: Record // eslint-disable-line @typescript-eslint/no-explicit-any +) => { const bottomStripe = css.modeContainer(tab) return _addModeButton(tab, bottomStripe, mode, entity, undefined) } -export const addModeButtons = (tab: Tab, modesUnsorted: SidecarMode[] = [], entity, options?: BottomStripOptions) => { +export const addModeButtons = ( + tab: Tab, + modesUnsorted: SidecarMode[] = [], + entity, + options?: BottomStripOptions +) => { // consult the view registrar for registered view modes // relevant to this resource const command = '' @@ -371,9 +469,11 @@ export const addModeButtons = (tab: Tab, modesUnsorted: SidecarMode[] = [], enti // means place to the right, unless there are no flush:right|weak // buttons. const modes = modesUnsorted.sort((a, b) => { - if (a.flush === b.flush || - (a.flush === 'weak' && b.flush === 'right') || - (a.flush === 'right' && b.flush === 'weak')) { + if ( + a.flush === b.flush || + (a.flush === 'weak' && b.flush === 'right') || + (a.flush === 'right' && b.flush === 'weak') + ) { // then use the natural order of a versus b: a mode model can // optionally specify a numeric sort order; if not specified, // then use the order as given @@ -388,26 +488,25 @@ export const addModeButtons = (tab: Tab, modesUnsorted: SidecarMode[] = [], enti }) // if we have *only* flush-right buttons, then do not flush-right any of them - const nFlushRight = modes.reduce( - (count, { flush }) => { - count += flush === 'right' ? 1 : 0 - return count - }, - 0 - ) - const nFlushLeft = modes.reduce( - (count, { flush }) => { - count += flush !== 'weak' && flush !== 'right' ? 1 : 0 - return count - }, - 0 - ) + const nFlushRight = modes.reduce((count, { flush }) => { + count += flush === 'right' ? 1 : 0 + return count + }, 0) + const nFlushLeft = modes.reduce((count, { flush }) => { + count += flush !== 'weak' && flush !== 'right' ? 1 : 0 + return count + }, 0) if (nFlushRight > 0 && nFlushLeft === 0) { modes.forEach(_ => delete _.flush) } // for going back - const addModeButtons = (tab: Tab, modes: SidecarMode[], entity, show: string) => { + const addModeButtons = ( + tab: Tab, + modes: SidecarMode[], + entity, + show: string + ) => { const bottomStripe = css.modeContainer(tab) removeAllDomChildren(bottomStripe) @@ -420,7 +519,8 @@ export const addModeButtons = (tab: Tab, modesUnsorted: SidecarMode[] = [], enti bottomStripe['capture'] = () => { // capture the current selection const currentSelection = bottomStripe.querySelector(`.${css.active}`) - const currentShow = currentSelection && currentSelection.getAttribute('data-mode') + const currentShow = + currentSelection && currentSelection.getAttribute('data-mode') const show = currentShow || (options && options.show) // to avoid stale buttons from showing up while the new view renders @@ -431,7 +531,9 @@ export const addModeButtons = (tab: Tab, modesUnsorted: SidecarMode[] = [], enti } const defaultMode = modes && modes.find(({ defaultMode }) => defaultMode) - const show = (options && options.show) || (defaultMode && (defaultMode.mode || defaultMode.label)) + const show = + (options && options.show) || + (defaultMode && (defaultMode.mode || defaultMode.label)) addModeButtons(tab, modes, entity, show) diff --git a/packages/app/src/webapp/cli.ts b/packages/app/src/webapp/cli.ts index 7667da3a21a..ad852bc560d 100644 --- a/packages/app/src/webapp/cli.ts +++ b/packages/app/src/webapp/cli.ts @@ -23,9 +23,18 @@ import { inBrowser, inElectron, isHeadless } from '../core/capabilities' import { keys } from './keys' import { installContext } from './prompt' -import { Entity, SimpleEntity, isEntitySpec, isMessageBearingEntity } from '../models/entity' +import { + Entity, + SimpleEntity, + isEntitySpec, + isMessageBearingEntity +} from '../models/entity' import { CommandHandlerWithEvents } from '../models/command' -import { ExecOptions, DefaultExecOptions, ParsedOptions } from '../models/execOptions' +import { + ExecOptions, + DefaultExecOptions, + ParsedOptions +} from '../models/execOptions' import * as historyModel from '../models/history' import { CodedError, isCodedError } from '../models/errors' @@ -34,9 +43,22 @@ import { prettyPrintTime } from './util/time' import { isHTML } from '../util/types' import Presentation from './views/presentation' -import { formatListResult, formatMultiListResult, formatTable } from './views/table' +import { + formatListResult, + formatMultiListResult, + formatTable +} from './views/table' import { Table, isTable, isMultiTable } from './models/table' -import { Formattable, getSidecar, BadgeSpec, presentAs, showEntity, showCustom, isCustomSpec, CustomSpec } from './views/sidecar' +import { + Formattable, + getSidecar, + BadgeSpec, + presentAs, + showEntity, + showCustom, + isCustomSpec, + CustomSpec +} from './views/sidecar' import { SidecarMode } from './bottom-stripe' const debug = Debug('webapp/cli') @@ -60,7 +82,15 @@ interface ScrollOptions { center?: boolean | ScrollIntoViewOptions } export const scrollIntoView = (opts?: ScrollOptions) => { - const { when = 305, which = '.repl-active', element = document.querySelector(`tab.visible .repl ${which}`) as HTMLElement, center = undefined, how = 'scrollIntoViewIfNeeded' } = opts || {} + const { + when = 305, + which = '.repl-active', + element = document.querySelector( + `tab.visible .repl ${which}` + ) as HTMLElement, + center = undefined, + how = 'scrollIntoViewIfNeeded' + } = opts || {} const scroll = () => { try { @@ -88,7 +118,9 @@ export const scrollIntoView = (opts?: ScrollOptions) => { */ const startInputQueueing = () => { if (!isHeadless()) { - const invisibleHand = document.getElementById('invisible-global-input') as HTMLInputElement + const invisibleHand = document.getElementById( + 'invisible-global-input' + ) as HTMLInputElement invisibleHand.focus() } } @@ -108,7 +140,11 @@ export const disableInputQueueing = (): string => { debug('disableInputQueueing') - const invisibleHand = _invisibleHand || (_invisibleHand = document.getElementById('invisible-global-input') as HTMLInputElement) + const invisibleHand = + _invisibleHand || + (_invisibleHand = document.getElementById( + 'invisible-global-input' + ) as HTMLInputElement) // here is what might have queued up const queuedInput = invisibleHand.value @@ -127,17 +163,20 @@ export const disableInputQueueing = (): string => { * */ export const pasteQueuedInput = (value: string) => { - const invisibleHand = document.getElementById('invisible-global-input') as HTMLInputElement + const invisibleHand = document.getElementById( + 'invisible-global-input' + ) as HTMLInputElement invisibleHand.value = value } // eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface Tab extends HTMLElement { } +export interface Tab extends HTMLElement {} const tabTagPattern = /tab/i -export function isTab (node: Element): node is Tab { +export function isTab(node: Element): node is Tab { return tabTagPattern.test(node.tagName) } -export const getTabIndex = (tab: Tab): number => parseInt(tab.getAttribute('data-tab-index'), 10) +export const getTabIndex = (tab: Tab): number => + parseInt(tab.getAttribute('data-tab-index'), 10) export const sameTab = (tab1: Tab, tab2: Tab): boolean => { return getTabIndex(tab1) === getTabIndex(tab2) } @@ -169,14 +208,16 @@ const getInitialBlock = (tab: Tab): HTMLElement => { export const getCurrentBlock = (tab = getCurrentTab()): HTMLElement => { return tab.querySelector('.repl-active') } -export const getCurrentProcessingBlock = (tab = getCurrentTab()): HTMLElement => { +export const getCurrentProcessingBlock = ( + tab = getCurrentTab() +): HTMLElement => { return tab.querySelector('.repl .repl-block.processing') } export const getBlockOfPrompt = (prompt: HTMLInputElement): HTMLElement => { return prompt.parentElement.parentElement } export const getPrompt = (block: HTMLElement): HTMLInputElement => { - return (block && block.querySelector && block.querySelector('input')) + return block && block.querySelector && block.querySelector('input') } const getInitialPrompt = (tab: Tab): HTMLInputElement => { return getPrompt(getInitialBlock(tab)) @@ -208,14 +249,15 @@ const doPaste = (text: string) => { if (idx === lines.length) { // all done... return Promise.resolve() - /* } else if (lines[idx] === '') { + /* } else if (lines[idx] === '') { // then this is a blank line, so skip it return pasteLooper(idx + 1) */ } else if (idx <= lines.length - 2) { // then this is a command line with a trailing newline const prompt = getCurrentPrompt() const repl = await import('../core/repl') - return repl.pexec(prompt.value + lines[idx]) + return repl + .pexec(prompt.value + lines[idx]) .then(() => pasteLooper(idx + 1)) } else { // then this is the last line, but without a trailing newline. @@ -237,7 +279,8 @@ const doPaste = (text: string) => { // note how this will either place the new text at the caret // position, or replace the selected text (if selectionEnd !== // selectionStart) - prompt.value = prompt.value.substring(0, prompt.selectionStart) + + prompt.value = + prompt.value.substring(0, prompt.selectionStart) + lines[idx] + prompt.value.substring(prompt.selectionEnd) @@ -282,7 +325,12 @@ const handleQueuedInput = async (nextBlock: HTMLElement) => { const lines = queuedInput.split(/[\n\r]/) const firstNonBlank = lines.findIndex(_ => _.length > 0) - const nPrefixNewlines = firstNonBlank >= 0 ? firstNonBlank : lines.length === 0 ? -1 : lines.length + const nPrefixNewlines = + firstNonBlank >= 0 + ? firstNonBlank + : lines.length === 0 + ? -1 + : lines.length // handle prefix newlines for (let idx = 0; idx < nPrefixNewlines; idx++) { @@ -351,7 +399,10 @@ export const setStatus = (block: HTMLElement, status: string) => { } // add timestamp to prompt - element('.repl-prompt-timestamp', block).innerText = new Date().toLocaleTimeString() + element( + '.repl-prompt-timestamp', + block + ).innerText = new Date().toLocaleTimeString() // screenshot click handler element('.repl-prompt-right-element-icon', block).onclick = async event => { @@ -364,7 +415,10 @@ export const setStatus = (block: HTMLElement, status: string) => { const repl = await import('../core/repl') debug(`capturing screenshot for block ${N}`) - repl.qexec(`screenshot --nth ${N}`, undefined, undefined, { rethrowErrors: true, reportErrors: true }) + repl.qexec(`screenshot --nth ${N}`, undefined, undefined, { + rethrowErrors: true, + reportErrors: true + }) } } } @@ -373,14 +427,20 @@ export const setStatus = (block: HTMLElement, status: string) => { * * */ -export const ok = (parentNode: Element, suffix?: string | Element, css?: string) => { +export const ok = ( + parentNode: Element, + suffix?: string | Element, + css?: string +) => { const okLine = document.createElement('div') okLine.classList.add('ok-line') const replResultBlock = parentNode.parentNode.querySelector('.repl-result') const resultHasContent = replResultBlock.children.length > 0 if (resultHasContent) { - (replResultBlock.parentNode as Element).classList.add('repl-result-has-content') + ;(replResultBlock.parentNode as Element).classList.add( + 'repl-result-has-content' + ) } const ok = document.createElement('span') @@ -390,7 +450,11 @@ export const ok = (parentNode: Element, suffix?: string | Element, css?: string) if (suffix) { ok.classList.add('inline-ok') - okLine.appendChild(typeof suffix === 'string' ? document.createTextNode(` ${suffix}`) : suffix) + okLine.appendChild( + typeof suffix === 'string' + ? document.createTextNode(` ${suffix}`) + : suffix + ) } if (css) { @@ -402,9 +466,16 @@ export const ok = (parentNode: Element, suffix?: string | Element, css?: string) } /** plugins can register view handlers for a given type: string */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export type ViewHandler = (tab: Tab, response: Entity, resultDom: Element, parsedOptions: ParsedOptions, execOptions: ExecOptions) => Promise | void -interface ViewRegistrar { [key: string]: ViewHandler } +export type ViewHandler = ( + tab: Tab, + response: Entity, + resultDom: Element, + parsedOptions: ParsedOptions, + execOptions: ExecOptions +) => Promise | void // eslint-disable-line @typescript-eslint/no-explicit-any +interface ViewRegistrar { + [key: string]: ViewHandler +} /** * Register a renderer for a given kind[] @@ -428,19 +499,35 @@ export const registerEntityView = (kind: string, handler: ViewHandler) => { * Standard handling of Table responses * */ -const printTable = async (tab: Tab, response: Table, resultDom: HTMLElement, execOptions?: ExecOptions, parsedOptions?: ParsedOptions) => { +const printTable = async ( + tab: Tab, + response: Table, + resultDom: HTMLElement, + execOptions?: ExecOptions, + parsedOptions?: ParsedOptions +) => { // // some sort of list response; format as a table // const registeredListView = registeredListViews[response.type] if (registeredListView) { - await registeredListView(tab, response, resultDom, parsedOptions, execOptions) + await registeredListView( + tab, + response, + resultDom, + parsedOptions, + execOptions + ) return resultDom.children.length === 0 } - (resultDom.parentNode as HTMLElement).classList.add('result-as-table', 'result-as-vertical') + ;(resultDom.parentNode as HTMLElement).classList.add( + 'result-as-table', + 'result-as-vertical' + ) - if (response.noEntityColors) { // client wants control over entity-cell coloring + if (response.noEntityColors) { + // client wants control over entity-cell coloring resultDom.classList.add('result-table-with-custom-entity-colors') } @@ -464,8 +551,8 @@ export const streamTo = (tab: Tab, block: Element) => { const pre = document.createElement('pre') pre.classList.add('streaming-output') resultDom.appendChild(pre) - resultDom.setAttribute('data-stream', 'data-stream'); - (resultDom.parentNode as HTMLElement).classList.add('result-vertical') + resultDom.setAttribute('data-stream', 'data-stream') + ;(resultDom.parentNode as HTMLElement).classList.add('result-vertical') if (killLine && previousLine) { previousLine.parentNode.removeChild(previousLine) @@ -490,7 +577,9 @@ export const streamTo = (tab: Tab, block: Element) => { showCustom(tab, response, {}) } else { previousLine = document.createElement('div') - previousLine.innerText = isMessageBearingEntity(response) ? response.message : response.toString() + previousLine.innerText = isMessageBearingEntity(response) + ? response.message + : response.toString() pre.appendChild(previousLine) } @@ -499,7 +588,10 @@ export const streamTo = (tab: Tab, block: Element) => { } /** create a popup content container */ -export const createPopupContentContainer = (css: string[] = [], presentation?: Presentation): HTMLElement => { +export const createPopupContentContainer = ( + css: string[] = [], + presentation?: Presentation +): HTMLElement => { const container = document.createElement('div') container.classList.add('padding-content') @@ -532,10 +624,21 @@ interface PopupEntity { * Render popup content in the given container * */ -const renderPopupContent = (command: string, container: Element, execOptions: ExecOptions, entity: PopupEntity = {}) => { +const renderPopupContent = ( + command: string, + container: Element, + execOptions: ExecOptions, + entity: PopupEntity = {} +) => { debug('renderPopupContent', command, entity) - const { prettyType = '', modes = [], badges = [], controlHeaders = false, presentation = Presentation.SidecarFullscreenForPopups } = entity + const { + prettyType = '', + modes = [], + badges = [], + controlHeaders = false, + presentation = Presentation.SidecarFullscreenForPopups + } = entity // Last updated... text const subtext = document.createElement('div') @@ -546,7 +649,15 @@ const renderPopupContent = (command: string, container: Element, execOptions: Ex subtext.appendChild(date) const millisPerDay = 24 * 60 * 60 * 1000 - const midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0) + const midnight = new Date( + now.getFullYear(), + now.getMonth(), + now.getDate(), + 0, + 0, + 0, + 0 + ) const millisSinceMidnight = now.getTime() - midnight.getTime() const millisTillMidnight = millisPerDay - millisSinceMidnight @@ -564,8 +675,14 @@ const renderPopupContent = (command: string, container: Element, execOptions: Ex setTimeout(updateLastUpdateDateFirstTime, millisTillMidnight) if (container) { - if ((container.parentNode as HTMLElement).classList.contains('result-as-multi-table')) { - (container.parentNode.parentNode as HTMLElement).classList.add('overflow-auto') + if ( + (container.parentNode as HTMLElement).classList.contains( + 'result-as-multi-table' + ) + ) { + ;(container.parentNode.parentNode as HTMLElement).classList.add( + 'overflow-auto' + ) } const custom = { @@ -656,8 +773,12 @@ const setCaretPosition = (ctrl: HTMLInputElement, pos: number) => { range.select() } } -const setCaretPositionToEnd = (input: HTMLInputElement) => setCaretPosition(input, input.value.length) -const updateInputAndMoveCaretToEOL = (input: HTMLInputElement, newValue: string) => { +const setCaretPositionToEnd = (input: HTMLInputElement) => + setCaretPosition(input, input.value.length) +const updateInputAndMoveCaretToEOL = ( + input: HTMLInputElement, + newValue: string +) => { input.value = newValue setTimeout(() => setCaretPositionToEnd(input), 0) } @@ -671,12 +792,17 @@ export const listen = (prompt: HTMLInputElement) => { debug('listen', prompt, document.activeElement) prompt.readOnly = false - if (!prompt.classList.contains('sidecar-header-input') && !document.activeElement.classList.contains('grab-focus')) { + if ( + !prompt.classList.contains('sidecar-header-input') && + !document.activeElement.classList.contains('grab-focus') + ) { prompt.focus() } const grandparent = prompt.parentNode.parentNode as Element - grandparent.className = `${grandparent.getAttribute('data-base-class')} repl-active` + grandparent.className = `${grandparent.getAttribute( + 'data-base-class' + )} repl-active` prompt.onkeypress = async (event: KeyboardEvent) => { const char = event.keyCode @@ -687,7 +813,7 @@ export const listen = (prompt: HTMLInputElement) => { } } - prompt.onkeydown = async (event) => { + prompt.onkeydown = async event => { const char = event.keyCode if (char === keys.UP || (char === keys.P && event.ctrlKey)) { @@ -714,8 +840,10 @@ export const listen = (prompt: HTMLInputElement) => { } else if (char === keys.U && event.ctrlKey) { // clear line prompt.value = '' - } else if ((char === keys.L && (event.ctrlKey || (inElectron() && event.metaKey))) || - (process.platform === 'darwin' && char === keys.K && event.metaKey)) { + } else if ( + (char === keys.L && (event.ctrlKey || (inElectron() && event.metaKey))) || + (process.platform === 'darwin' && char === keys.K && event.metaKey) + ) { // clear screen; capture and restore the current // prompt value, in keeping with unix terminal // behavior @@ -725,17 +853,19 @@ export const listen = (prompt: HTMLInputElement) => { const current = getCurrentPrompt().value const repl = await import('../core/repl') const currentCursorPosition = getCurrentPrompt().selectionStart // also restore the cursor position - repl.pexec('clear') - .then(() => { - if (current) { - // restore the prompt value - getCurrentPrompt().value = current - - // restore the prompt cursor position - debug('restoring cursor position', currentCursorPosition) - getCurrentPrompt().setSelectionRange(currentCursorPosition, currentCursorPosition) - } - }) + repl.pexec('clear').then(() => { + if (current) { + // restore the prompt value + getCurrentPrompt().value = current + + // restore the prompt cursor position + debug('restoring cursor position', currentCursorPosition) + getCurrentPrompt().setSelectionRange( + currentCursorPosition, + currentCursorPosition + ) + } + }) } } else if (char === keys.HOME) { // go to first command in history @@ -756,10 +886,15 @@ export const listen = (prompt: HTMLInputElement) => { prompt.onpaste = paste } -export const popupListen = (text = getSidecar(getCurrentTab()).querySelector('.sidecar-header-text'), previousCommand?: string) => { +export const popupListen = ( + text = getSidecar(getCurrentTab()).querySelector('.sidecar-header-text'), + previousCommand?: string +) => { if (previousCommand) { // emit the previous command on the repl - const nameContainer = getSidecar(getCurrentTab()).querySelector('.sidecar-header-input') as HTMLInputElement + const nameContainer = getSidecar(getCurrentTab()).querySelector( + '.sidecar-header-input' + ) as HTMLInputElement nameContainer.value = previousCommand } @@ -771,18 +906,37 @@ export const popupListen = (text = getSidecar(getCurrentTab()).querySelector('.s * Render the results of a command evaluation in the "console" * */ -export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Tab, resultDom: HTMLElement, echo = true, execOptions?: ExecOptions, parsedOptions?: ParsedOptions, command?: string, evaluator?: CommandHandlerWithEvents) => (response: Entity) => { +export const printResults = ( + block: HTMLElement, + nextBlock: HTMLElement, + tab: Tab, + resultDom: HTMLElement, + echo = true, + execOptions?: ExecOptions, + parsedOptions?: ParsedOptions, + command?: string, + evaluator?: CommandHandlerWithEvents +) => (response: Entity) => { debug('printResults', response) // does the command handler want to be incognito in the UI? - const incognitoHint = evaluator && evaluator.options && evaluator.options.incognito && evaluator.options.incognito - const incognito = incognitoHint && isPopup() && incognitoHint.indexOf('popup') >= 0 + const incognitoHint = + evaluator && + evaluator.options && + evaluator.options.incognito && + evaluator.options.incognito + const incognito = + incognitoHint && isPopup() && incognitoHint.indexOf('popup') >= 0 const presentation = isCustomSpec(response) && response.presentation let customContainer: HTMLElement if (isPopup() && !incognito) { - resultDom = customContainer = createPopupContentContainer(['valid-response'], presentation || (!Array.isArray(response) && Presentation.SidecarFullscreenForPopups)) + resultDom = customContainer = createPopupContentContainer( + ['valid-response'], + presentation || + (!Array.isArray(response) && Presentation.SidecarFullscreenForPopups) + ) } if (process.env.KUI_TEE_TO_FILE) { @@ -824,7 +978,10 @@ export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Ta setStatus(block, 'valid-response') } - const render = async (response: Entity, { echo, resultDom }: { echo: boolean; resultDom: HTMLElement }) => { + const render = async ( + response: Entity, + { echo, resultDom }: { echo: boolean; resultDom: HTMLElement } + ) => { if (response && response !== true) { if (isTable(response)) { await printTable(tab, response, resultDom, execOptions, parsedOptions) @@ -836,42 +993,68 @@ export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Ta if (response.length > 0) { const registeredListView = registeredListViews[response[0].type] if (registeredListView) { - await registeredListView(tab, response, resultDom, parsedOptions, execOptions) + await registeredListView( + tab, + response, + resultDom, + parsedOptions, + execOptions + ) return resultDom.children.length === 0 } else { const rows = await formatListResult(tab, response) rows.map(row => resultDom.appendChild(row)) } } - } else if (isHTML(response)) { // TODO is this the best way to detect response is a dom?? + } else if (isHTML(response)) { + // TODO is this the best way to detect response is a dom?? // pre-formatted DOM element if (echo) { - resultDom.appendChild(response); - (resultDom.parentNode as HTMLElement).classList.add('result-vertical') + resultDom.appendChild(response) + ;(resultDom.parentNode as HTMLElement).classList.add( + 'result-vertical' + ) ok(resultDom.parentElement).classList.add('ok-for-list') } - } else if (isEntitySpec(response) && response.verb === 'list' && response[response.type] && typeof response[response.type] === 'number') { + } else if ( + isEntitySpec(response) && + response.verb === 'list' && + response[response.type] && + typeof response[response.type] === 'number' + ) { // maybe a list API returned a count? const span = document.createElement('span') span.innerText = response[response.type] - resultDom.appendChild(span); - (resultDom.parentNode as HTMLElement).classList.add('result-vertical') + resultDom.appendChild(span) + ;(resultDom.parentNode as HTMLElement).classList.add('result-vertical') ok(resultDom.parentElement).classList.add('ok-for-list') - } else if (typeof response === 'number' || typeof response === 'string' || - (isMessageBearingEntity(response))) { + } else if ( + typeof response === 'number' || + typeof response === 'string' || + isMessageBearingEntity(response) + ) { // if either the response is a string, or it's a non-entity (no response.type) and has a message field // then treat the response as a simple string response if (echo) { // wrap in a span so that drag text selection works; see shell issue #249 const span = document.createElement('pre') - span.innerText = isMessageBearingEntity(response) ? response.message : response.toString() - resultDom.appendChild(span); - (resultDom.parentNode as HTMLElement).classList.add('result-vertical') + span.innerText = isMessageBearingEntity(response) + ? response.message + : response.toString() + resultDom.appendChild(span) + ;(resultDom.parentNode as HTMLElement).classList.add( + 'result-vertical' + ) ok(resultDom.parentElement).classList.add('ok-for-list') } } else if (isCustomSpec(response)) { if (echo || (execOptions && execOptions.replSilence)) { - const presentation = await showCustom(tab, response, execOptions, customContainer) + const presentation = await showCustom( + tab, + response, + execOptions, + customContainer + ) if (!isPopup()) { ok(resultDom.parentElement) @@ -885,7 +1068,15 @@ export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Ta } } else if (registeredEntityViews[response.type]) { // there is a registered entity view handler for this response - if (await registeredEntityViews[response.type](tab, response, resultDom, parsedOptions, execOptions)) { + if ( + await registeredEntityViews[response.type]( + tab, + response, + resultDom, + parsedOptions, + execOptions + ) + ) { if (echo) ok(resultDom.parentElement) } @@ -895,14 +1086,30 @@ export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Ta if (echo) { // we want the 'ok:' part to appear even in popup mode if (response.type) { - ok(resultDom, `deleted ${response.type.replace(/s$/, '')} ${response.name}`, 'show-in-popup') + ok( + resultDom, + `deleted ${response.type.replace(/s$/, '')} ${response.name}`, + 'show-in-popup' + ) } else { ok(resultDom) } } - } else if (isEntitySpec(response) && (response.verb === 'get' || response.verb === 'create' || response.verb === 'update')) { + } else if ( + isEntitySpec(response) && + (response.verb === 'get' || + response.verb === 'create' || + response.verb === 'update') + ) { // get response? - const forRepl = showEntity(tab, response, Object.assign({}, execOptions || {}, { echo, show: response.show || 'default' })) + const forRepl = showEntity( + tab, + response, + Object.assign({}, execOptions || {}, { + echo, + show: response.show || 'default' + }) + ) // forRepl means: the sidecar wants to display something on the repl when it's done // it's either a promise or a DOM entry directly if (echo) { @@ -918,10 +1125,12 @@ export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Ta } else if (typeof response === 'object') { // render random json in the REPL directly const code = document.createElement('code') - code.appendChild(document.createTextNode(JSON.stringify(response, undefined, 4))) + code.appendChild( + document.createTextNode(JSON.stringify(response, undefined, 4)) + ) resultDom.appendChild(code) - setTimeout(() => hljs.highlightBlock(code), 0); - (resultDom.parentNode as HTMLElement).classList.add('result-vertical') + setTimeout(() => hljs.highlightBlock(code), 0) + ;(resultDom.parentNode as HTMLElement).classList.add('result-vertical') ok(resultDom.parentElement).classList.add('ok-for-list') } } else if (response) { @@ -932,15 +1141,22 @@ export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Ta let promise: Promise if (isMultiTable(response)) { - (resultDom.parentNode as HTMLElement).classList.add('result-as-table', 'result-as-multi-table', 'result-vertical') + ;(resultDom.parentNode as HTMLElement).classList.add( + 'result-as-table', + 'result-as-multi-table', + 'result-vertical' + ) if (response[0].flexWrap) { - (resultDom.parentNode as HTMLElement).classList.add('result-as-multi-table-flex-wrap') + ;(resultDom.parentNode as HTMLElement).classList.add( + 'result-as-multi-table-flex-wrap' + ) } // multi-table output; false means that the renderer hasn't placed // anything in the DOM; it's up to us here - promise = Promise.all(response.map(table => formatTable(tab, table, resultDom as HTMLElement))) - .then(() => false) + promise = Promise.all( + response.map(table => formatTable(tab, table, resultDom as HTMLElement)) + ).then(() => false) } else if (Array.isArray(response) && Array.isArray(response[0])) { /** * multi-table output; false means that the renderer hasn't placed @@ -967,7 +1183,7 @@ export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Ta * decorate it as a table * @deprecated in favor of new models/table.ts */ - (resultDom.parentNode as HTMLElement).classList.add('result-as-table') + ;(resultDom.parentNode as HTMLElement).classList.add('result-as-table') if (response.length > 0 && response[0].noEntityColors) { // client wants control over entity-cell coloring @@ -980,14 +1196,18 @@ export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Ta presentAs(tab, Presentation.FixedSize) } } else { - (resultDom.parentNode as HTMLElement).classList.add('result-as-multi-table') + ;(resultDom.parentNode as HTMLElement).classList.add( + 'result-as-multi-table' + ) if (response[0] && response[0][0] && response[0][0].flexWrap) { - (resultDom.parentNode as HTMLElement).classList.add('result-as-multi-table-flex-wrap') + ;(resultDom.parentNode as HTMLElement).classList.add( + 'result-as-multi-table-flex-wrap' + ) } } // say "ok" - (resultDom.parentNode as HTMLElement).classList.add('result-vertical') + ;(resultDom.parentNode as HTMLElement).classList.add('result-vertical') if (echo) { promise.then(() => { ok(resultDom.parentNode as Element).classList.add('ok-for-list') @@ -996,27 +1216,49 @@ export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Ta } promise.then(async (alreadyRendered: boolean) => { - if (isPopup() && ((Array.isArray(response) || (customContainer && customContainer.children.length > 0)) || (isCustomSpec(response) && response.presentation === Presentation.FixedSize))) { + if ( + isPopup() && + (Array.isArray(response) || + (customContainer && customContainer.children.length > 0) || + (isCustomSpec(response) && + response.presentation === Presentation.FixedSize)) + ) { if (!incognito) { // view modes - const modes = isEntitySpec(response) && + const modes = + isEntitySpec(response) && (response.modes || - (response[0] && response[0].modes) || - (response[0] && response[0][0] && response[0][0].modes)) + (response[0] && response[0].modes) || + (response[0] && response[0][0] && response[0][0].modes)) // entity type - const prettyType = isEntitySpec(response) && (response.type || response.kind || response.prettyType || response.prettyKind || (response[0] && response[0].title) || (response[0] && response[0][0] && response[0][0].title)) + const prettyType = + isEntitySpec(response) && + (response.type || + response.kind || + response.prettyType || + response.prettyKind || + (response[0] && response[0].title) || + (response[0] && response[0][0] && response[0][0].title)) // presentation mode - const presentation = (isCustomSpec(response) && response.presentation) || (prettyType && Array.isArray(response) && Presentation.FixedSize) || Presentation.SidecarFullscreenForPopups - - await renderPopupContent(command, alreadyRendered !== true && resultDom, execOptions, Object.assign({}, response, { - modes: modes || undefined, - prettyType, - badges: isCustomSpec(response) && response.badges, - controlHeaders: isEntitySpec(response) && response.controlHeaders, - presentation - })) + const presentation = + (isCustomSpec(response) && response.presentation) || + (prettyType && Array.isArray(response) && Presentation.FixedSize) || + Presentation.SidecarFullscreenForPopups + + await renderPopupContent( + command, + alreadyRendered !== true && resultDom, + execOptions, + Object.assign({}, response, { + modes: modes || undefined, + prettyType, + badges: isCustomSpec(response) && response.badges, + controlHeaders: isEntitySpec(response) && response.controlHeaders, + presentation + }) + ) } if (!incognito) { @@ -1030,7 +1272,11 @@ export const printResults = (block: HTMLElement, nextBlock: HTMLElement, tab: Ta return Promise.resolve() } -export const installBlock = (parentNode: Node, currentBlock: HTMLElement, nextBlock: HTMLElement) => async () => { +export const installBlock = ( + parentNode: Node, + currentBlock: HTMLElement, + nextBlock: HTMLElement +) => async () => { if (!nextBlock) return // error cases parentNode.appendChild(nextBlock) @@ -1041,7 +1287,9 @@ export const installBlock = (parentNode: Node, currentBlock: HTMLElement, nextBl } // the currentBlock might've been detached; if so, re-start from 0 - const currentIndex = currentBlock.parentNode ? parseInt(currentBlock.getAttribute('data-input-count'), 10) : -1 + const currentIndex = currentBlock.parentNode + ? parseInt(currentBlock.getAttribute('data-input-count'), 10) + : -1 nextBlock.setAttribute('data-input-count', (currentIndex + 1).toString()) installContext(nextBlock) @@ -1089,7 +1337,10 @@ export const doCancel = () => { * Paste a command, but do not eval it * */ -export const partial = (cmd: string, execOptions: ExecOptions = new DefaultExecOptions()) => { +export const partial = ( + cmd: string, + execOptions: ExecOptions = new DefaultExecOptions() +) => { const prompt = getCurrentPrompt() if (prompt) { debug('applying partial', cmd) @@ -1108,7 +1359,11 @@ export const partial = (cmd: string, execOptions: ExecOptions = new DefaultExecO * Handle command execution errors * */ -export const oops = (command: string, block?: HTMLElement, nextBlock?: HTMLElement) => async (err: Error | CodedError | UsageError) => { +export const oops = ( + command: string, + block?: HTMLElement, + nextBlock?: HTMLElement +) => async (err: Error | CodedError | UsageError) => { if (!block) return // we're not attached to a prompt right now if (!nextBlock) { @@ -1116,13 +1371,16 @@ export const oops = (command: string, block?: HTMLElement, nextBlock?: HTMLEleme nextBlock.querySelector('input').value = '' } - if (getPrompt(block).value === '') { // e.g. we want qexec with reportErrors:true show command in repl + if (getPrompt(block).value === '') { + // e.g. we want qexec with reportErrors:true show command in repl getPrompt(block).value = command } setStatus(block, 'error') - const resultDom = isPopup() ? createPopupContentContainer(['error']) : block.querySelector('.repl-result') + const resultDom = isPopup() + ? createPopupContentContainer(['error']) + : block.querySelector('.repl-result') const oopsDom = document.createElement('div') oopsDom.className = 'oops' resultDom.appendChild(oopsDom) @@ -1138,7 +1396,7 @@ export const oops = (command: string, block?: HTMLElement, nextBlock?: HTMLEleme // pre-rendered HTML oopsDom.classList.add('oops-as-html') oopsDom.appendChild(err.html) */ - /* } else if (err.message && err.message.then) { + /* } else if (err.message && err.message.then) { err.message.then(message => { err.message = message oops(command, block, nextBlock)(err) @@ -1158,7 +1416,10 @@ export const oops = (command: string, block?: HTMLElement, nextBlock?: HTMLEleme // add the http status code, if we have it (helps with testing) if (isCodedError(err)) { - oopsDom.setAttribute('data-status-code', (err.statusCode || err.code).toString()) + oopsDom.setAttribute( + 'data-status-code', + (err.statusCode || err.code).toString() + ) } else { oopsDom.setAttribute('data-status-code', '0') } @@ -1183,10 +1444,16 @@ export const oops = (command: string, block?: HTMLElement, nextBlock?: HTMLEleme return false } -export const showHelp = (command: string, block: HTMLElement, nextBlock: HTMLElement, error: Error) => { +export const showHelp = ( + command: string, + block: HTMLElement, + nextBlock: HTMLElement, + error: Error +) => { // if the message says command not found, then add on the "enter help to see your options" as a suffix const baseMessage = 'Enter help to see your options.' - if (error.message && error.message === 'Command not found') error.message += `\n${baseMessage}` + if (error.message && error.message === 'Command not found') + error.message += `\n${baseMessage}` return oops(command, block, nextBlock)(error) && false } @@ -1200,7 +1467,7 @@ interface RepromptSpec { reprompt?: boolean // recursively prompt? } -function isRequestingReprompt (spec: PromptCompleter): spec is RepromptSpec { +function isRequestingReprompt(spec: PromptCompleter): spec is RepromptSpec { return (spec as RepromptSpec).reprompt } @@ -1208,7 +1475,9 @@ interface PromptCompletionData { field: any // eslint-disable-line @typescript-eslint/no-explicit-any } -export type PromptCompletionHandler = (data: PromptCompletionData) => PromptCompleter +export type PromptCompletionHandler = ( + data: PromptCompletionData +) => PromptCompleter interface PromptOptions { dangerous?: boolean @@ -1222,7 +1491,14 @@ interface PromptOptions { * Prompt the user for information * */ -export const prompt = (msg: string, block: HTMLElement, nextBlock: HTMLElement, tab: Tab, options: PromptOptions, completion: PromptCompletionHandler) => { +export const prompt = ( + msg: string, + block: HTMLElement, + nextBlock: HTMLElement, + tab: Tab, + options: PromptOptions, + completion: PromptCompletionHandler +) => { debug('prompt', options) const selection = block.querySelector('.repl-selection') as HTMLElement @@ -1242,7 +1518,10 @@ export const prompt = (msg: string, block: HTMLElement, nextBlock: HTMLElement, promptDom.readOnly = false promptDom.value = '' - promptDom.setAttribute('placeholder', options.placeholder || `Enter your ${msg}`) + promptDom.setAttribute( + 'placeholder', + options.placeholder || `Enter your ${msg}` + ) // paste handlers if (options.onpaste === 'capture') { @@ -1313,13 +1592,17 @@ export const prompt = (msg: string, block: HTMLElement, nextBlock: HTMLElement, restorePrompt() return prompt(msg, block, nextBlock, tab, completer, completer.completion) } else { - completer.then(response => { - return printResults(block, nextBlock, tab, resultDom)(response) - }) + completer + .then(response => { + return printResults(block, nextBlock, tab, resultDom)(response) + }) .then(() => undefined) // so that restorePrompt sees no input on success .then(restorePrompt) .then(installBlock(block.parentNode, block, nextBlock)) // <-- create a new input, for the next iter of the Loop - .catch((err: Error) => { restorePrompt(); oops('', block, nextBlock)(err) }) + .catch((err: Error) => { + restorePrompt() + oops('', block, nextBlock)(err) + }) } } @@ -1338,8 +1621,13 @@ export const init = async (prefs = {}) => { if (isPopup()) { document.body.addEventListener('keydown', (event: KeyboardEvent) => { const char = event.keyCode - if (char === keys.L && (event.ctrlKey || (inElectron() && event.metaKey))) { - const input = getSidecar(getCurrentTab()).querySelector('.repl-input input') as HTMLInputElement + if ( + char === keys.L && + (event.ctrlKey || (inElectron() && event.metaKey)) + ) { + const input = getSidecar(getCurrentTab()).querySelector( + '.repl-input input' + ) as HTMLInputElement input.focus() input.setSelectionRange(0, input.value.length) } diff --git a/packages/app/src/webapp/electron-events.ts b/packages/app/src/webapp/electron-events.ts index ff49bbd94cf..4164e45bf8f 100644 --- a/packages/app/src/webapp/electron-events.ts +++ b/packages/app/src/webapp/electron-events.ts @@ -25,7 +25,7 @@ debug('loading') * Listen for the main process telling us to execute a command * */ -const listenForRemoteEvents = (ipcRenderer) => { +const listenForRemoteEvents = ipcRenderer => { debug('listenForRemoteEvents') if (inElectron() && ipcRenderer) { @@ -93,10 +93,10 @@ const listenForWindowEvents = (remote?) => { if (remote.getCurrentWindow().isFullScreen()) { document.body.classList.add('fullscreen') } - remote.getCurrentWindow().on('enter-full-screen', function () { + remote.getCurrentWindow().on('enter-full-screen', function() { document.body.classList.add('fullscreen') }) - remote.getCurrentWindow().on('leave-full-screen', function () { + remote.getCurrentWindow().on('leave-full-screen', function() { document.body.classList.remove('fullscreen') }) } @@ -121,29 +121,32 @@ const listenForTestEvents = (ipcRenderer?) => { * Send a synchronous message to the main process * */ -export const tellMain = (message, channel?) => new Promise(async (resolve, reject) => { - const electron = await import('electron') - const ipcRenderer = electron.ipcRenderer - - ipcRenderer[channel === 'asynchronous-message' ? 'send' : 'sendSync'](channel || 'synchronous-message', - typeof message === 'string' - ? JSON.stringify({ operation: message }) - : JSON.stringify(message)) - - if (channel === 'asynchronous-message') { - console.log('listening') - ipcRenderer.on('asynchronous-reply', (event, response) => { - console.log('got response', response) - if (response === 'true') { - resolve(true) - } else { - reject(response) - } - }) - } else { - resolve(true) - } -}) +export const tellMain = (message, channel?) => + new Promise(async (resolve, reject) => { + const electron = await import('electron') + const ipcRenderer = electron.ipcRenderer + + ipcRenderer[channel === 'asynchronous-message' ? 'send' : 'sendSync']( + channel || 'synchronous-message', + typeof message === 'string' + ? JSON.stringify({ operation: message }) + : JSON.stringify(message) + ) + + if (channel === 'asynchronous-message') { + console.log('listening') + ipcRenderer.on('asynchronous-reply', (event, response) => { + console.log('got response', response) + if (response === 'true') { + resolve(true) + } else { + reject(response) + } + }) + } else { + resolve(true) + } + }) // eslint-disable-next-line @typescript-eslint/no-unused-vars export const init = (prefs = {}) => { diff --git a/packages/app/src/webapp/keys.ts b/packages/app/src/webapp/keys.ts index 278ca763edb..4e3ef1440ab 100644 --- a/packages/app/src/webapp/keys.ts +++ b/packages/app/src/webapp/keys.ts @@ -44,6 +44,8 @@ export const keys = { export const isCursorMovement = (evt: KeyboardEvent): boolean => { const code = evt.keyCode - return evt.ctrlKey && + return ( + evt.ctrlKey && (code === keys.A || code === keys.E || code === keys.F || code === keys.B) + ) } diff --git a/packages/app/src/webapp/models/table.ts b/packages/app/src/webapp/models/table.ts index 8de97927d77..20267300413 100644 --- a/packages/app/src/webapp/models/table.ts +++ b/packages/app/src/webapp/models/table.ts @@ -45,7 +45,7 @@ export class Row { css?: string outerCSS?: string - constructor (row: Row) { + constructor(row: Row) { Object.assign(this, row) } } @@ -66,7 +66,7 @@ export class Cell { className?: string parent?: HTMLElement - constructor (cell: Cell) { + constructor(cell: Cell) { Object.assign(this, cell) } } @@ -103,7 +103,7 @@ export class Table { fontawesomeCSS?: string fontawesomeBalloon?: string - constructor (table: Table) { + constructor(table: Table) { Object.assign(this, table) } } @@ -111,27 +111,44 @@ export class Table { export interface WatchableTable extends Table, Watchable {} // eslint-disable-next-line @typescript-eslint/no-explicit-any -export function isTable (model: any): model is Table { - return model !== undefined && (model instanceof Table || (model as Table).body !== undefined) +export function isTable(model: any): model is Table { + return ( + model !== undefined && + (model instanceof Table || (model as Table).body !== undefined) + ) } // eslint-disable-next-line @typescript-eslint/no-explicit-any -export function isMultiTable (model: any): model is Table[] { - return model !== undefined && Array.isArray(model) && model.length > 0 && model.filter(m => !isTable(m)).length === 0 -} - -export function isWatchableTable (model: Table | WatchableTable): model is WatchableTable { - return model && isTable(model) && (model as Watchable).refreshCommand && (model as Watchable).watchByDefault !== undefined -} - -export function formatWatchableTable (model: Table | Table[], watch: Watchable) { +export function isMultiTable(model: any): model is Table[] { + return ( + model !== undefined && + Array.isArray(model) && + model.length > 0 && + model.filter(m => !isTable(m)).length === 0 + ) +} + +export function isWatchableTable( + model: Table | WatchableTable +): model is WatchableTable { + return ( + model && + isTable(model) && + (model as Watchable).refreshCommand && + (model as Watchable).watchByDefault !== undefined + ) +} + +export function formatWatchableTable(model: Table | Table[], watch: Watchable) { if (isTable(model)) { return Object.assign(model, watch) } else if (isMultiTable(model)) { model.forEach(table => Object.assign(table, watch)) } else { // TODO: we might need to consider the variance of model, throw error for now - throw new Error('models other than table(s) are not supported in watch mode yet') + throw new Error( + 'models other than table(s) are not supported in watch mode yet' + ) } } @@ -142,7 +159,7 @@ export class Icon { balloonLength?: string balloonPos?: string - constructor (icon: Icon) { + constructor(icon: Icon) { Object.assign(this, icon) } } @@ -172,22 +189,37 @@ export interface RowDiff { * diff two rows model * @param refreshRows is the rows model returned by refreshing */ -export function diffTableRows (existingRows: Row[], refreshRows: Row[]): RowDiff { +export function diffTableRows( + existingRows: Row[], + refreshRows: Row[] +): RowDiff { // find rows in the existing rows but not in the refreshed rows - const rowDeletion: RowDeletion[] = existingRows.map((row, index) => { return { deleteIndex: index, model: row } }) + const rowDeletion: RowDeletion[] = existingRows + .map((row, index) => { + return { deleteIndex: index, model: row } + }) .filter(_ => !refreshRows.find(row => row.name === _.model.name)) // find the rows whose name appear in both the existing and refreshed rows, but are different in nature - const rowUpdate: RowUpdate[] = refreshRows.filter(row => existingRows.some(_ => _.name === row.name)) + const rowUpdate: RowUpdate[] = refreshRows + .filter(row => existingRows.some(_ => _.name === row.name)) .map(row => { const index = existingRows.findIndex(_ => _.name === row.name) - const doUpdate = JSON.stringify(row) !== JSON.stringify(existingRows[index]) + const doUpdate = + JSON.stringify(row) !== JSON.stringify(existingRows[index]) if (doUpdate) return { updateIndex: index, model: row } - }).filter(x => x) + }) + .filter(x => x) // find the rows which are not in the existing rows, to get the insertion index, first concat with the existing rows, then sort - const rowInsertion: RowInsertion[] = sortBody(refreshRows.filter(row => !existingRows.some(_ => _.name === row.name)).concat(existingRows)) - .map((row, index) => { return { insertBeforeIndex: index + 1, model: row } }) + const rowInsertion: RowInsertion[] = sortBody( + refreshRows + .filter(row => !existingRows.some(_ => _.name === row.name)) + .concat(existingRows) + ) + .map((row, index) => { + return { insertBeforeIndex: index + 1, model: row } + }) .filter(row => !existingRows.some(_ => _.name === row.model.name)) return { rowUpdate, rowDeletion, rowInsertion } diff --git a/packages/app/src/webapp/picture-in-picture.ts b/packages/app/src/webapp/picture-in-picture.ts index 8dd4340ac7d..26f07e05b11 100644 --- a/packages/app/src/webapp/picture-in-picture.ts +++ b/packages/app/src/webapp/picture-in-picture.ts @@ -30,7 +30,9 @@ import bottomStripe = require('./bottom-stripe') const _highlight = (op: string) => (highlightThis?: Element | Element[]) => { if (highlightThis) { if (Array.isArray(highlightThis)) { - highlightThis.forEach(_ => _.classList[op]('picture-in-picture-highlight')) + highlightThis.forEach(_ => + _.classList[op]('picture-in-picture-highlight') + ) } else { highlightThis.classList[op]('picture-in-picture-highlight') } @@ -49,19 +51,36 @@ interface PipOptions { * Make an DOM event handler that will restore the given pippedContainer * */ -const restore = (tab: Tab, pippedContainer: boolean | Element, previousPresentation: Presentation, sidecarClass: string, capturedHeaders: CapturedHeader[], highlightThis: Element | Element[], escapeHandler: (evt: KeyboardEvent) => boolean, options?: PipOptions) => () => { +const restore = ( + tab: Tab, + pippedContainer: boolean | Element, + previousPresentation: Presentation, + sidecarClass: string, + capturedHeaders: CapturedHeader[], + highlightThis: Element | Element[], + escapeHandler: (evt: KeyboardEvent) => boolean, + options?: PipOptions +) => () => { debug('restore') const sidecar = getSidecar(tab) - const parent = (options && options.parent) || sidecar.querySelector('.custom-content') + const parent = + (options && options.parent) || sidecar.querySelector('.custom-content') if (pippedContainer !== true) { removeAllDomChildren(parent) } if (previousPresentation) { - debug('restoring presentation mode', previousPresentation, Presentation[previousPresentation].toString()) - document.body.setAttribute('data-presentation', Presentation[previousPresentation].toString()) + debug( + 'restoring presentation mode', + previousPresentation, + Presentation[previousPresentation].toString() + ) + document.body.setAttribute( + 'data-presentation', + Presentation[previousPresentation].toString() + ) } // restore escape handler @@ -90,7 +109,8 @@ const restore = (tab: Tab, pippedContainer: boolean | Element, previousPresentat // sidecar.classList.add('custom-content') // pippedContainer.classList.remove('picture-in-picture-stage1') if (pippedContainer !== true && pippedContainer !== false) { - if (pippedContainer.parentNode) pippedContainer.parentNode.removeChild(pippedContainer) + if (pippedContainer.parentNode) + pippedContainer.parentNode.removeChild(pippedContainer) parent.appendChild(pippedContainer) } // pippedContainer.onclick = null @@ -103,7 +123,15 @@ const restore = (tab: Tab, pippedContainer: boolean | Element, previousPresentat * * */ -const pip = (tab: Tab, container: boolean | Element, previousPresentation: Presentation, capturedHeaders: CapturedHeader[], highlightThis: Element | Element[], returnTo = 'previous view', options?: PipOptions) => { +const pip = ( + tab: Tab, + container: boolean | Element, + previousPresentation: Presentation, + capturedHeaders: CapturedHeader[], + highlightThis: Element | Element[], + returnTo = 'previous view', + options?: PipOptions +) => { try { if (container !== true && container !== false) { container.parentNode.removeChild(container) @@ -117,16 +145,29 @@ const pip = (tab: Tab, container: boolean | Element, previousPresentation: Prese const escapeHandler = undefined // we don't want to override the escape key behavior const backContainer = bottomStripe.css.backContainer(tab) const backButton = bottomStripe.css.backButton(tab) - const restoreFn = restore(tab, container, previousPresentation, sidecarClass, capturedHeaders, highlightThis, escapeHandler, options) + const restoreFn = restore( + tab, + container, + previousPresentation, + sidecarClass, + capturedHeaders, + highlightThis, + escapeHandler, + options + ) debug('returnTo', returnTo) backButton.setAttribute('data-balloon', `Return to ${returnTo}`) backContainer.classList.add('has-back-button') - backButton.addEventListener('click', () => { - restoreFn() - backContainer.classList.remove('has-back-button') - }, { once: true }) + backButton.addEventListener( + 'click', + () => { + restoreFn() + backContainer.classList.remove('has-back-button') + }, + { once: true } + ) return restoreFn } @@ -173,7 +214,11 @@ interface CapturedHeader { * Capture and clone the given selector * */ -const capture = (tab: Tab, selector: string, redraw?: Function): CapturedHeader => { +const capture = ( + tab: Tab, + selector: string, + redraw?: Function +): CapturedHeader => { const node = tab.querySelector(selector) return { selector, // remember how to find the replacement @@ -189,37 +234,72 @@ const capture = (tab: Tab, selector: string, redraw?: Function): CapturedHeader * */ type StringProducing = () => Promise -export default (tab: Tab, command: string | EntitySpec | StringProducing, highlightThis: Element | Element[], ccontainer: string | Element, returnTo?: string, options?: PipOptions) => (event?: Event) => { +export default ( + tab: Tab, + command: string | EntitySpec | StringProducing, + highlightThis: Element | Element[], + ccontainer: string | Element, + returnTo?: string, + options?: PipOptions +) => (event?: Event) => { if (event) event.stopPropagation() // maybe ccontainer is a query selector - const container = typeof ccontainer === 'string' ? document.querySelector(ccontainer) : ccontainer + const container = + typeof ccontainer === 'string' + ? document.querySelector(ccontainer) + : ccontainer debug('drilldown', command, container, returnTo) // capture the current header and other DOM state, before the `command` overwrites it const alreadyPipped = document.querySelector('body > .picture-in-picture') - const presentation: Presentation = document.body.getAttribute('data-presentation') && Presentation[document.body.getAttribute('data-presentation')] + const presentation: Presentation = + document.body.getAttribute('data-presentation') && + Presentation[document.body.getAttribute('data-presentation')] const capturedHeader = capture(tab, '.sidecar-header-text', popupListen) - const capturedHeader2 = capture(tab, '.header-right-bits .custom-header-content') + const capturedHeader2 = capture( + tab, + '.header-right-bits .custom-header-content' + ) const capturedHeader3 = capture(tab, '.header-right-bits .action-content') const capturedHeader4 = capture(tab, '.sidecar-header-icon') const capturedHeader5 = capture(tab, '.sidecar-header-secondary-content') // for the footer, we need to capture the modeButton renderer, so we can reattach the click events const modeButtons = bottomStripe.css.modeContainer(tab)['capture'] - const capturedFooter = capture(tab, bottomStripe.rawCSS.buttons, modeButtons && modeButtons()) + const capturedFooter = capture( + tab, + bottomStripe.rawCSS.buttons, + modeButtons && modeButtons() + ) debug('container', container) debug('alreadyPipped', alreadyPipped) debug('presentation', presentation) - const capturedHeaders = [ capturedHeader, capturedHeader2, capturedHeader3, capturedHeader4, capturedHeader5, capturedFooter ] + const capturedHeaders = [ + capturedHeader, + capturedHeader2, + capturedHeader3, + capturedHeader4, + capturedHeader5, + capturedFooter + ] // make the transition - const restoreFn = container && !alreadyPipped - ? pip(tab, container, presentation, capturedHeaders, highlightThis, returnTo, options) - : () => true + const restoreFn = + container && !alreadyPipped + ? pip( + tab, + container, + presentation, + capturedHeaders, + highlightThis, + returnTo, + options + ) + : () => true highlight(highlightThis) @@ -229,17 +309,23 @@ export default (tab: Tab, command: string | EntitySpec | StringProducing, highli if (typeof command === 'string') { debug('drilling down with string command') - const execOptions: ExecOptions = Object.assign({}, { - isDrilldown: true, - preserveBackButton: true, - rethrowErrors: true, - reportErrors: true - }, (options && options.execOptions) || {}) + const execOptions: ExecOptions = Object.assign( + {}, + { + isDrilldown: true, + preserveBackButton: true, + rethrowErrors: true, + reportErrors: true + }, + (options && options.execOptions) || {} + ) if (!options || options.exec === 'pexec') { return repl.pexec(command, execOptions).catch(restoreFn) } else { - return repl.qexec(command, undefined, undefined, execOptions).catch(restoreFn) + return repl + .qexec(command, undefined, undefined, execOptions) + .catch(restoreFn) } } else if (typeof command === 'function') { return command().catch(restoreFn) diff --git a/packages/app/src/webapp/prompt.ts b/packages/app/src/webapp/prompt.ts index bae599cace2..68b4155ff84 100644 --- a/packages/app/src/webapp/prompt.ts +++ b/packages/app/src/webapp/prompt.ts @@ -18,10 +18,13 @@ import { basename } from 'path' import { inElectron } from '../core/capabilities' -export function installContext (block: HTMLElement) { +export function installContext(block: HTMLElement) { if (inElectron()) { - const cwd = process.cwd() === process.env.HOME ? '~' : basename(process.cwd()) - const promptContextContainer = block.querySelector('.repl-context') as HTMLElement + const cwd = + process.cwd() === process.env.HOME ? '~' : basename(process.cwd()) + const promptContextContainer = block.querySelector( + '.repl-context' + ) as HTMLElement promptContextContainer.innerText = cwd } } diff --git a/packages/app/src/webapp/util/ascii-to-table.ts b/packages/app/src/webapp/util/ascii-to-table.ts index 076d0bf3c92..7dca70a7cbb 100644 --- a/packages/app/src/webapp/util/ascii-to-table.ts +++ b/packages/app/src/webapp/util/ascii-to-table.ts @@ -29,7 +29,11 @@ interface Pair { key: string value: string } -const split = (str: string, splits: number[], headerCells?: string[]): Pair[] => { +const split = ( + str: string, + splits: number[], + headerCells?: string[] +): Pair[] => { return splits.map((splitIndex, idx) => { return { key: headerCells && headerCells[idx], @@ -42,13 +46,13 @@ const split = (str: string, splits: number[], headerCells?: string[]): Pair[] => * Find the column splits * */ -export const preprocessTable = (raw: string[]): { rows?: Pair[][]; trailingString?: string }[] => { +export const preprocessTable = ( + raw: string[] +): { rows?: Pair[][]; trailingString?: string }[] => { debug('preprocessTable', raw) return raw.map(table => { - const header = table - .substring(0, table.indexOf('\n')) - .replace(/\t/g, ' ') + const header = table.substring(0, table.indexOf('\n')).replace(/\t/g, ' ') const headerCells = header .split(/(\t|\s\s)+\s?/) @@ -60,9 +64,8 @@ export const preprocessTable = (raw: string[]): { rows?: Pair[][]; trailingStrin const columnStarts: number[] = [] for (let idx = 0, jdx = 0; idx < headerCells.length; idx++) { - const { offset, prefix } = idx === 0 - ? { offset: 0, prefix: '' } - : { offset: 1, prefix: ' ' } + const { offset, prefix } = + idx === 0 ? { offset: 0, prefix: '' } : { offset: 1, prefix: ' ' } const newJdx = header.indexOf(prefix + headerCells[idx] + ' ', jdx) if (newJdx < 0) { @@ -89,14 +92,13 @@ export const preprocessTable = (raw: string[]): { rows?: Pair[][]; trailingStrin trailingString: table } } else { - const possibleRows = table - .split(/\n/) + const possibleRows = table.split(/\n/) debug('possibleRows', possibleRows) // look to see if any of the possibleRows violate the // columnStarts alignment; this is a good indication that the // possibleRows are not really rows of a table - const endOfTable = possibleRows.findIndex((row) => { + const endOfTable = possibleRows.findIndex(row => { const nope = columnStarts.findIndex(idx => { return idx > 0 && !/\s/.test(row[idx - 1]) }) @@ -105,14 +107,18 @@ export const preprocessTable = (raw: string[]): { rows?: Pair[][]; trailingStrin }) debug('endOfTable', endOfTable, possibleRows) - const rows = endOfTable === -1 ? possibleRows : possibleRows.slice(0, endOfTable) + const rows = + endOfTable === -1 ? possibleRows : possibleRows.slice(0, endOfTable) - const preprocessed = rows.map((line) => { - return split(line, columnStarts, headerCells) - }).filter(x => x) + const preprocessed = rows + .map(line => { + return split(line, columnStarts, headerCells) + }) + .filter(x => x) debug('preprocessed', preprocessed) - const trailingString = endOfTable !== -1 && possibleRows.slice(endOfTable).join('\n') + const trailingString = + endOfTable !== -1 && possibleRows.slice(endOfTable).join('\n') debug('trailingString', trailingString) return { @@ -157,7 +163,7 @@ export const outerCSSForKey = { AUTHINFO: 'entity-name-group entity-name-group-narrow hide-with-sidecar', // kubectl config get-contexts REFERENCE: 'entity-name-group entity-name-group-narrow hide-with-sidecar', // istio autoscaler - 'CREATED': 'hide-with-sidecar', + CREATED: 'hide-with-sidecar', 'CREATED AT': 'hide-with-sidecar', ID: 'max-width-id-like', @@ -209,8 +215,7 @@ const tagForKey = { STATUS: 'badge' } -const cssForKeyValue = { -} +const cssForKeyValue = {} /** decorate certain values specially */ export const cssForValue = { @@ -277,7 +282,13 @@ export const cssForValue = { * TODO factor out kube-specifics to plugin-k8s * */ -export const formatTable = (command: string, verb: string, entityType: string, options: ParsedOptions, lines: Pair[][]): Table => { +export const formatTable = ( + command: string, + verb: string, + entityType: string, + options: ParsedOptions, + lines: Pair[][] +): Table => { // for helm status, table clicks should dispatch to kubectl; // otherwise, stay with the command (kubectl or helm) that we // started with @@ -285,18 +296,22 @@ export const formatTable = (command: string, verb: string, entityType: string, o const drilldownCommand = isHelmStatus ? 'kubectl' : command const isKube = isKubeLike(drilldownCommand) - const drilldownVerb = ( - verb === 'get' ? 'get' - : command === 'helm' && (verb === 'list' || verb === 'ls') ? 'status' - : isHelmStatus ? 'get' : undefined - ) || undefined + const drilldownVerb = + (verb === 'get' + ? 'get' + : command === 'helm' && (verb === 'list' || verb === 'ls') + ? 'status' + : isHelmStatus + ? 'get' + : undefined) || undefined // helm doesn't support --output const drilldownFormat = isKube && drilldownVerb === 'get' ? '-o yaml' : '' - const drilldownNamespace = options.n || options.namespace - ? `-n ${repl.encodeComponent(options.n || options.namespace)}` - : '' + const drilldownNamespace = + options.n || options.namespace + ? `-n ${repl.encodeComponent(options.n || options.namespace)}` + : '' const config = options.config ? `--config ${repl.encodeComponent(options.config)}` @@ -314,12 +329,22 @@ export const formatTable = (command: string, verb: string, entityType: string, o } // maximum column count across all rows - const nameColumnIdx = Math.max(0, lines[0].findIndex(({ key }) => key === 'NAME')) - const namespaceColumnIdx = lines[0].findIndex(({ key }) => key === 'NAMESPACE') - const maxColumns = lines.reduce((max, columns) => Math.max(max, columns.length), 0) + const nameColumnIdx = Math.max( + 0, + lines[0].findIndex(({ key }) => key === 'NAME') + ) + const namespaceColumnIdx = lines[0].findIndex( + ({ key }) => key === 'NAMESPACE' + ) + const maxColumns = lines.reduce( + (max, columns) => Math.max(max, columns.length), + 0 + ) // e.g. Name: -> NAME - const keyForFirstColumn = lines[0][nameColumnIdx].key.replace(/:/g, '').toUpperCase() + const keyForFirstColumn = lines[0][nameColumnIdx].key + .replace(/:/g, '') + .toUpperCase() const allRows: Row[] = lines.map((columns, idx) => { const name = columns[nameColumnIdx].value @@ -327,8 +352,8 @@ export const formatTable = (command: string, verb: string, entityType: string, o const nameForDisplay = columns[0].value const nameForDrilldown = nameSplit[1] || name const css = '' - const firstColumnCSS = idx === 0 || columns[0].key !== 'CURRENT' - ? css : 'selected-entity' + const firstColumnCSS = + idx === 0 || columns[0].key !== 'CURRENT' ? css : 'selected-entity' const rowIsSelected = columns[0].key === 'CURRENT' && nameForDisplay === '*' const rowKey = columns[0].key @@ -340,31 +365,53 @@ export const formatTable = (command: string, verb: string, entityType: string, o // if there isn't a global namespace specifier, maybe there is a row namespace specifier // we use the row specifier in preference to a global specifier -- is that right? - const ns = (namespaceColumnIdx >= 0 && - command !== 'helm' && - `-n ${repl.encodeComponent(columns[namespaceColumnIdx].value)}`) || drilldownNamespace || '' + const ns = + (namespaceColumnIdx >= 0 && + command !== 'helm' && + `-n ${repl.encodeComponent(columns[namespaceColumnIdx].value)}`) || + drilldownNamespace || + '' // idx === 0: don't click on header row - const onclick = idx === 0 ? false - : drilldownVerb ? `${drilldownCommand} ${drilldownVerb}${drilldownKind(nameSplit)} ${repl.encodeComponent(nameForDrilldown)} ${drilldownFormat} ${ns} ${config}` + const onclick = + idx === 0 + ? false + : drilldownVerb + ? `${drilldownCommand} ${drilldownVerb}${drilldownKind( + nameSplit + )} ${repl.encodeComponent( + nameForDrilldown + )} ${drilldownFormat} ${ns} ${config}` : false - const attributes: Cell[] = columns.slice(1).map(({ key, value: column }, colIdx) => ({ - key, - tag: idx > 0 && tagForKey[key], - onclick: colIdx + 1 === nameColumnIdx && onclick, // see the onclick comment: above ^^^; +1 because of slice(1) - outerCSS: outerCSSForKey[key] + - (colIdx <= 1 || colIdx === nameColumnIdx - 1 || /STATUS/i.test(key) ? '' : ' hide-with-sidecar'), // nameColumnIndex - 1 beacuse of rows.slice(1) - css: css + - (column.length > 20 ? ' pretty-wide' : '') + - ' ' + ((idx > 0 && cssForKey[key]) || '') + ' ' + (cssForValue[column] || ''), - value: idx > 0 && /STATUS|STATE/i.test(key) ? capitalize(column) : column - })).concat(fillTo(columns.length, maxColumns)) + const attributes: Cell[] = columns + .slice(1) + .map(({ key, value: column }, colIdx) => ({ + key, + tag: idx > 0 && tagForKey[key], + onclick: colIdx + 1 === nameColumnIdx && onclick, // see the onclick comment: above ^^^; +1 because of slice(1) + outerCSS: + outerCSSForKey[key] + + (colIdx <= 1 || colIdx === nameColumnIdx - 1 || /STATUS/i.test(key) + ? '' + : ' hide-with-sidecar'), // nameColumnIndex - 1 beacuse of rows.slice(1) + css: + css + + (column.length > 20 ? ' pretty-wide' : '') + + ' ' + + ((idx > 0 && cssForKey[key]) || '') + + ' ' + + (cssForValue[column] || ''), + value: + idx > 0 && /STATUS|STATE/i.test(key) ? capitalize(column) : column + })) + .concat(fillTo(columns.length, maxColumns)) const row: Row = { key: keyForFirstColumn, name: nameForDisplay, - fontawesome: idx !== 0 && columns[0].key === 'CURRENT' && 'fas fa-network-wired', + fontawesome: + idx !== 0 && columns[0].key === 'CURRENT' && 'fas fa-network-wired', onclick: nameColumnIdx === 0 && onclick, // if the first column isn't the NAME column, no onclick; see onclick below css: firstColumnCSS, rowCSS, diff --git a/packages/app/src/webapp/util/ascii-to-usage.ts b/packages/app/src/webapp/util/ascii-to-usage.ts index ef7f4b16283..00c073373e6 100644 --- a/packages/app/src/webapp/util/ascii-to-usage.ts +++ b/packages/app/src/webapp/util/ascii-to-usage.ts @@ -29,8 +29,7 @@ interface Options { drilldownWithPip?: boolean stderr?: string | HTMLElement } -class DefaultOptions implements Options { -} +class DefaultOptions implements Options {} /** * Turn an array of strings into a table of command options; @@ -45,24 +44,30 @@ interface Pair { docs: string } const asciiToOptionsTable = (rows: string[]): Pair[] => { - const table = rows.map(line => { - const [command, docs] = line.split(/\s\s+/) + const table = rows + .map(line => { + const [command, docs] = line.split(/\s\s+/) - const aliases = command.split(/,\s*/) + const aliases = command.split(/,\s*/) - if (docs) { - return { - command: aliases[0], - aliases: aliases.length > 1 && aliases.slice(1), - docs + if (docs) { + return { + command: aliases[0], + aliases: aliases.length > 1 && aliases.slice(1), + docs + } } - } - }).filter(x => x) + }) + .filter(x => x) return table.length > 0 && table } -export const formatUsage = (command: string, str: string, options: Options = new DefaultOptions()): UsageError => { +export const formatUsage = ( + command: string, + str: string, + options: Options = new DefaultOptions() +): UsageError => { debug('raw', str) if (!matcher.test(str)) { debug('this does not look like a ASCII usage model') @@ -76,46 +81,51 @@ export const formatUsage = (command: string, str: string, options: Options = new debug('rows!', rows) if (rows.length > 2) { - const sections = rows - .slice(1) - .reduce((groups, row, idx, A) => { - const maybeHeader = row.match(sectionHeader) - debug('maybeHeader', row, maybeHeader, groups.length) - - if (maybeHeader) { - groups.push({ title: maybeHeader[1].toLowerCase(), rows: [] }) - } else if (groups.length > 0 && !doubleNewline.test(row)) { - if (idx > 0 && doubleNewline.test(A[idx - 1])) { - // a double newline with no maybeHeader... we still want - // to create a new group, even if we don't have a title - groups.push({ title: '', rows: [] }) - } - - const currentGroup = groups[groups.length - 1] - - debug('row', row, currentGroup.title, doubleNewline.test(A[idx - 1])) - currentGroup.rows = row - .split(/\n/) - .filter(x => x) - .map(line => line.trim()) + const sections = rows.slice(1).reduce((groups, row, idx, A) => { + const maybeHeader = row.match(sectionHeader) + debug('maybeHeader', row, maybeHeader, groups.length) + + if (maybeHeader) { + groups.push({ title: maybeHeader[1].toLowerCase(), rows: [] }) + } else if (groups.length > 0 && !doubleNewline.test(row)) { + if (idx > 0 && doubleNewline.test(A[idx - 1])) { + // a double newline with no maybeHeader... we still want + // to create a new group, even if we don't have a title + groups.push({ title: '', rows: [] }) } - return groups - }, []) + const currentGroup = groups[groups.length - 1] + + debug('row', row, currentGroup.title, doubleNewline.test(A[idx - 1])) + currentGroup.rows = row + .split(/\n/) + .filter(x => x) + .map(line => line.trim()) + } + + return groups + }, []) debug('sections', sections) if (sections.length > 0) { - const nameSectionIdx = sections.findIndex(({ title }) => /Name/i.test(title)) - const usageSectionIdx = sections.findIndex(({ title }) => /Usage/i.test(title)) + const nameSectionIdx = sections.findIndex(({ title }) => + /Name/i.test(title) + ) + const usageSectionIdx = sections.findIndex(({ title }) => + /Usage/i.test(title) + ) const rest = sections .filter((_, idx) => idx !== nameSectionIdx && idx !== usageSectionIdx) - .map(section => Object.assign(section, { - nRowsInViewport: section.title.match(/Commands/i) ? 12 : 4, // try to fit in standard window height; no biggie if we're off - rows: asciiToOptionsTable(section.rows) || section.rows.join('\n') - })) - - const header = nameSectionIdx >= 0 ? sections[nameSectionIdx].rows[0] : rows[0] + .map(section => + Object.assign(section, { + nRowsInViewport: section.title.match(/Commands/i) ? 12 : 4, // try to fit in standard window height; no biggie if we're off + rows: asciiToOptionsTable(section.rows) || section.rows.join('\n') + }) + ) + + const header = + nameSectionIdx >= 0 ? sections[nameSectionIdx].rows[0] : rows[0] const example = usageSectionIdx >= 0 && sections[usageSectionIdx].rows[0] debug('header', header, nameSectionIdx) debug('example', example, usageSectionIdx) @@ -130,16 +140,19 @@ export const formatUsage = (command: string, str: string, options: Options = new // NOTE: please keep the 'new RegExp' (rather than /.../) form // below; some browsers don't (yet?) support <= - const model = Object.assign({ - command: breadcrumbs.pop(), - parents: breadcrumbs, - commandPrefix: command.replace(new RegExp('(?<=\\s)--?\\w+'), ''), - commandSuffix: '--help', - header, - example, - sections: rest, - preserveCase: true - }, options) + const model = Object.assign( + { + command: breadcrumbs.pop(), + parents: breadcrumbs, + commandPrefix: command.replace(new RegExp('(?<=\\s)--?\\w+'), ''), + commandSuffix: '--help', + header, + example, + sections: rest, + preserveCase: true + }, + options + ) return new UsageError({ messageDom: options.stderr, usage: model }) } diff --git a/packages/app/src/webapp/util/dom.ts b/packages/app/src/webapp/util/dom.ts index e6aafb3ba8f..ed472a79c61 100644 --- a/packages/app/src/webapp/util/dom.ts +++ b/packages/app/src/webapp/util/dom.ts @@ -28,6 +28,9 @@ export const removeAllDomChildren = (node: Node) => { * Look up an HTML element * note: ParentNode is a common parent of Element and Document */ -export const element = (id: string, parent: ParentNode = document): HTMLElement => { +export const element = ( + id: string, + parent: ParentNode = document +): HTMLElement => { return parent.querySelector(id) as HTMLElement } diff --git a/packages/app/src/webapp/util/fetch-ui.ts b/packages/app/src/webapp/util/fetch-ui.ts index d04ec15a80d..495b491c136 100755 --- a/packages/app/src/webapp/util/fetch-ui.ts +++ b/packages/app/src/webapp/util/fetch-ui.ts @@ -76,41 +76,46 @@ const app = { * Wait for fetch to complete * */ -const waitForDone = (notifyOfProgress: boolean, stagingArea: string, doneLock: string) => new Promise((resolve, reject) => { - const iter = (idx: number, doneMessageNeeded = false) => { - debug('waiting for completion') - - try { - fs.stat(doneLock, (err, stats) => { - if (stats) { - const result = join(stagingArea, appDir, app[process.platform]) - debug('completed', result) - - if (notifyOfProgress && doneMessageNeeded) { - console.log(colors.green(' Done.')) // clear the waiting message with a newline - } +const waitForDone = ( + notifyOfProgress: boolean, + stagingArea: string, + doneLock: string +) => + new Promise((resolve, reject) => { + const iter = (idx: number, doneMessageNeeded = false) => { + debug('waiting for completion') - resolve(result) - } - if (err) { - if (notifyOfProgress) { - if (idx === 0) { - process.stdout.write('Waiting for UI components to download') - } else if (idx % 5 === 2) { - process.stdout.write('.') + try { + fs.stat(doneLock, (err, stats) => { + if (stats) { + const result = join(stagingArea, appDir, app[process.platform]) + debug('completed', result) + + if (notifyOfProgress && doneMessageNeeded) { + console.log(colors.green(' Done.')) // clear the waiting message with a newline } + + resolve(result) } + if (err) { + if (notifyOfProgress) { + if (idx === 0) { + process.stdout.write('Waiting for UI components to download') + } else if (idx % 5 === 2) { + process.stdout.write('.') + } + } - setTimeout(() => iter(idx + 1, idx === 0), 500) - } - }) - } catch (err) { - reject(err) + setTimeout(() => iter(idx + 1, idx === 0), 500) + } + }) + } catch (err) { + reject(err) + } } - } - iter(0) -}) + iter(0) + }) /** * Promisey mkdirp that handles EEXIST gracefully @@ -142,82 +147,107 @@ const mkdir = (filepath: string): Promise => { * download, or initiate a download * */ -const doneWaitOrFetch = (notifyOfProgress = false) => (stagingAreaBase: string) => new Promise((resolve, reject) => { - debug('doneWaitOrFetch', notifyOfProgress, stagingAreaBase) +const doneWaitOrFetch = (notifyOfProgress = false) => ( + stagingAreaBase: string +) => + new Promise((resolve, reject) => { + debug('doneWaitOrFetch', notifyOfProgress, stagingAreaBase) - if (!stagingAreaBase) { - return reject(new Error('no staging area specified')) - } - - const stagingArea = join(stagingAreaBase, version) - debug('stagingArea', stagingArea) + if (!stagingAreaBase) { + return reject(new Error('no staging area specified')) + } - const doneLock = join(stagingArea, 'fetch-ui.done') - const fetchLock = join(stagingArea, 'fetch-ui.lock') + const stagingArea = join(stagingAreaBase, version) + debug('stagingArea', stagingArea) - const handle = (err: Error) => { - console.error(err) - return fs.rmdir(fetchLock, () => { - return fs.rmdir(doneLock, () => { - reject(err) - }) - }) - } + const doneLock = join(stagingArea, 'fetch-ui.done') + const fetchLock = join(stagingArea, 'fetch-ui.lock') - debug('commencing') - mkdir(stagingArea).then(() => fs.stat(doneLock, (err, stats) => { - debug('doneLock stat', stats) - if (stats) { - // already fetched - debug('already fetched') - waitForDone(notifyOfProgress, stagingArea, doneLock).then(resolve, reject) - } - if (err) { - return fs.stat(fetchLock, (err, stats) => { - if (stats) { - // currently fetching - debug('currently fetching variant 1') - waitForDone(notifyOfProgress, stagingArea, doneLock).then(resolve, reject) - } - if (err) { - return fs.mkdir(fetchLock, err => { - if (err && err.code === 'EEXIST') { - // currently fetching - debug('currently fetching variant 2') - waitForDone(notifyOfProgress, stagingArea, doneLock).then(resolve, reject) - } else if (err) { - handle(err) - } else { - debug('need to fetch') - - const child = spawn('node', [join(__dirname, 'fetcher.js'), - stagingArea, - fetchLock, - doneLock, - url, - file - ], - { stdio: 'inherit', detached: true }) - child.on('close', (code) => { - debug('close', code) - if (code !== 0) { - handle(err) - } - }) - child.unref() - - debug('fetch initiated') - waitForDone(notifyOfProgress, stagingArea, doneLock).then(resolve, reject) - } - }) - } + const handle = (err: Error) => { + console.error(err) + return fs.rmdir(fetchLock, () => { + return fs.rmdir(doneLock, () => { + reject(err) + }) }) } - })).catch(reject) -}) + + debug('commencing') + mkdir(stagingArea) + .then(() => + fs.stat(doneLock, (err, stats) => { + debug('doneLock stat', stats) + if (stats) { + // already fetched + debug('already fetched') + waitForDone(notifyOfProgress, stagingArea, doneLock).then( + resolve, + reject + ) + } + if (err) { + return fs.stat(fetchLock, (err, stats) => { + if (stats) { + // currently fetching + debug('currently fetching variant 1') + waitForDone(notifyOfProgress, stagingArea, doneLock).then( + resolve, + reject + ) + } + if (err) { + return fs.mkdir(fetchLock, err => { + if (err && err.code === 'EEXIST') { + // currently fetching + debug('currently fetching variant 2') + waitForDone(notifyOfProgress, stagingArea, doneLock).then( + resolve, + reject + ) + } else if (err) { + handle(err) + } else { + debug('need to fetch') + + const child = spawn( + 'node', + [ + join(__dirname, 'fetcher.js'), + stagingArea, + fetchLock, + doneLock, + url, + file + ], + { stdio: 'inherit', detached: true } + ) + child.on('close', code => { + debug('close', code) + if (code !== 0) { + handle(err) + } + }) + child.unref() + + debug('fetch initiated') + waitForDone(notifyOfProgress, stagingArea, doneLock).then( + resolve, + reject + ) + } + }) + } + }) + } + }) + ) + .catch(reject) + }) export const fetch = doneWaitOrFetch(false) -export const watch = (stagingArea: string) => ({ wait: () => doneWaitOrFetch(true)(stagingArea) }) +export const watch = (stagingArea: string) => ({ + wait: () => doneWaitOrFetch(true)(stagingArea) +}) // if invoked from the CLI, all we do is call main if (require.main === module) { @@ -226,7 +256,8 @@ if (require.main === module) { const stagingAreaBase = process.argv[2] try { - watch(stagingAreaBase).wait() + watch(stagingAreaBase) + .wait() .then(() => { debug('done') }) diff --git a/packages/app/src/webapp/util/fetcher.ts b/packages/app/src/webapp/util/fetcher.ts index ba1e9e67a14..adde8899c03 100644 --- a/packages/app/src/webapp/util/fetcher.ts +++ b/packages/app/src/webapp/util/fetcher.ts @@ -27,90 +27,99 @@ import extract = require('extract-zip') * Initiate a fetch * */ -const fetchElectron = (stagingArea: string, url: string, file: string) => new Promise((resolve, reject) => { - const tmp = path.join(stagingArea, file) - const out = fs.createWriteStream(tmp) +const fetchElectron = (stagingArea: string, url: string, file: string) => + new Promise((resolve, reject) => { + const tmp = path.join(stagingArea, file) + const out = fs.createWriteStream(tmp) - debug('fetchElectron', tmp, url) + debug('fetchElectron', tmp, url) - needle - .get(url) - .pipe(out) - .on('error', (err: Error) => { - console.error(err) - reject(err) - }) - .on('finish', () => resolve(tmp)) -}) - -const fetchAndExtract = (stagingArea: string, fetchLock: string, doneLock: string, url: string, file: string) => fetchElectron(stagingArea, url, file).then(filepath => { - debug('fetchAndExtract extracting', filepath) - - const rm = (filepath: string) => new Promise((resolve, reject) => { - fs.unlink(filepath, err => { - if (err) { + needle + .get(url) + .pipe(out) + .on('error', (err: Error) => { + console.error(err) reject(err) - } else { - resolve() - } - }) - }) - const rmdir = (filepath: string) => new Promise((resolve, reject) => { - fs.rmdir(filepath, err => { - if (err) { - reject(err) - } else { - resolve() - } - }) + }) + .on('finish', () => resolve(tmp)) }) - const removeTemps = (result: string): Promise => Promise.all([rm(filepath), rmdir(fetchLock)]).then(() => result) - return new Promise((resolve, reject) => { - const done = () => { - fs.mkdir(doneLock, err => { - if (err) { - reject(err) - } else { - resolve(filepath) - } +const fetchAndExtract = ( + stagingArea: string, + fetchLock: string, + doneLock: string, + url: string, + file: string +) => + fetchElectron(stagingArea, url, file).then(filepath => { + debug('fetchAndExtract extracting', filepath) + + const rm = (filepath: string) => + new Promise((resolve, reject) => { + fs.unlink(filepath, err => { + if (err) { + reject(err) + } else { + resolve() + } + }) + }) + const rmdir = (filepath: string) => + new Promise((resolve, reject) => { + fs.rmdir(filepath, err => { + if (err) { + reject(err) + } else { + resolve() + } + }) }) - } + const removeTemps = (result: string): Promise => + Promise.all([rm(filepath), rmdir(fetchLock)]).then(() => result) - if (filepath.endsWith('.zip')) { - debug('extracting zip') + return new Promise((resolve, reject) => { + const done = () => { + fs.mkdir(doneLock, err => { + if (err) { + reject(err) + } else { + resolve(filepath) + } + }) + } - extract(filepath, { dir: stagingArea }, (err: Error) => { - if (err) { - console.error(err) - reject(new Error(`error unzipping ${err}`)) - } else { - done() - } - }) - } else { - debug('extracting tarball') + if (filepath.endsWith('.zip')) { + debug('extracting zip') - const child = spawn('tar', ['jxf', filepath], { cwd: stagingArea, - stdio: 'inherit' }) - child.on('close', (code, signal) => { - if (code !== 0) { - reject(new Error(`error untarring ${code} ${signal}`)) - } else { - done() - } - }) - } - }).then(removeTemps, removeTemps) -}) + extract(filepath, { dir: stagingArea }, (err: Error) => { + if (err) { + console.error(err) + reject(new Error(`error unzipping ${err}`)) + } else { + done() + } + }) + } else { + debug('extracting tarball') + + const child = spawn('tar', ['jxf', filepath], { + cwd: stagingArea, + stdio: 'inherit' + }) + child.on('close', (code, signal) => { + if (code !== 0) { + reject(new Error(`error untarring ${code} ${signal}`)) + } else { + done() + } + }) + } + }).then(removeTemps, removeTemps) + }) const stagingArea = process.argv[2] const fetchLock = process.argv[3] const doneLock = process.argv[4] const url = process.argv[5] const file = process.argv[6] -fetchAndExtract(stagingArea, - fetchLock, - doneLock, - url, - file) +fetchAndExtract(stagingArea, fetchLock, doneLock, url, file) diff --git a/packages/app/src/webapp/util/inject.ts b/packages/app/src/webapp/util/inject.ts index 134b92b9589..90b2a74cb90 100644 --- a/packages/app/src/webapp/util/inject.ts +++ b/packages/app/src/webapp/util/inject.ts @@ -28,10 +28,12 @@ interface StylesheetFile { path: string key: string } -function isAStylesheetDirect (object: StylesheetSpec): object is StylesheetDirect { +function isAStylesheetDirect( + object: StylesheetSpec +): object is StylesheetDirect { return typeof object !== 'string' && 'css' in object && 'key' in object } -function isAStylesheetFile (object: StylesheetSpec): object is StylesheetFile { +function isAStylesheetFile(object: StylesheetSpec): object is StylesheetFile { return typeof object !== 'string' && 'path' in object && 'key' in object } @@ -51,9 +53,10 @@ export const injectCSS = (file: StylesheetSpec): void => { const contentType = 'text/css' const rel = 'stylesheet' - const id = isAStylesheetDirect(file) || isAStylesheetFile(file) - ? `injected-css-${file.key}` - : `injected-css-${file}` + const id = + isAStylesheetDirect(file) || isAStylesheetFile(file) + ? `injected-css-${file.key}` + : `injected-css-${file}` if (!document.getElementById(id)) { // this will be either a