test(notes): gate note persistence across versions - #6
Merged
Conversation
yattdev
marked this pull request as ready for review
August 30, 2026 07:01
yattdev
marked this pull request as draft
August 30, 2026 12:55
yattdev
marked this pull request as ready for review
August 30, 2026 21:34
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.
$## Overview\n\nAdd hard compatibility gates for Notes persistence across published plugin versions and document the safe upgrade path.\n\n## Review first\n\n1.
ui/persistence-compat.test.mjs— loads every released Notes bundle and verifies byte-exact task/workspace note preservation in upgrade and downgrade directions, permanent namespace coordinates, and zero deletes.\n2.integration/host_upgrade_preserves_user_state_test.gowithscripts/test-host-upgrade-state.sh— overlays a focused test into Kandev’s realService.Installpackage, proving both newer and older replacements do not call the user-state cleanup seam.\n3.server/manifest_test.go, CI/release workflowfetch-depth: 0, and the README lifecycle guidance — keep the contract and released history available to the gates.\n\n## Changes\n\n- add a UI persistence compatibility suite that replays every published Notes tag against the current bundle in both upgrade and downgrade directions\n- add a host lifecycle contract test plus runner script to assert version replacement never purges plugin user state\n- pin the released plugin id anduser_statecapability in server tests, wire the new checks intomake test, and fetch full tag history in CI/release workflows\n- document in-place update/downgrade versus destructive uninstall/reinstall semantics in the README and annotate the manifest persistence contract\n\n## Verification\n\n- CI: 3 successful checks on3e2e0aaebcbb94e334cc2cc0ced0b5717ff65eca\n-make testin a disposable sibling-host layout: server suite, 108 Node tests, and the real host lifecycle overlay contract\n-go vet ./server/..., formatting/diff checks, andmake package-host; the packaged manifest retainsid: "kandev-plugin-notes"anduser_state: true\n- current-head focused historical matrix:node --test ui/persistence-compat.test.mjs(10/10)\n\n## Breaking Changes\n\nNone. Version replacement is safe; explicit uninstall/reinstall remains intentionally destructive.