Fix shellv2 history loading and ordering#1924
Conversation
- Modify `tavern/internal/http/shell/handler.go` to invoke `pollForShellTasks` immediately upon WebSocket connection, ensuring history is sent without waiting for the first polling tick. - Add `.Order(shelltask.ByCreatedAt(sql.OrderAsc()))` to the shell task query to ensure history is replayed in the correct chronological order. - Add `TestShellHistory_Interactive` integration test to verify that shell history is received immediately even when an active portal is present. Co-authored-by: KCarretto <16250309+KCarretto@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
Summary
Previous Results
Insights
Slowest Tests
🎉 No failed tests in this run. | 🍂 No flaky tests in this run. Github Test Reporter by CTRF 💚 |
This PR fixes an issue where shell history was not displayed or was delayed when connecting to a ShellV2 session, particularly in interactive mode.
Changes:
pollForShellTasksfunction is now called once before the main event loop inwriteMessagesFromShell. This ensures that any existing shell tasks (history) are fetched and sent to the client immediately upon connection, rather than waiting for the first ticker event (which could be delayed or skipped in interactive mode).created_atin ascending order. This guarantees that the command history is displayed in the correct sequence.TestShellHistory_Interactivehas been added totavern/internal/http/shell/integration_test.go. This test verifies that a client connecting to a shell with existing history receives that history immediately, even if the shell is in interactive mode (active portal).Verification:
go test -v tavern/internal/http/shell/integration_test.goand verified that the new test case passes, along with existing tests.PR created automatically by Jules for task 10825082860140443234 started by @KCarretto