Skip to content

Commit cc1374f

Browse files
committed
Merge main
2 parents 0678fd2 + 184c480 commit cc1374f

37 files changed

+335
-388
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: Marketplace Feedback
2+
description: Report issues or suggest improvements for marketplace items (custom modes and MCP servers)
3+
labels: ["marketplace"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
**Thanks for your feedback!** Please check existing issues first: https://github.com/RooCodeInc/Roo-Code/issues
9+
10+
- type: dropdown
11+
id: feedback-type
12+
attributes:
13+
label: What kind of feedback?
14+
options:
15+
- Problem with existing marketplace item
16+
- Suggestion for new custom mode
17+
- Suggestion for new MCP server
18+
- General marketplace issue
19+
validations:
20+
required: true
21+
22+
- type: dropdown
23+
id: item-type
24+
attributes:
25+
label: Item Type (if applicable)
26+
options:
27+
- Custom Mode
28+
- MCP Server
29+
- Marketplace UI/Functionality
30+
- Not Applicable
31+
validations:
32+
required: false
33+
34+
- type: input
35+
id: item-name
36+
attributes:
37+
label: Item Name (if applicable)
38+
placeholder: e.g., "Debug Mode", "Weather API Server", "Code Formatter"
39+
40+
- type: textarea
41+
id: description
42+
attributes:
43+
label: Description
44+
description: What's the issue or what would you like to see?
45+
placeholder: Clear description of the problem or suggestion
46+
validations:
47+
required: true
48+
49+
- type: textarea
50+
id: additional-info
51+
attributes:
52+
label: Additional Details (optional)
53+
description: Steps to reproduce, expected behavior, screenshots, etc.
54+
placeholder: Any other helpful information
55+
56+
- type: checkboxes
57+
id: checklist
58+
attributes:
59+
label: Checklist
60+
options:
61+
- label: I've searched existing issues for duplicates
62+
required: true

packages/evals/src/cli/runTask.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,8 +294,8 @@ export const runTask = async ({ run, task, publish, logger }: RunTaskOptions) =>
294294
data: {
295295
configuration: {
296296
...EVALS_SETTINGS,
297-
...run.settings,
298297
openRouterApiKey: process.env.OPENROUTER_API_KEY,
298+
...run.settings, // Allow the provided settings to override `openRouterApiKey`.
299299
},
300300
text: prompt,
301301
newTab: true,

packages/types/src/experiment.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import type { Keys, Equals, AssertEqual } from "./type-fu.js"
66
* ExperimentId
77
*/
88

9-
export const experimentIds = ["powerSteering", "concurrentFileReads", "disableCompletionCommand", "marketplace", "multiFileApplyDiff"] as const
9+
export const experimentIds = ["powerSteering", "disableCompletionCommand", "marketplace", "multiFileApplyDiff"] as const
1010

1111
export const experimentIdsSchema = z.enum(experimentIds)
1212

@@ -17,11 +17,10 @@ export type ExperimentId = z.infer<typeof experimentIdsSchema>
1717
*/
1818

1919
export const experimentsSchema = z.object({
20-
powerSteering: z.boolean(),
21-
marketplace: z.boolean(),
22-
concurrentFileReads: z.boolean(),
23-
disableCompletionCommand: z.boolean(),
24-
multiFileApplyDiff: z.boolean(),
20+
powerSteering: z.boolean().optional(),
21+
disableCompletionCommand: z.boolean().optional(),
22+
marketplace: z.boolean().optional(),
23+
multiFileApplyDiff: z.boolean().optional(),
2524
})
2625

2726
export type Experiments = z.infer<typeof experimentsSchema>

src/core/prompts/__tests__/__snapshots__/system.spec.ts.snap

Lines changed: 52 additions & 52 deletions
Large diffs are not rendered by default.

src/core/prompts/tools/read-file.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ToolArgs } from "./types"
22

33
export function getReadFileDescription(args: ToolArgs): string {
4-
const maxConcurrentReads = args.settings?.maxConcurrentFileReads ?? 15
4+
const maxConcurrentReads = args.settings?.maxConcurrentFileReads ?? 5
55
const isMultipleReadsEnabled = maxConcurrentReads > 1
66

77
return `## read_file

src/core/webview/ClineProvider.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1436,7 +1436,7 @@ export class ClineProvider
14361436
language: language ?? formatLanguage(vscode.env.language),
14371437
renderContext: this.renderContext,
14381438
maxReadFileLine: maxReadFileLine ?? -1,
1439-
maxConcurrentFileReads: maxConcurrentFileReads ?? 15,
1439+
maxConcurrentFileReads: maxConcurrentFileReads ?? 5,
14401440
settingsImportedAt: this.settingsImportedAt,
14411441
terminalCompressProgressBar: terminalCompressProgressBar ?? true,
14421442
hasSystemPromptOverride,
@@ -1586,12 +1586,7 @@ export class ClineProvider
15861586
telemetrySetting: stateValues.telemetrySetting || "unset",
15871587
showRooIgnoredFiles: stateValues.showRooIgnoredFiles ?? true,
15881588
maxReadFileLine: stateValues.maxReadFileLine ?? -1,
1589-
maxConcurrentFileReads: experiments.isEnabled(
1590-
stateValues.experiments ?? experimentDefault,
1591-
EXPERIMENT_IDS.CONCURRENT_FILE_READS,
1592-
)
1593-
? (stateValues.maxConcurrentFileReads ?? 15)
1594-
: 1,
1589+
maxConcurrentFileReads: stateValues.maxConcurrentFileReads ?? 5,
15951590
historyPreviewCollapsed: stateValues.historyPreviewCollapsed ?? false,
15961591
cloudUserInfo,
15971592
cloudIsAuthenticated,

src/services/mcp/McpHub.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import {
3131
} from "../../shared/mcp"
3232
import { fileExistsAtPath } from "../../utils/fs"
3333
import { arePathsEqual } from "../../utils/path"
34-
import { injectEnv } from "../../utils/config"
34+
import { injectVariables } from "../../utils/config"
3535

3636
export type McpConnection = {
3737
server: McpServer
@@ -572,8 +572,11 @@ export class McpHub {
572572

573573
let transport: StdioClientTransport | SSEClientTransport | StreamableHTTPClientTransport
574574

575-
// Inject environment variables to the config
576-
const configInjected = (await injectEnv(config)) as typeof config
575+
// Inject variables to the config (environment, magic variables,...)
576+
const configInjected = (await injectVariables(config, {
577+
env: process.env,
578+
workspaceFolder: vscode.workspace.workspaceFolders?.[0]?.uri.fsPath ?? "",
579+
})) as typeof config
577580

578581
if (configInjected.type === "stdio") {
579582
transport = new StdioClientTransport({

src/shared/ExtensionMessage.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import type {
55
HistoryItem,
66
ModeConfig,
77
TelemetrySetting,
8-
ExperimentId,
8+
Experiments,
99
ClineMessage,
1010
OrganizationAllowList,
1111
CloudUserInfo,
@@ -208,7 +208,7 @@ export type ExtensionState = Pick<
208208
showRooIgnoredFiles: boolean // Whether to show .rooignore'd files in listings
209209
maxReadFileLine: number // Maximum number of lines to read from a file before truncating
210210

211-
experiments: Record<ExperimentId, boolean> // Map of experiment IDs to their enabled state
211+
experiments: Experiments // Map of experiment IDs to their enabled state
212212

213213
mcpEnabled: boolean
214214
enableMcpServerCreation: boolean

src/shared/__tests__/experiments.spec.ts

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ describe("experiments", () => {
2828
const experiments: Record<ExperimentId, boolean> = {
2929
powerSteering: false,
3030
marketplace: false,
31-
concurrentFileReads: false,
3231
disableCompletionCommand: false,
3332
multiFileApplyDiff: false,
3433
}
@@ -39,7 +38,6 @@ describe("experiments", () => {
3938
const experiments: Record<ExperimentId, boolean> = {
4039
powerSteering: true,
4140
marketplace: false,
42-
concurrentFileReads: false,
4341
disableCompletionCommand: false,
4442
multiFileApplyDiff: false,
4543
}
@@ -50,34 +48,11 @@ describe("experiments", () => {
5048
const experiments: Record<ExperimentId, boolean> = {
5149
powerSteering: false,
5250
marketplace: false,
53-
concurrentFileReads: false,
5451
disableCompletionCommand: false,
5552
multiFileApplyDiff: false,
5653
}
5754
expect(Experiments.isEnabled(experiments, EXPERIMENT_IDS.POWER_STEERING)).toBe(false)
5855
})
59-
60-
it("returns false when CONCURRENT_FILE_READS experiment is not enabled", () => {
61-
const experiments: Record<ExperimentId, boolean> = {
62-
powerSteering: false,
63-
marketplace: false,
64-
concurrentFileReads: false,
65-
disableCompletionCommand: false,
66-
multiFileApplyDiff: false,
67-
}
68-
expect(Experiments.isEnabled(experiments, EXPERIMENT_IDS.CONCURRENT_FILE_READS)).toBe(false)
69-
})
70-
71-
it("returns true when CONCURRENT_FILE_READS experiment is enabled", () => {
72-
const experiments: Record<ExperimentId, boolean> = {
73-
powerSteering: false,
74-
marketplace: false,
75-
concurrentFileReads: true,
76-
disableCompletionCommand: false,
77-
multiFileApplyDiff: false,
78-
}
79-
expect(Experiments.isEnabled(experiments, EXPERIMENT_IDS.CONCURRENT_FILE_READS)).toBe(true)
80-
})
8156
})
8257
describe("MARKETPLACE", () => {
8358
it("is configured correctly", () => {
@@ -93,7 +68,6 @@ describe("experiments", () => {
9368
const experiments: Record<ExperimentId, boolean> = {
9469
powerSteering: false,
9570
marketplace: false,
96-
concurrentFileReads: false,
9771
disableCompletionCommand: false,
9872
multiFileApplyDiff: false,
9973
}
@@ -104,7 +78,6 @@ describe("experiments", () => {
10478
const experiments: Record<ExperimentId, boolean> = {
10579
powerSteering: false,
10680
marketplace: true,
107-
concurrentFileReads: false,
10881
disableCompletionCommand: false,
10982
multiFileApplyDiff: false,
11083
}
@@ -114,7 +87,6 @@ describe("experiments", () => {
11487
it("returns false when MARKETPLACE experiment is not present", () => {
11588
const experiments: Record<ExperimentId, boolean> = {
11689
powerSteering: false,
117-
concurrentFileReads: false,
11890
// marketplace missing
11991
} as any
12092
expect(Experiments.isEnabled(experiments, EXPERIMENT_IDS.MARKETPLACE)).toBe(false)

src/shared/experiments.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import type { AssertEqual, Equals, Keys, Values, ExperimentId } from "@roo-code/types"
1+
import type { AssertEqual, Equals, Keys, Values, ExperimentId, Experiments } from "@roo-code/types"
22

33
export const EXPERIMENT_IDS = {
44
MARKETPLACE: "marketplace",
5-
CONCURRENT_FILE_READS: "concurrentFileReads",
65
MULTI_FILE_APPLY_DIFF: "multiFileApplyDiff",
76
DISABLE_COMPLETION_COMMAND: "disableCompletionCommand",
87
POWER_STEERING: "powerSteering",
@@ -18,7 +17,6 @@ interface ExperimentConfig {
1817

1918
export const experimentConfigsMap: Record<ExperimentKey, ExperimentConfig> = {
2019
MARKETPLACE: { enabled: false },
21-
CONCURRENT_FILE_READS: { enabled: false },
2220
MULTI_FILE_APPLY_DIFF: { enabled: false },
2321
DISABLE_COMPLETION_COMMAND: { enabled: false },
2422
POWER_STEERING: { enabled: false },
@@ -33,6 +31,5 @@ export const experimentDefault = Object.fromEntries(
3331

3432
export const experiments = {
3533
get: (id: ExperimentKey): ExperimentConfig | undefined => experimentConfigsMap[id],
36-
isEnabled: (experimentsConfig: Record<ExperimentId, boolean>, id: ExperimentId) =>
37-
experimentsConfig[id] ?? experimentDefault[id],
34+
isEnabled: (experimentsConfig: Experiments, id: ExperimentId) => experimentsConfig[id] ?? experimentDefault[id],
3835
} as const

0 commit comments

Comments
 (0)