Default to DeepSeek V4.1 Flash, show API cost in USD, and re-analyze after replacing BOM and netlist.
V4.1 is natively multimodal so every stage uses deepseek-flash; pricing and the UI now surface dollars instead of empty credits. KiCad netlists and neighborhood fingerprints land in the same cut so a second run can keep the project and skip unchanged ICs. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -481,7 +481,12 @@ async def upload_netlist(project_id: str, file: UploadFile, request: Request):
|
||||
import tempfile, os
|
||||
|
||||
fmt = detect_netlist_format(data)
|
||||
suffix = ".edn" if fmt == "edif" else ".asc"
|
||||
suffix = {
|
||||
"edif": ".edn",
|
||||
"kicad_xml": ".xml",
|
||||
"kicad_sexp": ".kicad_net",
|
||||
"kicad_sch": ".kicad_sch",
|
||||
}.get(fmt, ".asc")
|
||||
sub_designs: list[dict] = []
|
||||
try:
|
||||
tmp = tempfile.NamedTemporaryFile(delete=False, suffix=suffix)
|
||||
@@ -503,7 +508,7 @@ async def upload_netlist(project_id: str, file: UploadFile, request: Request):
|
||||
# shape, so the wizard's power-sources step can render its dropdowns
|
||||
# without re-parsing the (s-expression-heavy) file in the browser.
|
||||
designator_pins: list[dict] = []
|
||||
if fmt == "edif":
|
||||
if fmt != "pads":
|
||||
designator_pins = _build_designator_pins(parts, nets)
|
||||
return {
|
||||
"path": key,
|
||||
|
||||
Reference in New Issue
Block a user