BigPizzaV3/CodexPlusPlus · error
theme.css 包含不允许的控制字符、注释或转义
Error message
theme.css 包含不允许的控制字符、注释或转义
What it means
Character guard in parse_safe_css: the stylesheet contains a character rejected by forbidden_css_character (control characters), CSS comments (/* */), or backslash escapes. The Safe CSS subset is deliberately comment- and escape-free so the compiled output is fully predictable.
Source
Thrown at crates/codex-plus-core/src/dream_skin_package.rs:285
}
#[derive(Debug)]
struct SafeCssRule<'a> {
selector: &'a str,
part: &'a str,
declarations: Vec<(&'a str, &'a str)>,
}
fn parse_safe_css(css: &str) -> anyhow::Result<Vec<SafeCssRule<'_>>> {
if css.is_empty() || css.len() > CSS_LIMIT {
bail!("theme.css 为空或超过 256 KiB 限制");
}
if css.chars().any(forbidden_css_character)
|| css.contains("/*")
|| css.contains("*/")
|| css.contains('\\')
{
bail!("theme.css 包含不允许的控制字符、注释或转义");
}
let allowed_parts = [
"root",
"sidebar",
"main",
"header",
"home",
"home-hero",
"project-list",
"thread",
"message",
"composer",
"composer-toolbar",
"dialog",
];
let mut parsed = Vec::new();
let mut declarations = 0usize;
let mut rest = css;View on GitHub (pinned to f2074595a2)
Solutions
- Strip comments, backslash escapes, and control characters from theme.css
- Use only plain ASCII-safe declarations
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/codex-plus-core/src/dream_skin_package.rs:285 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/068e3da5d5b55c7f.
Report an issue: GitHub.