BigPizzaV3/CodexPlusPlus · error

manifest.files 数量无效

Error message

manifest.files 数量无效

What it means

Thrown by validate_manifest when the manifest.files array is empty or otherwise fails its count/shape limits. The offending input is manifest.files — the file inventory that later SHA-256/size verification iterates; an invalid inventory means there is nothing consistent to verify the package contents against.

Source

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

        || 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 发布者、许可证或来源说明为空");
    }
    if manifest
        .key_id
        .as_deref()
        .is_some_and(|key| !valid_key_id(key))
        || !valid_rfc3339(&manifest.created_at)
    {
        bail!("manifest keyId 或 createdAt 无效");
    }
    if manifest.files.len() < 2 || manifest.files.len() > 8 {
        bail!("manifest.files 数量无效");
    }
    Ok(())
}

fn validate_theme(
    theme: &Value,
    manifest: &DreamSkinPackageManifest,
    image_name: &str,
) -> anyhow::Result<()> {
    let object = theme.as_object().context("theme.json 必须是对象")?;
    const REQUIRED: &[&str] = &["schemaVersion", "id", "name", "image"];
    const OPTIONAL: &[&str] = &[
        "brandSubtitle",
        "tagline",
        "projectPrefix",
        "projectLabel",
        "statusText",
        "quote",

View on GitHub (pinned to f2074595a2)

Solutions

  1. 把 files 精简为包内实际存在的白名单文件
  2. 检查是否重复声明了文件
Defensive patterns

Strategy: validation

When it happens

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