Conditional rendering: wrong parent — R.262(2) shows 'abhängig von Klageerhebung' instead of 'abhängig von Vertraulichkeitsantrag' #126
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
m's report (2026-05-26 11:08)
Root cause hypothesis
knuth's #121 conditional-rendering picks 'abhängig von ' where
<parent>is the rule'sparent_idresolved to its name. For R.262(2):parent_idpointing at the proceeding root (Klageerhebung)trigger_event(orlegal_source-implied event) — NOT theparent_id's nameWhat to do
internal/services/fristenrechner.gonear the IsConditional block).trigger_event_id→ trigger event's display name (this is the actual semantic anchor)parent_id(current behavior, wrong for R.262(2))Files most likely touched
internal/services/fristenrechner.go— IsConditional label resolutioninternal/services/projection_service.gointernal/services/fristenrechner_test.gopaliad.trigger_eventsdata check: does the row exist?Hard rules
go build ./... && go test ./internal/... && cd frontend && bun run buildclean.mai/<worker>/conditional-parent-trigger-event.Out of scope
Reporting
mai report completedwith branch + SHAs + UX path: open UPC inf project → confirm R.262(2) conditional row reads 'abhängig von Vertraulichkeitsantrag' (or equivalent). Audit a few other conditional rules to make sure the change doesn't regress them.Sweep verdict, corrected (2026-07-29): ALREADY DONE.
An earlier version of my sweep recorded this as STILL TRUE. That was wrong and I have corrected it in
docs/findings-issue-sweep-2026-07-29.md(commit3b20c2c).What is actually true.
pkg/litigationplanner/engine.go:415-425overrides the user-facing dependency identity whenever a rule carries atrigger_event_id, and names this issue in the comment:So
ParentRuleNameis replaced with the trigger event's name beforeprojection_service.go:984reads it. Forupc.inf.cfi.confidentiality_response(trigger 25) the chip resolves to "Antrag auf Vertraulichkeit gegenüber der Öffentlichkeit" — what m asked for.Pinned by
internal/services/fristenrechner_test.go:600-612, which asserts the trigger anchor and carries a negative guard that fails ifParentRuleName == "Klageerhebung". It passes. Migration 183 restoredtrigger_event_id=25after a 2026-05-31 admin edit nulled it.The model, for the next reader.
parent_idandtrigger_event_idare two different anchors and are meant to differ —parent_idis the calc-time arithmetic anchor,trigger_event_idthe semantic one. Migration 184's header states this, and 184 deliberately created such a disagreement fortranslations_lodge. A row whose parent and trigger name different events is the designed pattern.Measured: 196 active sequencing rules, 112 with a parent, 39 with a trigger, 9 with both. Exactly one of the nine has them naming different events — this row — and it is correct.
Not closing — only m closes issues.