Improve mobile dispatch and transcript logs#6
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the mobile user experience for CloudCode by streamlining session dispatch and overhauling the logging system. It introduces a faster 'Send' option for initiating tasks, alongside a more robust and readable 'Transcript' view that supports pagination and deduplication. The dashboard layout has been optimized for mobile, prioritizing active sessions and clarifying interaction flows. These changes aim to make remote agent management more intuitive and efficient, particularly on smaller screens. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This is a substantial pull request that significantly enhances the mobile user experience and the durability of session logs. The introduction of a "Send" flow for quick task dispatch is a great UX improvement. The overhaul of the transcript system, with paginated loading, deduplication of terminal noise, and a more readable format, is a major technical upgrade. Refactoring the complex transcript parsing logic into its own module (readable-transcript.ts) with dedicated tests is a commendable improvement for maintainability. The UI changes on the dashboard and session creation pages make the distinction between quick dispatch and full session setup much clearer. The two minor suggestions I have are related to improving error visibility for background tasks by logging caught exceptions instead of swallowing them silently. Overall, this is an excellent set of changes that greatly improves the product.
backend/src/sessions/service.ts
Outdated
| } | ||
| const recorder = await sidecarManager.openStream(sessionName, 160, 48, { | ||
| onOutput: ({ text }) => { | ||
| void appendTranscript(sessionId, text).catch(() => {}); |
There was a problem hiding this comment.
Silently swallowing errors from appendTranscript can make debugging difficult if transcript recording fails. While transcript recording is best-effort, logging the error would provide visibility into potential issues (e.g., disk space, permissions) without crashing the main process.
| void appendTranscript(sessionId, text).catch(() => {}); | |
| void appendTranscript(sessionId, text).catch((err) => { console.error(`Failed to append transcript for session ${sessionId}:`, err); }); |
backend/src/terminal/routes.ts
Outdated
| onOutput: ({ text, dataBase64 }) => { | ||
| void appendTranscript(session.id, text).catch(() => {}); | ||
| if (session && !isMirrorOnly && !hasTranscriptRecorder(session.id)) { | ||
| void appendTranscript(session.id, text).catch(() => {}); |
There was a problem hiding this comment.
Similar to the main transcript recorder, this fallback mechanism for appending to the transcript silently swallows errors. It would be beneficial to log any errors that occur here to aid in debugging potential transcript issues, without interrupting the websocket stream.
| void appendTranscript(session.id, text).catch(() => {}); | |
| void appendTranscript(session.id, text).catch((err) => { console.error(`[WS Fallback] Failed to append transcript for session ${session.id}:`, err); }); |
Summary
This PR reshapes CloudCode into a cleaner mobile control surface for managing multiple coding agents.
Dispatch and session launch
Sendflow for quick task dispatch from the dashboard.Createas the deliberate full-setup path.Dashboard UX
Transcript and logs
Mirror/live session handling
Live Sessionsfor clarity.Documentation
Verification
npm test --workspace=backendnpm run build --workspace=frontendNotes
c3ec9b6(Log transcript append failures)improve-mobile-dispatch-transcript