BigPizzaV3/CodexPlusPlus · error

theme.css 使用了未注册的 Skin API part 或状态

Error message

theme.css 使用了未注册的 Skin API part 或状态

What it means

Registry guard in parse_safe_css: the part extracted from a [data-ds-part="…"] selector is not in allowed_parts, or the suffix uses a state/pseudo not registered. Selectors must reference parts and states the Skin API actually exposes.

Source

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

            })
        {
            bail!("theme.css 选择器或规则语法无效");
        }
        let close = open
            + 1
            + rest[open + 1..]
                .find('}')
                .context("theme.css 规则缺少结束括号")?;
        let Some(after_prefix) = selector.strip_prefix("[data-ds-part=\"") else {
            bail!("theme.css 只能选择 Skin API 注册的 data-ds-part");
        };
        let (part, suffix) = after_prefix
            .split_once("\"]")
            .context("theme.css data-ds-part 语法无效")?;
        if !allowed_parts.contains(&part)
            || (!suffix.is_empty() && suffix != ":hover" && suffix != ":focus-visible")
        {
            bail!("theme.css 使用了未注册的 Skin API part 或状态");
        }

        let mut rule_declarations = Vec::new();
        let mut seen = HashSet::new();
        for declaration in rest[open + 1..close]
            .split(';')
            .map(str::trim)
            .filter(|value| !value.is_empty())
        {
            let (property, value) = declaration
                .split_once(':')
                .context("theme.css 声明语法无效")?;
            let property = property.trim();
            let value = value.trim();
            if !property
                .bytes()
                .enumerate()
                .all(|(index, byte)| byte.is_ascii_lowercase() || (index > 0 && byte == b'-'))

View on GitHub (pinned to f2074595a2)

Solutions

  1. Use only part names from the Skin API's registered list
  2. Remove unsupported state suffixes or pseudo-classes
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/codex-plus-core/src/dream_skin_package.rs:337 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/2194a9c2b10842b7. Report an issue: GitHub.