Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# Changelog

## 0.11.0 — 2026-10-04

- Add semantic full/delta tokens with bounded provider-bound caches and one full
fallback, folding ranges, literal inlay hints and hierarchical document symbols.
Validate actual host-owned results immediately before display. Add independent
Node and browser examples, public schemas and installed-package type checks.

- Add document/range formatting and diagnostic-bound code action lists/resolution.
Validate selection scope, newline policy and current snapshots; route proposed
changes through separately reviewed workspace edits. Preserve diagnostic APIs.

- Add prepare-rename/rename providers, reviewed multi-file edit plans, reproducible
previews, per-file CAS, durable intent/receipt journals and observational recovery.
Add independently reviewed inverse proposals and killed-process HTTP examples.

- Add bounded signature-help context/results, one-use completion resolve tokens,
optional snippet grammar and pure insertion previews with UTF-16/CRLF validation.
- Keep actual provider work within request/resolver limits when cancellation is
ignored; invalidate retained selections on document and provider lifecycle changes.
- Add public types, schemas, a standalone teaching-language example and packed
consumer checks. Preserve existing literal completions and protocol v1.
- Centralize SDK host/schema/package-peer version metadata and retain verification
compatibility for exact previously published 0.10 plugin package metadata.

## 0.10.0 — 2026-10-04

