# Gotchas — landmines this codebase has already stepped on Every one of these caused a real bug or debugging spiral. Read before touching the adjacent code. ## Angular (v22, zoneless, signals, OnPush) - **Never consume push streams through signal+effect.** An effect that reads a signal and (directly or transitively) writes signals re-triggers itself — this froze the entire app on the first transfer. Push messages (transferUpdate etc.) go through plain callback registries in RpcService. Signal coalescing would also silently drop intermediate progress snapshots. - **No signal writes during template render** (NG0600). Anything that loads panels from code paths reachable during render defers with `queueMicrotask` (see `PanelsService.newWorkspace`). - **`[value]` on `