Skip to content

Fix display of Assist command executions with empty output#27010

Merged
justinas merged 5 commits intomasterfrom
justinas/assist-fix-output-display
May 30, 2023
Merged

Fix display of Assist command executions with empty output#27010
justinas merged 5 commits intomasterfrom
justinas/assist-fix-output-display

Conversation

@justinas
Copy link
Copy Markdown
Contributor

@justinas justinas commented May 26, 2023

Partially addresses https://github.com/gravitational/teleport.e/issues/1454 .

After live execution

Screenshot 2023-05-26 at 16 43 07

Coming back to the conversation (when history is fetched)

Screenshot 2023-05-26 at 16 34 26

Now also improved to display when the command exited with a status code (previously said "no output" with no indication that the command failed). This only applies when returning to a previous conversation.
Screenshot 2023-05-29 at 15 26 25

@justinas justinas changed the base branch from branch/v12 to master May 26, 2023 13:29
@justinas justinas force-pushed the justinas/assist-fix-output-display branch from cc5eb64 to 3c46f28 Compare May 26, 2023 13:36
@justinas justinas changed the title Justinas/assist fix output display Fix display of Assist command executions with empty output May 26, 2023
@justinas justinas force-pushed the justinas/assist-fix-output-display branch from 3c46f28 to 44991a6 Compare May 26, 2023 13:49
@justinas justinas marked this pull request as ready for review May 26, 2023 13:50
@github-actions github-actions Bot requested review from avatus and ravicious May 26, 2023 13:51
@justinas justinas requested a review from ryanclark May 29, 2023 12:32
Copy link
Copy Markdown
Member

@ryanclark ryanclark left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice one

@justinas justinas added this pull request to the merge queue May 30, 2023
Copy link
Copy Markdown
Contributor

@gzdunek gzdunek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With one comment.

