fix: make content optional in RuleFile schema definition

The content property in RuleFile is now optional, matching the
defensive runtime check in CustomModesManager that handles missing
content. Only relativePath remains required.
This commit is contained in:
Roo Code 2026-02-27 22:14:43 +00:00
parent d399085caf
commit 70db387a69
2 changed files with 21 additions and 3 deletions

View file

@ -51,7 +51,7 @@
"RuleFile": {
"type": "object",
"description": "A rules file associated with a mode, used during import/export.",
"required": ["relativePath", "content"],
"required": ["relativePath"],
"additionalProperties": false,
"properties": {
"relativePath": {

View file

@ -352,7 +352,25 @@ describe("roomodes JSON schema", () => {
expect(valid).toBe(true)
})
it("should reject rulesFiles entries missing required fields", () => {
it("should accept rulesFiles entries with only relativePath (content is optional)", () => {
const config = {
customModes: [
{
slug: "path-only-rules",
name: "Path Only Rules",
roleDefinition: "A mode with rules files that only have relativePath.",
groups: ["read"],
rulesFiles: [{ relativePath: "rule1.md" }],
},
],
}
const valid = validate(config)
expect(validate.errors).toBeNull()
expect(valid).toBe(true)
})
it("should reject rulesFiles entries missing required relativePath", () => {
const config = {
customModes: [
{
@ -360,7 +378,7 @@ describe("roomodes JSON schema", () => {
name: "Bad Rules",
roleDefinition: "A mode with invalid rules files.",
groups: ["read"],
rulesFiles: [{ relativePath: "rule1.md" }],
rulesFiles: [{ content: "some content" }],
},
],
}