Skip to content

feat(protocol): support directory project targets - #32

Merged
Teakowa merged 2 commits into
mainfrom
feat/project-target-1-2
Sep 12, 2026
Merged

Teakowa merged 2 commits into
mainfrom
feat/project-target-1-2

Conversation

@e54-bot

@e54-bot e54-bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • extend LPP project-loading to version 1.2 directory targets via entry.kind
  • keep LPP 1.1 file-entry requests wire-compatible
  • add normative directory-target semantics and conformance coverage

Validation

  • cargo fmt --all -- --check
  • cargo test --workspace
  • ./target/release/lpp-conformance-runner --provider ./target/release/lpp-mock-provider --fixtures conformance/fixtures/v1

This is the protocol owner-side dependency for wrightkit/wright#317.

@Teakowa Teakowa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two findings:

  1. conformance/mock-provider/src/main.rs (documents_for_request / load_project): entry.kind is honored after negotiating either 1.1 or 1.2. A 1.1 session can therefore send kind: "directory" and receive the new 1.2 directory-target behavior, even though the spec defines directory targets as a 1.2 extension. This makes the version boundary non-enforceable and the claimed 1.1 compatibility unverified. Gate directory semantics on negotiated 1.2 and add conformance coverage showing that a 1.1 directory target is rejected rather than executed.

  2. conformance/mock-provider/src/main.rs (load_project, directory branch): after selected.is_file(), selected.canonicalize().expect("entry exists") can still fail on a filesystem race or access error and panic the provider process. This path should return the structured projectLoadFailed error required by the protocol instead of terminating the process.

@Teakowa Teakowa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Teakowa
Teakowa merged commit 80a8023 into main Sep 12, 2026
2 checks passed
@Teakowa
Teakowa deleted the feat/project-target-1-2 branch September 12, 2026 14:20
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.

2 participants