Skip to content

v2.5.10

Pre-release
Pre-release

Choose a tag to compare

@soumeh01 soumeh01 released this 02 Oct 10:22
· 14 commits to main since this release
800169d

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_action answered "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_solution with path (the absolute path of a *.csolution.yml or 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_solution to 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 from select_debug_window stays, and the result then says how to reach the new window.
    • New error code NO_WORKSPACE. cmsis_action and flash answer it when no folder is open, with one hint: open_solution for an existing project, the bootstrap topic for a new one. A window of an earlier version reads the code as INTERNAL, message and hint intact.
    • Without an active solution, cmsis_action says which part is missing, each CMSIS_NO_SOLUTION with 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_solution activates it, get_recent_problems shows what the extension reported). Before, all three read "no active solution" with the same three fixes.
    • get_session_status adds, while no debug session runs in a window without a folder, a Workspace: line and, when the CMSIS Solution or the CMSIS Debugger extension is missing, an Extensions: 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, how open_solution behaves, 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/list grows by 280 bytes for the action, its path argument 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.
  • Skill cmsis-bootstrap (always installed): from an empty VS Code window to a CMSIS solution that builds and debugs.
    • It reads get_session_status to find out what is missing, asks for the board, the folder, the compiler and the probe, writes a starter vcpkg-configuration.json for the Arm Tools Environment Manager, hands the project creation to start-cmsis-project, opens the folder with cmsis_action open_solution, builds, and hands over to the debugger setup and to cmsis-debug-live.
    • It names every shell command it allows (code --install-extension when 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-project is proposed to Open-CMSIS-Pack/cmsis-skills and reaches the AI Skills Pack from there. Until it is installed, cmsis-bootstrap copies 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-help lists it, and the cmsis-project entry point names it as the first step when no solution exists.
  • Three skills of this extension to select in the AI Skills Pack.
    • cmsis-debugger-setup (in cmsis-project): choose the debug adapter from csolution list debuggers, set the debugger: node of the target set, let the CMSIS Solution extension write launch.json and tasks.json, and verify on the target with cmsis_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: the Arm-FVP debugger 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 through cmsis_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.json marks them optional, 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 screen and cat /dev/tty*, which do not exist there. It now reads "Serial I/O only through the serial_* tools, not screen, PuTTY, a read of the port or a serial script", and the table of shell commands adds "PuTTY or type COM3 on Windows". The rules are 1 568 of 1 600 bytes. The server instructions, the guide, the skills that carry the rules and /cmsis-help follow, 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 } or Call list_target_docs in 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_docs without a hit and list_target_docs without 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 and fetch_doc { url } to make it searchable — register meanings are not taken from web snippets.

Full Changelog: v2.3.10...v2.5.10