Comment on lines +273 to +274
{props.state.stdout !== undefined &&
(props.state.stdout === '' ? (
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So if stdout is undefined we want to show <NodeContent>?

IMO it should be !props.state.stdout
It checks for undefined or empty value.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, this works well in practice. Unless I'm misreading the parentheses/ternaries, this is equivalent to:

if (props.state.stdout !== undefined) {
  if (props.state.stdout === '')
    return "Empty output";
  }
  return <NodeOutput>...</NodeOutput>
} else {
  // props.state.stdout === undefined, display nothing
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't notice the parentheses 🤦‍♂️
Sorry for the noise.

@gzdunek gzdunek removed this pull request from the merge queue due to a manual request May 30, 2023
@gzdunek
Copy link
Copy Markdown
Contributor

gzdunek commented May 30, 2023

@justinas I'm not sure about one thing, I allowed myself to remove the PR from queue.

@justinas justinas added this pull request to the merge queue May 30, 2023
Merged via the queue into master with commit c5d2a94 May 30, 2023
@justinas justinas deleted the justinas/assist-fix-output-display branch May 30, 2023 18:37
@public-teleport-github-review-bot
Copy link
Copy Markdown

@justinas See the table below for backport results.

Branch Result
branch/v12 Failed

jakule pushed a commit that referenced this pull request Jun 2, 2023
* Fix display of Assist executions with empty output

* Lint

* Nit

* Improve display of commands that failed with code

* Address lint
jakule added a commit that referenced this pull request Jun 3, 2023
* Assist - API implementation (#25810)

* Assist - API implementation

* Add Assistant CRUD test

* Move assistant API to a separate file.

* Rename GRPC methods
Fix comments

* Address PR comments

* Update GRPC API - addressing code review comments

* Move assist API to a new GRPC service

* Add Assistant RBAC rules to this backport.

* Add missing license

* Update comment.

* Move username and ID out of AssistantMessage (#25964)

* Move username and ID out of AssistantMessage

#25810 added username and conversation ID to AssistantMessage. They aren't needed inside the message and can be moved out of it.
This PR also fixes ` grpc: error while marshaling: proto: Marshal called with nil` in `CreateAssistantMessage`.

Note: It's safe to change protobuf numbers as this code hasn't been released or backported yet.

* Fix test

* make grpc

* Assist - Configuration and usage (#25953)

* Assist - Configuration and usage

* Add network config test

* Add config test

* Run GCI

* Address review comments

* Assist - OpenAI library port (#25948)

* Assist - OpenAI library port

* Add tests

* Address code review comments

* Added comment

* Partial backport of #26058

* Move AI messages to a new file

* Prevent blocking on error

* Add comments.
Fix typo

* Assist - Execution web endpoint (#25955)

* Assist - Execution web endpoint

* Add test
Clean up code a bit

* Add missing username

* Address review comments

* Make more implementation shared between Terminal and Command Web Handlers

* Address review comments

* Address review comments

* Fixes after rebase
Add comments

* Add comments
Fix linter

* Add TELEPORT to Teleport related environment variable.

* Assist - Web endpoints (#26046)

* Assist - Web endpoints

* GCI

* proto rpc

* enforce endpoint checks

* disable in ui if disallowed by auth

* add comment

* unwrap stack

* Refactor code

---------

Co-authored-by: Joel Wejdenstål <jwejdenstal@icloud.com>

* [Assist] Fix random user selection (#26183)

Currently, after selecting a user for command execution in Teleport Assist the user can randomly change. This PR fixes this behavior.

* Add rate limiting to Assist (#26011)

* Add rate limiting to Assist

* Only rate limit Assist in Cloud

* Add a comment to assistantLimiter

* Fixes after rebase

* Add 'rate-limited' test case to assistant_test

* Handle CHAT_MESSAGE_UI in Assist web UI

* Add godoc

* CHAT_MESSAGE_UI -> CHAT_MESSAGE_ERROR

* Run assistant test cases in parallel

* Rename `ChatGPT` to `GPT-4` (#26272)

* Rename `ChatGPT` to `GPT4`

ChatGPT is a user friendly name, but is technically inaccurate.

* Apply suggestions from code review

Co-authored-by: Reed Loden <reed@goteleport.com>

* Lint fix

* Additional ChatGPT --> OpenAI GPT-4 fixes

---------

Co-authored-by: Reed Loden <reed@goteleport.com>

* Fix Assist rate-limiting in Cloud (#26342)

When Proxy is separate from Auth,
Proxy 'modules' will not contain meaningful data.
Instead, one must use ClusterFeatures fetched from the Auth server

* Assist UI improvements (#26365)

* Update assist warning wording, add link to ToS (#26396)

* Always render the portal for the assist title to go into (#26733)

* Stop using TokenPath for API key in Assist (#26671)

* [Assist] MFA support (#26719)

* Initial support for MFA in Assist

* UI webauth handler

* WebUI - WIP

* Run prettier

* Perform MFA ceremony only once.

* Cleanup JS

* Remove hacky WS logic

* Add cancel MFA logic

* [Assist] Prevent creating messages without conversation (#26797)

* Add parallel execution to assist. (#26563)

* Add parallel execution to assist.

* Extract execution logic to a new function.

* Add test

* Switch uber to std

* Address code review comments

* Fix display of Assist command executions with empty output (#27010)

* Fix display of Assist executions with empty output

* Lint

* Nit

* Improve display of commands that failed with code

* Address lint

* [Assist] Allow removing assist conversations (#26788)

* [Assist] Allow removing assist conversations

* Display landing page after the conversion is removed

* Improve styling and add a confirmation dialog

* Change the icon opacity to copy the main navigation

* Remove unused minus icon

* Add missing trace.wrap

---------

Co-authored-by: Ryan Clark <ryan.clark@goteleport.com>

* Backport fixes

* Regenerate go.sum to make the linter happy.

* Sync files after rebase

* After rebase fixes

---------

Co-authored-by: Joel Wejdenstål <jwejdenstal@icloud.com>
Co-authored-by: Justinas Stankevičius <justinas@users.noreply.github.com>
Co-authored-by: Mike Jensen <jentfoo@users.noreply.github.com>
Co-authored-by: Reed Loden <reed@goteleport.com>
Co-authored-by: Ryan Clark <ryan.clark@goteleport.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants