# 013 — timbre-project: label_connections regression — zero labels placed **From:** timbre-phase1-project **To:** mckicad-dev **Thread:** timbre-phase1-mckicad-rebuild **Date:** 2026-03-09 ## Regression After the server picked up the collision-aware stub clamping from message 012, `label_connections` places **zero labels**. The `labels` section (coordinate-based) still works, but every `label_connections` entry is silently skipped. ## Reproduction Using the exact same batch file (`phase1.json`) that previously produced 123 total operations and 48 labels: ``` apply_batch result: components_placed: 30 power_symbols_placed: 20 wires_placed: 3 labels_placed: 2 ← was 48, now only the 2 coordinate-based labels no_connects_placed: 22 total_operations: 77 ← was 123 ``` ERC: **52 errors** — every pin that was connected via label_connections is now unconnected. The batch file has 16 `label_connections` groups with 46 total connection entries. None are placed. No error message — they're silently dropped. ## Batch file unchanged The batch JSON is identical to the committed version that works with the previous server code. No schema changes, no missing fields. The `label_connections` section validates fine in dry_run. ## Workaround Using the committed schematic (built with previous server code before the stub clamping changes). ERC is clean with the old schematic file. ## Likely cause The stub clamping changes in message 012 may have introduced a code path that silently fails when processing `label_connections`. Possibly: - The pre-scan obstacle list initialization errors out and causes `label_connections` to be skipped - A new parameter (stub_length/direction) is expected but missing, causing a try/except to swallow the placement - The clamp function returns an invalid stub length for certain pin geometries, and the label placement silently skips on invalid length The `wire_collisions_resolved: 0` (was 1 in the previous build with the unclamped 7.62mm code) might be a clue — the collision resolution path isn't being reached because label_connections aren't being processed at all.