deps: bump workshop-rs to v0.6.4 and map provider-backed findings through SourceMap - #410
Merged
Merged
Conversation
Negotiate LPP 1.4 with the OPY provider and list workshop-rs/mapped-text-v1 in acceptedArtifactFormats on lpp/compile. When a mapped artifact is returned, apply its SourceMap to the re-parsed Program before validation and transforms so lint, analyze, and validation diagnostics resolve to authored source paths. Nodes without an authored origin keep no span; a shape mismatch falls back to unmapped findings with a source-map-mismatch warning. Providers without LPP 1.4 keep the existing unmapped behavior. Bump workshop-rs to v0.6.4 for the public SourceMap API. Fixes #408
Teakowa
requested changes
Sep 25, 2026
Teakowa
left a comment
Contributor
There was a problem hiding this comment.
Request changes.
crates/wright-driver/src/session.rs:316— afterprotocol-version-mismatch, this retrieslpp/initializeon the same provider process. LPP v1 §19.2 requires the client to restart the session before negotiating a mutually supported version. Re-spawn the provider before the 1.1/1.2 fallback and cover that fallback with a protocol-level test; otherwise conforming pre-1.4 providers can fail even though #408 requires them to retain the existing unmapped path.crates/wright-driver/src/session.rs:618-638— mapped paths are only resolved forlint.analyzereturnssemantic_factswith raw{file,start,end}spans and never applies the loaded source-file table. #408 explicitly requireswright analyzelocations (and deterministic JSON/text mapped paths). Resolve analyze spans through the mapped file table and add coverage for the analyze path.crates/wright-driver/src/source_provider.rs:6-7— Wright redeclares the canonicalworkshop-rs/text-v1andworkshop-rs/mapped-text-v1identifiers even though workshop-rs exports them. Consume the owner constants (for exampleworkshop_rs::program::{TEXT_V1, MAPPED_TEXT_V1}) instead of creating a second authority.Cargo.toml:14/ commitf48594c— this advances the shipped workshop-rs pin but is classified asfeat:. The repo AGENTS contract requires owner dependency-pin PRs to use thedeps:Conventional Commit type so the release flow classifies the product-graph change correctly. Ensure the merge/squash commit usesdeps:.
Respawn the provider process before the pre-1.4 fallback, since LPP allows one initialize per session. Resolve mapped file paths for analyze facts. Use the workshop-rs artifact format constants.
Teakowa
requested changes
Sep 25, 2026
Teakowa
left a comment
Contributor
There was a problem hiding this comment.
The three code findings from the previous review are fixed, and the new CI run is fully green. Two remaining delivery/acceptance items:
crates/wright-driver/tests/source_provider.rs:556— the pinned Bastion regression still exercises onlylint. #408's acceptance criteria explicitly require bothwright lintandwright analyzelocations on the pinned Bastion revision, and the repo's real-project rule requires the real workflow in addition to synthetic coverage. Extend this gated Bastion check to runanalyzeand verify its non-null spans resolve to valid authored.opypaths/lines.- The PR title is still
feat: ...while this PR advances the shipped workshop-rs pin. The repository delivery contract requires such owner dependency-pin changes to land with thedeps:Conventional Commit type. Rename the PR / otherwise make the squash-merge titledeps: ...so the release flow classifies it correctly.
Everything else from the previous review is resolved.
Teakowa
approved these changes
Sep 25, 2026
Teakowa
left a comment
Contributor
There was a problem hiding this comment.
LGTM. The previous findings are resolved: the pinned Bastion regression now verifies analyze locations, and the PR is classified as deps: for the shipped workshop-rs pin update. No new actionable findings.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #408
Summary
workshop-rs/mapped-text-v1(thentext-v1) inacceptedArtifactFormatsonlpp/compile; providers without 1.4 keep the existing 1.1/1.2 unmapped session.SourceMapto the re-parsedProgrambefore validation and transforms, addingSourceProvenance::Mapped/Provenance::Mapped. Lint, analyze and validation diagnostics resolve to authored paths.span: null. A shape mismatch yields asource-map-mismatchwarning and fully unmapped findings.SourceMapAPI.Verification
cargo test --workspace, clippy, fmt pass.c010e1a2with a locally built mapping-capable opy-provider: 37 lint findings, all on valid.opylines;--profile compatkeeps the mapping.provider-artifactas before.Notes
The Bastion test is gated on
WRIGHT_BASTION_MAINandWRIGHT_OPY_PROVIDER. No released opy-provider emits the mapped format yet (v0.1.55 predates the opy-rs mapping PR), so CI skips it until a release lands and the pin is bumped.