Skip to content

Conversation

@cte
Copy link
Collaborator

@cte cte commented Oct 6, 2025

Important

Add isCloudAgent flag to identify cloud tasks in the extension bridge system.

  • Behavior:
    • Add isCloudAgent flag to CloudService to identify cloud tasks.
    • Set isCloudAgent to true if StaticTokenAuthService is used in CloudService.
  • Bridge System:
    • Add isCloudAgent to BaseChannelOptions and BridgeOrchestratorOptions.
    • Pass isCloudAgent to ExtensionChannel and TaskChannel constructors.
  • Models:
    • Add isCloudAgent to ExtensionInstance schema in cloud.ts.
  • Tests:
    • Update ExtensionChannel.test.ts and TaskChannel.test.ts to include isCloudAgent flag.

This description was created by Ellipsis for ffa5bb7. You can customize this summary. It will automatically update as commits are pushed.

@cte cte requested review from jr and mrubens as code owners October 6, 2025 18:46
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Oct 6, 2025
@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Oct 6, 2025
@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Oct 6, 2025
Copy link
Contributor

@roomote roomote bot left a comment

Choose a reason for hiding this comment

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

I found some issues that need attention.

private readonly instanceId: string
private readonly appProperties: StaticAppProperties
private readonly gitProperties?: GitProperties
private readonly isCloudAgent?: boolean
Copy link
Contributor

Choose a reason for hiding this comment

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

[P0] Type mismatch can break build: isCloudAgent is declared as optional on the class (boolean | undefined) but passed to ExtensionChannel/TaskChannel which require a boolean. This allows undefined to flow into a non-optional parameter and will fail type-checking under strictNullChecks. Recommend aligning the class property with the options type: make it non-optional.

Suggested change
private readonly isCloudAgent?: boolean
private readonly isCloudAgent: boolean

this.socketBridgeUrl = options.socketBridgeUrl
this.token = options.token
this.provider = options.provider
this.instanceId = options.sessionId || crypto.randomUUID()
Copy link
Contributor

Choose a reason for hiding this comment

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

[P3] Minor cleanup: sessionId is now required in BridgeOrchestratorOptions, but the constructor still falls back to crypto.randomUUID(). Since callers must provide sessionId, the fallback is redundant. Consider simplifying to direct assignment for clarity.

Suggested change
this.instanceId = options.sessionId || crypto.randomUUID()
this.instanceId = options.sessionId

Copy link
Contributor

@roomote roomote bot left a comment

Choose a reason for hiding this comment

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

I found some issues that need attention.

modes: z.array(z.object({ slug: z.string(), name: z.string() })).optional(),
providerProfile: z.string().optional(),
providerProfiles: z.array(z.object({ name: z.string(), provider: z.string().optional() })).optional(),
isCloudAgent: z.boolean().optional(),
Copy link
Contributor

Choose a reason for hiding this comment

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

[P2] Schema default improves robustness: if older clients omit this field, downstream code can always rely on a concrete boolean. Suggest defaulting to false so the property is present after parsing even when not sent.

Suggested change
isCloudAgent: z.boolean().optional(),
isCloudAgent: z.boolean().optional().default(false),

lastHeartbeat: Date.now(),
task: { taskId: "", taskStatus: TaskStatus.None },
taskHistory: [],
isCloudAgent: this.isCloudAgent,
Copy link
Contributor

Choose a reason for hiding this comment

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

[P3] Durability: you set isCloudAgent on initial registration, but updateInstance relies on spreading the prior object to retain it. To make it future‑proof against refactors that rebuild the object, consider explicitly setting isCloudAgent: this.isCloudAgent inside updateInstance as well.

@cte cte merged commit b011b63 into main Oct 9, 2025
12 checks passed
@cte cte deleted the cte/identify-cloud-tasks branch October 9, 2025 03:54
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Oct 9, 2025
@github-project-automation github-project-automation bot moved this from Triage to Done in Roo Code Roadmap Oct 9, 2025
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Oct 9, 2025
* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (