Repository navigation
v2.5.10
Pre-release
Pre-release
What's Changed
Added
- An agent can start in an empty VS Code window: no folder open, no project on disk.
- Every document and every tool assumed an open csolution project. In a window without a folder,
cmsis_actionanswered "no active solution",flash"No workspace folder open", each in its own words, and none said what to do before a folder exists. cmsis_action open_solutionwithpath(the absolute path of a*.csolution.ymlor of its folder) opens a project. A folder that a window already has open is used there, and the solution is made the CMSIS Solution extension's active one (verified; refused under a live debug session). Any other folder opens in a new VS Code window, so the window that answers keeps running, the MCP server with it, and the agent's session is not cut. It is the one action that needs no open project.- With several windows, the router sends
open_solutionto the window that has the folder open, else to the session's target, and on a tie to its own window, since any window can open a folder. After a new window was opened it waits up to 30 s for that window to register, makes it the session's target and says so in the result: "The window registered as pid 4711 (Blinky); this session's calls now go to it." A pin fromselect_debug_windowstays, and the result then says how to reach the new window. - New error code
NO_WORKSPACE.cmsis_actionandflashanswer it when no folder is open, with one hint:open_solutionfor an existing project, thebootstraptopic for a new one. A window of an earlier version reads the code asINTERNAL, message and hint intact. - Without an active solution,
cmsis_actionsays which part is missing, eachCMSIS_NO_SOLUTIONwith its own next step: the CMSIS Solution extension is not installed (install the Keil Studio Pack); the open folder has no*.csolution.yml(create the solution, or open the right folder); a csolution exists but the extension has not loaded it (open_solutionactivates it,get_recent_problemsshows what the extension reported). Before, all three read "no active solution" with the same three fixes. get_session_statusadds, while no debug session runs in a window without a folder, aWorkspace:line and, when the CMSIS Solution or the CMSIS Debugger extension is missing, anExtensions:line. A window with a folder gets neither.get_debug_instructions { topic: 'bootstrap' }is a new topic of the guide: what each missing part looks like and the next step for it, howopen_solutionbehaves, what stays with the user (installing extensions, the prompts of the tools environment, connecting the board), and which shell commands a bootstrap may use. The overview's own text may now be 3 300 bytes (3 200 before), for the topic's line in the list.tools/listgrows by 280 bytes for the action, itspathargument and the topic name: 31 566 of 32 000 in one window, 33 374 of 34 000 routed, 43 316 of 44 000 with every group on.
- Every document and every tool assumed an open csolution project. In a window without a folder,
- Skill
cmsis-bootstrap(always installed): from an empty VS Code window to a CMSIS solution that builds and debugs.- It reads
get_session_statusto find out what is missing, asks for the board, the folder, the compiler and the probe, writes a startervcpkg-configuration.jsonfor the Arm Tools Environment Manager, hands the project creation tostart-cmsis-project, opens the folder withcmsis_action open_solution, builds, and hands over to the debugger setup and tocmsis-debug-live. - It names every shell command it allows (
code --install-extensionwhen the user agrees, and the commands of the environment and project skills), so the tool rules hold during a bootstrap. Installing a compiler, and the download and licence prompts of the tools environment, stay with the user. start-cmsis-projectis proposed to Open-CMSIS-Pack/cmsis-skills and reaches the AI Skills Pack from there. Until it is installed,cmsis-bootstrapcopies an example of the board's pack (csolution list examples), or asks the user to run CMSIS: Create Solution.- It is bundled because an empty window has no project to install skills into.
/cmsis-helplists it, and thecmsis-projectentry point names it as the first step when no solution exists.
- It reads
- Three skills of this extension to select in the AI Skills Pack.
cmsis-debugger-setup(incmsis-project): choose the debug adapter fromcsolution list debuggers, set thedebugger:node of the target set, let the CMSIS Solution extension writelaunch.jsonandtasks.json, and verify on the target withcmsis_action load_and_debug, a breakpoint and the serial console.fvp-debug-setup: make Load & Debug and Run work against an Arm FVP through the model's GDBServer plugin: theArm-FVPdebugger node, the two readiness fixes of the generated launch configuration, a model shim that finds the plugin and line-buffers the model, and a Docker image for macOS, where Arm ships no FVP build. Verified throughcmsis_action; a script replays the adapter's launch path when asked.debugger-troubleshooting: the checks for a session that does not start, connect or program, in order, through the tools first (get_recent_problems,cmsis_action status,diagnose_fault,get_section_layout). Steps that need a probe vendor's command-line tool are marked as the user's.- They are selectable, not bundled, so they cost an agent's context only where the user wants them. In the catalog their source is
extension;scripts/skills.config.jsonmarks themoptional, and the sync script makes them members of their category's entry point.
Changed
- The serial rule of the tool rules holds on Windows too. It named
screenandcat /dev/tty*, which do not exist there. It now reads "Serial I/O only through theserial_*tools, notscreen, PuTTY, a read of the port or a serial script", and the table of shell commands adds "PuTTY ortype COM3on Windows". The rules are 1 568 of 1 600 bytes. The server instructions, the guide, the skills that carry the rules and/cmsis-helpfollow, and a rules block the setup wrote into an agent's rule file (AGENTS.md,CLAUDE.md, …) is brought up to date at the next activation. - Pack Docs panel: a tool call named in a reply is a link.
Next: read_doc_pages { doc: 'p/rm', pages: '3' },fetch_doc { doc }orCall list_target_docsin the Tools tab's output loads that call — tool and arguments, or the tool's template for a bare name — into the runner, ready to run after a look at the arguments. - A documentation reply with nothing found says where else to look.
search_target_docswithout a hit andlist_target_docswithout documents end with: the missing manual or datasheet may be on the vendor's site; with the user's consent, find its PDF URL on the web andfetch_doc { url }to make it searchable — register meanings are not taken from web snippets.
Full Changelog: v2.3.10...v2.5.10