- Browser artifact streaming with caller-owned file/OPFS sinks and distinct
Expand Down
52 changes: 52 additions & 0 deletions PUBLIC_SURFACE.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@
"docs/JOB_HISTORY.md",
"docs/JOB_STORAGE.md",
"docs/JOBS.md",
"docs/LANGUAGE_DISPLAY.md",
"docs/LANGUAGE.md",
"docs/LANGUAGE_ASSISTANCE.md",
"docs/LANGUAGE_EDITING.md",
"docs/LICENSING.md",
"docs/OBSERVATION.md",
"docs/performance.md",
Expand All @@ -35,6 +38,7 @@
"docs/VERIFYING.md",
"docs/workspace-protocol.md",
"docs/WORKSPACES.md",
"docs/WORKSPACE_EDITS.md",
"examples/binary-artifacts/run.mjs",
"examples/browser-artifacts/browser.html",
"examples/browser-artifacts/browser.mjs",
Expand All @@ -60,6 +64,18 @@
"examples/hello-theme/hello-theme.xml",
"examples/hello-theme/preview.html",
"examples/hello-theme/theme.json",
"examples/language-assistance/LICENSE",
"examples/language-assistance/plugin.mjs",
"examples/language-assistance/run.mjs",
"examples/language-display/browser.html",
"examples/language-display/browser.mjs",
"examples/language-display/LICENSE",
"examples/language-display/plugin.mjs",
"examples/language-display/run.mjs",
"examples/language-display/serve.mjs",
"examples/language-editing/LICENSE",
"examples/language-editing/plugin.mjs",
"examples/language-editing/run.mjs",
"examples/project-query/run.mjs",
"examples/project-session/run.mjs",
"examples/project-tools/browser.html",
Expand Down Expand Up @@ -94,6 +110,10 @@
"examples/user-workspace/server.mjs",
"examples/user-workspace/tool.mjs",
"examples/workspace-observation/run.mjs",
"examples/workspace-edits/LICENSE",
"examples/workspace-edits/plugin.mjs",
"examples/workspace-edits/child.mjs",
"examples/workspace-edits/run.mjs",
"LICENSE",
"NOTICE",
"package.json",
Expand All @@ -109,9 +129,15 @@
"schemas/binary-artifact.schema.json",
"schemas/browser-artifact-checkpoint.schema.json",
"schemas/command.schema.json",
"schemas/completion-item.schema.json",
"schemas/code-action.schema.json",
"schemas/document-symbol-tree.schema.json",
"schemas/folding-ranges.schema.json",
"schemas/formatting-options.schema.json",
"schemas/diagnostics-request.schema.json",
"schemas/diagnostics-result.schema.json",
"schemas/error.schema.json",
"schemas/inlay-hints.schema.json",
"schemas/job-artifact-content.schema.json",
"schemas/job-capabilities.schema.json",
"schemas/job-events.schema.json",
Expand All @@ -123,8 +149,10 @@
"schemas/job-storage-capabilities.schema.json",
"schemas/job-store-identity.schema.json",
"schemas/json-value.schema.json",
"schemas/language-capabilities.schema.json",
"schemas/language-request.schema.json",
"schemas/language-result.schema.json",
"schemas/language-snippet.schema.json",
"schemas/manifest.schema.json",
"schemas/project-entry.schema.json",
"schemas/project-query-capabilities.schema.json",
Expand All @@ -134,6 +162,10 @@
"schemas/project-watch-capabilities.schema.json",
"schemas/project-watch-event.schema.json",
"schemas/project-watch-options.schema.json",
"schemas/semantic-legend.schema.json",
"schemas/semantic-tokens-delta.schema.json",
"schemas/semantic-tokens.schema.json",
"schemas/signature-help.schema.json",
"schemas/stored-artifact-chunk.schema.json",
"schemas/stored-artifact-list.schema.json",
"schemas/stored-artifact-reference.schema.json",
Expand All @@ -152,6 +184,10 @@
"schemas/workspace-file-revision.schema.json",
"schemas/workspace-project-capabilities.schema.json",
"schemas/workspace-project-poll.schema.json",
"schemas/workspace-edit.schema.json",
"schemas/workspace-edit-preview.schema.json",
"schemas/workspace-edit-record.schema.json",
"schemas/workspace-edit-receipt.schema.json",
"SECURITY.md",
"src/artifact-download-node.d.mts",
"src/artifact-download-node.mjs",
Expand Down Expand Up @@ -192,6 +228,14 @@
"src/job-storage.mjs",
"src/jobs.d.mts",
"src/jobs.mjs",
"src/language-assistance-schemas.mjs",
"src/language-assistance.mjs",
"src/language-display-schemas.mjs",
"src/language-display.mjs",
"src/language-editing.mjs",
"src/language-editing-schemas.mjs",
"src/language-registry.mjs",
"src/language-values.mjs",
"src/lifecycle.mjs",
"src/limits.mjs",
"src/node-project-context.mjs",
Expand Down Expand Up @@ -220,6 +264,7 @@
"src/stored-artifact-download-node.mjs",
"src/testing.d.mts",
"src/testing.mjs",
"src/text-edits.mjs",
"src/themes.d.mts",
"src/themes.mjs",
"src/transfer-queue-contracts.mjs",
Expand All @@ -237,6 +282,7 @@
"src/uploads-node.mjs",
"src/uploads.d.mts",
"src/uploads.mjs",
"src/version.mjs",
"src/workspace-client.d.mts",
"src/workspace-client.mjs",
"src/workspace-identity-node.mjs",
Expand All @@ -256,6 +302,12 @@
"src/workspace-upload-client.mjs",
"src/workspace-upload-node.mjs",
"src/workspace-values.mjs",
"src/workspace-edit-contracts.mjs",
"src/workspace-edit-schemas.mjs",
"src/workspace-edits.mjs",
"src/workspace-edits.d.mts",
"src/workspace-edits-node.mjs",
"src/workspace-edits-node.d.mts",
"templates/LICENSE.proprietary.example.txt",
"templates/publisher-disclosure.example.json"
]
Expand Down
16 changes: 13 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ a small ESM package, TypeScript declarations and versioned contracts. Connect
your own workspace and tools with the Node.js host and HTTP client. The SDK has
**zero runtime dependencies**.

Version 0.11 adds [signature help and completion assistance](docs/LANGUAGE_ASSISTANCE.md),
including lazy item resolution, limited snippets and pure insertion previews.
Run `npm run example:assistance` for the nested-call and Unicode example.
[Reviewed workspace edits](docs/WORKSPACE_EDITS.md) add rename proposals, multi-file
previews, conditional application and readback after interrupted operations.
[Formatting and code actions](docs/LANGUAGE_EDITING.md) use that review path for
document/range formatting and diagnostic-bound, optionally lazy quick fixes.
[Language display](docs/LANGUAGE_DISPLAY.md) adds bounded semantic full/delta
tokens, folding, literal inlay hints and hierarchical symbols with a browser example.

