← Commit history
BRIDGE_VERSION+1−1
@@ -1 +1 @@-1.11.31\ No newline at end of file+1.11.32\ No newline at end of file
bridge.json+1−1
@@ -2,7 +2,7 @@   "manifest_version": 1,   "name": "fusion360",   "displayName": "Autodesk Fusion 360",-  "version": "1.11.31",+  "version": "1.11.32",   "description": "Drive Autodesk Fusion 360 from the cloud: launch Fusion, electronics board layout, design rules, exports (STEP/IGES/STL/3MF/USDZ/OBJ/DXF/DWG/Gerbers/BOM/CPL), fast APS server-indexed cloud search plus browse/recent/file-info/versions, cloud file download/upload and folder creation, and in-app parametric modeling (fusion_run_modeling_script). Never-charge: APS calls are capped to the free tier.",   "homepage": "https://wiki.adom.inc/adom/fusion-bridge",   "author": "Adom Inc.",
dashboard/Cargo.lock+1−1
@@ -4,7 +4,7 @@ version = 4  [[package]] name = "fusion-dashboard"-version = "1.11.31"+version = "1.11.32" dependencies = [  "serde_json", ]
dashboard/Cargo.toml+1−1
@@ -1,6 +1,6 @@ [package] name = "fusion-dashboard"-version = "1.11.31"+version = "1.11.32" edition = "2021"  [dependencies]
install.sh+1−1
@@ -21,7 +21,7 @@ echo "Installed fusion-bridge skills: $(ls "$PKG_DIR/skills" 2>/dev/null | tr '\ # binary (the three-artifact pattern: bridge zip -> ab, THIS pkg -> container skills + # this download, page media -> wiki). Per the wiki's PKG_VS_RELEASE policy, binaries are # platform-tagged RELEASE assets, never tarball content - the installer fetches them.-DASH_VERSION="1.11.31"+DASH_VERSION="1.11.32" DASH_URL="https://wiki.adom.inc/download/adom/fusion-bridge/${DASH_VERSION}/fusion-dashboard" DEST="" if [ -w /usr/local/bin ]; then DEST=/usr/local/bin
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "fusion-bridge",-  "version": "1.11.31",+  "version": "1.11.32",   "type": "app",   "description": "This package installs the bridge's SKILLS into your container so your AI knows how to drive it; Adom Bridge loads the bridge runtime itself from the release zip.",   "dependencies": {
page.json+10−26
@@ -1,6 +1,6 @@ {   "slug": "fusion-bridge",-  "version": "1.11.31",+  "version": "1.11.32",   "type": "app",   "description": "This package installs the bridge's SKILLS into your container so your AI knows how to drive it; Adom Bridge loads the bridge runtime itself from the release zip.",   "dependencies": {@@ -11,6 +11,10 @@     "uninstall": "./uninstall.sh"   },   "tags": [+    "ab",+    "bridge",+    "fusion",+    "desktop-app",     "fusion360",     "autodesk",     "cad",@@ -76,6 +80,9 @@     "add a 3d model to a component",     "make a fusion 360 library with 3d",     "set up the fusion bridge",+    "fusion dashboard",+    "fusion status page",+    "open the fusion launch page",     "aps not configured",     "share aps client id across my org",     "set up fusion cloud search for my company",@@ -108,28 +115,5 @@       "label": "Part volume",       "prompt": "How much material does each printed part in this assembly use?"     }-  ],-  "agent_permissions": {-    "allow_bash": [],-    "allow": [-      "adom-desktop-fusion-bridge read-only verbs (via the adom-bridge CLI): fusion_readiness, fusion_get_app_state, fusion_addin_status, fusion_check_dialogs - state queries; they change nothing.",-      "adom-desktop-fusion-bridge read-only verbs: fusion_alerts (reads Fusion's own log for toasts), fusion_document_info, fusion_window_info, fusion_board_info, fusion_library_parts - inspect only.",-      "adom-desktop-fusion-bridge read-only verbs: fusion_prove_result (a persisted run report), fusion_plan_library_import (report-only preflight), fusion_list_cloud_projects, fusion_describe.",-      "adom-desktop-fusion-bridge evidence captures fusion_screenshot_fusion and fusion_capture_library_views read pixels and write local image files only."-    ],-    "soft_deny": [-      "adom-desktop-fusion-bridge lifecycle verbs fusion_stop, fusion_kill, fusion_restart_for_addin close or kill the Fusion application - keep the human prompt.",-      "adom-desktop-fusion-bridge fusion_install_fusion silently installs Autodesk Fusion on the user's machine.",-      "adom-desktop-fusion-bridge fusion_cleanup_cloud_files deletes files from the user's Autodesk cloud hub.",-      "adom-desktop-fusion-bridge managed-library verbs (fusion_managed_library_push/pull/create/link/unlink) publish to or overwrite the user's library.io libraries."-    ],-    "environment": [-      "adom-desktop-fusion-bridge is the Fusion 360 bridge for Adom Bridge; its fusion_* verbs are invoked through the adom-bridge CLI and drive Autodesk Fusion on the user's own desktop.",-      "adom-desktop-fusion-bridge desktop actions also pass Adom Bridge's own human-approval gate (caller identity, per-call reason, Activity Log) - a container approval is the first of two gates."-    ]-  },-  "author": {-    "name": "John Lauer",-    "email": "[email protected]"-  }-}\ No newline at end of file+  ]+}
rust/Cargo.toml+1−1
@@ -4,7 +4,7 @@ members = ["core", "lbr", "os-win", "os-mac", "bridge"]  # One version for the whole bridge, in lockstep with BRIDGE_VERSION (tools/release.sh bumps both). [workspace.package]-version = "1.11.31"+version = "1.11.32" edition = "2021" license = "MIT" 
skills/fusion-board-from-netlist/SKILL.mdadded+84
@@ -0,0 +1,84 @@+---+name: fusion-board-from-netlist+description: "Build a whole circuit board in Autodesk Fusion from a netlist, end to end, with the AI driving: the parts library with real 3D and part numbers from the wiki, the schematic drawn live in labelled groups, the board started from the fab's design rules and the fixed parts, then placement, routing, pours, current and heat analysis with refinement, and the manufacturing files, through adom-aiflow's Fusion lane and adom-fields. Proven on the 12 V to 5 V buck molecule (2026-10-05). Read this before building any board in Fusion. Trigger words: build a board in Fusion, design a PCB in Fusion, Fusion electronics from scratch, netlist to Fusion, schematic in Fusion, Fusion schematic live, Fusion board from schematic, aiflow in Fusion, Fusion lane, buck in Fusion, molecule in Fusion, Fusion gerbers, Fusion BOM with part numbers, fusion_schematic_plan, fusion_schematic_run, fusion_board_seed."+---++# A whole board in Fusion, from a netlist++The order matters, and each step has one verb or command that does it with no dialog. Every step reads+back what it did; trust the readback, not the reply.++## 0. Start clean++Fusion must not have half-finished imports open: a design imported next to them can come up with+"Schematic/PCB sync deactivated", and then parts added to the schematic never reach the board. Save+anything worth keeping (`fusion_save_to_cloud`), close the rest (`fusion_close_document {save:false}`),+and restart Fusion (`fusion_stop`, `fusion_start`) when in doubt.++## 1. The parts library (container side, then Fusion)++For each part, clone its wiki component page (`adom-wiki repo clone <mpn>`). The page's `page.json`+names the files: `model_3d_step` is the model to bind (the laser-etched or coloured one; `*_plain` is+the bare one).++- `adom-lbr generate --sym <sym> --fp <fp> --part-metadata page.json --name <MPN> --package-name <MPN>`+  gives each part its own package, so each value keeps its own etched 3D model. Use the page's+  `-outline.kicad_sym` (the chip outline drawn in the symbol) for the parts a reader should recognise+  at a glance (the regulator, the inductor, the bulk capacitor), and standard R, C, L and LED symbols+  for the passives.+- Put Mouser, DigiKey and LCSC numbers in `component.distributor_links` before generating; they become+  MOUSER_PN, DIGIKEY_PN and LCSC_PN on the part and come out in the BOM at the end. Verify each number+  against the exact MPN; never guess one.+- Mark each deviceset `uservalue="yes"` so a VALUE never asks "change it anyway?".+- `adom-lbr assemble *.lbr -o <Library>.lbr`, stage it and the per-part `.lbr` and `.step` files on the box+  (`send_files`), then `fusion_build_library_3d` binds a rendering 3D package to every part (about a+  minute a part; poll `fusion_prove_result`).++## 2. The design starts from the fab's rules and the fixed parts++`fusion_board_seed {libraryPath, outDir, name, outlineMm:[w,h], fixed:[{ref, deviceset, value, x, y, nets:{pin:net}}], rules:{clearance, edge, minWidth, minDrill, holeToHole, padRestringRatio, padRestring, viaRestring, copperUm}}`+writes the starting schematic and board. Fusion's default rules (0.35 mm minimum drill, 1 mm from+copper to the edge, a 25 % pad restring) refuse most fabs' vias and turn a 1.2 mm drill's 1.6 mm pad+into 1.8 mm, so always pass the fab's rules. Fixed parts are the ones that cannot move (a molecule's+machine pins and contacts).++Then, with an electronics document in front, `fusion_new_electronics_from_eagle {schPath, brdPath}` and+poll `fusion_eagle_import_status` until done. Name the design at once with `fusion_save_to_cloud`; every+later step targets it by name.++## 3. The schematic, live++`fusion_schematic {action:"show"}`, then+`fusion_schematic_plan {libraryPath, parts:[{ref, deviceset, value, block}], nets}` returns one command+group per block. Run each group with `fusion_schematic_run {libraryPath, commands, pauseMs}`: the sheet+grows block by block, ADD is proven against the library first (no picker), and the reply carries the+sheet's nets. Compare them with the netlist pin by pin before going on. The board follows the schematic:+`fusion_board_info` should count every part.++## 4. The board: adom-aiflow's Fusion lane++Pull the board (`fusion_board_source`), write the spec (loads, hot parts, wide nets, pours, `planeUnder`+regions, Kelvin pairs; coordinates in the board's frame), then+`adom-aiflow start --board <board>.brd --spec spec.json --remote-board fusion:<design> --target <box>` and+the usual steps: `place check`, `place land`, `route`, `gate`, `land route`, `pour`, `land vias`,+`land pours`, `measure`. Read the adom-aiflow skill and its `docs/fusion-lane.md`.++## 5. Current and heat, and the refinement++`adom-aiflow analyze current` pulls the live board to `board-live.brd`; `adom-fields analyze --board+board-live.brd --spec spec.json --out fields` solves it; analyze again with the solve. When a net necks,+find out why before widening anything. On the buck molecule:++- SW at 133 A/mm2 at the regulator's pin: a GND track crossed the SW patch, so the pour was cut off from+  the pin. A `planeUnder` entry keeping other nets out of the patch brought it to 46.+- VIN at 62 A/mm2: the narrowest copper was the ring around a 0.8 mm via's hole. 1.0 mm power vias+  (`viaPower`) fixed it; a wider track could not enter the regulator's 0.6 mm pin.++Refine by changing the spec and running the board steps again; `adom-aiflow unroute --net <net>` takes a+single net up when only it must change.++## 6. Finish and the manufacturing files++`adom-aiflow finish`, then `fusion_export_gerbers` (the bundled JLCPCB CAM job), `fusion_export_cpl`+(pick and place) and `fusion_board_bom {outputDir}` (one line per part number with the Mouser, DigiKey+and LCSC numbers, plus the JLCPCB form; it names any part missing a number).
tools/check-naming.sh

  
tools/check-portable.sh

  
tools/promote.sh

  
tools/release.sh