powershell-lsp: close the I0.1 rationale residual (ManifestConsistency) + v1.24.1 release-prep (000124)#84
Merged
Conversation
…losing the I0.1 residual (000124)
… re-anchor the degrade exemplar (000124)
…ale coverage is complete (000124)
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.
Closes the I0.1 rationale-coverage residual and cuts v1.24.1. Dispatch 000124, leg 1 (leg 2 is a
survey and contributes no diff). PATCH-bearing, 8 files, +159/-26.
What changed
scripts/regen-rule-rationales.ps1gains a fifth hand-authored owned rationale,keyed
ManifestConsistency-- the ruleId the finder actually emits (lsp-common.ps1:2196,2208,pses-daemon.ps1:816), confirmed on disk before authoring, not the function nameTest-ManifestConsistency. 175 chars against the 180 cap, pure printable ASCII.rulesets/rule-rationales.psd1regenerated by the script, never hand-edited:59 entries = 54 auto-derived PSSA (unchanged, byte-for-byte) + 5 owned. The artifact diff is
3 insertions / 1 deletion.
names both: a manifest listing a function that is never defined (orphan-export), and a function the
module defines and exports that
FunctionsToExportomits (under-declared-export). It does not claimthe module is broken, because every indeterminate shape (wildcard
'*', empty/nullFunctionsToExport, dot-source, dynamic export, unparseable module) degrades before any findingis emitted.
three, not one (the count assertions read the table from disk and self-adjust).
A correctness fact this surfaced
ManifestConsistencyis emitted from a second site for the indeterminate case(
pses-daemon.ps1:816,_indeterminate = $true, "cannot be determined").lsp-client.ps1routesthose to the prose-note channel and only determinate findings into
$diags, so the new entry cannever render "the lists disagree" onto a note saying the opposite. That separation was previously
unguarded and is now pinned by an integration test that goes RED if it is removed.
Decisions (the inbox's open questions)
and one merge gate (the 000121 shape).
CHANGELOG.mdreserves MINOR for a newcapability. The rationale feature shipped at v1.24.0; this completes the coverage of its generated
data table. Decisive on-disk precedent:
[1.21.1]shipped as PATCH while removing three rulesfrom the
basesurface -- a strictly larger observable-diagnostics change than adding one proseline. No deviation.
4-owned world are terminal and not re-run. The live guards that pinned 4 were in scope and are
updated.
Deviation (approved in-session by Mike)
The Section 3 feedback table, row 9, still read
one-entry residual -> I0.1, which is outside thedispatch's named scope (
scope_innames Horizon 0;scope_outforbids other roadmap edits). Leftalone it would make the roadmap self-contradict -- Horizon 0 closed, table row open. Mike granted the
one-cell edit explicitly. The roadmap diff is exactly two hunks: the named clause and that cell.
Verification
Every check proven non-vacuous, each by RED-then-GREEN, with the artifact restored bit-for-bit
after each mutation:
regen -Checkexits 0 on the shipped table; exits 1 on a perturbed rationale text and on adropped owned-list entry, each with a precise diff.
the degrade guard, which is invariant across this change, was instead proven RED by injecting an
entry for its exemplar.
why:line, which is precisely the behaviour this closes.PSUseSingularNounsis agenuine PSScriptAnalyzer code, deliberately entry-less because 000092 excluded it from
base.psd1as measured-noisy, yet still reachable when a user's own
PSScriptAnalyzerSettings.psd1enables it.The test asserts it is absent from the table so the exemplar cannot silently stop being one, and
says so in a comment for future curation / pin-bump work. The synthetic case is kept as a second
assertion.
Full local suite green on both hosts: pwsh 7 -- 1194 passed, 0 failed; Windows PowerShell 5.1 --
1192 passed, 0 failed, 2 skipped. Frozen properties hold: a clean file still emits nothing, and
per-rule dedup is unchanged.
Tag and release pipeline are untouched --
bump-version.ps1only prints the tag command. HELD forMike's merge gate.
https://claude.ai/code/session_01LzLuvSXsCK7ahhK1WUCFGT