The 0.10 line adds [browser artifact streaming](docs/BROWSER_ARTIFACTS.md)
with bounded sinks, incremental whole-file hashes, explicit storage readback and
main-thread/Worker examples, and [selected-file uploads](docs/UPLOADS.md) with private
Expand All @@ -24,7 +34,7 @@ application, private engines/services and production signing systems are outside
this repository. Read the [public scope](docs/PUBLIC_SCOPE.md) and
[compatibility table](docs/COMPATIBILITY.md) for exact boundaries.

Version **0.10.0** supports Node 22 and 24. Manifest v1 diagnostic plugins remain
Version **0.11.0** supports Node 22 and 24. Manifest v1 diagnostic plugins remain
compatible. Manifest v2 adds commands, permission-scoped workspace and backend
APIs, and open-source or proprietary distribution metadata. Themes export to
the XML format already supported by DDS. The workspace host runs trusted plugins
Expand Down Expand Up @@ -84,7 +94,7 @@ mkdir my-dds-plugin
cd my-dds-plugin
npm init -y
npm pkg set type=module
npm install --ignore-scripts --save-exact https://github.com/Altifigence/dds-plugin-sdk/releases/download/v0.10.0/altifigence-dds-plugin-sdk-0.10.0.tgz
npm install --ignore-scripts --save-exact https://github.com/Altifigence/dds-plugin-sdk/releases/download/v0.11.0/altifigence-dds-plugin-sdk-0.11.0.tgz
```

Copy the example's `plugin.mjs` and `run.mjs` into this directory, then run:
Expand All @@ -102,7 +112,7 @@ and the install command includes the release URL rather than an npm registry loo

| Import | Use |
| --- | --- |
| `@altifigence/dds-plugin-sdk` | Plugin host, diagnostics and five language providers, bounded parsers, types and lifecycle helpers |
| `@altifigence/dds-plugin-sdk` | Plugin host, diagnostics, language providers and completion assistance, bounded parsers, types and lifecycle helpers |
| `@altifigence/dds-plugin-sdk/testing` | `createTestHost` for trusted local plugins |
| `@altifigence/dds-plugin-sdk/schemas` | JSON Schema objects, loaded separately from the core API |
| `@altifigence/dds-plugin-sdk/themes` | Validate a theme and export DDS XML without executing theme code |
Expand Down
20 changes: 19 additions & 1 deletion docs/COMPATIBILITY.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# Compatibility and availability

## 0.11 language assistance and editing

Optional `signature-help`, `completion-resolve` and `completion-snippets` extend the
in-process host. Existing five language features and literal completion remain
available. Older SDKs reject unknown manifest capabilities; these extensions do not
change the workspace HTTP protocol. New plugin archives declare `>=0.11.0 <0.12.0`;
verification retains the exact previously published 0.3.x through 0.10.x metadata.
See [language assistance](LANGUAGE_ASSISTANCE.md) for bounds and runtime checks.
`prepare-rename`/`rename` add proposals; [workspace edits](WORKSPACE_EDITS.md) preview
and apply them through existing file methods with a separate current approval and
journal. The Node journal is optional, operator-owned storage outside the workspace.
[Formatting and code actions](LANGUAGE_EDITING.md) are opt-in language proposals;
accepted diagnostic publications invalidate action selections. Existing diagnostic
call results and single-file edit sessions retain their contracts.
[Semantic tokens, folding, hints and hierarchical symbols](LANGUAGE_DISPLAY.md)
extend SDK hosts and include a standalone browser example. The flat symbol API
is unchanged. These features do not establish a DDS product editor integration.

| Surface | Supported scope |
| --- | --- |
| SDK runtime | Node.js 22 or 24; ESM with TypeScript declarations; no runtime dependencies |
Expand All @@ -11,7 +29,7 @@
| Browser-only DDS host | Native workspace transport is unavailable |
| Language providers | Diagnostics plus completion, hover, definition, references and document symbols in SDK hosts since 0.3.0; no released DDS editor bridge is implied |
| Project edit sessions | Client helpers in 0.3.0 over unchanged workspace protocol v1, including 0.2.x servers |
| Download verification | Node API/CLI since 0.3.1; 0.10.0 accepts exact 0.3.x–0.10.x package metadata; no extraction, code execution or publisher authentication |
| Download verification | Node API/CLI since 0.3.1; 0.11.0 accepts exact 0.3.x–0.11.x package metadata; no extraction, code execution or publisher authentication |
| Development tools | `init`, `doctor`, `dev` since 0.4.0; local Node tools, explicit trusted-code execution |
| Command jobs | Opt-in SDK host/client extension since 0.4.0; progress/logs/UTF-8 artifacts; v1 hello unchanged |
| File and job observation | Client helpers since 0.5.0; 0.6 uses revision reads when supported; job reads need enabled 0.4+ hosts |
Expand Down
16 changes: 12 additions & 4 deletions docs/LANGUAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ SDK 0.3.0 adds completion, hover, definition, references and flat document symbo
Run `node examples/hello-language/run.mjs` after installing the SDK. The example
implements a tiny teaching language; it is not a SystemVerilog compiler or LSP server.

SDK 0.11 adds [signature help, lazy completion resolution and opt-in snippets](LANGUAGE_ASSISTANCE.md).
It also adds [reviewed rename edits](WORKSPACE_EDITS.md), [formatting and code actions](LANGUAGE_EDITING.md),
and [semantic tokens, folding, hints and hierarchical symbols](LANGUAGE_DISPLAY.md).
The original literal contracts below continue to work without these capabilities.

Declare each feature in manifest v2 `capabilities`, and declare `document.read`
and `language.provide` in `permissions`. The host must explicitly grant both.
Upgrading a plugin or installing its package does not grant permission.
Expand Down Expand Up @@ -39,7 +44,8 @@ const hover = await host.requestLanguage('hover', {
| `document-symbols` | `{}` | Up to 500 `{name, kind, range, selectionRange, detail?}` symbols |

Positions are zero-based lines and UTF-16 code-unit offsets, including CRLF input.
Completion insertion is literal text, not snippets or commands. Hover and detail
Completion insertion defaults to literal text. Opt-in 0.11 snippets use the bounded
grammar in the assistance guide. Hover and detail
strings are plain text: render them as text, never `innerHTML` or trusted Markdown.
The runtime validates current-document positions, ordered ranges and symbol
selection containment. Location paths are relative workspace paths; they do not
Expand All @@ -56,7 +62,8 @@ additional 16,384-character limits. Type declarations and JSON Schemas accompany
runtime validation; the runtime additionally checks UTF-8 budgets and document ranges.

Provider selection uses the highest selector priority, then earliest registration.
One provider answers each request. Document symbols are flat; this version does
One provider answers each request. `document-symbols` remains flat; the separate
`document-symbol-tree` feature returns a validated hierarchy. This version does
not merge providers, auto-apply edits, execute completion commands or start LSP processes.

These APIs run in the SDK's trusted in-process host. They do not add editor UI
Expand All @@ -71,8 +78,9 @@ manifest v2에 해당 capability와 `document.read`, `language.provide` 권한
선언하고 호스트가 두 권한을 명시적으로 승인해야 합니다. 설치·업데이트만으로
권한이 생기지 않습니다. `examples/hello-language/run.mjs`는 다섯 기능을 실제로 실행합니다.

좌표는 0부터 시작하는 줄과 UTF-16 문자 위치입니다. 자동완성은 일반 삽입 문자열,
호버는 일반 텍스트이며 HTML·명령·스니펫으로 실행하지 않습니다. 정의·참조의
좌표는 0부터 시작하는 줄과 UTF-16 문자 위치입니다. 자동완성은 기본적으로 일반
삽입 문자열이며, 0.11의 스니펫은 별도 capability와 제한 문법을 사용합니다.
호버는 일반 텍스트이며 HTML·명령을 실행하지 않습니다. 정의·참조의
상대 경로는 파일 접근 권한을 부여하지 않습니다. 문서 변경, 취소, 시간 초과,
등록 해제 또는 호스트 종료 뒤의 결과는 폐기합니다. 결과의 요청 ID와 문서 버전도 확인합니다.

Expand Down
Loading