BigPizzaV3/CodexPlusPlus · error

manifest.capabilities 无效或缺少 safe-css 能力

Error message

manifest.capabilities 无效或缺少 safe-css 能力

What it means

Thrown by validate_manifest when the capabilities array is empty, has more than 3 entries, contains duplicates, lists a capability other than background/tokens/safe-css, or omits the mandatory "safe-css" entry. The offending input is manifest.capabilities; safe-css is required because every Dream Skin theme is compiled through the Safe CSS pipeline.

Source

Thrown at crates/codex-plus-core/src/dream_skin_package.rs:948

            .platforms
            .iter()
            .any(|item| !matches!(item.as_str(), "macos" | "windows"))
    {
        bail!("manifest.platforms 无效");
    }
    if !manifest.platforms.iter().any(|item| item == platform) {
        bail!("主题包不支持当前平台:{platform}");
    }
    if manifest.capabilities.is_empty()
        || manifest.capabilities.len() > 3
        || has_duplicates(&manifest.capabilities)
        || manifest
            .capabilities
            .iter()
            .any(|item| !matches!(item.as_str(), "background" | "tokens" | "safe-css"))
        || !manifest.capabilities.iter().any(|item| item == "safe-css")
    {
        bail!("manifest.capabilities 无效或缺少 safe-css 能力");
    }
    if !safe_manifest_text(&manifest.publisher.display_name, 1, 80, false)
        || manifest.publisher.id.is_empty()
        || manifest.publisher.id.len() > 64
        || !manifest
            .publisher
            .id
            .bytes()
            .all(|byte| byte.is_ascii_alphanumeric() || matches!(byte, b'_' | b'-'))
        || manifest.license.is_empty()
        || manifest.license.len() > 64
        || !manifest.license.bytes().enumerate().all(|(index, byte)| {
            byte.is_ascii_alphanumeric()
                || (index > 0 && matches!(byte, b' ' | b'.' | b'+' | b'(' | b')' | b'-'))
        })
        || !safe_manifest_text(&manifest.provenance.summary, 1, 500, true)
    {
        bail!("manifest 发布者、许可证或来源说明为空");

View on GitHub (pinned to f2074595a2)

Solutions

  1. 声明 capabilities 为 background/tokens/safe-css 的子集且必含 safe-css
  2. 去掉未知能力项和重复项
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/codex-plus-core/src/dream_skin_package.rs:948 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BigPizzaV3/CodexPlusPlus@f2074595a2 (2026-08-23). Data as JSON: /api/errors/f131366318a9d26a. Report an issue: GitHub.