Skip to content

fix(vue): synchronize snapshot refs and scope cleanup - #38

Merged
codeBelt merged 1 commit into
mainfrom
codex/vue-integration
Oct 27, 2026
Merged

codeBelt merged 1 commit into
mainfrom
codex/vue-integration

Conversation

@codeBelt

Copy link
Copy Markdown
Owner

Vue consumers could read stale refs and computed values immediately after an action, and a single await nextTick() could still observe the old DOM. Update the Vue snapshot ref synchronously while preserving Vue render batching and ordinary core subscription batching.

Require an active component/effect scope before subscribing, and stop delivery when that scope is disposed during a notification. Correct the Vue peer requirement to 3.2+, matching the Effect Scope APIs used by the adapter. Add focused unit and compiled Vue SFC browser regressions, update the public docs, and include a patch changeset for 0.8.2.

Validation:

  • 557 unit tests passed.
  • 118 browser tests passed across Chromium, Firefox, and WebKit, including all 12 Vue cases; 8 existing clipboard skips are expected.
  • Confirmed the browser nextTick regression fails against the original adapter.
  • Library build, TypeScript checks, Vue template checks, full lint, and frozen-lockfile install passed.
  • Vue example typecheck and production build passed.
  • Packed-library smoke test passed with Vue 3.2.0.

Upgrade note: call useClassyStore() inside setup() / <script setup> or an active effectScope().run(). Unscoped calls now throw instead of creating a subscription without a cleanup owner.

@codeBelt
codeBelt merged commit dfe1228 into main Oct 27, 2026
6 checks passed
@codeBelt
codeBelt deleted the codex/vue-integration branch October 27, 2026 15:10
@github-actions github-actions Bot mentioned this pull request Oct 27, 2026
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.

1 participant