You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Top-level roles: is still documented and schema-typed as a valid frontmatter field, but the parser (extractRoles()) only honors on.roles — a top-level roles: field is silently ignored, and the workflow falls back to the default roles [admin, maintainer, write] with no warning or validation error. A workflow author setting top-level roles: (following current docs/schema) would get materially different access control than intended, with no signal that anything is wrong.
Evidence
pkg/workflow/role_checks.go:134-150 (extractRoles()) only reads on.roles, not top-level roles:.
pkg/workflow/extract_roles_test.go covers the on.roles path but not a top-level-roles-is-ignored case.
Problem
Top-level
roles:is still documented and schema-typed as a valid frontmatter field, but the parser (extractRoles()) only honorson.roles— a top-levelroles:field is silently ignored, and the workflow falls back to the default roles[admin, maintainer, write]with no warning or validation error. A workflow author setting top-levelroles:(following current docs/schema) would get materially different access control than intended, with no signal that anything is wrong.Evidence
pkg/workflow/role_checks.go:134-150(extractRoles()) only readson.roles, not top-levelroles:.pkg/workflow/extract_roles_test.gocovers theon.rolespath but not a top-level-roles-is-ignored case.rolesfrom top-level frontmatter toon.roles#16606 / [CI Failure Doctor] Allow top-level roles in schema #16674 already moved the canonical location toon.rolesat the implementation level, but the docs/schema/validation surface wasn't fully cleaned up — this is a residual gap, not a re-report of the original migration.Suggested action
Pick one:
roles:is present, pointing the author toon.roles, orroles:from the docs/schema entirely if it's fully superseded.Silent fallback to defaults is the risky middle ground and should be eliminated either way.
Acceptance criteria
roles:either produces a clear validation error/warning, or the field is removed from docs/schema.roles-is-ignored (or now-rejected) case.Warning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
api.anthropic.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See 网络 Configuration for more information.