Skip to content

Serialize keepout excludeRefs as PCB component IDs - #2958

Merged
seveibar merged 4 commits into
mainfrom
agent/implement-keepout-exclude-refs
Aug 1, 2026
Merged

Serialize keepout excludeRefs as PCB component IDs#2958
seveibar merged 4 commits into
mainfrom
agent/implement-keepout-exclude-refs

Conversation

@seveibar

@seveibar seveibar commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • consume the merged excludeRefs keepout prop from @tscircuit/props
  • resolve selectors such as .ANT1 within the keepout's subcircuit
  • serialize the selected components as excluded_pcb_component_ids on the pcb_keepout Circuit JSON element
  • leave Simple Route JSON and every autorouter keepout obstacle unchanged

Package responsibilities

Core only resolves TSX selectors and emits stable Circuit JSON IDs. It does not inspect or filter DRC output. The actual keepout exemption is implemented in @tscircuit/checks.

Released dependencies

Behavior

<keepout
  shape="rect"
  width="8mm"
  height="6mm"
  excludeRefs={[".ANT1"]}
/>

The resulting keepout contains ANT1's resolved PCB component ID. Autorouters still receive a hard obstacle with an empty connectedTo list. Manually routed traces connected to ANT1 do not produce that keepout-overlap error, while unrelated violations remain visible.

Validation

  • focused serialization/autorouter regression and inspected PCB snapshot
  • bunx tsc --noEmit
  • Biome checks on changed files
  • bun run build
  • full suite: 1,302 passed, 31 skipped, 0 failed

@vercel

vercel Bot commented Aug 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tscircuit-core-benchmarks Ready Ready Preview Aug 1, 2026 3:01am

Request Review

@seveibar seveibar changed the title Support keepout excludeRefs in autorouting Suppress selected keepout DRC violations with excludeRefs Aug 1, 2026
@seveibar seveibar changed the title Suppress selected keepout DRC violations with excludeRefs Serialize keepout excludeRefs as PCB component IDs Aug 1, 2026
@seveibar
seveibar marked this pull request as ready for review August 1, 2026 03:04
@seveibar
seveibar merged commit cb2a655 into main Aug 1, 2026
12 checks passed
@seveibar
seveibar deleted the agent/implement-keepout-exclude-refs branch August 1, 2026 03:31
@tscircuitbot

Copy link
Copy Markdown
Contributor

Thank you for your contribution! 🎉

PR Rating: ⭐⭐⭐
Impact: Major

Track your contributions and see the leaderboard at: tscircuit Contribution Tracker


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants