1.0.0-beta.12 Public Beta
Pre-release
Pre-release
·
41 commits
to main
since this release
Twelfth public beta.
New Import Component (Symbol + Footprint) Command
- File ▸ Import ▸ Component… takes a folder, scans it, and offers a ranked list of what it
can read. One cell comes out — symbol, footprint and the pin-to-pad map that joins them, so a symbol
pin and the layout pad at that index are the same terminal. Density variants become layout views;
named thermal pads survive. - Nine formats read:
.kicad_sym,.kicad_mod,.lib,.lbr, the.p/.d/.c
triple,.hkp,.PLX/.DSL,.cxfand.scr. - A part instance is numbered from the prefix its library states —
U1, notX1. - Pin names from an imported symbol are drawn, with a per-instance override on the context menu, and
a name sits on the edge its pin sits on rather than straddling its own lead. - Scanning a large folder shows progress and can be cancelled, and says when it stopped early
instead of reporting a short list that looks like a small folder.
Improved Command Line + MCP Server Support
- Every verb answers
--json. One JSON document on stdout and nothing else — results, the
loadpull table, refusals and diagnostics included. A failed run still emits a document, so a caller
never has to tell "no output" apart from "output I could not parse". - Create a correct document headlessly.
circuitrf new workspace <dir>,new cell <ws> <name>and
import part <file> --into <dir>. Each calls the same code the New Workspace / New Cell / Import
Component dialogs call, and every default is the default those dialogs open on — so what you get
headlessly is what you would have got by clicking. circuitrf check <path>— is it well formed, does it resolve, is it sound? Runs no analysis and
writes nothing, so it is safe after every edit, on a read-only tree, and on a workspace you have open
in the app. Point it at a workspace, a cell folder or one file. Every finding comes from a validator
the application itself uses, so a design that passes here is not refused when you open it.circuitrf explain <path>— what did circuitRF decide? Which technology, which layout, which
analysis chain and for which verb, what an expression evaluates to in the design's own scope
(--expr), and where a relative reference lands (--ref). It reports the walk as well as the
answer, since resolution here is a series of walk-ups. A sweep is reported in base SI with its unit
and its scale.circuitrf read <path>hands back a.npy, a Touchstone file or one of circuitRF's own documents
as JSON.circuitrf referenceserves the reference pages plus a catalogue of every netlist primitive with
its terminals and its parameters — generated from the running build, never transcribed, so it cannot
drift from what the engine actually accepts.circuitrf serve --root <dir>speaks a protocol over stdin/stdout so an external client can reach
those verbs directly, confined to one directory. It calls the same verbs a shell does; nothing is
reachable there that is not reachable from your terminal.- Run verbs now refuse an option they do not read.
lp x.cnl --maxmix 3used to answer
File not found: 3 — the dropped flag's value became the input path — anddc x.cnl --set Vg=1ran
silently without the override, answering a different question than the one asked.
Borrowing a cell from another project
- Referencing a cell brings in just that cell, not the entire workspace. It opens, places and
drags like any other cell, marked with the network glyph and with its own filter toggle. - Removing a reference really removes it, and a reference that breaks can be put back:
Re-reference Cell… on a broken instance searches the likely places first, and one undo entry
repairs every instance carrying that reference. - A technology disagreement is a dialog with buttons, not prose: use theirs for this layout, for the
whole workspace, or copy the cell in. A workspace with no technology adopts theirs with no clicks.
Only the layers the referenced cell actually occupies are compared, so two projects sharing a metal
stack are no longer refused over documentation layers. - Dropping a large referenced cell no longer freezes the window — about a minute on a real library
cell, now 32 ms — and the Add Cell dialog opens immediately rather than after the scan. - A broken instance is findable at board extents. Its placeholder was under a pixel on a 100 mm
board; thousands of them also went from 382 ms a frame to 15 ms.
Vias, layout and schematic editing
- Blind and buried vias export as blind and buried vias. Every writer took the pad's copper and the
opposite outer copper, so a blind via left circuitRF as a hole drilled clean through the board,
silently. Vias drawn in the editor also exported with no annular ring, or flashed their pad into the
drill file. - A blind via imports as a blind via — and an imported board's vias resolve a span at all, through
vias included. A via stating no layer pair takes the outermost copper, which is what it means. - The Via tool refuses a layer no via entry claims, instead of placing a via that draws perfectly and
is inert in DRC, in EM and in every export. - A port dragged to another face of a pad names the face it landed on — and stays clickable where it
now is. Rotate was never at fault; the port was never being selected. - Right-clicking empty schematic canvas offers Pop Out; there was no context menu there at all.
- Design ▸ Place Cell Instance… (Ctrl/Cmd+Shift+I) places a cell in a schematic or a layout, and the
picker lists referenced cells too. View now sits beside Window on the menu bar. - A symbol drawn after the cell editor was open can be made primary without restarting.
Workspaces, files and updates
- A workspace opens with its panels already in place, instead of snapping into position at the very
end of a long open. - The empty document area shows the Welcome icon rather than No documents open.
- Save Workspace As copies the workspace folder — cells, technologies and documents — and switches
this window to the copy. It was an ordinary file picker writing a single file nothing looks for. - A model file placed in an unsaved schematic stays found. Thirty seconds in, the first autosave
silently re-based every relative reference on the recovery folder, so a SPICE model, a Touchstone file
or a cell reference resolved into a directory nothing had been pointed at and that is deleted on exit. - After an automatic update on macOS, workspaces under ~/Documents open. They were refused with the
protected-folder message until you quit and launched again; the update handed over in a way that left
the system's permission grant naming the bundle it had just replaced. - Closing an undocked document's last tab closes its window.
- Release notes cover the versions you skipped. Updates only ever offer the newest release, so a
machine left off while two went out never saw the middle one's notes.
Documentation
- Every component's terminal order is documented, with a note wherever the order matters — the dot
convention on coupled inductors, a taper's two widths, the direction anI()measurement is signed
against. A third of the library was showing net 1 is terminal 1, which is a placeholder, not a fact.