Summary
The Issue area labeler workflow fails on every new issue because .github/issue-labeler.yml uses (?i) inline case-insensitive groups, which JavaScript RegExp (used by the github/issue-labeler action) does not support. The action throws SyntaxError: Invalid group on the first rule and no area labels are ever applied.
Failure
Run: https://github.com/DeusData/codebase-memory-mcp/actions/runs/28579100257
Triggered by: issues event (filing #763)
Job: triage → github/issue-labeler@c1b0f9f
Conclusion: failure
Log tail:
Configuration file (path: .github/issue-labeler.yml) does not exist locally, fetching via the API
##[error]SyntaxError: Invalid regular expression: /(?i)\b(windows|win\s?1[01]|powershell|\.ps1|mapped drive|smb share|unc path)\b/: Invalid group
Root cause
.github/issue-labeler.yml — all 7 rules use the (?i) inline group:
"windows": '(?i)\b(windows|win\s?1[01]|powershell|\.ps1|mapped drive|smb share|unc path)\b'
"stability/performance":'(?i)(out of memory|\boom\b|memory leak|segfault|...)'
"parsing/quality": '(?i)(trace_path|query_graph|search_graph|calls? edge|missing (edges|nodes)|...)'
"editor/integration": '(?i)(cursor|vscode|vs code|opencode|codex|...)'
"ux/behavior": '(?i)(web ui|\bui\b|dashboard|3d graph|...)'
"cypher": '(?i)\bcypher\b'
"language-request": '(?i)(language support|hybrid lsp|...)'
(?i) is PCRE / Python / Rust-regex syntax. The github/issue-labeler action runs on Node.js and compiles each pattern with JavaScript RegExp, which rejects (?i) → SyntaxError: Invalid group on the very first rule. The workflow aborts before any rule is evaluated, so every issue misses its area label, not just the one matching the failing rule. The whole labeler has been a no-op.
Fix direction
JavaScript RegExp has no inline (?i) and the action exposes no per-rule i flag (its inputs are configuration-path, enable-versioned-regex, include-title, include-body, sync-labels — none toggle case-insensitivity). Two options:
- Drop
(?i) and use character classes for the case-variant first letters, e.g. [Ww]indows, [Pp]owershell. Smallest diff, keeps current action.
- Switch to a case-insensitive-capable config — either move to a labeling action that supports regex flags, or pre-lowercase in the pattern by listing common casings. Heavier, probably not worth it.
I'd lean (1) — minimal, stays on the current action. Happy to open a PR either way.
Side note
This also means the area labels that should have routed #763 (it matches the parsing/quality rule: trace_path, query_graph, calls? edge) never got applied. Fixing this unblocks correct triage routing for the CALLS-edge root-cause issue too.
Summary
The
Issue area labelerworkflow fails on every new issue because.github/issue-labeler.ymluses(?i)inline case-insensitive groups, which JavaScriptRegExp(used by thegithub/issue-labeleraction) does not support. The action throwsSyntaxError: Invalid groupon the first rule and no area labels are ever applied.Failure
Run: https://github.com/DeusData/codebase-memory-mcp/actions/runs/28579100257
Triggered by:
issuesevent (filing #763)Job:
triage→github/issue-labeler@c1b0f9fConclusion:
failureLog tail:
Root cause
.github/issue-labeler.yml— all 7 rules use the(?i)inline group:(?i)is PCRE / Python / Rust-regex syntax. Thegithub/issue-labeleraction runs on Node.js and compiles each pattern with JavaScriptRegExp, which rejects(?i)→SyntaxError: Invalid groupon the very first rule. The workflow aborts before any rule is evaluated, so every issue misses its area label, not just the one matching the failing rule. The whole labeler has been a no-op.Fix direction
JavaScript
RegExphas no inline(?i)and the action exposes no per-ruleiflag (its inputs areconfiguration-path,enable-versioned-regex,include-title,include-body,sync-labels— none toggle case-insensitivity). Two options:(?i)and use character classes for the case-variant first letters, e.g.[Ww]indows,[Pp]owershell. Smallest diff, keeps current action.I'd lean (1) — minimal, stays on the current action. Happy to open a PR either way.
Side note
This also means the area labels that should have routed #763 (it matches the
parsing/qualityrule:trace_path,query_graph,calls? edge) never got applied. Fixing this unblocks correct triage routing for the CALLS-edge root-cause issue too.