Skip to content

feat(protocol): add canonical id resolution via lpp/resolveIds - #56

Merged
Teakowa merged 1 commit into
mainfrom
feat/resolve-ids-capability
Oct 10, 2026
Merged

Teakowa merged 1 commit into
mainfrom
feat/resolve-ids-capability

Conversation

@e54-bot

@e54-bot e54-bot commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

Adds LPP 1.6 lpp/resolveIds behind the optional resolveIds capability. Fixes #55. Parent decision: wrightkit/wright#615.

Decision (ADR-0006)

  • Method lpp/resolveIds, capability resolveIds, protocol version 1.6, additive minor.
  • Request: { languageId, calls?: [id], enums?: { domain: [member] } }.
  • Result: { calls: { id: spelling }, enums: { domain: { member: spelling } } }, only requested ids the language spells.
  • An id with no spelling, and a domain with no spelled member, is omitted. No error, placeholder, or guess.
  • At most 1024 ids per request, duplicates counted. Over the bound is -32602, never truncated.
  • No loaded project required. Canonical ids are opaque strings to LPP.
  • Rejected: a selector on lpp/lookup, a flat {kind, id} array, a provider-declared maximum.

Verification

Evidence level: the reference mock provider against the repository fixtures. This does not show a real provider (opy-rs) implements the capability.

  • cargo fmt --all --check, cargo clippy --all-targets -- -D warnings, cargo test --workspace, git diff --check: pass.
  • Conformance runner --validate-only and against the mock provider: 67 passed, 0 failed (6 new fixtures).

LPP 1.6 adds the optional resolveIds capability: a project-independent, bounded, deterministic map from canonical Workshop ids (calls, and enum members grouped by domain) to the language's spellings. An id with no spelling is omitted, never guessed, and a request over 1024 ids is rejected rather than truncated.

The mock provider maps a small fixed table for x-demo-lang. Fixtures cover mapping and omission, the bound, the version gate, the absent capability, an invalid language, and invalid params. ADR-0006 records the decision.

Fixes #55
@Teakowa
Teakowa merged commit e285d2c into main Oct 10, 2026
2 checks passed
@Teakowa
Teakowa deleted the feat/resolve-ids-capability branch October 10, 2026 20:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a capability that maps canonical Workshop ids to language spellings

2 participants