Loom docs
API Stability Policy (Loom VS Code Extension)
This document defines compatibility expectations for the services/loom extension.
Status: shipped 1.2.0 extension line.
Scope
This policy covers extension-facing contracts in this repository:
- VS Code command IDs
- contributed view IDs
loom.*configuration keys- extension-to-
loomCLI integration surface
It does not redefine loom-core policy; that remains owned by loom-core.
Stability Levels
Stable
These surfaces are expected to remain compatible across patch versions and usually across minor versions:
- Command IDs contributed in
package.json(loom.*command namespace). - Explorer view IDs (
loomHubOverview,loomServers,loomTools,loomSecrets,loomSkills,loomAgentContext,loomTasks,loomPlatforms). - User settings keys under
loom.*contributed in extension configuration.
Policy for stable surfaces:
- avoid renames/removals
- add new commands/settings additively
- if removal is necessary, keep an alias/compat path for at least one minor release
Runtime Contract Surfaces
These are the primary extension-to-runtime contracts in the shipped 1.0.0 line:
- Loom runtime resources used by extension clients:
loom://configloom://serversloom://healthloom://tools/index
- CLI invocation set used by extension clients:
loom daemon start|stop|restart|statusloom servers --json(primary) andloom servers(fallback)loom tools list --json(primary) and text parsing fallbackloom sync <platform> --regen
- Parsed output shapes used by
src/clients/daemon.tsandsrc/clients/platformConfig.tswhen runtime resources or JSON output are unavailable.
Policy for runtime contract surfaces:
- prefer additive changes
- prefer resource-first and JSON-first adapters wherever available
- treat human-readable CLI parsing as fallback behavior, not the primary contract
- when changing output shape, update extension adapters/tests in the same release train
- document migration notes in
CHANGELOG.md
Internal / Unstable
These can change without compatibility guarantees:
- Internal TypeScript module structure under
src/(clients/,managers/,providers/,webviews/,utils/). - Internal log message formats in the Loom output channel.
- Internal manager wiring and activation sequencing in
src/extension.ts.
Extension-to-Core Contract Boundary
The extension depends on loom-core CLI and daemon contracts. For any compatibility-sensitive change:
- Treat command/flag/output/resource changes as contract changes.
- Update extension adapters and tests in lockstep.
- Prefer Loom MCP resources and
--jsoncommand outputs for new automation surfaces. - Keep roadmap/backlog links current for API-impacting work.
Compatibility harness:
npm run compat:loom-corevalidates the required command/field surface consumed by:src/clients/daemon.tssrc/clients/platformConfig.ts
- The broader extension contract should also prefer runtime resources where the server exposes them.
- Contract inputs default to:
compat/loom-core/contracts/cli/loom_commands.jsoncompat/loom-core/contracts/platform/platform_config_schema.json
- CI executes this check in
compat:loom-corefor merge requests and default-branch pipelines.
Breaking Change Process
When a breaking change is unavoidable:
- Add an entry to
CHANGELOG.mdwith migration notes. - Update this document if stability classification changes.
- Update
ROADMAP.mdissue status/backlinks. - Validate with extension checks (
npm run check,npm test) before merge.
Change Checklist
For command/view/setting changes:
- Update
package.jsoncontributions. - Update command/provider registration in
src/extension.tsand command modules. - Update user docs (
README.md,AGENTS.md, roadmap notes) as needed. - Verify no regressions in CLI integration flows.
Sources
package.json:5package.json:461package.json:466src/managers/profileManager.ts:68src/managers/profileManager.ts:235src/managers/profileManager.ts:245src/managers/profileManager.ts:273src/managers/profileManager.ts:297src/clients/daemon.ts:472src/clients/platformConfig.ts:436src/extension.ts:8src/extension.ts:175ROADMAP.md:99/Users/cblevins/workspace/services/loom-core/docs/API_STABILITY.md:17/Users/cblevins/workspace/services/loom-core/docs/API_STABILITY.md:93