Skip to content

feat(protocol): negotiate artifact formats in lpp/compile - #40

Merged
Teakowa merged 2 commits into
mainfrom
feat/lpp-1.4-artifact-format-negotiation
Sep 24, 2026
Merged

Teakowa merged 2 commits into
mainfrom
feat/lpp-1.4-artifact-format-negotiation

Conversation

@e54-bot

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

Copy link
Copy Markdown
Contributor

Fixes #39

Summary

  • LPP 1.4: optional acceptedArtifactFormats (ordered format ids) on lpp/compile.
  • Provider returns the first listed format it can produce, refuses when none is supported; absent field behaves as in 1.3; pre-1.4 sessions reject the field with -32602.
  • Artifact stays an opaque format/content envelope; no Workshop semantics defined here.
  • Mock provider gains compile-only x-demo/puzzle-summary-v1; fixtures 45-49 cover selection, absence, refusal, version gate, invalid values.
  • ADR-0004 and spec/README updates.

Validation

fmt, clippy -D warnings, cargo test --workspace, fixture validate-only and mock-provider conformance (49/49), git diff --check.

Add optional acceptedArtifactFormats to lpp/compile in LPP 1.4. The
provider returns the first listed format it can produce, refuses when
none is supported, and behaves as in 1.3 when the field is absent.
Sessions before 1.4 reject the field with -32602.

The mock provider gains a compile-only x-demo/puzzle-summary-v1 format,
and fixtures 45-49 cover selection, absence, refusal, the version gate,
and invalid values.

Fixes #39

@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.

One blocking protocol-contract inconsistency remains.

Comment thread docs/spec/errors-and-versioning.md
Clarify that providers ignore unknown fields except fields defined for a later version that they implement, which are rejected as specified, and that clients may rely on a version-gated field only in a session that negotiated that version.
@Teakowa
Teakowa merged commit 11c02d1 into main Sep 24, 2026
2 checks passed
@Teakowa
Teakowa deleted the feat/lpp-1.4-artifact-format-negotiation branch September 24, 2026 19:10
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 artifact format negotiation to lpp/compile (LPP 1.4)

2 participants