6.8 KiB
Changelog
0.1.26 — 2026-09-10
Added
- AI Agent access (MCP).
RA3 Mod XML: Enable AI Agent access…exposes the semantic index to AI agent clients through a local, read-only MCP (Model Context Protocol) server. It exports a stable snapshot, writes a launcher under~/.ra3modxml/, starts a loopback query server while VS Code is running, and offers to install the Agent Skill and/or write the MCP client configuration (Claude Desktop, Cursor global/project, or a copied generic block).Disable AI Agent accessstops the live server for the workspace;Uninstall AI Agent integration…removes MCP config entries, the launcher, and Skill copies after a confirmation prompt. - Agent Skill (
ra3-mod-xml).RA3 Mod XML: Install Agent Skill…installsSKILL.mdplus a query-tool reference to~/.agents/skills/, and optionally to Claude Code or project-local skill directories. It explains when the index applies and how to reach it with or without MCP.Uninstall Agent Skill…removes only directories that still carry the extension's marker. RA3 Mod XML: Export AI Agent index snapshotwrites the gzipped, versioned snapshot that the MCP server and CLI fall back to when VS Code is closed.- Agent CLI (
dist/agent/cli.js): live-index first, exported-snapshot fallback.outgoingandprojectsneed element context and report that explicitly instead of returning an empty result. - First-run / upgrade introduction. After the first index, the extension offers AI Agent access once (per machine). Upgrades from a build that already had the feature stay silent, and "Don't show again" is remembered.
- Live discovery and multi-window safety. Per-project endpoint files, one
instances/entry per VS Code window, and a merged~/.ra3modxml/index.json. Queries are pinned to a project and a mismatched answer is refused. A crashed window's instance file is pruned by the next activation. - No Node installation required. The MCP launcher for AI Agent Access runs
the bundled server on VS Code's own Electron binary (
ELECTRON_RUN_AS_NODE=1) and falls back tonodeonPATHonly when that binary is missing. Launchers are refreshed on activation, so moving or updating VS Code does not break an existing MCP configuration.
0.1.25 — 2026-08-11
Changed
- Repository and homepage links now point to the GitHub mirror; README links to both GitHub and Gitea.
- Extension now activates in untrusted (Restricted Mode) workspaces; workspace-defined
ra3modxml.sdkPathandra3modxml.additionalDataSearchPathsare ignored until the workspace is trusted.
0.1.24 — 2026-08-11
Fixed
-
Manifest-style qualified reference values (
Type:Id, e.g.inheritFrom="AudioEvent:BaseSoundEffect",Sound="AudioEvent:JAP_Refinery_Select",Side="PlayerTemplate:Allies") now resolve to the plain-id definitions indexed from XML (mod orSageXml). Previously the plugin only applied the “last colon segment” rule to manifest asset names, so qualified XML references were reported as unresolved even when the definition existed (the reportedAudioEvent:BaseSoundEffectcase). -
The same normalization now applies to simple-content references, the semantic reverse index (Find All References / CodeLens counts), and the reference peek path, so hover, Ctrl+click, diagnostics, reference counts and unreferenced reports all agree.
-
Value completion keeps a
Type:prefix the user already typed:inheritFrom="AudioEvent:Base…completes toAudioEvent:BaseSoundEffectinstead of dropping the prefix. Plain ids without a prefix keep the previous bare-id behavior. -
inheritFromis now accepted on allBaseAssetType-derived assets (e.g.FXList,AIMicroManagerData,ObjectCreationList,OnDemandTextureImage,AITargetingHeuristic). The XSD only declares it onBaseInheritableAsset, but vanilla and Corona data use it more broadly. Attribute legality is now separate from the CodeLens / Find All References “reference target by design” filter, so the universal attribute does not widen the code-lens type list. -
simpleContentcomplex types (AudioFileRefWithWeight,MultisoundSubsoundRef) keep their XSD attributes (Weight,Volume,PitchShiftLow/High, ...) and their text content (<Sound>AudioFile</Sound>,<Subsound>VoiceEvent</Subsound>) is now handled as a typed asset reference by completion, hover, navigation, diagnostics, the semantic reference index, and Find All References. -
Fragment roots whose name also appears as a nested child type (e.g.
<EvaEvent>,<UpgradeTemplate>) now resolve to the top-levelAssetDeclarationtype instead of the colliding child type. -
Element-name completion for simple-content children now re-triggers value suggestions after inserting the
<Name>$1</Name>snippet.
Added
- 128×128 PNG extension icon (converted from
images/icon.webp). The.vsixno longer bundles theimagesfolder, so the large GIF demos stay out of the package.
0.1.22 — 2026-08-11
Fixed
- Manifest assets that share the same id under different types are now all kept in the by-id index. Previously the first same-id entry (e.g.
W3DHierarchy:AUMCV_HOVER) could shadow later definitions (e.g.W3DContainer:AUMCV_HOVER), causingModel@Nameand otherBaseRenderAssetTypereferences to be reported as unresolved even though the asset existed inStatic.manifest. xi:includewithout anxpointernow splices the target document's root element itself (XInclude semantics), so fragments likeGenericCelestialBuildingSuicide.xmlkeep their module wrapper (CreateObjectDie) instead of only inserting its children.- Fragment files (documents whose root is not
AssetDeclaration) no longer trigger standalone-document diagnostics: top-levelmissing-id, duplicate-id, unresolved-reference and undefined-define checks are skipped, unknown wrapper roots are not reported as unknown elements, and a known fragment root still validates its subtree's elements/attributes.
Added
- Missing
xi:includetargets now surface in the Problems panel asinclude-not-foundwarnings for the edited document (previously only tracked in indexer diagnostics).
0.1.21 — 2026-08-11
Added
- English/Chinese localization for the extension manifest, commands, settings, status bar, notifications, hover, completions, CodeLens, and diagnostics.
package.nls.*andl10n/bundles so future languages can be added without touching source code.- AI-generated project disclosure in both
README.mdandREADME.zh-CN.md.
Changed
- Packaged extension now includes localization resources.
npm run packageno longer fails on missing repository-link rewriting.
Fixed
- Parser errors carry stable codes and parameters so the UI layer can localize them while the parsing core stays VS Code-independent.