tscircuit/contribution-tracker
tscircuit/contribution-tracker has 26 GitHub stars and 49 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 02:06 UTC. Last push 2026-11-13.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
Generate a contribution summary for your projects
Developer ToolsREADME.md
Originalcontribution tracker
contributions.tscircuit.com ・ tscircuit.com ・ Contribution Overviews ・ Changelogs
Generates weekly contribution overviews for tscircuit contributors. Check out all the contribution overviews here You can find AI-generated monthly changelogs in the changelogs directory
- All PRs in the tscircuit org are scanned/summarized via an LLM
- The LLM classifies each Diff/PR as into a set of attributes for scoring
- All the PRs, summaries, and classifications are organized into charts and tables for the website
Want to run locally? See the Development Section
Current Week
Contribution Overview 2026-11-10
The current week is shown below. There are 3 major sections:
PRs by Repository
pie
"tscircuit/circuit-json" : 2
"tscircuit/props" : 4
"tscircuit/tscircuit.com" : 68
"tscircuit/jlcsearch" : 5
"tscircuit/cli" : 8
"tscircuit/fanout-solver" : 6
"tscircuit/bus-lanes-solver" : 8
"tscircuit/tscircuit-desktop" : 2
"tscircuit/schematic-viewer" : 1
"tscircuit/common" : 1
"tscircuit/tscircuit" : 55
"tscircuit/core" : 44
"tscircuit/eval" : 54
"tscircuit/runframe" : 60
"tscircuit/svg.tscircuit.com" : 24
"tscircuit/tscircuit-autorouter" : 49
"tscircuit/schematic-trace-solver" : 3
"tscircuit/circuit-json-schematic-placement-analysis" : 4
"tscircuit/circuit-json-to-3d-png" : 4
"tscircuit/dogbone-solver" : 7
"tscircuit/checks" : 5
"tscircuit/circuit-json-to-kicad" : 4
"tscircuit/math-utils" : 1
"tscircuit/high-density-repair03" : 7
"tscircuit/length-matching-solver" : 4
"tscircuit/footprinter" : 1
"tscircuit/circuit-json-to-jlcpcb-quote" : 4
"tscircuit/tscircuit-standalone" : 1
"tscircuit/manufacturing-simulation" : 2
"tscircuit/circuit-json-to-gerber" : 2
"tscircuit/docs" : 1
"tscircuit/contribution-tracker" : 2
Contributor Overview
| Contributor | 🐳 Major | 🐙 Minor | 🐌 Tiny | Score | ⭐ |
|---|---|---|---|---|---|
| ShiboSoftwareDev | 35 | 6 | 19 | 166 | 👑👑👑 |
| seveibar | 14 | 7 | 3 | 74 | ⭐⭐⭐ |
| 0hmX | 9 | 4 | 1 | 46 | ⭐⭐ |
| MustafaMulla29 | 5 | 6 | 16 | 45 | ⭐⭐ |
| Abse2001 | 5 | 4 | 4 | 34 | ⭐⭐ |
| imrishabh18 | 1 | 6 | 3 | 20 | ⭐⭐ |
| techmannih | 3 | 2 | 3 | 19 | ⭐⭐ |
| rushabhcodes | 2 | 3 | 1 | 15 | ⭐⭐ |
| tscircuitbot | 0 | 0 | 272 | 14.5 | ⭐⭐ |
| AnasSarkiz | 0 | 4 | 0 | 8 | ⭐ |
| GokulPandi-M | 0 | 0 | 3 | 2.5 | |
| abdalraof-albarbar | 0 | 0 | 1 | 1 | |
| hrithik18k | 0 | 0 | 1 | 1 |
Staff Pass Ratio (SPR)
| Contributor | Reviewed PRs | Rejections | Approvals | SPR |
|---|---|---|---|---|
| 0hmX | 11 | 1 | 10 | 90.9% |
| ShiboSoftwareDev | 8 | 0 | 8 | 100.0% |
| rushabhcodes | 4 | 2 | 4 | 50.0% |
| techmannih | 4 | 0 | 5 | 100.0% |
| Abse2001 | 3 | 0 | 3 | 100.0% |
| imrishabh18 | 3 | 0 | 3 | 100.0% |
| MustafaMulla29 | 3 | 0 | 3 | 100.0% |
| AnasSarkiz | 1 | 0 | 1 | 100.0% |
0hmX SPR PRs (11)
- #996 fix: enforce ordered length-only differential pair buses
- #5382 feat: include per-connection compute cost in autorouting events
- #5413 fix: emit the ordered path of every multi-port trace
- #5412 test: reproduce trace path order not emitted or routed
- #5415 test: cover three-pad differential path routing data flow
- #5760 feat: capture per-connection compute cost in autorouter diagnostics
- #3709 fix: length-match ordered differential pair lanes
- #3708 fix: route connection path points in order
- #3710 fix: pass ordered differential lane hops to length matching
- #3651 Add a per-connection compute cost summary to the pipeline 9 solver
- #315 Report each connection's solo search iterations from DuplicateCongestedPortSolver
ShiboSoftwareDev SPR PRs (8)
- #3733 fix: preserve validated gaps in stitch paths
- #3693 repro: ButterStick bus wires ignore allowed layers
- #3664 Restore physically clear BGA via columns at the gap threshold
- #3671 Avoid repeated mesh scans during DDR port spacing
- #3667 Use faster DDR length-matching obstacle checks
- #3660 fix: retain H616 DDR repairs during final contact restoration
- #201 fix: preserve independent repairs during contact restoration
- #90 Skip distant pads before DDR meander clearance checks
rushabhcodes SPR PRs (4)
techmannih SPR PRs (4)
Abse2001 SPR PRs (3)
imrishabh18 SPR PRs (3)
MustafaMulla29 SPR PRs (3)
AnasSarkiz SPR PRs (1)
- #540 fix: recognize explicit pin role attributes as specified
Note: AI evaluates PRs and assigns 1-3 star ratings automatically. 4 and 5 star ratings require manual staff review.
Review Table
| Contributor | Reviews Received | Approvals Received | Rejections Received | Approvals | Rejections Given | PRs Opened | PRs Merged | Issues Created |
|---|---|---|---|---|---|---|---|---|
| 0hmX | 49 | 10 | 1 | 18 | 0 | 55 | 16 | 0 |
| 1932819331hy-debug | 0 | 0 | 0 | 0 | 0 | 33 | 0 | 0 |
| abdalraof-albarbar | 0 | 0 | 0 | 0 | 0 | 3 | 1 | 0 |
| Abse2001 | 4 | 3 | 0 | 4 | 0 | 19 | 13 | 0 |
| AnasSarkiz | 4 | 4 | 0 | 0 | 0 | 8 | 4 | 0 |
| Andresdev14 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| aswadi | 0 | 0 | 0 | 0 | 0 | 15 | 0 | 0 |
| BHAWESHBHASKAR | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 |
| Burapa-J | 0 | 0 | 0 | 0 | 0 | 8 | 0 | 0 |
| cocvn157 | 0 | 0 | 0 | 0 | 0 | 26 | 0 | 0 |
| deep-bhikadiya | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| Devesh36 | 1 | 0 | 0 | 0 | 0 | 4 | 0 | 0 |
| ghost | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| GokulPandi-M | 5 | 3 | 1 | 0 | 0 | 6 | 3 | 0 |
| hrithik18k | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
| imrishabh18 | 8 | 5 | 0 | 8 | 3 | 22 | 10 | 0 |
| imyelo | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 |
| jeffrey-graham | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 |
| LBCron | 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 |
| mohan-bee | 1 | 0 | 0 | 0 | 0 | 4 | 0 | 0 |
| MustafaMulla29 | 12 | 11 | 1 | 3 | 1 | 34 | 27 | 0 |
| nolanntibi-dot | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 0 |
| OLuHneschastniy | 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 |
| rushabhcodes | 14 | 4 | 2 | 0 | 0 | 30 | 6 | 0 |
| sainath998 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| satoshinakamoto666666 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| seveibar | 10 | 0 | 0 | 37 | 2 | 44 | 24 | 0 |
| ShiboSoftwareDev | 25 | 25 | 0 | 2 | 0 | 100 | 61 | 0 |
| techmannih | 23 | 7 | 1 | 0 | 0 | 30 | 8 | 0 |
| tscircuitbot | 0 | 0 | 0 | 0 | 0 | 321 | 272 | 0 |
| tungnguyen84 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 |
| ulixes | 0 | 0 | 0 | 0 | 0 | 4 | 0 | 0 |
| Umutplvn | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| voropaevv | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 |
| xtruel | 0 | 0 | 0 | 0 | 0 | 6 | 0 | 0 |
Changes by Repository
tscircuit/circuit-json
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #1004 | 🐳 Major | ⭐⭐⭐ | seveibar | Add optional schematic_group.show_boundary, schematic_port.schematic_group_id, and schematic_port.boundary_position to define expanded subcircuit boundaries and public terminal geometry. |
🐌 Tiny Contributions (1)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #1005 | 🐌 Tiny | tscircuitbot | Automated package update |
tscircuit/props
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #1009 | 🐳 Major | ⭐⭐⭐ | seveibar | Adds assembly drawing capabilities with explosion views and reusable stage definitions, enhancing the drawing functionality for parts and assemblies. |
🐌 Tiny Contributions (3)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #1004 | 🐌 Tiny | 0hmX | Documents that trace paths should always be ordered, clarifying that the trace is routed as a chain from the first port to the last. |
| #1000 | 🐌 Tiny | Abse2001 | Updates documentation to clarify that panel size limits now shape the grid layout, allowing auto-sized panels to grow and grids to rearrange based on specified limits. |
| #999 | 🐌 Tiny | Abse2001 | Changes the paneltab component to use center offsets from board edges instead of a single offset, introducing new properties for better tab placement and width specification. |
tscircuit/tscircuit.com
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #5851 | 🐳 Major | ⭐⭐⭐ | seveibar | Adds a copyable, syntax-highlighted TSX usage example beneath the customization preview, using the selected variants parameters and the packages published default or named component export. |
| #5815 | 🐳 Major | ⭐⭐⭐ | seveibar | Adds a Reference designs button to the datasheet header that links to the curated catalog of designs using the chip. |
| #5813 | 🐳 Major | ⭐⭐⭐ | seveibar | Adds a Customize link in the package About section for packages with a manifest, allowing users to navigate to the Customize page directly from the sidebar. |
| #5812 | 🐳 Major | ⭐⭐⭐ | seveibar | Adds a new page for customizing package configurations, allowing users to interact with published configurations through controls generated from preview data. |
| #5811 | 🐳 Major | ⭐⭐⭐ | seveibar | Adds the data layer for packages whose build publishes distpreview.json, including hooks for loading manifests and managing package configurations. |
| #5852 | 🐙 Minor | ⭐⭐ | seveibar | Moves the TSX usage panel into the shared PackageConfigurationPreview to ensure both the datasheet reference-design pages and the package customize page display copyable code for the selected configuration. |
| #5834 | 🐙 Minor | ⭐⭐ | seveibar | Draws dashed outlines around changed schematic parts on the Customize and reference-design pages for three seconds using the schematic viewers new props. |
| #5814 | 🐙 Minor | ⭐⭐ | seveibar | Adds two new pages for displaying reference designs for specific chips, enhancing the datasheet functionality. |
| #5810 | 🐙 Minor | ⭐⭐ | seveibar | Adds change tracking between two circuits, allowing the Customize page to identify which schematic parts a configuration switch added or changed. |
| #5809 | 🐙 Minor | ⭐⭐ | seveibar | Adds PackagePreviewScope, an optional context that supplies the release, preview file, circuit JSON and GLB for an embedded preview, allowing hooks to resolve identity without a provider. |
| #5808 | 🐙 Minor | ⭐⭐ | seveibar | Adds support for loading gzip-compressed Circuit JSON preview files, allowing package pages to preview large circuits efficiently. |
🐌 Tiny Contributions (57)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #5874 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3223 to 0.0.3224 |
| #5873 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package version from 0.0.1759 to 0.0.1760 in package.json |
| #5872 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3222 to 0.0.3223 |
| #5871 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5870 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3221 to 0.0.3222 |
| #5869 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1757 to 0.0.1758 |
| #5868 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3220 to 0.0.3221 |
| #5867 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1756 to 0.0.1757 |
| #5866 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package version from 0.0.3219 to 0.0.3220 |
| #5865 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1755 to 0.0.1756 |
| #5864 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package version from 0.0.3218 to 0.0.3219 in package.json |
| #5863 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1754 to 0.0.1755 |
| #5861 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3216 to 0.0.3218 |
| #5860 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1753 to 0.0.1754 |
| #5859 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1752 to 0.0.1753 |
| #5857 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3215 to 0.0.3216 |
| #5856 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1751 to 0.0.1752 |
| #5855 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package version from 0.0.3214 to 0.0.3215 |
| #5854 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package version from 0.0.1750 to 0.0.1751 in package.json |
| #5850 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3213 to 0.0.3214 |
| #5849 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package version from 0.0.1749 to 0.0.1750 in package.json |
| #5848 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3212 to 0.0.3213 |
| #5847 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1748 to 0.0.1749 |
| #5846 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5845 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1747 to 0.0.1748 in the package.json file. |
| #5844 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3210 to 0.0.3211 |
| #5843 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1746 to 0.0.1747 |
| #5842 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3209 to 0.0.3210 |
| #5841 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1745 to 0.0.1746 |
| #5840 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3208 to 0.0.3209 |
| #5839 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package version from 0.0.1744 to 0.0.1745 in package.json |
| #5838 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3207 to 0.0.3208 and the tscircuitschematic-viewer package from version 2.0.108 to 2.0.109 |
| #5837 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1743 to 0.0.1744 and the tscircuitschematic-viewer package from version 2.0.110 to 2.0.108 in package.json |
| #5836 | 🐌 Tiny | tscircuitbot | Automated package update to version 0.0.227 |
| #5818 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package version from 0.0.1736 to 0.0.1737 in package.json |
| #5816 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1735 to 0.0.1736 |
| #5835 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5832 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3205 to 0.0.3206 |
| #5831 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5830 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3204 to 0.0.3205 |
| #5829 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1741 to 0.0.1742 |
| #5828 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package version from 0.0.3203 to 0.0.3204 |
| #5827 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package version from 0.0.1740 to 0.0.1741 in package.json |
| #5825 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3201 to 0.0.3202 |
| #5823 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package version from 0.0.3200 to 0.0.3201 in package.json |
| #5822 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1738 to 0.0.1739 |
| #5821 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package version from 0.0.3199 to 0.0.3200 in package.json |
| #5820 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1737 to 0.0.1738 |
| #5819 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3198 to 0.0.3199 |
| #5817 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3197 to 0.0.3198 |
| #5807 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3196 to 0.0.3197 |
| #5806 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1734 to 0.0.1735 in the package.json file. |
| #5804 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package version from 0.0.3195 to 0.0.3196 in package.json |
| #5803 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1733 to 0.0.1734 |
| #5802 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3194 to 0.0.3195 |
| #5826 | 🐌 Tiny | tscircuitbot | Updates the tscircuitrunframe package from version 0.0.3202 to 0.0.3203 |
| #5824 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1739 to 0.0.1740 |
tscircuit/jlcsearch
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #637 | 🐳 Major | ⭐⭐⭐ | seveibar | Adds a Buzzers link on the home page and buzzerslist with package, Basic, and Preferred filters, and exposes the same results through the API at buzzerslist.json. |
| #638 | 🐙 Minor | ⭐⭐ | imrishabh18 | Adds a manual GitHub Action to rebuild only the search index, without changing the component catalogue or stock. |
| #635 | 🐙 Minor | ⭐⭐ | imrishabh18 | Fixes JSON output handling in stock-sync job by separating successful and failed JSON attempts, ensuring valid JSON is returned to the stock job. |
| #636 | 🐙 Minor | ⭐⭐ | imrishabh18 | Caches dropdown values for resistor and capacitor pages to reduce load by skipping dropdown queries for JSON requests and caching HTML dropdown values for 15 minutes. |
| #632 | 🐙 Minor | ⭐⭐ | Abse2001 | Adds is_standard_only to the verified component that exact-part lookups return, indicating whether a part is marked as Standard only by JLCPCB, which affects the assembly service selection for PCBA. |
tscircuit/cli
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #5773 | 🐳 Major | ⭐⭐⭐ | seveibar | Only the first 10 errors (and warnings) of each type are logged; the rest are reported as a count, improving clarity in build error reporting. |
| #5750 | 🐳 Major | ⭐⭐⭐ | techmannih | Fixes the issue where the tsci build command rejected the --autorouter-threads option, allowing it to accept a positive integer to specify the number of solver workers for local autorouters. |
| #5760 | 🐙 Minor | ⭐⭐ | 0hmX | Captures optional per-connection compute cost from autorouter progress, end, and error events in the existing CLI diagnostics, preserving the single-active-phase design and enhancing diagnostic output. |
🐌 Tiny Contributions (5)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #5772 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5766 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5762 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5770 | 🐌 Tiny | MustafaMulla29 | Updates the CLIs pinned dependencies for circuit-json-to-kicad and circuit-json-schematic-placement-analysis to their latest versions, ensuring compatibility and incorporating recent fixes. |
| #5749 | 🐌 Tiny | techmannih | Fixes the build parser rejection of the --autorouter-threads option, allowing independent configuration of solver worker count and file concurrency. |
tscircuit/fanout-solver
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #272 | 🐳 Major | ⭐⭐⭐ | seveibar | Fixes routing failures for local HDMI escapes by ensuring proper handling of blind and buried vias, allowing for four pad-to-via escapes without clearance violations. |
| #252 | 🐳 Major | ⭐⭐⭐ | seveibar | Adds routeLocalSignalDogbones for routing both package terminals to local signal-layer vias before a fixed-layer interconnect solve, preserving existing boundary-routing behavior. |
| #268 | 🐳 Major | ⭐⭐⭐ | MustafaMulla29 | Fixes failure to assign valid dogbone sites for pads in imported STM32MP157DAB1 footprint, ensuring all pads have legal candidates for routing. |
| #262 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes endpoint connectivity to respect a vias physical layers, allowing connections through the barrel beyond logical layer transitions. |
| #267 | 🐙 Minor | ⭐⭐ | MustafaMulla29 | Found while building our four-motor USB-PD motherboard with the JLCPCB C1236721 STM32MP157DAB1 footprint. The existing matcher drops non-45 midpoint candidates on the imported pad grid, but does not generate nearby exact-angle alternatives. Ten pads have no usable candidates, including A10, and the complete assignment fails. This follows the repositorys captured-input and SVG snapshot pattern: an explicit TSX generator retains all 354 imported pads, a native SRJ fixture captures A10, and one test requests a distinct local escape for every physical pad to exercise joint assignment. The snapshot shows the full pad field and an A10 close-up. These 354 test requests are a geometry regression, not the motherboard netlist. No solver changes, new dependencies, configuration changes, manual copper, or saved routes. Validation: focused snapshot test passes while asserting the current failure; all three repository typecheck commands pass. Fix PR 268 is stacked on this branch (267 268). Related: tscircuitdogbone-solver17 fixes the callers angle-mode mismatch. This repro exercises fanouts existing directplane matcher independently. The separate local-signal API work in 252 also addresses imported grids, but does not change this main-branch matcher. |
🐌 Tiny Contributions (1)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #271 | 🐌 Tiny | seveibar | Reproduces the issue where HDMI blind escapes are blocked by bottom decoupling pads, providing comprehensive tests and validation without altering the solvers production. |
tscircuit/bus-lanes-solver
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #182 | 🐳 Major | ⭐⭐⭐ | seveibar | Fits demand-sized tuning banks to a populated board by allowing kinks in routing paths and adjusting bank layouts to accommodate obstacles from other components. |
| #181 | 🐳 Major | ⭐⭐⭐ | seveibar | Fixes HDMI routing failure due to local blind-via escapes being rejected by bottom-layer decoupling pads, updating the fanout-solver to check physical via spans and source-trace layers. |
| #188 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes issue where multi-terminal DDR branches close pending pad exits needed for later signals, ensuring proper routing and connectivity. |
| #185 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes the issue where rotated rectangular pads block legal exits by accurately representing their geometry in the local pad frame while retaining the world bounding box for indexing. |
| #179 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Compares reachable via anchors with the existing multi-goal grid search before routing the branch to optimize the selection of trunk vias for RAM branches. |
| #187 | 🐙 Minor | ⭐⭐ | ShiboSoftwareDev | Fixes the routing issue where the LDQS_N strobe pad is blocked by the DDR byte in the ButterStick circuit. |
🐌 Tiny Contributions (2)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #184 | 🐌 Tiny | ShiboSoftwareDev | Captures the unchanged second-byte SRJ with eight completed routes retained, addressing the stall issue on the second CPU data byte of the A13 TSXCore board. |
| #178 | 🐌 Tiny | ShiboSoftwareDev | Adds a test for ButterStick RAM branches to ensure they leave the native UDM pin reachable without changing production code. |
tscircuit/tscircuit-desktop
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #1 | 🐳 Major | ⭐⭐⭐ | seveibar | tscircuit desktop is T3 Code plus a small set of tscircuit changes. T3 Code lands about 180 commits a day, so this repo is not a fork: it holds only the difference and rebuilds the app from it. |
🐌 Tiny Contributions (1)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #2 | 🐌 Tiny | seveibar | The app is now called tscircuit desktop and carries tscircuits icon. It also has its own app ID, link scheme and data folders, so it can be installed beside T3 Code without sharing its data. |
tscircuit/schematic-viewer
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #312 | 🐙 Minor | ⭐⭐ | seveibar | Adds two props to SchematicViewer to outline rendered schematic components and texts with a dashed blue outline based on provided IDs. |
tscircuit/common
🐌 Tiny Contributions (1)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #112 | 🐌 Tiny | seveibar | Adds an exported TscircuitLogo for placing the tscircuit tsdot mark on a PCBs silkscreen, with customizable properties for size, position, rotation, and layer. |
tscircuit/tscircuit
🐌 Tiny Contributions (55)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #6366 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6365 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6364 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6363 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6362 | 🐌 Tiny | tscircuitbot | Updates the package version from 0.0.3167 to 0.0.3168 in package.json |
| #6361 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6360 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6359 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6343 | 🐌 Tiny | tscircuitbot | Updates the package version from 0.0.3158 to 0.0.3159 in package.json |
| #6326 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6313 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6353 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6336 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6332 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6331 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6358 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6357 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6355 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6352 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6351 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6350 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6346 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6345 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6341 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6339 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6337 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6335 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6334 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6330 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6329 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6328 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6327 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6324 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6323 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6321 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6319 | 🐌 Tiny | tscircuitbot | Updates the version of the tscircuiteval and tscircuitrunframe packages in package.json |
| #6317 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6316 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6315 | 🐌 Tiny | tscircuitbot | Updates the tscircuitcli package to version 0.1.2451 |
| #6312 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6348 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6340 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6333 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6347 | 🐌 Tiny | tscircuitbot | Updates the tscircuitcli and tscircuitcore packages to their latest versions. |
| #6318 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6322 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6314 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6320 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6354 | 🐌 Tiny | MustafaMulla29 | Updates the direct kicadts dependency from 0.0.53 to 0.0.65, the latest published release, and refreshes its Bun lockfile entries. |
| #6349 | 🐌 Tiny | MustafaMulla29 | Update tscircuitcore from 0.0.2343 to 0.0.2346 and tscircuiteval from 0.0.1744 to 0.0.1748, synchronizing fanout-solver and props versions as well as regenerating the lockfile. |
| #6325 | 🐌 Tiny | MustafaMulla29 | Update the published dependencies in package.json to versions 0.0.2334 for tscircuitcore and 0.0.1739 for tscircuiteval, along with regenerating the lockfile. |
| #6338 | 🐌 Tiny | ShiboSoftwareDev | Deduplicates dependencies in the project after an autorouter update to reduce production-install size by removing redundant lock entries. |
| #6342 | 🐌 Tiny | ShiboSoftwareDev | Reduces production-install size by deduplicating dependencies after an autorouter update, resolving peer version conflicts and removing redundant lock entries. |
| #6344 | 🐌 Tiny | imrishabh18 | Removes the bundle size check and its Slack notification workflow, along with their scripts, configuration, and tests. |
| #6292 | 🐌 Tiny | imrishabh18 | Adds a size-growth rule to alert when a change lands on main and any measured size increases by more than 2 MB, with specific CI checks and Slack notifications for large increases. |
tscircuit/core
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #5437 | 🐳 Major | ⭐⭐⭐ | MustafaMulla29 | Fixes incorrect board-level plane reservations caused by child groups affecting autorouting output. |
| #5426 | 🐳 Major | ⭐⭐⭐ | MustafaMulla29 | Fixes copper-plane connectivity issues at breakout endpoints, preventing redundant routing requests in the autorouter. |
| #5424 | 🐳 Major | ⭐⭐⭐ | MustafaMulla29 | After native copper-pour generation, the STM32s ground pads already connect through their escape vias and a shared ground plane. Core loses that physical connection when exporting breakout endpoints, so the native router requests redundant connections. This TSX repro uses U70s complete STM32MP157DAB1 footprint from our four-motor USB-CUSB-PD motherboard: All 354 literal pad definitions match the JLCPCB C1236721 import, including its original coordinates and sizes. All 104 motherboard GND assignments are retained, with semantic ball names from the board. The same six-layer arrangement, 20 20 mm breakout region, native dogbone settings and relevant tracevia rules are used. The chip remains at its motherboard position, (0, 20). A 24 24 mm inspection board contains the chip and one native inner1 ground pour. Other nets, other motherboard components and unused 3D assets are omitted. The test runs native dogbone routing native ground-pour generation core SRJ export native point-pair generation. All 104 escape vias are generated afresh and checked geometrically against the same ground pour. Expected: 0 new routes; actual: 103 redundant requests. No patched solver, saved routes, injected copper or dependencyconfiguration changes. The snapshot separates existing copper from connection requests. The complete chip, TOP escape close-up and INNER1 plane close-up are pixel-identical before and after the fix. A separate aligned INNER3 panel shows the actual native requests as dashed pink lines. The written path follows F7 pad short trace F7 via shared INNER1 plane G6 via short trace G6 pad. Pink dashes mean connect these endpoints; they are neither copper nor a prescribed track shape. The test uses routeRemainingfalse: it skips full-board routing so native pour generation can complete, then tests the export of that existing copper. It does not reproduce or fix the motherboards initial routing iteration-limit failure, which occurs before the physical pours are generated. This defect was found when motherboard path search exhausted its budget on ground links before reaching DDR signals. The stacked fix is 5426; its matching full-STM32 snapshot changes 103 requests to 0. Validation: the updated native STM32 repro and full TypeScript check pass on both the repro and fix branches; changed-file formatting passes. Rendered beforeafter images were compared and all three physical-copper panels are pixel-identical. The existing copper-pour terminal-routing test passed in earlier verification. Every imported pad definition matches the motherboard source. The previously investigated full-suite failure is the existing AM62L direct-decoupling snapshot mismatch, also present on unchanged main: repro log(https:github.comtscircuitcoreactionsruns43183539146job131065071153), main log(https:github.comtscircuitcoreactionsruns43140285484job130925346524). That unrelated snapshot is unchanged. The full suite was not rerun locally for this fixture update. |
| #5442 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Bumps capacity-autorouter from 0.0.1083 to 0.0.1084 to bring in the regional portfolio candidate-validation fix, allowing the H616 SVREF region to reject invalid candidates and keep searching for a legal route. |
| #5388 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Bumps tscircuitcapacity-autorouter from 0.0.1071 to 0.0.1074, incorporating fixes for faster DDR length-matching obstacle checks, retaining H616 DDR repairs, and restoring physically clear BGA via columns at the gap threshold. |
| #5384 | 🐳 Major | ⭐⭐⭐ | imrishabh18 | Adds an optional ordered path of point IDs to the existing SRJ connection for each explicitly declared multi-pad differential trace, preserving matching explicit paths attached to named nets as their own SRJ connections. |
| #5413 | 🐳 Major | ⭐⭐⭐ | 0hmX | Fixes the emission of ordered paths for every multi-port trace, ensuring that paths with 3 or more ports are correctly represented in the autorouting system. |
| #5412 | 🐳 Major | ⭐⭐⭐ | 0hmX | Reproduces a bug where trace paths are not emitted or routed in the correct order, specifically for paths involving multiple pins. |
| #5380 | 🐳 Major | ⭐⭐⭐ | 0hmX | Fixes autorouting failure when differential pairs are connected to nets that are not routed, leading to ratsnest lines and port-not-connected errors. |
| #5375 | 🐳 Major | ⭐⭐⭐ | rushabhcodes | Preserves unbroken inner copper planes in remote autorouting by ensuring that raw Circuit JSON requests maintain the intended copper pour intent during routing processes. |
| #5399 | 🐳 Major | ⭐⭐⭐ | rushabhcodes | An explicit component layer collapses a mixed-side footprint onto one side. Centralize the duplicated SMT pad layer resolver without changing behavior, and capture the bug with a minimal four-pad example plus a real imported connector footprint. The real example is the Amphenol 132289 edge-mount SMA(https:github.comKiCadkicad-footprintsblob7ebfa6b23cc292a56f751b7b5f4a0e12eeef69ddConnector_Coaxial.prettySMA_Amphenol_132289_EdgeMount.kicad_modL39) from the pinned KiCad library: three SMT pads on F.Cu and two ground pads on B.Cu. This branch incorrectly emits all five pads on the components placement layer. A single three-pane image shows the PCB, 3D top, and 3D bottom, including the actual KiCad SMA STEP model(https:gitlab.comkicadlibrarieskicad-packages3D-blob77236890410eb655ba2e63e23f59a85cf45af290Connector_Coaxial.3dshapesSMA_Amphenol_132289_EdgeMount.step). The unmodified model is served locally during tests, and the connectors mount on opposite board edges. The real-component regression also exercises ordinary 0402 controls and cached placement once the dependent fix is applied. This work follows up on Jan Mrzeks November 9, 2026 email to Severin Ibarluzea, titled Re: mind.dump() Interest in work with tscircuit (new venture-backed EDA tool). Item 3 under Placement reported: Setting layer on a component forces all of its pads onto that layer, so a mixed-side footprint loses its other-side pads. Both regressions use test.failing to record the known layer bug. Snapshot assertions run separately in beforeAll, so visual mismatches still fail CI. The dependent fix, 5400, removes the expected-failure markers and updates the snapshots. The minimal example uses a single redtop, bluebottom view with fixed pad positions; the real connectors three-pane image exposes the coincident ground pads on each face. !Broken baseline: PCB, 3D top, 3D bottom(https:raw.githubusercontent.comtscircuitcore4f7fd1c56ddcf9fd4a6bc95565ea237a0ffc2e52testsrepros__snapshots__amphenol-132289-mixed-side-pad-layers.snap.svg) Validation: both expected-failure regressions, all ten CI test shards, typecheck, build preview, and smoke checks pass. Part 1 of GitHub stack 5401(https:github.comtscircuitcorestack5401): main 5399 5400. |
| #5343 | 🐳 Major | ⭐⭐⭐ | techmannih | Fixes autorouting failure when a phase-selected pin does not route a named net connection, resulting in zero routed traces on the PCB. |
| #5341 | 🐳 Major | ⭐⭐⭐ | techmannih | Fixes the ownership assignment for solder paste records associated with circular plated holes in KiCad exports, ensuring correct PCB component IDs are applied. |
| #5438 | 🐙 Minor | ⭐⭐ | MustafaMulla29 | Fixes incorrect board plane reservations by ensuring that child groups do not influence the boards routing dimensions when their subcircuit IDs match. |
| #5455 | 🐙 Minor | ⭐⭐ | imrishabh18 | Updates the Footprinter to version 0.0.451 to ensure proper silkscreen placement for cathode-first LED footprints, fixing regression issues present in version 0.0.450. |
| #5382 | 🐙 Minor | ⭐⭐ | 0hmX | Expose per-connection solo search compute cost on autorouting events, allowing for detailed performance metrics during routing processes. |
| #5202 | 🐙 Minor | ⭐⭐ | Abse2001 | Implements panel tooling holes and fiducials only from issue 5067, updating the SVG output and allowing these elements in panels and subpanels. |
| #5403 | 🐙 Minor | ⭐⭐ | rushabhcodes | A bottom-mounted USB-C connector rotated 30 currently has plated-slot long axes at 60, while its shell-hole centers and model mounting tabs require 120. Add real C165948 USB-C ports on opposite PCB faces and one three-pane snapshot showing the PCB, 3D from above, and 3D from below. Assert that the slot axes follow the connector and that every rendered mounting-tab tip fits inside a plated slot. Use the regenerated C165948 fixture from easyeda0.0.389 with OBJ metadata, including the corrected native model bounds and origin from easyeda-converter 540(https:github.comtscircuiteasyeda-converterpull540). Check in the OBJ for reproducible rendering and refresh the shared PCB snapshot to the converters current pill-shaped copper. The geometry regression uses test.failing to record the known rotation error. Snapshot validation runs separately in beforeAll, so snapshot mismatches still fail CI. The implementation fix, enabled regression, and corrected snapshots are in 5404. Local validation: All 25 related tests pass, including the expected failure and every test using the shared C165948 fixture. Running the regression as a regular test before the fix fails with expected 120 and received 60. Full TypeScript checking, Biome formatting, and git diff --check pass. Part 1 of GitHub stack 5405(https:github.comtscircuitcorestack5405). |
| #5400 | 🐙 Minor | ⭐⭐ | rushabhcodes | Fixes the issue where an explicit component layer overwrites authored topbottom pad layers in mixed-side footprints, ensuring that pads without an explicit layer retain the component-layer default and preserving the correct pad layers during footprint flipping. |
| #5404 | 🐙 Minor | ⭐⭐ | rushabhcodes | Fixes misalignment of plated-slot rotations for bottom-side components when flipped, ensuring correct alignment with the component. |
| #5340 | 🐙 Minor | ⭐⭐ | techmannih | Fixes the issue where plated-hole solder paste ownership is not correctly assigned during the rendering process, leading to incorrect KiCad exports. |
🐌 Tiny Contributions (23)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #5446 | 🐌 Tiny | tscircuitbot | Updates the version of the tscircuitchecks package from 0.0.276 to 0.0.277 in package.json |
| #5433 | 🐌 Tiny | tscircuitbot | Updates the version of the tscircuitchecks package from 0.0.273 to 0.0.274 in package.json |
| #5432 | 🐌 Tiny | tscircuitbot | Updates the tscircuitchecks package to version 0.0.274 in package.json |
| #5416 | 🐌 Tiny | tscircuitbot | Updates the version of the tscircuitfanout-solver package from 0.0.81 to 0.0.84 in package.json |
| #5436 | 🐌 Tiny | tscircuitbot | Updates the tscircuitchecks package from version 0.0.274 to 0.0.276 |
| #5394 | 🐌 Tiny | MustafaMulla29 | Updates the tscircuitdogbone-solver dependency from version 0.0.1 to 0.0.2, which includes a fix for escape vias being incorrectly blocked by unbroken ground planes on other layers. |
| #5408 | 🐌 Tiny | MustafaMulla29 | Updates the tscircuitdogbone-solver CDN dependency from 0.0.2 to 0.0.4, addressing native dogbone escape blockers found with the STM32MP157DAB1 in the four-motor USB-PD motherboard. |
| #5474 | 🐌 Tiny | ShiboSoftwareDev | Bumps capacity-autorouter from 0.0.1086 to 0.0.1087 to preserve valid inner-layer crossing positions when centering a solitary port would overlap preloaded DDR copper, including the merged H616 ZQ1 crossing fix from autorouter PR 3752. |
| #5459 | 🐌 Tiny | ShiboSoftwareDev | Bumps the capacity-autorouter version from 0.0.1085 to 0.0.1086, incorporating three merged fixes related to BGA pitch estimation, DDR copper checks, and topology layer reuse. |
| #5443 | 🐌 Tiny | ShiboSoftwareDev | Bumps the capacity-autorouter version from 0.0.1084 to 0.0.1085 to ensure validated gaps are represented in stitch paths and the native H616 C3 route reaches its bottom-layer terminal, while rejecting output that misses a tagged PCB terminal layer. |
| #5441 | 🐌 Tiny | ShiboSoftwareDev | Pins the native DDR benchmark correction to ensure imported net membership no longer prescribes pad order while maintaining checks on all native terminals, geometry, rules, and phase assignments. |
| #5440 | 🐌 Tiny | ShiboSoftwareDev | Updates the capacity-autorouter and bus-lanes-solver packages to their latest versions, bringing in new features and fixes related to routing and connection paths. |
| #5406 | 🐌 Tiny | ShiboSoftwareDev | Bumps the tscircuitcapacity-autorouter package from version 0.0.1077 to 0.0.1078, incorporating optimizations and fixes from previous pull requests. |
| #5427 | 🐌 Tiny | ShiboSoftwareDev | Updates the tscircuitcapacity-autorouter and tscircuitbus-lanes-solver dependencies to their latest versions, ensuring compatibility and incorporating recent improvements in routing and board tuning. |
| #5398 | 🐌 Tiny | ShiboSoftwareDev | Bumps the tscircuitcapacity-autorouter dependency from version 0.0.1076 to 0.0.1077, ensuring safe H616 DDR repairs after restoring a colliding connection through the updated repair03 dependency. |
| #5397 | 🐌 Tiny | ShiboSoftwareDev | Updates the bus-lanes-solver dependency from version 0.0.51 to 0.0.52, ensuring compatibility and incorporating recent fixes. |
| #5393 | 🐌 Tiny | ShiboSoftwareDev | Bumps tscircuitcapacity-autorouter from 0.0.1074 to 0.0.1075, improving DDR port spacing by reusing a node-ID index for ownership lookups instead of scanning the mesh repeatedly. |
| #5395 | 🐌 Tiny | ShiboSoftwareDev | Bumps tscircuitcapacity-autorouter from 0.0.1075 to 0.0.1076, including the DDR intersection fix from tscircuitmath-utils69. |
| #5396 | 🐌 Tiny | ShiboSoftwareDev | Pins math-utils to version 0.0.39 to resolve false overlap findings in the ButterStick contact checks. |
| #5201 | 🐌 Tiny | Abse2001 | Reproduces the panel tooling holes and fiducials portion of issue 5067, providing a test that captures the rendering error when the panel is rejected by Core. |
| #5411 | 🐌 Tiny | Abse2001 | Updates tscircuitprops from 0.0.724 to published 0.0.728, in the development dependency and the existing matching override. |
| #5374 | 🐌 Tiny | rushabhcodes | Reproduces a bug where raw remote solve and job requests lose copperpour unbroken intent before copper pours render, affecting signal routing on inner planes. |
| #5342 | 🐌 Tiny | techmannih | Reproduces the routing behavior of a named-net by selecting a specific pin phase for autorouting, ensuring that only the designated pins are routed while deferring unrelated connections. |
tscircuit/eval
🐌 Tiny Contributions (54)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #5800 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5799 | 🐌 Tiny | tscircuitbot | Updates package dependencies to their latest versions as part of routine maintenance. |
| #5797 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5796 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5794 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5793 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5791 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5790 | 🐌 Tiny | tscircuitbot | Updates the version of the tscircuitcore package from 0.0.2356 to 0.0.2357 in package.json |
| #5788 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5787 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5785 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5784 | 🐌 Tiny | tscircuitbot | Updates package dependencies to their latest versions as part of routine maintenance. |
| #5782 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5781 | 🐌 Tiny | tscircuitbot | Updates the versions of several dependencies in the package.json file. |
| #5779 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5778 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5776 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5775 | 🐌 Tiny | tscircuitbot | Updates the version of tscircuitcore and tscircuitcore-ddr-benchmark in package.json |
| #5773 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5772 | 🐌 Tiny | tscircuitbot | Updates various package dependencies to their latest versions. |
| #5770 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5769 | 🐌 Tiny | tscircuitbot | Updates package dependencies to their latest versions as part of routine maintenance. |
| #5767 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5766 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5764 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5763 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5761 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5758 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5757 | 🐌 Tiny | tscircuitbot | Updates package dependencies to their latest versions as part of routine maintenance. |
| #5755 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5754 | 🐌 Tiny | tscircuitbot | Updates the version of tscircuitcore and tscircuitdogbone-solver in package.json |
| #5751 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5750 | 🐌 Tiny | tscircuitbot | Updates the versions of several dependencies in the package.json file. |
| #5740 | 🐌 Tiny | tscircuitbot | Updates the version of the tscircuitcore package from 0.0.2336 to 0.0.2337 in package.json |
| #5744 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5743 | 🐌 Tiny | tscircuitbot | Updates package dependencies to their latest versions as part of routine maintenance. |
| #5736 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5735 | 🐌 Tiny | tscircuitbot | Updates package dependencies to their latest versions in package.json |
| #5733 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5730 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5729 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5727 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5726 | 🐌 Tiny | tscircuitbot | Updates the version of tscircuitcapacity-autorouter from 0.0.1074 to 0.0.1075 and tscircuitcore from 0.0.2332 to 0.0.2333 in package.json |
| #5724 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5723 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5721 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5720 | 🐌 Tiny | tscircuitbot | Updates various package dependencies to their latest versions in package.json |
| #5718 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5717 | 🐌 Tiny | tscircuitbot | Updates the version of the tscircuitcore package from 0.0.2329 to 0.0.2330 in package.json |
| #5715 | 🐌 Tiny | tscircuitbot | Automated package update to version 0.0.1735 |
| #5714 | 🐌 Tiny | tscircuitbot | Updates the versions of several dependencies in the package.json file. |
| #5732 | 🐌 Tiny | tscircuitbot | Updates the versions of several dependencies in the package.json file. |
| #5741 | 🐌 Tiny | tscircuitbot | Automated package update |
| #5760 | 🐌 Tiny | MustafaMulla29 | Update tscircuitcore from 0.0.2345 to the published 0.0.2346 release and synchronize tscircuitprops from 0.0.724 to 0.0.728, matching cores release manifest and evals existing copy-core-versions logic. |
tscircuit/runframe
🐌 Tiny Contributions (60)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #6274 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6273 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1759 to 0.0.1760 in the package.json file. |
| #6272 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6271 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1758 to 0.0.1759 in the package.json file. |
| #6270 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6269 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1757 to 0.0.1758 |
| #6268 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6267 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1756 to 0.0.1757 |
| #6266 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6265 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1755 to 0.0.1756 |
| #6264 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6263 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1754 to 0.0.1755 in the package.json file. |
| #6262 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6261 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1753 to 0.0.1754 |
| #6260 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6259 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1752 to 0.0.1753 |
| #6258 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6257 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1751 to 0.0.1752 |
| #6256 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6255 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1750 to 0.0.1751 |
| #6254 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6253 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1749 to 0.0.1750 |
| #6252 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6251 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1748 to 0.0.1749 |
| #6250 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6249 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1747 to 0.0.1748 |
| #6248 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6247 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1746 to 0.0.1747 |
| #6246 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6245 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1745 to 0.0.1746 |
| #6244 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6243 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1744 to 0.0.1745 |
| #6242 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6241 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1743 to 0.0.1744 |
| #6236 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1742 to 0.0.1743 |
| #6234 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1741 to 0.0.1742 |
| #6229 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1739 to 0.0.1740 |
| #6226 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1738 to 0.0.1739 |
| #6225 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6224 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1737 to 0.0.1738 |
| #6223 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6222 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1736 to 0.0.1737 |
| #6220 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1735 to 0.0.1736 |
| #6219 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6218 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1734 to 0.0.1735 |
| #6214 | 🐌 Tiny | tscircuitbot | Updates the circuit-json-to-gerber package from version 0.0.121 to 0.0.122 |
| #6235 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6231 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6230 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6227 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6221 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6217 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6216 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6215 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6239 | 🐌 Tiny | tscircuitbot | Updates the tscircuitschematic-viewer package from version 2.0.108 to 2.0.109 |
| #6240 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6237 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6233 | 🐌 Tiny | tscircuitbot | Automated package update |
| #6232 | 🐌 Tiny | tscircuitbot | Updates the tscircuiteval package from version 0.0.1740 to 0.0.1741 |
| #6228 | 🐌 Tiny | GokulPandi-M | Moves schematic-symbols from devDependencies at 0.0.237 to runtime dependencies at 0.0.251 to ensure consumers receive the corrected dependency for four-pin crystal previews, fixing detached wires and overlapping labels. |
tscircuit/svg.tscircuit.com
🐌 Tiny Contributions (24)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #2903 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3168 to 0.0.3169 in package.json |
| #2902 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3167 to 0.0.3168 in package.json |
| #2901 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3166 to 0.0.3167 in package.json |
| #2900 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3165 to 0.0.3166 |
| #2899 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3164 to 0.0.3165 in package.json |
| #2898 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3163 to 0.0.3164 in package.json |
| #2897 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3160 to 0.0.3163 in package.json |
| #2894 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3159 to 0.0.3160 in package.json |
| #2893 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3158 to 0.0.3159 in package.json |
| #2889 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3154 to 0.0.3155 |
| #2888 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3152 to 0.0.3154 in package.json |
| #2877 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3142 to 0.0.3143 in package.json |
| #2892 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3157 to 0.0.3158 in package.json |
| #2883 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3148 to 0.0.3149 in package.json |
| #2880 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3145 to 0.0.3146 in package.json |
| #2879 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3144 to 0.0.3145 in package.json |
| #2878 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3143 to 0.0.3144 in package.json |
| #2891 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3156 to 0.0.3157 in package.json |
| #2890 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3155 to 0.0.3156 in package.json |
| #2887 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3150 to 0.0.3152 in package.json |
| #2876 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3141 to 0.0.3142 in package.json |
| #2884 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3149 to 0.0.3150 in package.json |
| #2882 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3147 to 0.0.3148 |
| #2881 | 🐌 Tiny | tscircuitbot | Updates the tscircuit package version from 0.0.3146 to 0.0.3147 in package.json |
tscircuit/tscircuit-autorouter
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #3752 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes autorouting failure by ensuring valid solitary inner-layer crossings do not overlap with preloaded copper, allowing routing in previously blocked regions. |
| #3751 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Redistribution moves H616s solitary ZQ1 crossing into existing SDQM1 copper, blocking detailed routing. |
| #3737 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Reduces layer calculation redundancy by reusing layer selections when neighboring X slices cover the same mesh regions, optimizing performance in topology merging. |
| #3736 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Captures twelve native ButterStick mesh regions where a bottom pad edge slices an unrelated eight-layer cell, ensuring accurate layer calculations across all input nodes. |
| #3739 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes stitching validation to ensure that stitch bridges do not touch existing vias, preventing accidental trace contacts. |
| #3738 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes clearance check issue in H616 stitcher that fails to account for preloaded DDR copper when routing SVREF bridge on inner1. |
| #3743 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes incorrect BGA pitch estimation caused by off-grid fiducials, reducing unnecessary grid columns and improving mesh efficiency. |
| #3718 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Captures native DDR BGA grid and routing failures for the STMP157 CPU and i.MX6 board, addressing floating-point duplicates and clearance findings without production changes. |
| #3733 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes failure to preserve existing stitches that reach both PCB terminals, ensuring complete path reconstruction with clearance-checked segments. |
| #3732 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes the issue where the C3 stitch path incorrectly ends on the top copper layer instead of the bottom layer, ensuring accurate routing for the H616 PCB. |
| #3727 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Validates each regional portfolio candidate in board coordinates and through cleanup before choosing a winner, ensuring that the first completed candidate does not block SVREF routing in an H616 region. |
| #3726 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Reproduces the H616 SVREF routing failure with all 125 components and 264 nets, capturing the failure when the first candidate collides with a BGA pad. |
| #3717 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes autorouting failure by reconstructing edge-touching promoted traces over the correct copper clearance envelope, preventing crashes during routing on H616. |
| #3716 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes autorouting failure when promoting H616 boundary DDR copper due to neighboring trace issues. |
| #3705 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes autorouting failure by measuring regional via clearance from the edge of circular pads instead of their bounding rectangles, ensuring complete connections in high-density routing regions. |
| #3704 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Captures circular-pad regional routing failures, including the incomplete C3U2 SVREF connection on the full H616 reference PCB. |
| #3711 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes the ranking of pin repairs to ensure that a repair with fewer via errors cannot replace a lower-severity repair when total error counts tie. |
| #3664 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes the BGA gap threshold so physically clear via sites reach the existing clearance check. |
| #3689 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes the issue of forbidden pad drills being restored inside BGA pads due to contact rollback, ensuring routed DDR connections are preserved. |
| #3688 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Reduces the lookup work and retained state during DDR mesh construction, optimizing edge construction time and memory usage. |
| #3671 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Reduces the time taken for port-spacing stage by reusing a node-ID index instead of repeatedly scanning mesh nodes for port ownership. |
| #3670 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes the issue of discarding safe repairs for H616 DDR peers after a colliding connection is restored. |
| #3667 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Changes the dependency pin to use a faster DDR length-matching obstacle check, resulting in a significant speedup in the autorouting process without altering the output copper or solver steps. |
| #3655 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Captures the real H616 DDR routing input alongside its completed data-byte copper, exposing clearance regression for visibility in snapshot diffs. |
| #3663 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Reproduces the remaining ButterStick DDR routing failure while preserving both completed data bytes. |
| #3709 | 🐳 Major | ⭐⭐⭐ | 0hmX | Fixes autorouting failure by ensuring USB DD lanes are length-matched while excluding TP1s branch, resolving previous lookup errors in differential pair connections. |
| #3708 | 🐳 Major | ⭐⭐⭐ | 0hmX | Fixes routing to ensure that trace paths follow the specified order of connection points, resolving issues with incorrect routing sequences. |
| #3707 | 🐳 Major | ⭐⭐⭐ | 0hmX | Fixes autorouting failure when the trace path order is ignored by the NetToPointPairsSolver, ensuring traces are routed in the specified order. |
| #3710 | 🐳 Major | ⭐⭐⭐ | 0hmX | Fixes autorouting failure by ensuring ordered USB DD lanes finish routing and matching while excluding TP1 from lane measurements. |
| #3651 | 🐳 Major | ⭐⭐⭐ | 0hmX | Adds getComputeCostSummary() to the pipeline 9 solver, providing a summary of compute costs for routing connections, aiding AI in identifying poorly placed components. |
| #3690 | 🐙 Minor | ⭐⭐ | ShiboSoftwareDev | Captures the pad-drill count of the H616 circuit after contact rollback to address a forbidden via drill issue. |
🐌 Tiny Contributions (18)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #3758 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3750 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3735 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3731 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3724 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3722 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3721 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3714 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3713 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3668 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3695 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3686 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3683 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3676 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3659 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3669 | 🐌 Tiny | tscircuitbot | Automated package update |
| #3687 | 🐌 Tiny | ShiboSoftwareDev | Reproduces the dense native A64 DDR capacity-edge lookup graph preparation without altering the existing routing rules or connections. |
| #3682 | 🐌 Tiny | ShiboSoftwareDev | Pins tscircuitmath-utils to npm 0.0.39, which includes the merged DDR intersection fix. |
tscircuit/schematic-trace-solver
🐌 Tiny Contributions (3)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #1430 | 🐌 Tiny | tscircuitbot | Bumps the version number in package.json from 0.0.243 to 0.0.245 for jscdn publishing. |
| #1431 | 🐌 Tiny | GokulPandi-M | Removes redundant terminal paths between the same junctions on a power rail to eliminate unintended loops in schematics. |
| #1429 | 🐌 Tiny | GokulPandi-M | Motivation Automatically routed power wires can join the same net at two different points, leaving unnecessary closed loops. The connections remain electrically valid, but the extra paths and junction dots make the schematic difficult to follow. This reproduces two LED_5V loops using the captured Controls-sheet solver input from macro-six-usbc v0.1.16. The original chip, pin, label and net geometry is preserved. It also reproduces on current main |
tscircuit/circuit-json-schematic-placement-analysis
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #450 | 🐙 Minor | ⭐⭐ | AnasSarkiz | Adds a guard to prevent incorrect rail orientation recommendations for floating chip-return capacitors in schematic analysis. |
🐌 Tiny Contributions (3)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #453 | 🐌 Tiny | tscircuitbot | Automated package update |
| #451 | 🐌 Tiny | tscircuitbot | Automated package update |
| #452 | 🐌 Tiny | MustafaMulla29 | Updates the schematic-symbols package from version 0.0.248 to 0.0.251 to resolve dependency conflicts and refresh test snapshots for specific components. |
tscircuit/circuit-json-to-3d-png
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #26 | 🐙 Minor | ⭐⭐ | AnasSarkiz | Fixes camera clipping issues for tall and off-board models in assembly previews by adjusting camera positioning and margins without altering model geometry or introducing new dependencies. |
| #27 | 🐙 Minor | ⭐⭐ | AnasSarkiz | Reproduces the real NEMA11 assembly preview clipping issue by updating the camera fitting and verifying the output with the correct exporter version, ensuring proper handling of large OBJ models without distortion. |
🐌 Tiny Contributions (2)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #30 | 🐌 Tiny | tscircuitbot | Automated package update |
| #29 | 🐌 Tiny | tscircuitbot | Automated package update |
tscircuit/dogbone-solver
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #16 | 🐙 Minor | ⭐⭐ | MustafaMulla29 | The native dogbone router stops on STM32MP157DAB1 pin W13 while building our four-motor USB-PD motherboard. It selects a pad-to-via candidate with XY offsets of 0.3999230.400050 mm, then rejects that same candidate at its straight45-degree guard. No escape copper is returned. Adds the complete explicit 354-pad JLCPCB C1236721 footprint in TSX, a capture script, the unedited native solver input, and one snapshot characterization test. The snapshot shows the full pad field, an enlarged W13 candidate, the numerical mismatch and zero accepted traces. All imported pad coordinates and radii are retained. There are no manual traces, saved routes, solver overrides, new dependencies or configuration changes. The fixture was captured with tscircuit 0.0.3150 core 0.0.2334 and matches the original failing motherboard isolation input exactly. Run bun test testsimported-grid.test.ts to reproduce without installing core. To recapture, copy the two examplesimported-grid files into an existing tscircuit project and run bun capture-imported-grid.mjs. This overlaps 89: the same candidateemitter contract mismatch, with coverage for a real imported STM32 grid. Fix 17 is stacked on top of this repro, with the accepted-route snapshot. Mergereview order: 16 17. Validation: all 15 tests pass (1047 assertions), typecheck and format checks pass; SVG rendered and inspected. The passing characterization test asserts the current failure. This covers one local signal escape with the full footprint retained, not all 260 MCU signals or whole-board routing. |
| #17 | 🐙 Minor | ⭐⭐ | MustafaMulla29 | Fixes angle-selection mismatch for dogbone candidates in STM32MP157DAB1 native escape, ensuring only valid 45-degree candidates are assigned. |
🐌 Tiny Contributions (5)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #19 | 🐌 Tiny | tscircuitbot | Automated package update |
| #20 | 🐌 Tiny | MustafaMulla29 | Updates the tscircuitfanout-solver dependency from version 0.0.82 to 0.0.83 to address a candidate-generation blocker for imported pad grids in the STM32MP157DAB1 four-motor USB-PD motherboard. |
| #10 | 🐌 Tiny | MustafaMulla29 | Reproduces a failure in the dogbone escape routing when a ground plane is reserved, confirming the defect with a comprehensive test. |
| #14 | 🐌 Tiny | MustafaMulla29 | Fixes the GitHub Packages configuration in the release workflow to ensure dependencies are installed correctly before publishing. |
| #11 | 🐌 Tiny | MustafaMulla29 | Updates the tscircuitfanout-solver dependency to version 0.0.82, ensuring that reserved inner1 GND cases produce the same native escape trace and via as ordinary-pour control. |
tscircuit/checks
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #558 | 🐳 Major | ⭐⭐⭐ | MustafaMulla29 | Enables TraceSimplificationSolver and ConnectorPlacementSolver in the existing schematic-placement check, producing warnings for avoidable trace turns and connector detours without modifying the circuit. |
| #559 | 🐙 Minor | ⭐⭐ | MustafaMulla29 | Enables detection of schematic net-label collisions and crossed branch orders, providing detailed warnings for component styling issues. |
| #560 | 🐙 Minor | ⭐⭐ | MustafaMulla29 | Enables detection of schematic component overlaps and text collisions, producing styling warnings without modifying the circuit. |
| #557 | 🐙 Minor | ⭐⭐ | techmannih | Adjusts routing DRC to utilize board-specific via-to-pad clearance values for accurate gap measurements. |
| #540 | 🐙 Minor | ⭐⭐ | AnasSarkiz | Fixes the underspecified warning for pins annotated with explicit role attributes such as is_passive, is_input, is_output, and is_bidirectional. |
tscircuit/circuit-json-to-kicad
🐌 Tiny Contributions (4)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #894 | 🐌 Tiny | MustafaMulla29 | Built-in and custom symbols can place electrical endpoints between KiCads 1.27 mm connection-grid points. This addresses the off-grid portion of 878 by placing pins, symbol origins, and attached electrical objects together on every schematic sheet. Stacked on 893; this PR targets repro878-custom-symbol-off-grid. Solve sheet connections and local pin positions together, subject to attachment bounds on the unchanged symbol bodies. Choosing fixed local pin offsets first could reject valid layouts, including the automotive mirror fixture. Preserve coordinate ordering, but require a grid interval only where electrical points or wires must remain distinct. Unrelated wiring can share a row instead of forcing extra rows between another components pins. Check every electrical points wire attachments before applying placement. This permits diagonal wires whose contacts survive and rejects placements that would introduce or remove a connection. Determine pin attachments to circular arcs from their geometry, retaining the original arc span and branch. Symbols with unrelated arcs export normally. Recognize slanted free-end strokes as leads. Identical duplicate strokes move together; ambiguous attachments to different strokes still fail. Move wire endpoints, junctions, global and inline labels, and no-connect markers consistently. Prefer shared symbol definitions where the wiring permits them, and preserve already-aligned connections, including fractional-origin cases. Keep body artwork and scale unchanged; adjust lead endpoints or native pin lengths to reach the body. Use the existing coordinate helpers and transformation-matrix for placement. Surface unsatisfied placement constraints as errors. There is no warn-and-export-original-coordinates fallback. README documents the compatibility boundary: no body resizing or general rerouting, and KiCad only permits orthogonal native pin angles. Follow the maintainers cleanup requests: function-specific named parameters first and context last, hoisted helpers, domain-specific names and component-id types, numbered tests with tscircuit-built fixtures, and visual snapshots for all six built-in grid cases. No new dependencies. This does not implement general rerouting or resolve artworktext collisions; dense label text can still overlap. Validation with KiCad 10.0.1: Follow-up f3d658b: 21 focused grid and pin-angle tests pass locally. Three new regressions cover direct arc attachments, the missing part of an arc, and connected clockwise major arcs; native ERCnetlist checks and nine new PNG snapshots are included. Typecheck and formatting pass. Verified native KiCad rejects a generated file after changing a pin angle to 45 degrees. Normal converter paths already emit only cardinal pin angles. The existing graphics repro15 has the same local PNG mismatch with both the preceding and updated placement implementation; its expectation is unchanged. Full CI for the follow-up is pending. 34 tests pass, including the grid regressions, BGA pin-name compatibility, custom transistor, TB67S579FTG, inline labels, and all five generated systems. This was a normal run after updating and inspecting the affected snapshots. New numbered regressions cover independent pin rows sharing grid rows without merging four separate nets, duplicate slanted leads, and connected diagonal routing. Native KiCad netlist comparisons preserve all 584 net names and pin memberships across the BGA, automotive mirror, motor control, consumer wireless, Bluetooth audio, and blood-pressure monitor fixtures. Native ERC checks pass in the focused grid fixtures, excluding only embedded-library lookup warnings. The too-small-body test continues to require an explicit failure. Exact SVG snapshots use the Linux KiCad drawing order from CI. Verified all 23 platform-dependent SVGs contain identical drawing primitives, coordinates, styles, and transforms to the macOS exports. Comparison assertions and tolerances are unchanged. Full CI at ff2a390(https:github.comtscircuitcircuit-json-to-kicadactionsruns42860572301): 306 tests pass, 0 fail, across 266 files. Typecheck and formatting CI also pass. Earlier manual KiCad verification Opened the exported fixtures from commit b536bcc in KiCads schematic editor and inspected Net Navigator and ERC. These checks cover the two fixtures below; they are not a guarantee for every possible layout. Closely spaced custom-symbol pins Net Navigator keeps A on U1.1 U2.1 U3.1 and B on U1.2 U2.2; U3.2 remains intentionally unconnected. The branch junction and both separate nets survive grid placement. Known visual limitation: the AB label text overlaps in this dense fixture; electrical connectivity is preserved, but label collision handling remains unfinished. !Custom-symbol connections and separate net membership(https:github.comuser-attachmentsassetsc7487f4d-deae-4e16-9d60-f93fa35787bc) ERC reports zero errors and no off-grid or disconnected-pin warnings. The three remaining warnings concern the missing installed Custom library. Off-grid and disconnected-pin checks were enabled. !Custom-symbol ERC: only three library lookup warnings remain(https:github.comuser-attachmentsassetsd93eb5b0-1f5f-4d39-9fd7-2c3e76745563) Built-in resistorcapacitor network Net Navigator confirms V3_3 R5.1, R5.2 D1.1, and D1.2 GND (the fixture names its capacitor D1). The wire endpoints still meet the correct pins after grid placement. !Built-in resistor and capacitor connections with net membership(https:github.comuser-attachmentsassets6518026e-2e75-4f83-a625-91ec2c66c156) ERC reports no off-grid or disconnected-pin warnings. Its two errors are undriven power inputs in this passive fixture; the four warnings concern library lookup. These remaining messages are shown rather than excluded. !Built-in ERC: two undriven-power errors and four library lookup warnings(https:github.comuser-attachmentsassets4504ddf3-4b22-484a-bb69-bdca0c38c66a) |
| #893 | 🐌 Tiny | MustafaMulla29 | Reproduces the off-grid warning in 878 using the reported MyPart fixture, capturing the current behavior for a subsequent fix without changing production code or dependencies. |
| #882 | 🐌 Tiny | MustafaMulla29 | Fixes floating-point roundoff issues in symbol artwork export, ensuring identical custom artwork exports as a single library definition. |
| #879 | 🐌 Tiny | MustafaMulla29 | Reproduces a bug where duplicate custom symbols are generated at rounding boundaries, capturing the existing behavior for further investigation. |
tscircuit/math-utils
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #69 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Prevents false intersection reports between segments whose bounds are disjoint by adding a check for disjoint bounds in the intersection calculation. |
tscircuit/high-density-repair03
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #203 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Fixes issue where restoring connections discarded repairs that became safe after other connections were restored, ensuring repaired routes are retained when no new contacts or pad overlaps are present. |
| #202 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Restores a safe peer connection during contact repair on the H616 board by discarding a peers repair after the other connection is restored. |
| #209 | 🐙 Minor | ⭐⭐ | ShiboSoftwareDev | Preserves the lower-severity repair when total error counts tie; uses via-error count only when severity also ties. |
| #208 | 🐙 Minor | ⭐⭐ | ShiboSoftwareDev | Reproduces a native ButterStick repair selecting a route through pad66 because it has fewer via errors, despite worse clearance severity. |
| #205 | 🐙 Minor | ⭐⭐ | ShiboSoftwareDev | Fixes the issue where a whole-connection rollback can restore a via hole that earlier repair moved out of its BGA pad, ensuring that the drill is repaired against the final routes only when DRC improves without new contacts or pad overlaps. |
| #201 | 🐙 Minor | ⭐⭐ | ShiboSoftwareDev | Fixes the issue where independent repairs are lost during the contact restoration process by using the original input contact baseline. |
🐌 Tiny Contributions (1)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #204 | 🐌 Tiny | ShiboSoftwareDev | Restores a via hole overlapping its own BGA pad on the H616 DDR board after contact rollback, despite allowViaInPad: false. |
tscircuit/length-matching-solver
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #90 | 🐳 Major | ⭐⭐⭐ | ShiboSoftwareDev | Reduces DDR length matching time by skipping distant pads and their connectivity checks, resulting in an 8.4 speedup in tuning time without altering emitted copper or routing rules. |
| #92 | 🐳 Major | ⭐⭐⭐ | 0hmX | Ordered J1 ESD MCU lanes now exclude TP1 and retain their declared hop order, allowing the matcher to add length to the shorter D J1 ESD hop instead of meandering both D hops. |
| #94 | 🐙 Minor | ⭐⭐ | 0hmX | Changes the rendering of USB snapshot captions to be centered silkscreen text with zero rotation, preserving text attributes and colors. |
| #91 | 🐙 Minor | ⭐⭐ | 0hmX | On main: D is looked up by logical root, so the TP1 stub is counted and both D hops receive meanders. The actual J1 ESD MCU lanes finish 5.582590 mm apart, despite a 0.1 mm tolerance. Measured copper (mm) Before matching Main output --- ---: ---: D ordered hops 20.414087 20.414087 D ordered hops 21.645420 25.996677 TP1 stub 5.582590 5.582590 Root D including TP1 25.996677 25.996677 Root lookup returns 0, 1, 3 P_BC, tap, P_AB, rather than ordered indexes 3, 0. Main adds 3.485240 mm to N_AB (12.317643 15.802883) and 0.866018 mm to N_BC (9.327776 10.193794). TP1 remains unchanged; it is incorrectly counted, not meandered. !Actual main matcher output(https:raw.githubusercontent.comtscircuitlength-matching-solver87ffc50c97b953faf212b255eb0d87619af88ac9tests__snapshots__ordered-usb-pair-length-matching.snap.svg) The passing ordered-usb-pair-length-matching.test.ts calls the unmodified matcher with mains supported PN root strings and snapshots its actual output. Root terminal declarations are derived from captured endpoints, as logical-root callers require; route coordinates, obstacles, widths and vias are unchanged. The sibling exact-hop correctness test remains test.failing, with no snapshot inside it. Fixture: real TSX USB board(https:github.comtscircuitlength-matching-solverblob87ffc50c97b953faf212b255eb0d87619af88ac9testsfixturesordered-usb-pair.board.tsx), J1 ESD MCU plus TP1. Pictures use only convertCircuitJsonToPcbSvg and toMatchSvgSnapshot, with native silkscreen and fabrication-note captions above the copper. Captions describe the solver and the root-lookup bug, with lengths formatted directly from the test measurements. Only the rendered board outline is extended for the text. Input-only picture removed. 92 updates this same snapshot path for the beforeafter image diff. Validation on Bun 1.4.3: snapshot update and rerun without updates pass; 2 focused tests, 15 assertions (one expected failure). Repository TypeScript and Biome format pass. SVG converted to PNG and inspected: D has a large left meander and a smaller right meander. No full-suiteperformance claim for this update. Draft; never merged. |
tscircuit/footprinter
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #1012 | 🐙 Minor | ⭐⭐ | imrishabh18 | Fixes the alignment of LED silkscreen bars with cathode pads to ensure correct polarity representation in the PCB design. |
tscircuit/circuit-json-to-jlcpcb-quote
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #4 | 🐳 Major | ⭐⭐⭐ | Abse2001 | Adds a summary table displaying all expenses, including total and per-board prices, and enforces that assembled boards do not exceed PCB quantity. |
| #3 | 🐳 Major | ⭐⭐⭐ | Abse2001 | Implements faster part lookups by fetching BOM lines in batches, sets lead-free HASL as the default surface finish, removes false warnings for bottom paste openings on through-hole pins, and displays the sales tax rate on the quote page without allowing edits. |
| #2 | 🐳 Major | ⭐⭐⭐ | Abse2001 | Summary Replaces the placeholder with a working JLCPCB quote estimator. Given Circuit JSON it returns an itemised estimate of bare PCBs, the charges JLCPCB engineers add after review, assembly fees and parts, each with a lowhigh range and a confidence label. Shipping, duties and tax are out of scope. How it works 1. convertCircuitJsonToFabricationFiles generates Gerbers, drill files, bom.csv and pick_and_place.csv with the same converters and options as the tscircuit.com fabrication export and tsci export -f gerbers. 2. getQuoteInputsFromFabricationFiles reads board size, layers, vias, holes, trace widths, paste openings and the BOM back out of those files. An existing fabrication export can be quoted directly with quoteFabricationFiles. 3. lookupJlcParts prices each BOM line from jlcsearch (unit price, stock, basicpreferred flag, footprint pads). Resistors and capacitors without a part number are matched by rating and package. 4. estimateJlcpcbQuote applies the fee rules in libjlcpcb-price-table.ts. It is pure, so real orders can be replayed against it. The quote is deliberately computed from generated fabrication files rather than from Circuit JSON directly, so it sees exactly what JLCPCB receives and an existing fabrication export can be quoted too. Accuracy so far Case Actual Estimate --------- Live JLCPCB quote, 4-layer 144.5x82mm, 5 assembled, economic PCBA (end to end from fabrication files) 348.43 363.79 (4.4) Shipped order Y45 (fee rules replayed from the invoice) 239.66 within 3 Shipped order Y63 (fee rules replayed from the invoice) 125.30 within 2 On the live quote every line matches JLCPCB except two: parts (180.87 against 164.76) and SMT placement (7.02 against 7.77). The parts gap is because jlcsearch only reports a single-piece price: JLCPCBs quantity price breaks are not applied and billed spares are estimated. The estimator already applies both when a part carries them, and with them the parts line matches to the cent; they need to be exposed by jlcsearch. Known limits Bare-PCB prices are fitted to very few data points. The 4-layer area price comes from one quote; 1-2 layer boards over 100mm, quantities above 5, 6 layers, ENIG and all flex prices are heuristics with wide ranges. The 4-wire Kelvin test fee is inferred from supplement notices, three of which bundle dutyVAT. Standard PCBA rates come from JLCPCBs help page, not a live quote. Parts are priced from jlcsearch only, at single-piece prices with estimated spares, so the parts line carries a range and runs about 10 high on the one quote checked. It refuses instead of guessing: an unpriceable BOM line, a failed or malformed lookup, or a board with no price in the table throws. unresolvedParts: exclude quotes without the unpriceable lines and lists them. Lookups run one at a time, so a 73-part board takes about a minute. circuit-json-to-gerber, circuit-json-to-bom-csv and circuit-json-to-pnp-csv are now runtime dependencies. Testing bun test (16 tests, no network), bun run typecheck and bun run format:check pass. https:claude.aicodesession_01PiJ1d3KnENfen8uCgH3yBH --- Generated by Claude Code(https:claude.aicode) |
| #6 | 🐙 Minor | ⭐⭐ | imrishabh18 | Add the small-via drilling surcharge to rigid FR-4 quotes, check drill and pad sizes to ensure compliance, update testing estimates, and accept empty pick-and-place files for bare-board quotes. |
tscircuit/tscircuit-standalone
🐌 Tiny Contributions (1)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #54 | 🐌 Tiny | imrishabh18 | PR CI now reports executable sizes for Linux x64arm64, macOS IntelApple Silicon, and Windows x64 in a single PR comment and the Actions run summary. It compares the existing PR merge build against a compile of the exact base commit and shows the byte and percentage change for each target. |
tscircuit/manufacturing-simulation
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #3 | 🐳 Major | ⭐⭐⭐ | Abse2001 | Updates the unit 322 manufacturing simulation from PR 1 in place, from a single job to the full motor controller line. Its the same page and the same ManufacturingSimulation core; nothing is added alongside the old version. The operator now runs a batch of 30 NEMA17 motor controllers across four standing desks on the window wall: assembly, QC, pack-out and ship-ready. The batch ends with one sealed Amazon carton by the door. The 3D printers (Bambu P2S and H2S) and the label printer (Epson ET-2400) sit on their own benches on the east wall, and keep the line supplied with spacers and label sheets. The line Assembly: load the motor, swap its 4 stock screws for long M3s through a 4 mm spacer and the PCB with the SKIL Twist 2.0, plug in the motor cable, rack it. QC: cradle, DATA and PWR USB-C, a spin test, then the ready rack. Pack-out: 743 mailer with pink foam, 2 USB-C cables, a 45 W charger and a 24 label. Ship-ready: 30 mailers into a 151317 carton, flaps folded, taped, out by the door. Printers: the P2S and H2S print spacer plates (25 and 49 per plate). Finished plates go into a tub, which refills the assembly basket. Labels: the Epson prints AveneMark sheets; the operator carries them to pack-out. Racks, a tote and the carton carry the batch from bench to bench. Every step is timed, and walking time is shown separately. Controller board. Its modelled from the imrishabh18rp2040-motor-controller(https:tscircuit.comimrishabh18rp2040-motor-controller) v1.0.55 circuit.json: the 42.3 mm chamfered outline and 31 mm mounting holes; all 103 populated top-side parts at their placed positions; DATA and PWR USB-C on one edge, and the side-entry JST-PH J1, which takes the motor cables PHR-4. Playing it Simulate: a full batch of 30, or 1 motor from start to ship. Jump to a bench: start at any bench with the units already done up to it. Equipment buttons: 3D prints are ready and Labels printed. Game mode keys: E runs a bench, and again pauses it. R carries a part-filled rack or tote on to the next bench. C carries on after a pause. F picks up or puts back the screwdriver. M toggles sound. Collecting mid-run: pause, walk to a blue circle at the label printer or a 3D printer, and E does that job now. When you walk away, he sets down what was in his hands, so nothing floats. Sound: synthesized with WebAudio, with no audio files. The screwdriver and the stepper follow the motion in the scene. Operator: a 62 figure with shaped limbs. He carries loads upright with both hands. Code libjob: the per-unit steps for each bench, slot-based containers, transfers and printer and label jobs. bench-work.ts picks the next work. libsimulation: the headless core, game actions, line setup, pause parking, equipment circles and sound cues. libmodels: the standing desk, SKIL screwdriver, RP2040 board (from rp2040-board-layout.ts), Bambu printers, Epson, carton, mailer, racks, tote and JST and USB-C plugs. libviewersound: the WebAudio synthesis. libmodelsfolding-table.ts is replaced by standing-desk.ts, and libjobrun-work-item.ts by bench-work.ts. Assumptions to check Table positions are placeholders in liblayoutstation-layout.ts. Gesture durations are placeholders, so the batch time of about 46 min is not measured. Plate times are estimates, not slicer output. The 37 lb carton weight is an estimate; weigh a packed unit before ordering cartons. The buzzer chirp at QC assumes test firmware; the board ships with none. Validation bun test passes: 23 tests. They cover: the full 30-unit batch shipping in one sealed carton, and the 1-motor run; jumping to each bench, and partial R carries; pausing mid-screw to collect prints and labels, then resuming; carries staying upright with uncrossed hands; reset leaving nothing floating; the boards ports and size; the sound cues. bun run typecheck, bun run format:check and bun run build:site pass. I checked the exported page in headless Chromium with screenshots of each bench, the carries, the carton sealing and the circles. I also recorded the audio and checked spectrograms. https:claude.aicodesession_01PiJ1d2PYfhr4CWFK6CKzrp |
| #1 | 🐳 Major | ⭐⭐⭐ | Abse2001 | Adds the unit 322 manufacturing simulation, laid out the way the tscircuit handbook bootstraps repos: bun with no lockfile, TypeScript in lib and tests, biome, the plop typechecktestformat workflows, and a React Cosmos site that Vercel builds with cosmos-export. It mirrors drawing-viewer. A 62 operator walks the unit 322 floor and runs a 12-step job across three 6 tables. The job pulls a NEMA17 backface spacer from the P2S, swaps the motors backface screws to mount the spacer and motor controller PCB, then folds a mailer box, adds foam inserts, packs the assembly and moves it to finished goods. Each step and walking time are clocked. Game mode lets you walk the operator (WASD), run the next step at a station (E) and pick up the screwdriver (F). The camera zooms down to the screws. |
tscircuit/circuit-json-to-gerber
| PR # | Impact | Rating | Contributor | Description |
|---|---|---|---|---|
| #246 | 🐙 Minor | ⭐⭐ | Abse2001 | Merges cutouts that end exactly on the board edge into the board outline instead of emitting them as separate Edge.Cuts loops. |
| #245 | 🐙 Minor | ⭐⭐ | Abse2001 | Fixes a bug where a cutout that runs flush with the board edge is incorrectly emitted as a separate Edge.Cuts loop instead of being merged into the board outline. |
tscircuit/docs
🐌 Tiny Contributions (1)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #1019 | 🐌 Tiny | techmannih | Updates documentation to clarify the behavior of the routeRemaining setting in relation to the implicit routing phase and the 50-connection threshold. |
tscircuit/contribution-tracker
🐌 Tiny Contributions (2)
| PR # | Impact | Contributor | Description |
|---|---|---|---|
| #402 | 🐌 Tiny | abdalraof-albarbar | Registers abdalraof-albarbar in sponsorship-profiles.json with the personal Open Collective profile following the repositorys profile registration guide |
| #403 | 🐌 Tiny | hrithik18k | Updates the Open Collective profile URL for the user hrithik18k in the sponsorship-profiles.json file. |
Changes by Contributor
seveibar
| PRs # | Impact | Rating | Description |
|---|---|---|---|
| #1004 | 🐳 Major | ⭐⭐⭐ | Add optional schematic_group.show_boundary, schematic_port.schematic_group_id, and schematic_port.boundary_position to define expanded subcircuit boundaries and public terminal geometry. |
| #1009 | 🐳 Major | ⭐⭐⭐ | Adds assembly drawing capabilities with explosion views and reusable stage definitions, enhancing the drawing functionality for parts and assemblies. |
| #5851 | 🐳 Major | ⭐⭐⭐ | Adds a copyable, syntax-highlighted TSX usage example beneath the customization preview, using the selected variants parameters and the packages published default or named component export. |
| #5815 | 🐳 Major | ⭐⭐⭐ | Adds a Reference designs button to the datasheet header that links to the curated catalog of designs using the chip. |
| #5813 | 🐳 Major | ⭐⭐⭐ | Adds a Customize link in the package About section for packages with a manifest, allowing users to navigate to the Customize page directly from the sidebar. |
| #5812 | 🐳 Major | ⭐⭐⭐ | Adds a new page for customizing package configurations, allowing users to interact with published configurations through controls generated from preview data. |
| #5811 | 🐳 Major | ⭐⭐⭐ | Adds the data layer for packages whose build publishes distpreview.json, including hooks for loading manifests and managing package configurations. |
| #637 | 🐳 Major | ⭐⭐⭐ | Adds a Buzzers link on the home page and buzzerslist with package, Basic, and Preferred filters, and exposes the same results through the API at buzzerslist.json. |
| #5773 | 🐳 Major | ⭐⭐⭐ | Only the first 10 errors (and warnings) of each type are logged; the rest are reported as a count, improving clarity in build error reporting. |
| #272 | 🐳 Major | ⭐⭐⭐ | Fixes routing failures for local HDMI escapes by ensuring proper handling of blind and buried vias, allowing for four pad-to-via escapes without clearance violations. |
| #252 | 🐳 Major | ⭐⭐⭐ | Adds routeLocalSignalDogbones for routing both package terminals to local signal-layer vias before a fixed-layer interconnect solve, preserving existing boundary-routing behavior. |
| #182 | 🐳 Major | ⭐⭐⭐ | Fits demand-sized tuning banks to a populated board by allowing kinks in routing paths and adjusting bank layouts to accommodate obstacles from other components. |
| #181 | 🐳 Major | ⭐⭐⭐ | Fixes HDMI routing failure due to local blind-via escapes being rejected by bottom-layer decoupling pads, updating the fanout-solver to check physical via spans and source-trace layers. |
| #1 | 🐳 Major | ⭐⭐⭐ | tscircuit desktop is T3 Code plus a small set of tscircuit changes. T3 Code lands about 180 commits a day, so this repo is not a fork: it holds only the difference and rebuilds the app from it. |
| #312 | 🐙 Minor | ⭐⭐ | Adds two props to SchematicViewer to outline rendered schematic components and texts with a dashed blue outline based on provided IDs. |
| #5852 | 🐙 Minor | ⭐⭐ | Moves the TSX usage panel into the shared PackageConfigurationPreview to ensure both the datasheet reference-design pages and the package customize page display copyable code for the selected configuration. |
| #5834 | 🐙 Minor | ⭐⭐ | Draws dashed outlines around changed schematic parts on the Customize and reference-design pages for three seconds using the schematic viewers new props. |
| #5814 | 🐙 Minor | ⭐⭐ | Adds two new pages for displaying reference designs for specific chips, enhancing the datasheet functionality. |
| #5810 | 🐙 Minor | ⭐⭐ | Adds change tracking between two circuits, allowing the Customize page to identify which schematic parts a configuration switch added or changed. |
| #5809 | 🐙 Minor | ⭐⭐ | Adds PackagePreviewScope, an optional context that supplies the release, preview file, circuit JSON and GLB for an embedded preview, allowing hooks to resolve identity without a provider. |
| #5808 | 🐙 Minor | ⭐⭐ | Adds support for loading gzip-compressed Circuit JSON preview files, allowing package pages to preview large circuits efficiently. |
🐌 Tiny Contributions (3)
| PR # | Impact | Description |
|---|---|---|
| #112 | 🐌 Tiny | Adds an exported TscircuitLogo for placing the tscircuit tsdot mark on a PCBs silkscreen, with customizable properties for size, position, rotation, and layer. |
| #271 | 🐌 Tiny | Reproduces the issue where HDMI blind escapes are blocked by bottom decoupling pads, providing comprehensive tests and validation without altering the solvers production. |
| #2 | 🐌 Tiny | The app is now called tscircuit desktop and carries tscircuits icon. It also has its own app ID, link scheme and data folders, so it can be installed beside T3 Code without sharing its data. |
tscircuitbot
🐌 Tiny Contributions (272)
| PR # | Impact | Description |
|---|---|---|
| #6366 | 🐌 Tiny | Automated package update |
| #6365 | 🐌 Tiny | Automated package update |
| #6364 | 🐌 Tiny | Automated package update |
| #6363 | 🐌 Tiny | Automated package update |
| #6362 | 🐌 Tiny | Updates the package version from 0.0.3167 to 0.0.3168 in package.json |
| #6361 | 🐌 Tiny | Automated package update |
| #6360 | 🐌 Tiny | Automated package update |
| #6359 | 🐌 Tiny | Automated package update |
| #6343 | 🐌 Tiny | Updates the package version from 0.0.3158 to 0.0.3159 in package.json |
| #6326 | 🐌 Tiny | Automated package update |
| #6313 | 🐌 Tiny | Automated package update |
| #6353 | 🐌 Tiny | Automated package update |
| #6336 | 🐌 Tiny | Automated package update |
| #6332 | 🐌 Tiny | Automated package update |
| #6331 | 🐌 Tiny | Automated package update |
| #6358 | 🐌 Tiny | Automated package update |
| #6357 | 🐌 Tiny | Automated package update |
| #6355 | 🐌 Tiny | Automated package update |
| #6352 | 🐌 Tiny | Automated package update |
| #6351 | 🐌 Tiny | Automated package update |
| #6350 | 🐌 Tiny | Automated package update |
| #6346 | 🐌 Tiny | Automated package update |
| #6345 | 🐌 Tiny | Automated package update |
| #6341 | 🐌 Tiny | Automated package update |
| #6339 | 🐌 Tiny | Automated package update |
| #6337 | 🐌 Tiny | Automated package update |
| #6335 | 🐌 Tiny | Automated package update |
| #6334 | 🐌 Tiny | Automated package update |
| #6330 | 🐌 Tiny | Automated package update |
| #6329 | 🐌 Tiny | Automated package update |
| #6328 | 🐌 Tiny | Automated package update |
| #6327 | 🐌 Tiny | Automated package update |
| #6324 | 🐌 Tiny | Automated package update |
| #6323 | 🐌 Tiny | Automated package update |
| #6321 | 🐌 Tiny | Automated package update |
| #6319 | 🐌 Tiny | Updates the version of the tscircuiteval and tscircuitrunframe packages in package.json |
| #6317 | 🐌 Tiny | Automated package update |
| #6316 | 🐌 Tiny | Automated package update |
| #6315 | 🐌 Tiny | Updates the tscircuitcli package to version 0.1.2451 |
| #6312 | 🐌 Tiny | Automated package update |
| #6348 | 🐌 Tiny | Automated package update |
| #6340 | 🐌 Tiny | Automated package update |
| #6333 | 🐌 Tiny | Automated package update |
| #6347 | 🐌 Tiny | Updates the tscircuitcli and tscircuitcore packages to their latest versions. |
| #6318 | 🐌 Tiny | Automated package update |
| #6322 | 🐌 Tiny | Automated package update |
| #6314 | 🐌 Tiny | Automated package update |
| #6320 | 🐌 Tiny | Automated package update |
| #1005 | 🐌 Tiny | Automated package update |
| #5446 | 🐌 Tiny | Updates the version of the tscircuitchecks package from 0.0.276 to 0.0.277 in package.json |
| #5433 | 🐌 Tiny | Updates the version of the tscircuitchecks package from 0.0.273 to 0.0.274 in package.json |
| #5432 | 🐌 Tiny | Updates the tscircuitchecks package to version 0.0.274 in package.json |
| #5416 | 🐌 Tiny | Updates the version of the tscircuitfanout-solver package from 0.0.81 to 0.0.84 in package.json |
| #5436 | 🐌 Tiny | Updates the tscircuitchecks package from version 0.0.274 to 0.0.276 |
| #5874 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3223 to 0.0.3224 |
| #5873 | 🐌 Tiny | Updates the tscircuiteval package version from 0.0.1759 to 0.0.1760 in package.json |
| #5872 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3222 to 0.0.3223 |
| #5871 | 🐌 Tiny | Automated package update |
| #5870 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3221 to 0.0.3222 |
| #5869 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1757 to 0.0.1758 |
| #5868 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3220 to 0.0.3221 |
| #5867 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1756 to 0.0.1757 |
| #5866 | 🐌 Tiny | Updates the tscircuitrunframe package version from 0.0.3219 to 0.0.3220 |
| #5865 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1755 to 0.0.1756 |
| #5864 | 🐌 Tiny | Updates the tscircuitrunframe package version from 0.0.3218 to 0.0.3219 in package.json |
| #5863 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1754 to 0.0.1755 |
| #5861 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3216 to 0.0.3218 |
| #5860 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1753 to 0.0.1754 |
| #5859 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1752 to 0.0.1753 |
| #5857 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3215 to 0.0.3216 |
| #5856 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1751 to 0.0.1752 |
| #5855 | 🐌 Tiny | Updates the tscircuitrunframe package version from 0.0.3214 to 0.0.3215 |
| #5854 | 🐌 Tiny | Updates the tscircuiteval package version from 0.0.1750 to 0.0.1751 in package.json |
| #5850 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3213 to 0.0.3214 |
| #5849 | 🐌 Tiny | Updates the tscircuiteval package version from 0.0.1749 to 0.0.1750 in package.json |
| #5848 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3212 to 0.0.3213 |
| #5847 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1748 to 0.0.1749 |
| #5846 | 🐌 Tiny | Automated package update |
| #5845 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1747 to 0.0.1748 in the package.json file. |
| #5844 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3210 to 0.0.3211 |
| #5843 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1746 to 0.0.1747 |
| #5842 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3209 to 0.0.3210 |
| #5841 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1745 to 0.0.1746 |
| #5840 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3208 to 0.0.3209 |
| #5839 | 🐌 Tiny | Updates the tscircuiteval package version from 0.0.1744 to 0.0.1745 in package.json |
| #5838 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3207 to 0.0.3208 and the tscircuitschematic-viewer package from version 2.0.108 to 2.0.109 |
| #5837 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1743 to 0.0.1744 and the tscircuitschematic-viewer package from version 2.0.110 to 2.0.108 in package.json |
| #5836 | 🐌 Tiny | Automated package update to version 0.0.227 |
| #5818 | 🐌 Tiny | Updates the tscircuiteval package version from 0.0.1736 to 0.0.1737 in package.json |
| #5816 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1735 to 0.0.1736 |
| #5835 | 🐌 Tiny | Automated package update |
| #5832 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3205 to 0.0.3206 |
| #5831 | 🐌 Tiny | Automated package update |
| #5830 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3204 to 0.0.3205 |
| #5829 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1741 to 0.0.1742 |
| #5828 | 🐌 Tiny | Updates the tscircuitrunframe package version from 0.0.3203 to 0.0.3204 |
| #5827 | 🐌 Tiny | Updates the tscircuiteval package version from 0.0.1740 to 0.0.1741 in package.json |
| #5825 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3201 to 0.0.3202 |
| #5823 | 🐌 Tiny | Updates the tscircuitrunframe package version from 0.0.3200 to 0.0.3201 in package.json |
| #5822 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1738 to 0.0.1739 |
| #5821 | 🐌 Tiny | Updates the tscircuitrunframe package version from 0.0.3199 to 0.0.3200 in package.json |
| #5820 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1737 to 0.0.1738 |
| #5819 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3198 to 0.0.3199 |
| #5817 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3197 to 0.0.3198 |
| #5807 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3196 to 0.0.3197 |
| #5806 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1734 to 0.0.1735 in the package.json file. |
| #5804 | 🐌 Tiny | Updates the tscircuitrunframe package version from 0.0.3195 to 0.0.3196 in package.json |
| #5803 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1733 to 0.0.1734 |
| #5802 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3194 to 0.0.3195 |
| #5826 | 🐌 Tiny | Updates the tscircuitrunframe package from version 0.0.3202 to 0.0.3203 |
| #5824 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1739 to 0.0.1740 |
| #5800 | 🐌 Tiny | Automated package update |
| #5799 | 🐌 Tiny | Updates package dependencies to their latest versions as part of routine maintenance. |
| #5797 | 🐌 Tiny | Automated package update |
| #5796 | 🐌 Tiny | Automated package update |
| #5794 | 🐌 Tiny | Automated package update |
| #5793 | 🐌 Tiny | Automated package update |
| #5791 | 🐌 Tiny | Automated package update |
| #5790 | 🐌 Tiny | Updates the version of the tscircuitcore package from 0.0.2356 to 0.0.2357 in package.json |
| #5788 | 🐌 Tiny | Automated package update |
| #5787 | 🐌 Tiny | Automated package update |
| #5785 | 🐌 Tiny | Automated package update |
| #5784 | 🐌 Tiny | Updates package dependencies to their latest versions as part of routine maintenance. |
| #5782 | 🐌 Tiny | Automated package update |
| #5781 | 🐌 Tiny | Updates the versions of several dependencies in the package.json file. |
| #5779 | 🐌 Tiny | Automated package update |
| #5778 | 🐌 Tiny | Automated package update |
| #5776 | 🐌 Tiny | Automated package update |
| #5775 | 🐌 Tiny | Updates the version of tscircuitcore and tscircuitcore-ddr-benchmark in package.json |
| #5773 | 🐌 Tiny | Automated package update |
| #5772 | 🐌 Tiny | Updates various package dependencies to their latest versions. |
| #5770 | 🐌 Tiny | Automated package update |
| #5769 | 🐌 Tiny | Updates package dependencies to their latest versions as part of routine maintenance. |
| #5767 | 🐌 Tiny | Automated package update |
| #5766 | 🐌 Tiny | Automated package update |
| #5764 | 🐌 Tiny | Automated package update |
| #5763 | 🐌 Tiny | Automated package update |
| #5761 | 🐌 Tiny | Automated package update |
| #5758 | 🐌 Tiny | Automated package update |
| #5757 | 🐌 Tiny | Updates package dependencies to their latest versions as part of routine maintenance. |
| #5755 | 🐌 Tiny | Automated package update |
| #5754 | 🐌 Tiny | Updates the version of tscircuitcore and tscircuitdogbone-solver in package.json |
| #5751 | 🐌 Tiny | Automated package update |
| #5750 | 🐌 Tiny | Updates the versions of several dependencies in the package.json file. |
| #5740 | 🐌 Tiny | Updates the version of the tscircuitcore package from 0.0.2336 to 0.0.2337 in package.json |
| #5744 | 🐌 Tiny | Automated package update |
| #5743 | 🐌 Tiny | Updates package dependencies to their latest versions as part of routine maintenance. |
| #5736 | 🐌 Tiny | Automated package update |
| #5735 | 🐌 Tiny | Updates package dependencies to their latest versions in package.json |
| #5733 | 🐌 Tiny | Automated package update |
| #5730 | 🐌 Tiny | Automated package update |
| #5729 | 🐌 Tiny | Automated package update |
| #5727 | 🐌 Tiny | Automated package update |
| #5726 | 🐌 Tiny | Updates the version of tscircuitcapacity-autorouter from 0.0.1074 to 0.0.1075 and tscircuitcore from 0.0.2332 to 0.0.2333 in package.json |
| #5724 | 🐌 Tiny | Automated package update |
| #5723 | 🐌 Tiny | Automated package update |
| #5721 | 🐌 Tiny | Automated package update |
| #5720 | 🐌 Tiny | Updates various package dependencies to their latest versions in package.json |
| #5718 | 🐌 Tiny | Automated package update |
| #5717 | 🐌 Tiny | Updates the version of the tscircuitcore package from 0.0.2329 to 0.0.2330 in package.json |
| #5715 | 🐌 Tiny | Automated package update to version 0.0.1735 |
| #5714 | 🐌 Tiny | Updates the versions of several dependencies in the package.json file. |
| #5732 | 🐌 Tiny | Updates the versions of several dependencies in the package.json file. |
| #5741 | 🐌 Tiny | Automated package update |
| #6274 | 🐌 Tiny | Automated package update |
| #6273 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1759 to 0.0.1760 in the package.json file. |
| #6272 | 🐌 Tiny | Automated package update |
| #6271 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1758 to 0.0.1759 in the package.json file. |
| #6270 | 🐌 Tiny | Automated package update |
| #6269 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1757 to 0.0.1758 |
| #6268 | 🐌 Tiny | Automated package update |
| #6267 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1756 to 0.0.1757 |
| #6266 | 🐌 Tiny | Automated package update |
| #6265 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1755 to 0.0.1756 |
| #6264 | 🐌 Tiny | Automated package update |
| #6263 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1754 to 0.0.1755 in the package.json file. |
| #6262 | 🐌 Tiny | Automated package update |
| #6261 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1753 to 0.0.1754 |
| #6260 | 🐌 Tiny | Automated package update |
| #6259 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1752 to 0.0.1753 |
| #6258 | 🐌 Tiny | Automated package update |
| #6257 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1751 to 0.0.1752 |
| #6256 | 🐌 Tiny | Automated package update |
| #6255 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1750 to 0.0.1751 |
| #6254 | 🐌 Tiny | Automated package update |
| #6253 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1749 to 0.0.1750 |
| #6252 | 🐌 Tiny | Automated package update |
| #6251 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1748 to 0.0.1749 |
| #6250 | 🐌 Tiny | Automated package update |
| #6249 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1747 to 0.0.1748 |
| #6248 | 🐌 Tiny | Automated package update |
| #6247 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1746 to 0.0.1747 |
| #6246 | 🐌 Tiny | Automated package update |
| #6245 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1745 to 0.0.1746 |
| #6244 | 🐌 Tiny | Automated package update |
| #6243 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1744 to 0.0.1745 |
| #6242 | 🐌 Tiny | Automated package update |
| #6241 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1743 to 0.0.1744 |
| #6236 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1742 to 0.0.1743 |
| #6234 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1741 to 0.0.1742 |
| #6229 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1739 to 0.0.1740 |
| #6226 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1738 to 0.0.1739 |
| #6225 | 🐌 Tiny | Automated package update |
| #6224 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1737 to 0.0.1738 |
| #6223 | 🐌 Tiny | Automated package update |
| #6222 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1736 to 0.0.1737 |
| #6220 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1735 to 0.0.1736 |
| #6219 | 🐌 Tiny | Automated package update |
| #6218 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1734 to 0.0.1735 |
| #6214 | 🐌 Tiny | Updates the circuit-json-to-gerber package from version 0.0.121 to 0.0.122 |
| #6235 | 🐌 Tiny | Automated package update |
| #6231 | 🐌 Tiny | Automated package update |
| #6230 | 🐌 Tiny | Automated package update |
| #6227 | 🐌 Tiny | Automated package update |
| #6221 | 🐌 Tiny | Automated package update |
| #6217 | 🐌 Tiny | Automated package update |
| #6216 | 🐌 Tiny | Automated package update |
| #6215 | 🐌 Tiny | Automated package update |
| #6239 | 🐌 Tiny | Updates the tscircuitschematic-viewer package from version 2.0.108 to 2.0.109 |
| #6240 | 🐌 Tiny | Automated package update |
| #6237 | 🐌 Tiny | Automated package update |
| #6233 | 🐌 Tiny | Automated package update |
| #6232 | 🐌 Tiny | Updates the tscircuiteval package from version 0.0.1740 to 0.0.1741 |
| #5772 | 🐌 Tiny | Automated package update |
| #5766 | 🐌 Tiny | Automated package update |
| #5762 | 🐌 Tiny | Automated package update |
| #2903 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3168 to 0.0.3169 in package.json |
| #2902 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3167 to 0.0.3168 in package.json |
| #2901 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3166 to 0.0.3167 in package.json |
| #2900 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3165 to 0.0.3166 |
| #2899 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3164 to 0.0.3165 in package.json |
| #2898 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3163 to 0.0.3164 in package.json |
| #2897 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3160 to 0.0.3163 in package.json |
| #2894 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3159 to 0.0.3160 in package.json |
| #2893 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3158 to 0.0.3159 in package.json |
| #2889 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3154 to 0.0.3155 |
| #2888 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3152 to 0.0.3154 in package.json |
| #2877 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3142 to 0.0.3143 in package.json |
| #2892 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3157 to 0.0.3158 in package.json |
| #2883 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3148 to 0.0.3149 in package.json |
| #2880 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3145 to 0.0.3146 in package.json |
| #2879 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3144 to 0.0.3145 in package.json |
| #2878 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3143 to 0.0.3144 in package.json |
| #2891 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3156 to 0.0.3157 in package.json |
| #2890 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3155 to 0.0.3156 in package.json |
| #2887 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3150 to 0.0.3152 in package.json |
| #2876 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3141 to 0.0.3142 in package.json |
| #2884 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3149 to 0.0.3150 in package.json |
| #2882 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3147 to 0.0.3148 |
| #2881 | 🐌 Tiny | Updates the tscircuit package version from 0.0.3146 to 0.0.3147 in package.json |
| #3758 | 🐌 Tiny | Automated package update |
| #3750 | 🐌 Tiny | Automated package update |
| #3735 | 🐌 Tiny | Automated package update |
| #3731 | 🐌 Tiny | Automated package update |
| #3724 | 🐌 Tiny | Automated package update |
| #3722 | 🐌 Tiny | Automated package update |
| #3721 | 🐌 Tiny | Automated package update |
| #3714 | 🐌 Tiny | Automated package update |
| #3713 | 🐌 Tiny | Automated package update |
| #3668 | 🐌 Tiny | Automated package update |
| #3695 | 🐌 Tiny | Automated package update |
| #3686 | 🐌 Tiny | Automated package update |
| #3683 | 🐌 Tiny | Automated package update |
| #3676 | 🐌 Tiny | Automated package update |
| #3659 | 🐌 Tiny | Automated package update |
| #3669 | 🐌 Tiny | Automated package update |
| #1430 | 🐌 Tiny | Bumps the version number in package.json from 0.0.243 to 0.0.245 for jscdn publishing. |
| #453 | 🐌 Tiny | Automated package update |
| #451 | 🐌 Tiny | Automated package update |
| #30 | 🐌 Tiny | Automated package update |
| #29 | 🐌 Tiny | Automated package update |
| #19 | 🐌 Tiny | Automated package update |
MustafaMulla29
| PRs # | Impact | Rating | Description |
|---|---|---|---|
| #5437 | 🐳 Major | ⭐⭐⭐ | Fixes incorrect board-level plane reservations caused by child groups affecting autorouting output. |
| #5426 | 🐳 Major | ⭐⭐⭐ | Fixes copper-plane connectivity issues at breakout endpoints, preventing redundant routing requests in the autorouter. |
| #5424 | 🐳 Major | ⭐⭐⭐ | After native copper-pour generation, the STM32s ground pads already connect through their escape vias and a shared ground plane. Core loses that physical connection when exporting breakout endpoints, so the native router requests redundant connections. This TSX repro uses U70s complete STM32MP157DAB1 footprint from our four-motor USB-CUSB-PD motherboard: All 354 literal pad definitions match the JLCPCB C1236721 import, including its original coordinates and sizes. All 104 motherboard GND assignments are retained, with semantic ball names from the board. The same six-layer arrangement, 20 20 mm breakout region, native dogbone settings and relevant tracevia rules are used. The chip remains at its motherboard position, (0, 20). A 24 24 mm inspection board contains the chip and one native inner1 ground pour. Other nets, other motherboard components and unused 3D assets are omitted. The test runs native dogbone routing native ground-pour generation core SRJ export native point-pair generation. All 104 escape vias are generated afresh and checked geometrically against the same ground pour. Expected: 0 new routes; actual: 103 redundant requests. No patched solver, saved routes, injected copper or dependencyconfiguration changes. The snapshot separates existing copper from connection requests. The complete chip, TOP escape close-up and INNER1 plane close-up are pixel-identical before and after the fix. A separate aligned INNER3 panel shows the actual native requests as dashed pink lines. The written path follows F7 pad short trace F7 via shared INNER1 plane G6 via short trace G6 pad. Pink dashes mean connect these endpoints; they are neither copper nor a prescribed track shape. The test uses routeRemainingfalse: it skips full-board routing so native pour generation can complete, then tests the export of that existing copper. It does not reproduce or fix the motherboards initial routing iteration-limit failure, which occurs before the physical pours are generated. This defect was found when motherboard path search exhausted its budget on ground links before reaching DDR signals. The stacked fix is 5426; its matching full-STM32 snapshot changes 103 requests to 0. Validation: the updated native STM32 repro and full TypeScript check pass on both the repro and fix branches; changed-file formatting passes. Rendered beforeafter images were compared and all three physical-copper panels are pixel-identical. The existing copper-pour terminal-routing test passed in earlier verification. Every imported pad definition matches the motherboard source. The previously investigated full-suite failure is the existing AM62L direct-decoupling snapshot mismatch, also present on unchanged main: repro log(https:github.comtscircuitcoreactionsruns43183539146job131065071153), main log(https:github.comtscircuitcoreactionsruns43140285484job130925346524). That unrelated snapshot is unchanged. The full suite was not rerun locally for this fixture update. |
| #558 | 🐳 Major | ⭐⭐⭐ | Enables TraceSimplificationSolver and ConnectorPlacementSolver in the existing schematic-placement check, producing warnings for avoidable trace turns and connector detours without modifying the circuit. |
| #268 | 🐳 Major | ⭐⭐⭐ | Fixes failure to assign valid dogbone sites for pads in imported STM32MP157DAB1 footprint, ensuring all pads have legal candidates for routing. |
| #5438 | 🐙 Minor | ⭐⭐ | Fixes incorrect board plane reservations by ensuring that child groups do not influence the boards routing dimensions when their subcircuit IDs match. |
| #559 | 🐙 Minor | ⭐⭐ | Enables detection of schematic net-label collisions and crossed branch orders, providing detailed warnings for component styling issues. |
| #560 | 🐙 Minor | ⭐⭐ | Enables detection of schematic component overlaps and text collisions, producing styling warnings without modifying the circuit. |
| #267 | 🐙 Minor | ⭐⭐ | Found while building our four-motor USB-PD motherboard with the JLCPCB C1236721 STM32MP157DAB1 footprint. The existing matcher drops non-45 midpoint candidates on the imported pad grid, but does not generate nearby exact-angle alternatives. Ten pads have no usable candidates, including A10, and the complete assignment fails. This follows the repositorys captured-input and SVG snapshot pattern: an explicit TSX generator retains all 354 imported pads, a native SRJ fixture captures A10, and one test requests a distinct local escape for every physical pad to exercise joint assignment. The snapshot shows the full pad field and an A10 close-up. These 354 test requests are a geometry regression, not the motherboard netlist. No solver changes, new dependencies, configuration changes, manual copper, or saved routes. Validation: focused snapshot test passes while asserting the current failure; all three repository typecheck commands pass. Fix PR 268 is stacked on this branch (267 268). Related: tscircuitdogbone-solver17 fixes the callers angle-mode mismatch. This repro exercises fanouts existing directplane matcher independently. The separate local-signal API work in 252 also addresses imported grids, but does not change this main-branch matcher. |
| #16 | 🐙 Minor | ⭐⭐ | The native dogbone router stops on STM32MP157DAB1 pin W13 while building our four-motor USB-PD motherboard. It selects a pad-to-via candidate with XY offsets of 0.3999230.400050 mm, then rejects that same candidate at its straight45-degree guard. No escape copper is returned. Adds the complete explicit 354-pad JLCPCB C1236721 footprint in TSX, a capture script, the unedited native solver input, and one snapshot characterization test. The snapshot shows the full pad field, an enlarged W13 candidate, the numerical mismatch and zero accepted traces. All imported pad coordinates and radii are retained. There are no manual traces, saved routes, solver overrides, new dependencies or configuration changes. The fixture was captured with tscircuit 0.0.3150 core 0.0.2334 and matches the original failing motherboard isolation input exactly. Run bun test testsimported-grid.test.ts to reproduce without installing core. To recapture, copy the two examplesimported-grid files into an existing tscircuit project and run bun capture-imported-grid.mjs. This overlaps 89: the same candidateemitter contract mismatch, with coverage for a real imported STM32 grid. Fix 17 is stacked on top of this repro, with the accepted-route snapshot. Mergereview order: 16 17. Validation: all 15 tests pass (1047 assertions), typecheck and format checks pass; SVG rendered and inspected. The passing characterization test asserts the current failure. This covers one local signal escape with the full footprint retained, not all 260 MCU signals or whole-board routing. |
| #17 | 🐙 Minor | ⭐⭐ | Fixes angle-selection mismatch for dogbone candidates in STM32MP157DAB1 native escape, ensuring only valid 45-degree candidates are assigned. |
🐌 Tiny Contributions (16)
| PR # | Impact | Description |
|---|---|---|
| #6354 | 🐌 Tiny | Updates the direct kicadts dependency from 0.0.53 to 0.0.65, the latest published release, and refreshes its Bun lockfile entries. |
| #6349 | 🐌 Tiny | Update tscircuitcore from 0.0.2343 to 0.0.2346 and tscircuiteval from 0.0.1744 to 0.0.1748, synchronizing fanout-solver and props versions as well as regenerating the lockfile. |
| #6325 | 🐌 Tiny | Update the published dependencies in package.json to versions 0.0.2334 for tscircuitcore and 0.0.1739 for tscircuiteval, along with regenerating the lockfile. |
| #5394 | 🐌 Tiny | Updates the tscircuitdogbone-solver dependency from version 0.0.1 to 0.0.2, which includes a fix for escape vias being incorrectly blocked by unbroken ground planes on other layers. |
| #5408 | 🐌 Tiny | Updates the tscircuitdogbone-solver CDN dependency from 0.0.2 to 0.0.4, addressing native dogbone escape blockers found with the STM32MP157DAB1 in the four-motor USB-PD motherboard. |
| #5760 | 🐌 Tiny | Update tscircuitcore from 0.0.2345 to the published 0.0.2346 release and synchronize tscircuitprops from 0.0.724 to 0.0.728, matching cores release manifest and evals existing copy-core-versions logic. |
| #5770 | 🐌 Tiny | Updates the CLIs pinned dependencies for circuit-json-to-kicad and circuit-json-schematic-placement-analysis to their latest versions, ensuring compatibility and incorporating recent fixes. |
| #894 | 🐌 Tiny | Built-in and custom symbols can place electrical endpoints between KiCads 1.27 mm connection-grid points. This addresses the off-grid portion of 878 by placing pins, symbol origins, and attached electrical objects together on every schematic sheet. Stacked on 893; this PR targets repro878-custom-symbol-off-grid. Solve sheet connections and local pin positions together, subject to attachment bounds on the unchanged symbol bodies. Choosing fixed local pin offsets first could reject valid layouts, including the automotive mirror fixture. Preserve coordinate ordering, but require a grid interval only where electrical points or wires must remain distinct. Unrelated wiring can share a row instead of forcing extra rows between another components pins. Check every electrical points wire attachments before applying placement. This permits diagonal wires whose contacts survive and rejects placements that would introduce or remove a connection. Determine pin attachments to circular arcs from their geometry, retaining the original arc span and branch. Symbols with unrelated arcs export normally. Recognize slanted free-end strokes as leads. Identical duplicate strokes move together; ambiguous attachments to different strokes still fail. Move wire endpoints, junctions, global and inline labels, and no-connect markers consistently. Prefer shared symbol definitions where the wiring permits them, and preserve already-aligned connections, including fractional-origin cases. Keep body artwork and scale unchanged; adjust lead endpoints or native pin lengths to reach the body. Use the existing coordinate helpers and transformation-matrix for placement. Surface unsatisfied placement constraints as errors. There is no warn-and-export-original-coordinates fallback. README documents the compatibility boundary: no body resizing or general rerouting, and KiCad only permits orthogonal native pin angles. Follow the maintainers cleanup requests: function-specific named parameters first and context last, hoisted helpers, domain-specific names and component-id types, numbered tests with tscircuit-built fixtures, and visual snapshots for all six built-in grid cases. No new dependencies. This does not implement general rerouting or resolve artworktext collisions; dense label text can still overlap. Validation with KiCad 10.0.1: Follow-up f3d658b: 21 focused grid and pin-angle tests pass locally. Three new regressions cover direct arc attachments, the missing part of an arc, and connected clockwise major arcs; native ERCnetlist checks and nine new PNG snapshots are included. Typecheck and formatting pass. Verified native KiCad rejects a generated file after changing a pin angle to 45 degrees. Normal converter paths already emit only cardinal pin angles. The existing graphics repro15 has the same local PNG mismatch with both the preceding and updated placement implementation; its expectation is unchanged. Full CI for the follow-up is pending. 34 tests pass, including the grid regressions, BGA pin-name compatibility, custom transistor, TB67S579FTG, inline labels, and all five generated systems. This was a normal run after updating and inspecting the affected snapshots. New numbered regressions cover independent pin rows sharing grid rows without merging four separate nets, duplicate slanted leads, and connected diagonal routing. Native KiCad netlist comparisons preserve all 584 net names and pin memberships across the BGA, automotive mirror, motor control, consumer wireless, Bluetooth audio, and blood-pressure monitor fixtures. Native ERC checks pass in the focused grid fixtures, excluding only embedded-library lookup warnings. The too-small-body test continues to require an explicit failure. Exact SVG snapshots use the Linux KiCad drawing order from CI. Verified all 23 platform-dependent SVGs contain identical drawing primitives, coordinates, styles, and transforms to the macOS exports. Comparison assertions and tolerances are unchanged. Full CI at ff2a390(https:github.comtscircuitcircuit-json-to-kicadactionsruns42860572301): 306 tests pass, 0 fail, across 266 files. Typecheck and formatting CI also pass. Earlier manual KiCad verification Opened the exported fixtures from commit b536bcc in KiCads schematic editor and inspected Net Navigator and ERC. These checks cover the two fixtures below; they are not a guarantee for every possible layout. Closely spaced custom-symbol pins Net Navigator keeps A on U1.1 U2.1 U3.1 and B on U1.2 U2.2; U3.2 remains intentionally unconnected. The branch junction and both separate nets survive grid placement. Known visual limitation: the AB label text overlaps in this dense fixture; electrical connectivity is preserved, but label collision handling remains unfinished. !Custom-symbol connections and separate net membership(https:github.comuser-attachmentsassetsc7487f4d-deae-4e16-9d60-f93fa35787bc) ERC reports zero errors and no off-grid or disconnected-pin warnings. The three remaining warnings concern the missing installed Custom library. Off-grid and disconnected-pin checks were enabled. !Custom-symbol ERC: only three library lookup warnings remain(https:github.comuser-attachmentsassetsd93eb5b0-1f5f-4d39-9fd7-2c3e76745563) Built-in resistorcapacitor network Net Navigator confirms V3_3 R5.1, R5.2 D1.1, and D1.2 GND (the fixture names its capacitor D1). The wire endpoints still meet the correct pins after grid placement. !Built-in resistor and capacitor connections with net membership(https:github.comuser-attachmentsassets6518026e-2e75-4f83-a625-91ec2c66c156) ERC reports no off-grid or disconnected-pin warnings. Its two errors are undriven power inputs in this passive fixture; the four warnings concern library lookup. These remaining messages are shown rather than excluded. !Built-in ERC: two undriven-power errors and four library lookup warnings(https:github.comuser-attachmentsassets4504ddf3-4b22-484a-bb69-bdca0c38c66a) |
| #893 | 🐌 Tiny | Reproduces the off-grid warning in 878 using the reported MyPart fixture, capturing the current behavior for a subsequent fix without changing production code or dependencies. |
| #882 | 🐌 Tiny | Fixes floating-point roundoff issues in symbol artwork export, ensuring identical custom artwork exports as a single library definition. |
| #879 | 🐌 Tiny | Reproduces a bug where duplicate custom symbols are generated at rounding boundaries, capturing the existing behavior for further investigation. |
| #452 | 🐌 Tiny | Updates the schematic-symbols package from version 0.0.248 to 0.0.251 to resolve dependency conflicts and refresh test snapshots for specific components. |
| #20 | 🐌 Tiny | Updates the tscircuitfanout-solver dependency from version 0.0.82 to 0.0.83 to address a candidate-generation blocker for imported pad grids in the STM32MP157DAB1 four-motor USB-PD motherboard. |
| #10 | 🐌 Tiny | Reproduces a failure in the dogbone escape routing when a ground plane is reserved, confirming the defect with a comprehensive test. |
| #14 | 🐌 Tiny | Fixes the GitHub Packages configuration in the release workflow to ensure dependencies are installed correctly before publishing. |
| #11 | 🐌 Tiny | Updates the tscircuitfanout-solver dependency to version 0.0.82, ensuring that reserved inner1 GND cases produce the same native escape trace and via as ordinary-pour control. |
ShiboSoftwareDev
| PRs # | Impact | Rating | Description |
|---|---|---|---|
| #5442 | 🐳 Major | ⭐⭐⭐ | Bumps capacity-autorouter from 0.0.1083 to 0.0.1084 to bring in the regional portfolio candidate-validation fix, allowing the H616 SVREF region to reject invalid candidates and keep searching for a legal route. |
| #5388 | 🐳 Major | ⭐⭐⭐ | Bumps tscircuitcapacity-autorouter from 0.0.1071 to 0.0.1074, incorporating fixes for faster DDR length-matching obstacle checks, retaining H616 DDR repairs, and restoring physically clear BGA via columns at the gap threshold. |
| #69 | 🐳 Major | ⭐⭐⭐ | Prevents false intersection reports between segments whose bounds are disjoint by adding a check for disjoint bounds in the intersection calculation. |
| #3752 | 🐳 Major | ⭐⭐⭐ | Fixes autorouting failure by ensuring valid solitary inner-layer crossings do not overlap with preloaded copper, allowing routing in previously blocked regions. |
| #3751 | 🐳 Major | ⭐⭐⭐ | Redistribution moves H616s solitary ZQ1 crossing into existing SDQM1 copper, blocking detailed routing. |
| #3737 | 🐳 Major | ⭐⭐⭐ | Reduces layer calculation redundancy by reusing layer selections when neighboring X slices cover the same mesh regions, optimizing performance in topology merging. |
| #3736 | 🐳 Major | ⭐⭐⭐ | Captures twelve native ButterStick mesh regions where a bottom pad edge slices an unrelated eight-layer cell, ensuring accurate layer calculations across all input nodes. |
| #3739 | 🐳 Major | ⭐⭐⭐ | Fixes stitching validation to ensure that stitch bridges do not touch existing vias, preventing accidental trace contacts. |
| #3738 | 🐳 Major | ⭐⭐⭐ | Fixes clearance check issue in H616 stitcher that fails to account for preloaded DDR copper when routing SVREF bridge on inner1. |
| #3743 | 🐳 Major | ⭐⭐⭐ | Fixes incorrect BGA pitch estimation caused by off-grid fiducials, reducing unnecessary grid columns and improving mesh efficiency. |
| #3718 | 🐳 Major | ⭐⭐⭐ | Captures native DDR BGA grid and routing failures for the STMP157 CPU and i.MX6 board, addressing floating-point duplicates and clearance findings without production changes. |
| #3733 | 🐳 Major | ⭐⭐⭐ | Fixes failure to preserve existing stitches that reach both PCB terminals, ensuring complete path reconstruction with clearance-checked segments. |
| #3732 | 🐳 Major | ⭐⭐⭐ | Fixes the issue where the C3 stitch path incorrectly ends on the top copper layer instead of the bottom layer, ensuring accurate routing for the H616 PCB. |
| #3727 | 🐳 Major | ⭐⭐⭐ | Validates each regional portfolio candidate in board coordinates and through cleanup before choosing a winner, ensuring that the first completed candidate does not block SVREF routing in an H616 region. |
| #3726 | 🐳 Major | ⭐⭐⭐ | Reproduces the H616 SVREF routing failure with all 125 components and 264 nets, capturing the failure when the first candidate collides with a BGA pad. |
| #3717 | 🐳 Major | ⭐⭐⭐ | Fixes autorouting failure by reconstructing edge-touching promoted traces over the correct copper clearance envelope, preventing crashes during routing on H616. |
| #3716 | 🐳 Major | ⭐⭐⭐ | Fixes autorouting failure when promoting H616 boundary DDR copper due to neighboring trace issues. |
| #3705 | 🐳 Major | ⭐⭐⭐ | Fixes autorouting failure by measuring regional via clearance from the edge of circular pads instead of their bounding rectangles, ensuring complete connections in high-density routing regions. |
| #3704 | 🐳 Major | ⭐⭐⭐ | Captures circular-pad regional routing failures, including the incomplete C3U2 SVREF connection on the full H616 reference PCB. |
| #3711 | 🐳 Major | ⭐⭐⭐ | Fixes the ranking of pin repairs to ensure that a repair with fewer via errors cannot replace a lower-severity repair when total error counts tie. |
| #3664 | 🐳 Major | ⭐⭐⭐ | Fixes the BGA gap threshold so physically clear via sites reach the existing clearance check. |
| #3689 | 🐳 Major | ⭐⭐⭐ | Fixes the issue of forbidden pad drills being restored inside BGA pads due to contact rollback, ensuring routed DDR connections are preserved. |
| #3688 | 🐳 Major | ⭐⭐⭐ | Reduces the lookup work and retained state during DDR mesh construction, optimizing edge construction time and memory usage. |
| #3671 | 🐳 Major | ⭐⭐⭐ | Reduces the time taken for port-spacing stage by reusing a node-ID index instead of repeatedly scanning mesh nodes for port ownership. |
| #3670 | 🐳 Major | ⭐⭐⭐ | Fixes the issue of discarding safe repairs for H616 DDR peers after a colliding connection is restored. |
| #3667 | 🐳 Major | ⭐⭐⭐ | Changes the dependency pin to use a faster DDR length-matching obstacle check, resulting in a significant speedup in the autorouting process without altering the output copper or solver steps. |
| #3655 | 🐳 Major | ⭐⭐⭐ | Captures the real H616 DDR routing input alongside its completed data-byte copper, exposing clearance regression for visibility in snapshot diffs. |
| #3663 | 🐳 Major | ⭐⭐⭐ | Reproduces the remaining ButterStick DDR routing failure while preserving both completed data bytes. |
| #203 | 🐳 Major | ⭐⭐⭐ | Fixes issue where restoring connections discarded repairs that became safe after other connections were restored, ensuring repaired routes are retained when no new contacts or pad overlaps are present. |
| #202 | 🐳 Major | ⭐⭐⭐ | Restores a safe peer connection during contact repair on the H616 board by discarding a peers repair after the other connection is restored. |
| #90 | 🐳 Major | ⭐⭐⭐ | Reduces DDR length matching time by skipping distant pads and their connectivity checks, resulting in an 8.4 speedup in tuning time without altering emitted copper or routing rules. |
| #262 | 🐳 Major | ⭐⭐⭐ | Fixes endpoint connectivity to respect a vias physical layers, allowing connections through the barrel beyond logical layer transitions. |
| #188 | 🐳 Major | ⭐⭐⭐ | Fixes issue where multi-terminal DDR branches close pending pad exits needed for later signals, ensuring proper routing and connectivity. |
| #185 | 🐳 Major | ⭐⭐⭐ | Fixes the issue where rotated rectangular pads block legal exits by accurately representing their geometry in the local pad frame while retaining the world bounding box for indexing. |
| #179 | 🐳 Major | ⭐⭐⭐ | Compares reachable via anchors with the existing multi-goal grid search before routing the branch to optimize the selection of trunk vias for RAM branches. |
| #3690 | 🐙 Minor | ⭐⭐ | Captures the pad-drill count of the H616 circuit after contact rollback to address a forbidden via drill issue. |
| #209 | 🐙 Minor | ⭐⭐ | Preserves the lower-severity repair when total error counts tie; uses via-error count only when severity also ties. |
| #208 | 🐙 Minor | ⭐⭐ | Reproduces a native ButterStick repair selecting a route through pad66 because it has fewer via errors, despite worse clearance severity. |
| #205 | 🐙 Minor | ⭐⭐ | Fixes the issue where a whole-connection rollback can restore a via hole that earlier repair moved out of its BGA pad, ensuring that the drill is repaired against the final routes only when DRC improves without new contacts or pad overlaps. |
| #201 | 🐙 Minor | ⭐⭐ | Fixes the issue where independent repairs are lost during the contact restoration process by using the original input contact baseline. |
| #187 | 🐙 Minor | ⭐⭐ | Fixes the routing issue where the LDQS_N strobe pad is blocked by the DDR byte in the ButterStick circuit. |
🐌 Tiny Contributions (19)
| PR # | Impact | Description |
|---|---|---|
| #6338 | 🐌 Tiny | Deduplicates dependencies in the project after an autorouter update to reduce production-install size by removing redundant lock entries. |
| #6342 | 🐌 Tiny | Reduces production-install size by deduplicating dependencies after an autorouter update, resolving peer version conflicts and removing redundant lock entries. |
| #5474 | 🐌 Tiny | Bumps capacity-autorouter from 0.0.1086 to 0.0.1087 to preserve valid inner-layer crossing positions when centering a solitary port would overlap preloaded DDR copper, including the merged H616 ZQ1 crossing fix from autorouter PR 3752. |
| #5459 | 🐌 Tiny | Bumps the capacity-autorouter version from 0.0.1085 to 0.0.1086, incorporating three merged fixes related to BGA pitch estimation, DDR copper checks, and topology layer reuse. |
| #5443 | 🐌 Tiny | Bumps the capacity-autorouter version from 0.0.1084 to 0.0.1085 to ensure validated gaps are represented in stitch paths and the native H616 C3 route reaches its bottom-layer terminal, while rejecting output that misses a tagged PCB terminal layer. |
| #5441 | 🐌 Tiny | Pins the native DDR benchmark correction to ensure imported net membership no longer prescribes pad order while maintaining checks on all native terminals, geometry, rules, and phase assignments. |
| #5440 | 🐌 Tiny | Updates the capacity-autorouter and bus-lanes-solver packages to their latest versions, bringing in new features and fixes related to routing and connection paths. |
| #5406 | 🐌 Tiny | Bumps the tscircuitcapacity-autorouter package from version 0.0.1077 to 0.0.1078, incorporating optimizations and fixes from previous pull requests. |
| #5427 | 🐌 Tiny | Updates the tscircuitcapacity-autorouter and tscircuitbus-lanes-solver dependencies to their latest versions, ensuring compatibility and incorporating recent improvements in routing and board tuning. |
| #5398 | 🐌 Tiny | Bumps the tscircuitcapacity-autorouter dependency from version 0.0.1076 to 0.0.1077, ensuring safe H616 DDR repairs after restoring a colliding connection through the updated repair03 dependency. |
| #5397 | 🐌 Tiny | Updates the bus-lanes-solver dependency from version 0.0.51 to 0.0.52, ensuring compatibility and incorporating recent fixes. |
| #5393 | 🐌 Tiny | Bumps tscircuitcapacity-autorouter from 0.0.1074 to 0.0.1075, improving DDR port spacing by reusing a node-ID index for ownership lookups instead of scanning the mesh repeatedly. |
| #5395 | 🐌 Tiny | Bumps tscircuitcapacity-autorouter from 0.0.1075 to 0.0.1076, including the DDR intersection fix from tscircuitmath-utils69. |
| #5396 | 🐌 Tiny | Pins math-utils to version 0.0.39 to resolve false overlap findings in the ButterStick contact checks. |
| #3687 | 🐌 Tiny | Reproduces the dense native A64 DDR capacity-edge lookup graph preparation without altering the existing routing rules or connections. |
| #3682 | 🐌 Tiny | Pins tscircuitmath-utils to npm 0.0.39, which includes the merged DDR intersection fix. |
| #204 | 🐌 Tiny | Restores a via hole overlapping its own BGA pad on the H616 DDR board after contact rollback, despite allowViaInPad: false. |
| #184 | 🐌 Tiny | Captures the unchanged second-byte SRJ with eight completed routes retained, addressing the stall issue on the second CPU data byte of the A13 TSXCore board. |
| #178 | 🐌 Tiny | Adds a test for ButterStick RAM branches to ensure they leave the native UDM pin reachable without changing production code. |
imrishabh18
| PRs # | Impact | Rating | Description |
|---|---|---|---|
| #5384 | 🐳 Major | ⭐⭐⭐ | Adds an optional ordered path of point IDs to the existing SRJ connection for each explicitly declared multi-pad differential trace, preserving matching explicit paths attached to named nets as their own SRJ connections. |
| #1012 | 🐙 Minor | ⭐⭐ | Fixes the alignment of LED silkscreen bars with cathode pads to ensure correct polarity representation in the PCB design. |
| #5455 | 🐙 Minor | ⭐⭐ | Updates the Footprinter to version 0.0.451 to ensure proper silkscreen placement for cathode-first LED footprints, fixing regression issues present in version 0.0.450. |
| #638 | 🐙 Minor | ⭐⭐ | Adds a manual GitHub Action to rebuild only the search index, without changing the component catalogue or stock. |
| #635 | 🐙 Minor | ⭐⭐ | Fixes JSON output handling in stock-sync job by separating successful and failed JSON attempts, ensuring valid JSON is returned to the stock job. |
| #636 | 🐙 Minor | ⭐⭐ | Caches dropdown values for resistor and capacitor pages to reduce load by skipping dropdown queries for JSON requests and caching HTML dropdown values for 15 minutes. |
| #6 | 🐙 Minor | ⭐⭐ | Add the small-via drilling surcharge to rigid FR-4 quotes, check drill and pad sizes to ensure compliance, update testing estimates, and accept empty pick-and-place files for bare-board quotes. |
🐌 Tiny Contributions (3)
| PR # | Impact | Description |
|---|---|---|
| #6344 | 🐌 Tiny | Removes the bundle size check and its Slack notification workflow, along with their scripts, configuration, and tests. |
| #6292 | 🐌 Tiny | Adds a size-growth rule to alert when a change lands on main and any measured size increases by more than 2 MB, with specific CI checks and Slack notifications for large increases. |
| #54 | 🐌 Tiny | PR CI now reports executable sizes for Linux x64arm64, macOS IntelApple Silicon, and Windows x64 in a single PR comment and the Actions run summary. It compares the existing PR merge build against a compile of the exact base commit and shows the byte and percentage change for each target. |
0hmX
| PRs # | Impact | Rating | Description |
|---|---|---|---|
| #5413 | 🐳 Major | ⭐⭐⭐ | Fixes the emission of ordered paths for every multi-port trace, ensuring that paths with 3 or more ports are correctly represented in the autorouting system. |
| #5412 | 🐳 Major | ⭐⭐⭐ | Reproduces a bug where trace paths are not emitted or routed in the correct order, specifically for paths involving multiple pins. |
| #5380 | 🐳 Major | ⭐⭐⭐ | Fixes autorouting failure when differential pairs are connected to nets that are not routed, leading to ratsnest lines and port-not-connected errors. |
| #3709 | 🐳 Major | ⭐⭐⭐ | Fixes autorouting failure by ensuring USB DD lanes are length-matched while excluding TP1s branch, resolving previous lookup errors in differential pair connections. |
| #3708 | 🐳 Major | ⭐⭐⭐ | Fixes routing to ensure that trace paths follow the specified order of connection points, resolving issues with incorrect routing sequences. |
| #3707 | 🐳 Major | ⭐⭐⭐ | Fixes autorouting failure when the trace path order is ignored by the NetToPointPairsSolver, ensuring traces are routed in the specified order. |
| #3710 | 🐳 Major | ⭐⭐⭐ | Fixes autorouting failure by ensuring ordered USB DD lanes finish routing and matching while excluding TP1 from lane measurements. |
| #3651 | 🐳 Major | ⭐⭐⭐ | Adds getComputeCostSummary() to the pipeline 9 solver, providing a summary of compute costs for routing connections, aiding AI in identifying poorly placed components. |
| #92 | 🐳 Major | ⭐⭐⭐ | Ordered J1 ESD MCU lanes now exclude TP1 and retain their declared hop order, allowing the matcher to add length to the shorter D J1 ESD hop instead of meandering both D hops. |
| #5382 | 🐙 Minor | ⭐⭐ | Expose per-connection solo search compute cost on autorouting events, allowing for detailed performance metrics during routing processes. |
| #5760 | 🐙 Minor | ⭐⭐ | Captures optional per-connection compute cost from autorouter progress, end, and error events in the existing CLI diagnostics, preserving the single-active-phase design and enhancing diagnostic output. |
| #94 | 🐙 Minor | ⭐⭐ | Changes the rendering of USB snapshot captions to be centered silkscreen text with zero rotation, preserving text attributes and colors. |
| #91 | 🐙 Minor | ⭐⭐ | On main: D is looked up by logical root, so the TP1 stub is counted and both D hops receive meanders. The actual J1 ESD MCU lanes finish 5.582590 mm apart, despite a 0.1 mm tolerance. Measured copper (mm) Before matching Main output --- ---: ---: D ordered hops 20.414087 20.414087 D ordered hops 21.645420 25.996677 TP1 stub 5.582590 5.582590 Root D including TP1 25.996677 25.996677 Root lookup returns 0, 1, 3 P_BC, tap, P_AB, rather than ordered indexes 3, 0. Main adds 3.485240 mm to N_AB (12.317643 15.802883) and 0.866018 mm to N_BC (9.327776 10.193794). TP1 remains unchanged; it is incorrectly counted, not meandered. !Actual main matcher output(https:raw.githubusercontent.comtscircuitlength-matching-solver87ffc50c97b953faf212b255eb0d87619af88ac9tests__snapshots__ordered-usb-pair-length-matching.snap.svg) The passing ordered-usb-pair-length-matching.test.ts calls the unmodified matcher with mains supported PN root strings and snapshots its actual output. Root terminal declarations are derived from captured endpoints, as logical-root callers require; route coordinates, obstacles, widths and vias are unchanged. The sibling exact-hop correctness test remains test.failing, with no snapshot inside it. Fixture: real TSX USB board(https:github.comtscircuitlength-matching-solverblob87ffc50c97b953faf212b255eb0d87619af88ac9testsfixturesordered-usb-pair.board.tsx), J1 ESD MCU plus TP1. Pictures use only convertCircuitJsonToPcbSvg and toMatchSvgSnapshot, with native silkscreen and fabrication-note captions above the copper. Captions describe the solver and the root-lookup bug, with lengths formatted directly from the test measurements. Only the rendered board outline is extended for the text. Input-only picture removed. 92 updates this same snapshot path for the beforeafter image diff. Validation on Bun 1.4.3: snapshot update and rerun without updates pass; 2 focused tests, 15 assertions (one expected failure). Repository TypeScript and Biome format pass. SVG converted to PNG and inspected: D has a large left meander and a smaller right meander. No full-suiteperformance claim for this update. Draft; never merged. |
🐌 Tiny Contributions (1)
| PR # | Impact | Description |
|---|---|---|
| #1004 | 🐌 Tiny | Documents that trace paths should always be ordered, clarifying that the trace is routed as a chain from the first port to the last. |
Abse2001
| PRs # | Impact | Rating | Description |
|---|---|---|---|
| #4 | 🐳 Major | ⭐⭐⭐ | Adds a summary table displaying all expenses, including total and per-board prices, and enforces that assembled boards do not exceed PCB quantity. |
| #3 | 🐳 Major | ⭐⭐⭐ | Implements faster part lookups by fetching BOM lines in batches, sets lead-free HASL as the default surface finish, removes false warnings for bottom paste openings on through-hole pins, and displays the sales tax rate on the quote page without allowing edits. |
| #2 | 🐳 Major | ⭐⭐⭐ | Summary Replaces the placeholder with a working JLCPCB quote estimator. Given Circuit JSON it returns an itemised estimate of bare PCBs, the charges JLCPCB engineers add after review, assembly fees and parts, each with a lowhigh range and a confidence label. Shipping, duties and tax are out of scope. How it works 1. convertCircuitJsonToFabricationFiles generates Gerbers, drill files, bom.csv and pick_and_place.csv with the same converters and options as the tscircuit.com fabrication export and tsci export -f gerbers. 2. getQuoteInputsFromFabricationFiles reads board size, layers, vias, holes, trace widths, paste openings and the BOM back out of those files. An existing fabrication export can be quoted directly with quoteFabricationFiles. 3. lookupJlcParts prices each BOM line from jlcsearch (unit price, stock, basicpreferred flag, footprint pads). Resistors and capacitors without a part number are matched by rating and package. 4. estimateJlcpcbQuote applies the fee rules in libjlcpcb-price-table.ts. It is pure, so real orders can be replayed against it. The quote is deliberately computed from generated fabrication files rather than from Circuit JSON directly, so it sees exactly what JLCPCB receives and an existing fabrication export can be quoted too. Accuracy so far Case Actual Estimate --------- Live JLCPCB quote, 4-layer 144.5x82mm, 5 assembled, economic PCBA (end to end from fabrication files) 348.43 363.79 (4.4) Shipped order Y45 (fee rules replayed from the invoice) 239.66 within 3 Shipped order Y63 (fee rules replayed from the invoice) 125.30 within 2 On the live quote every line matches JLCPCB except two: parts (180.87 against 164.76) and SMT placement (7.02 against 7.77). The parts gap is because jlcsearch only reports a single-piece price: JLCPCBs quantity price breaks are not applied and billed spares are estimated. The estimator already applies both when a part carries them, and with them the parts line matches to the cent; they need to be exposed by jlcsearch. Known limits Bare-PCB prices are fitted to very few data points. The 4-layer area price comes from one quote; 1-2 layer boards over 100mm, quantities above 5, 6 layers, ENIG and all flex prices are heuristics with wide ranges. The 4-wire Kelvin test fee is inferred from supplement notices, three of which bundle dutyVAT. Standard PCBA rates come from JLCPCBs help page, not a live quote. Parts are priced from jlcsearch only, at single-piece prices with estimated spares, so the parts line carries a range and runs about 10 high on the one quote checked. It refuses instead of guessing: an unpriceable BOM line, a failed or malformed lookup, or a board with no price in the table throws. unresolvedParts: exclude quotes without the unpriceable lines and lists them. Lookups run one at a time, so a 73-part board takes about a minute. circuit-json-to-gerber, circuit-json-to-bom-csv and circuit-json-to-pnp-csv are now runtime dependencies. Testing bun test (16 tests, no network), bun run typecheck and bun run format:check pass. https:claude.aicodesession_01PiJ1d3KnENfen8uCgH3yBH --- Generated by Claude Code(https:claude.aicode) |
| #3 | 🐳 Major | ⭐⭐⭐ | Updates the unit 322 manufacturing simulation from PR 1 in place, from a single job to the full motor controller line. Its the same page and the same ManufacturingSimulation core; nothing is added alongside the old version. The operator now runs a batch of 30 NEMA17 motor controllers across four standing desks on the window wall: assembly, QC, pack-out and ship-ready. The batch ends with one sealed Amazon carton by the door. The 3D printers (Bambu P2S and H2S) and the label printer (Epson ET-2400) sit on their own benches on the east wall, and keep the line supplied with spacers and label sheets. The line Assembly: load the motor, swap its 4 stock screws for long M3s through a 4 mm spacer and the PCB with the SKIL Twist 2.0, plug in the motor cable, rack it. QC: cradle, DATA and PWR USB-C, a spin test, then the ready rack. Pack-out: 743 mailer with pink foam, 2 USB-C cables, a 45 W charger and a 24 label. Ship-ready: 30 mailers into a 151317 carton, flaps folded, taped, out by the door. Printers: the P2S and H2S print spacer plates (25 and 49 per plate). Finished plates go into a tub, which refills the assembly basket. Labels: the Epson prints AveneMark sheets; the operator carries them to pack-out. Racks, a tote and the carton carry the batch from bench to bench. Every step is timed, and walking time is shown separately. Controller board. Its modelled from the imrishabh18rp2040-motor-controller(https:tscircuit.comimrishabh18rp2040-motor-controller) v1.0.55 circuit.json: the 42.3 mm chamfered outline and 31 mm mounting holes; all 103 populated top-side parts at their placed positions; DATA and PWR USB-C on one edge, and the side-entry JST-PH J1, which takes the motor cables PHR-4. Playing it Simulate: a full batch of 30, or 1 motor from start to ship. Jump to a bench: start at any bench with the units already done up to it. Equipment buttons: 3D prints are ready and Labels printed. Game mode keys: E runs a bench, and again pauses it. R carries a part-filled rack or tote on to the next bench. C carries on after a pause. F picks up or puts back the screwdriver. M toggles sound. Collecting mid-run: pause, walk to a blue circle at the label printer or a 3D printer, and E does that job now. When you walk away, he sets down what was in his hands, so nothing floats. Sound: synthesized with WebAudio, with no audio files. The screwdriver and the stepper follow the motion in the scene. Operator: a 62 figure with shaped limbs. He carries loads upright with both hands. Code libjob: the per-unit steps for each bench, slot-based containers, transfers and printer and label jobs. bench-work.ts picks the next work. libsimulation: the headless core, game actions, line setup, pause parking, equipment circles and sound cues. libmodels: the standing desk, SKIL screwdriver, RP2040 board (from rp2040-board-layout.ts), Bambu printers, Epson, carton, mailer, racks, tote and JST and USB-C plugs. libviewersound: the WebAudio synthesis. libmodelsfolding-table.ts is replaced by standing-desk.ts, and libjobrun-work-item.ts by bench-work.ts. Assumptions to check Table positions are placeholders in liblayoutstation-layout.ts. Gesture durations are placeholders, so the batch time of about 46 min is not measured. Plate times are estimates, not slicer output. The 37 lb carton weight is an estimate; weigh a packed unit before ordering cartons. The buzzer chirp at QC assumes test firmware; the board ships with none. Validation bun test passes: 23 tests. They cover: the full 30-unit batch shipping in one sealed carton, and the 1-motor run; jumping to each bench, and partial R carries; pausing mid-screw to collect prints and labels, then resuming; carries staying upright with uncrossed hands; reset leaving nothing floating; the boards ports and size; the sound cues. bun run typecheck, bun run format:check and bun run build:site pass. I checked the exported page in headless Chromium with screenshots of each bench, the carries, the carton sealing and the circles. I also recorded the audio and checked spectrograms. https:claude.aicodesession_01PiJ1d2PYfhr4CWFK6CKzrp |
| #1 | 🐳 Major | ⭐⭐⭐ | Adds the unit 322 manufacturing simulation, laid out the way the tscircuit handbook bootstraps repos: bun with no lockfile, TypeScript in lib and tests, biome, the plop typechecktestformat workflows, and a React Cosmos site that Vercel builds with cosmos-export. It mirrors drawing-viewer. A 62 operator walks the unit 322 floor and runs a 12-step job across three 6 tables. The job pulls a NEMA17 backface spacer from the P2S, swaps the motors backface screws to mount the spacer and motor controller PCB, then folds a mailer box, adds foam inserts, packs the assembly and moves it to finished goods. Each step and walking time are clocked. Game mode lets you walk the operator (WASD), run the next step at a station (E) and pick up the screwdriver (F). The camera zooms down to the screws. |
| #5202 | 🐙 Minor | ⭐⭐ | Implements panel tooling holes and fiducials only from issue 5067, updating the SVG output and allowing these elements in panels and subpanels. |
| #246 | 🐙 Minor | ⭐⭐ | Merges cutouts that end exactly on the board edge into the board outline instead of emitting them as separate Edge.Cuts loops. |
| #245 | 🐙 Minor | ⭐⭐ | Fixes a bug where a cutout that runs flush with the board edge is incorrectly emitted as a separate Edge.Cuts loop instead of being merged into the board outline. |
| #632 | 🐙 Minor | ⭐⭐ | Adds is_standard_only to the verified component that exact-part lookups return, indicating whether a part is marked as Standard only by JLCPCB, which affects the assembly service selection for PCBA. |
🐌 Tiny Contributions (4)
| PR # | Impact | Description |
|---|---|---|
| #1000 | 🐌 Tiny | Updates documentation to clarify that panel size limits now shape the grid layout, allowing auto-sized panels to grow and grids to rearrange based on specified limits. |
| #999 | 🐌 Tiny | Changes the paneltab component to use center offsets from board edges instead of a single offset, introducing new properties for better tab placement and width specification. |
| #5201 | 🐌 Tiny | Reproduces the panel tooling holes and fiducials portion of issue 5067, providing a test that captures the rendering error when the panel is rejected by Core. |
| #5411 | 🐌 Tiny | Updates tscircuitprops from 0.0.724 to published 0.0.728, in the development dependency and the existing matching override. |
rushabhcodes
| PRs # | Impact | Rating | Description |
|---|---|---|---|
| #5375 | 🐳 Major | ⭐⭐⭐ | Preserves unbroken inner copper planes in remote autorouting by ensuring that raw Circuit JSON requests maintain the intended copper pour intent during routing processes. |
| #5399 | 🐳 Major | ⭐⭐⭐ | An explicit component layer collapses a mixed-side footprint onto one side. Centralize the duplicated SMT pad layer resolver without changing behavior, and capture the bug with a minimal four-pad example plus a real imported connector footprint. The real example is the Amphenol 132289 edge-mount SMA(https:github.comKiCadkicad-footprintsblob7ebfa6b23cc292a56f751b7b5f4a0e12eeef69ddConnector_Coaxial.prettySMA_Amphenol_132289_EdgeMount.kicad_modL39) from the pinned KiCad library: three SMT pads on F.Cu and two ground pads on B.Cu. This branch incorrectly emits all five pads on the components placement layer. A single three-pane image shows the PCB, 3D top, and 3D bottom, including the actual KiCad SMA STEP model(https:gitlab.comkicadlibrarieskicad-packages3D-blob77236890410eb655ba2e63e23f59a85cf45af290Connector_Coaxial.3dshapesSMA_Amphenol_132289_EdgeMount.step). The unmodified model is served locally during tests, and the connectors mount on opposite board edges. The real-component regression also exercises ordinary 0402 controls and cached placement once the dependent fix is applied. This work follows up on Jan Mrzeks November 9, 2026 email to Severin Ibarluzea, titled Re: mind.dump() Interest in work with tscircuit (new venture-backed EDA tool). Item 3 under Placement reported: Setting layer on a component forces all of its pads onto that layer, so a mixed-side footprint loses its other-side pads. Both regressions use test.failing to record the known layer bug. Snapshot assertions run separately in beforeAll, so visual mismatches still fail CI. The dependent fix, 5400, removes the expected-failure markers and updates the snapshots. The minimal example uses a single redtop, bluebottom view with fixed pad positions; the real connectors three-pane image exposes the coincident ground pads on each face. !Broken baseline: PCB, 3D top, 3D bottom(https:raw.githubusercontent.comtscircuitcore4f7fd1c56ddcf9fd4a6bc95565ea237a0ffc2e52testsrepros__snapshots__amphenol-132289-mixed-side-pad-layers.snap.svg) Validation: both expected-failure regressions, all ten CI test shards, typecheck, build preview, and smoke checks pass. Part 1 of GitHub stack 5401(https:github.comtscircuitcorestack5401): main 5399 5400. |
| #5403 | 🐙 Minor | ⭐⭐ | A bottom-mounted USB-C connector rotated 30 currently has plated-slot long axes at 60, while its shell-hole centers and model mounting tabs require 120. Add real C165948 USB-C ports on opposite PCB faces and one three-pane snapshot showing the PCB, 3D from above, and 3D from below. Assert that the slot axes follow the connector and that every rendered mounting-tab tip fits inside a plated slot. Use the regenerated C165948 fixture from easyeda0.0.389 with OBJ metadata, including the corrected native model bounds and origin from easyeda-converter 540(https:github.comtscircuiteasyeda-converterpull540). Check in the OBJ for reproducible rendering and refresh the shared PCB snapshot to the converters current pill-shaped copper. The geometry regression uses test.failing to record the known rotation error. Snapshot validation runs separately in beforeAll, so snapshot mismatches still fail CI. The implementation fix, enabled regression, and corrected snapshots are in 5404. Local validation: All 25 related tests pass, including the expected failure and every test using the shared C165948 fixture. Running the regression as a regular test before the fix fails with expected 120 and received 60. Full TypeScript checking, Biome formatting, and git diff --check pass. Part 1 of GitHub stack 5405(https:github.comtscircuitcorestack5405). |
| #5400 | 🐙 Minor | ⭐⭐ | Fixes the issue where an explicit component layer overwrites authored topbottom pad layers in mixed-side footprints, ensuring that pads without an explicit layer retain the component-layer default and preserving the correct pad layers during footprint flipping. |
| #5404 | 🐙 Minor | ⭐⭐ | Fixes misalignment of plated-slot rotations for bottom-side components when flipped, ensuring correct alignment with the component. |
🐌 Tiny Contributions (1)
| PR # | Impact | Description |
|---|---|---|
| #5374 | 🐌 Tiny | Reproduces a bug where raw remote solve and job requests lose copperpour unbroken intent before copper pours render, affecting signal routing on inner planes. |
techmannih
| PRs # | Impact | Rating | Description |
|---|---|---|---|
| #5343 | 🐳 Major | ⭐⭐⭐ | Fixes autorouting failure when a phase-selected pin does not route a named net connection, resulting in zero routed traces on the PCB. |
| #5341 | 🐳 Major | ⭐⭐⭐ | Fixes the ownership assignment for solder paste records associated with circular plated holes in KiCad exports, ensuring correct PCB component IDs are applied. |
| #5750 | 🐳 Major | ⭐⭐⭐ | Fixes the issue where the tsci build command rejected the --autorouter-threads option, allowing it to accept a positive integer to specify the number of solver workers for local autorouters. |
| #5340 | 🐙 Minor | ⭐⭐ | Fixes the issue where plated-hole solder paste ownership is not correctly assigned during the rendering process, leading to incorrect KiCad exports. |
| #557 | 🐙 Minor | ⭐⭐ | Adjusts routing DRC to utilize board-specific via-to-pad clearance values for accurate gap measurements. |
🐌 Tiny Contributions (3)
| PR # | Impact | Description |
|---|---|---|
| #5342 | 🐌 Tiny | Reproduces the routing behavior of a named-net by selecting a specific pin phase for autorouting, ensuring that only the designated pins are routed while deferring unrelated connections. |
| #5749 | 🐌 Tiny | Fixes the build parser rejection of the --autorouter-threads option, allowing independent configuration of solver worker count and file concurrency. |
| #1019 | 🐌 Tiny | Updates documentation to clarify the behavior of the routeRemaining setting in relation to the implicit routing phase and the 50-connection threshold. |
abdalraof-albarbar
🐌 Tiny Contributions (1)
| PR # | Impact | Description |
|---|---|---|
| #402 | 🐌 Tiny | Registers abdalraof-albarbar in sponsorship-profiles.json with the personal Open Collective profile following the repositorys profile registration guide |
hrithik18k
🐌 Tiny Contributions (1)
| PR # | Impact | Description |
|---|---|---|
| #403 | 🐌 Tiny | Updates the Open Collective profile URL for the user hrithik18k in the sponsorship-profiles.json file. |
AnasSarkiz
| PRs # | Impact | Rating | Description |
|---|---|---|---|
| #540 | 🐙 Minor | ⭐⭐ | Fixes the underspecified warning for pins annotated with explicit role attributes such as is_passive, is_input, is_output, and is_bidirectional. |
| #450 | 🐙 Minor | ⭐⭐ | Adds a guard to prevent incorrect rail orientation recommendations for floating chip-return capacitors in schematic analysis. |
| #26 | 🐙 Minor | ⭐⭐ | Fixes camera clipping issues for tall and off-board models in assembly previews by adjusting camera positioning and margins without altering model geometry or introducing new dependencies. |
| #27 | 🐙 Minor | ⭐⭐ | Reproduces the real NEMA11 assembly preview clipping issue by updating the camera fitting and verifying the output with the correct exporter version, ensuring proper handling of large OBJ models without distortion. |
GokulPandi-M
🐌 Tiny Contributions (3)
| PR # | Impact | Description |
|---|---|---|
| #6228 | 🐌 Tiny | Moves schematic-symbols from devDependencies at 0.0.237 to runtime dependencies at 0.0.251 to ensure consumers receive the corrected dependency for four-pin crystal previews, fixing detached wires and overlapping labels. |
| #1431 | 🐌 Tiny | Removes redundant terminal paths between the same junctions on a power rail to eliminate unintended loops in schematics. |
| #1429 | 🐌 Tiny | Motivation Automatically routed power wires can join the same net at two different points, leaving unnecessary closed loops. The connections remain electrically valid, but the extra paths and junction dots make the schematic difficult to follow. This reproduces two LED_5V loops using the captured Controls-sheet solver input from macro-six-usbc v0.1.16. The original chip, pin, label and net geometry is preserved. It also reproduces on current main |
Repository Owners
Repositories by Owner
Open Collective profile registration
Add your public Open Collective profile link in sponsorship-profiles.json. See how to add your profile.
Development
Prerequisites
- Bun runtime
.envfile with required API keys:GITHUB_TOKEN=your_github_token OPENAI_API_KEY=your_openai_api_key DISCORD_TOKEN=your_discord_token (optional, for Discord integration) SLACK_BOT_TOKEN=your_slack_token (optional, for Slack integration)
Available Scripts
Core Generation Scripts
bun run generate:weekly- Generate current week's contribution overviewbun run generate:monthly- Generate current month's contribution overviewbun run generate:changelog- Generate monthly changelog from PRs
Analysis & Testing
bun run analyze-pr- Analyze a single PR (interactive prompt)bun run test:github- Test GitHub API integration
Notifications & Sync
bun run notifications:issues- Send notifications for new issuesbun run notifications:pr- Send notifications for new PRsbun run sync:discord- Sync contributor roles with Discord
Data Export
bun run export:sponsorship- Generate sponsorship data CSV
Payment CSV generation is disabled for November 2026 and all later payment
months by DISABLE_PAYMENT_ARTIFACTS in lib/payment-artifacts.ts while CSV
uploads are unavailable. Scheduled runs, manual workflows, and local exports
skip these months successfully before reading payment data or writing files.
October 2026 and earlier exports remain available. Set the flag to false to
resume generation. Existing payment files and contribution overviews are preserved.
Development
bun run dev- Start development server for web UIbun run build- Build for productionbun run format- Format code with Biome
Usage Examples
# Generate this week's contribution overview
bun run generate:weekly
# Generate current month's overview
bun run generate:monthly
# Analyze a specific PR
bun run analyze-pr
# Test your GitHub token setup
bun run test:github