Conversation
Co-authored-by: Sal <ss-o@users.noreply.github.com>
…rs (#501) Co-authored-by: Sal <ss-o@users.noreply.github.com>
Co-authored-by: Sal <ss-o@users.noreply.github.com>
Co-authored-by: Sal <ss-o@users.noreply.github.com>
Co-authored-by: Sal <ss-o@users.noreply.github.com>
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.
Promotion readiness record
Candidate identity
Prior
mainSHA:9b6ab3502d69c214d58efecb2312b0495211d4b8Candidate
nextSHA:a3f2e76b23286c8f115009023b897ab039a265dfCandidate tree SHA:
69e715a4b3304768c58cef4caa9de0fee78447b0Complete compare:
main...nextgit diff --name-only a3f2e76...9b6ab35produces no output.git rev-parse 'a3f2e76^{tree}'equals69e715a4b3304768c58cef4caa9de0fee78447b0.git log --oneline a3f2e76..9b6ab35contains9b6ab35and8675819, both prior promotion merges that exist only onmainby design. The template calls this out. No stable-only content commit is stranded.Required validation
Zsh syntax and compileZD integrationTrunkCodeQLClean install and startupPromotion gate9b6ab35, heada3f2e76.Guard main branch sourceandPromotion gaterequired contexts pass. 175 checks green, none failing or skipped.Readiness review
Contents
Five commits, three of them user-facing.
.zi-load-objectreturned an undefined parameter, which zsh evaluates as0, so every load reported success. A failed immediate load counted as successful and turbo scheduling proceeded anyway.@zi-unregister-annex. Annexes previously had no correct way to unload: a handler removed without unregistering leaves a staleZI_EXTSentry, and the resulting 127 shifts the argument list so later plug-ins stop loading entirely..zi-at-eval, corrects two drifted# FUNCTION:headers, addstests/source-hygiene.zsh. No behaviour change.Unresolved issues
None blocking. Open issues are #113, #386, #387, #388, #429, #430, #445, #447, #448, #468, #499, #505. None is a regression introduced by this candidate. #113 and #505 are open on design decisions and both gained measured evidence during this work.
User-facing and migration notes
No migration required. #500 and #502 restore intended behaviour that was broken. #503 is additive.
One behavioural consequence worth stating plainly: before #500, a failed load reported success, so any caller or user script that inspected
zi load's status was reading a constant0. After this promotion that status is real, so a load that was always silently failing will now report non-zero. That is the fix working, not a regression, but it can surface pre-existing failures that were invisible.Public-contract follow-ups
#503 adds a new public function,
@zi-unregister-annex. ThePublic contract impactcheck passed on that pull request. The annex API is documented in the wiki atecosystem/annexes/0_overview.mdx, which has no entry for it yet; that documentation is being prepared separately and does not gate this promotion.z-shell/z-a-meta-pluginscurrently leaves an inert stub behind on unload as a workaround for the missing API, and can drop that once this reachesmain.Merge contract
Promotion uses Create a merge commit. Never squash or rebase.
Co-authored-bytrailer.delete_branch_on_mergeisfalse; remotenextwill survive the merge.mainruleset allows only merge commits and does not require linear history.nextruleset does not require linear history.Rollback readiness
@ss-omainhead.main.hotfix-*pull request that reverts the promotion merge through protectedmain.Guard main branch sourceandPromotion gate.mainhead, then the hotfix will be merged forward intonext.Stable consumption boundary
This updates the Git-consumed stable
mainref. It creates no semantic tag or GitHub release. v2.0.1 remains the newest tag. The open proposal #499 predates these commits and will refresh oncemainmoves; any tag is a separately approved action.