Skip to content

Commit 95cea35

Browse files
feat: known-issue status + glint/vulkanmod entry, tighten matcher
- build-wiki: status (investigating) banner 'πŸ”§ Fix in Arbeit' + workaround, Crashes index status column, status in index.json - matcher: require score>=0.6 (drop loose matched>=2) β€” kills generic false positives - entries/crash: nrcclient-glintcolor-vulkanmod known-issue (nrc-own, workaround = remove VulkanMod)
1 parent 89445a7 commit 95cea35

3 files changed

Lines changed: 74 additions & 8 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<!--meta
2+
id: crash-nrcclient-glintcolor-vulkanmod
3+
type: crash
4+
title: Absturz beim Start β€” Glint-Farben (NRC) vs. VulkanMod
5+
mc: [1.21.11]
6+
loader: [fabric]
7+
mod: nrcclient
8+
status: investigating
9+
tags: [mixin, crash, nrc-own, vulkanmod, glint, incompatible-mod]
10+
signatures:
11+
- glintcolorizer.GlintColorMixin
12+
- nrc$modifyGlintColor
13+
- net.vulkanmod.mixin.render.RenderTypeM
14+
- nrcclient
15+
severity: crash
16+
solution_summary: Bekannter NRC-Bug β€” unser Glint-Farben-Feature kollidiert mit VulkanMod. Fix kommt, du musst nichts tun.
17+
workaround: VulkanMod (oder ImmediatelyFast) aus dem Mods-Ordner nehmen, dann startet das Spiel wieder.
18+
-->
19+
20+
## Was ist los?
21+
22+
Beim Start crasht das Spiel. Unser **Glint-Farben-Feature** (`GlintColorMixin`) und
23+
**VulkanMod** wollen dieselbe Render-Methode anfassen β€” das geht schief, das Spiel
24+
startet nicht.
25+
26+
Das ist **unser Bug** (NRC), nicht deiner. Wir arbeiten an einem Fix.
27+
28+
## 🩹 Solange β€” so startest du wieder
29+
30+
1. Mods-Ordner ΓΆffnen.
31+
2. **VulkanMod** rausnehmen (alternativ **ImmediatelyFast**).
32+
3. Spiel neu starten. βœ…
33+
34+
<details>
35+
<summary>πŸ“„ Log-Details (fΓΌr Nerds)</summary>
36+
37+
```
38+
Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin
39+
[nrcclient.mixins.json:glintcolorizer.GlintColorMixin from mod nrcclient] FAILED during APPLY
40+
Caused by: InvalidInjectionException: @At("INVOKE") on
41+
net/minecraft/class_1921::nrc$modifyGlintColor ... cannot inject into
42+
net/minecraft/class_1921::method_60895(...) merged by
43+
net.vulkanmod.mixin.render.RenderTypeM with priority 1000
44+
```
45+
</details>
46+
47+
<details>
48+
<summary>πŸ”§ Intern (NRC)</summary>
49+
50+
Root cause: unser `wrapOperation` auf `RenderType.method_60895` kollidiert mit VulkanMods
51+
`RenderTypeM` (gleiche Priority, gemergte Methode). Fix-Richtung: Injection-Priority/Target
52+
anpassen oder gegen VulkanMod-Merge robust machen. Quelle: `glintcolorizer/GlintColorMixin`.
53+
54+
</details>

β€Žscripts/build-wiki.mjsβ€Ž

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,18 @@ function renderPage(e) {
155155
const rest = metaMatch ? body.slice(metaMatch.index + metaBlock.length).trimStart() : body.trimStart()
156156
const hasH1 = /^#\s/.test(rest)
157157

158-
// Crash pages lead with a big, kid-proof fix banner (auto from solution_summary).
159-
const fix =
160-
e.category === 'crash' && e.meta.solution_summary
161-
? `> ## βœ… LΓΆsung\n> **${e.meta.solution_summary}**\n`
162-
: ''
158+
// Crash pages lead with a big, kid-proof banner. Solved β†’ green fix; known/
159+
// in-progress β†’ "we're on it" + optional workaround. Auto from meta.
160+
let fix = ''
161+
if (e.category === 'crash') {
162+
const status = e.meta.status || 'solved'
163+
if (status === 'investigating' || status === 'known') {
164+
fix = `> ## πŸ”§ Bekanntes Problem β€” wir arbeiten an einem Fix\n> **${e.meta.solution_summary || 'Wir kennen den Bug. Du musst nichts tun.'}**\n`
165+
if (e.meta.workaround) fix += `>\n> 🩹 **Solange als Workaround:** ${e.meta.workaround}\n`
166+
} else if (e.meta.solution_summary) {
167+
fix = `> ## βœ… LΓΆsung\n> **${e.meta.solution_summary}**\n`
168+
}
169+
}
163170

164171
return [
165172
metaBlock,
@@ -184,10 +191,11 @@ function renderIndex(cat, items) {
184191
}
185192
const fmtArr = (v) => (Array.isArray(v) ? v.join(', ') : v || '–')
186193
if (cat === 'crash') {
187-
lines.push('| Problem | MC | Loader | LΓΆsung |', '|---|---|---|---|')
194+
lines.push('| Status | Problem | MC | Loader | LΓΆsung / Hinweis |', '|---|---|---|---|---|')
188195
for (const e of items) {
196+
const st = (e.meta.status || 'solved') === 'solved' ? 'βœ…' : 'πŸ”§'
189197
lines.push(
190-
`| [${e.meta.title || e.slug}](${e.page}) | ${fmtArr(e.meta.mc)} | ${fmtArr(e.meta.loader)} | ${e.meta.solution_summary || '–'} |`,
198+
`| ${st} | [${e.meta.title || e.slug}](${e.page}) | ${fmtArr(e.meta.mc)} | ${fmtArr(e.meta.loader)} | ${e.meta.solution_summary || '–'} |`,
191199
)
192200
}
193201
} else {
@@ -281,6 +289,7 @@ function build() {
281289
loader: e.meta.loader ?? [],
282290
mod: e.meta.mod ?? null,
283291
tags: e.meta.tags ?? [],
292+
status: e.meta.status ?? 'solved',
284293
severity: e.meta.severity ?? null,
285294
keywords: e.meta.keywords ?? [],
286295
signatures: e.meta.signatures ?? [],

β€Žscripts/matcher.mjsβ€Ž

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ export function matchCrash(logText, index) {
3232
const matched = sigs.filter((s) => log.includes(String(s).toLowerCase()))
3333
if (!matched.length) continue
3434
const score = matched.length / sigs.length
35-
if (matched.length >= 2 || score >= 0.6) hits.push({ entry: e, score, matched })
35+
// require a real share of an entry's signatures, not just 2 generic tokens
36+
// (e.g. "InvalidInjectionException" + "net.minecraft.class_310" appear in many
37+
// unrelated mixin crashes). Single-signature entries still match on that one.
38+
if (score >= 0.6) hits.push({ entry: e, score, matched })
3639
}
3740
return hits.sort((a, b) => b.matched.length - a.matched.length || b.score - a.score)
3841
}

0 commit comments

Comments
Β (0)