Repository navigation
Conversation
Extracts vpet-core as a shared package, moves the OpenCode plugin to packages/opencode-vpet, and adds the cursor-vpet extension with its own SQLite adapters and hooks. Updates CI/CD, workspaces, and monorepo documentation. Co-authored-by: Cursor <cursoragent@cursor.com>
Adds walking, action, and sleep animation in the sidebar webview and copies the root CHANGELOG.md when packing npm and VSIX artifacts, removing the local stub. Co-authored-by: Cursor <cursoragent@cursor.com>
Calls nowMs as a function instead of passing unbound performance.now, reorders partner sync after postMessage, and adds a regression test. Co-authored-by: Cursor <cursoragent@cursor.com>
Converts pixel width to monospace columns based on the webview font so the sprite fits without overflowing. Co-authored-by: Cursor <cursoragent@cursor.com>
Rewrites the extension documentation with badges, guides, and usage sections, and documents the author and contributor in the root README. Co-authored-by: Cursor <cursoragent@cursor.com>
Colocates stage-changelog in each package, aligns the test fixture with the monorepo layout, and fixes typecheck errors that blocked check. Co-authored-by: Cursor <cursoragent@cursor.com>
…olds Reuse the shared SQL.js runtime so the snapshot reader reloads the database on each read instead of serving stale gauge values. Scale default evolution thresholds 10× and document Open VSX publishing setup. Co-authored-by: Cursor <cursoragent@cursor.com>
When a partner reaches a stage threshold, open a pending same-stage battle instead of evolving immediately. Persist battle state in SQLite, notify via toasts in OpenCode, and animate battles in the Cursor sidebar. Co-authored-by: Cursor <cursoragent@cursor.com>
…nimations Show a FIGlet BATTLE banner that blinks before combat, then play evolution or defeat animations based on the battle outcome. Co-authored-by: Cursor <cursoragent@cursor.com>
Elimina el flag temporal, el comando de prueba y la lógica de preview automático para dejar solo el flujo real de batalla. Co-authored-by: Cursor <cursoragent@cursor.com>
Reload sql.js state when pet.db changes on disk and watch the file so the sidebar stays fresh when multiple Cursor windows share the same ledger. Co-authored-by: Cursor <cursoragent@cursor.com>
…oks. Wire battle animations, session orchestration, and sidebar updates into the OpenCode TUI so evolution now requires winning a battle before advancing. Co-authored-by: Cursor <cursoragent@cursor.com>
Use a single repository snapshot, a shared battle session, and refresh coalescing so pending battles resolve once instead of replaying in a loop. Co-authored-by: Cursor <cursoragent@cursor.com>
Digitama now crosses stages in the database without a pending battle, while later stages keep the battle flow. Cursor queues direct-evolution reveals from usage events, and OpenCode runs battle and reveal presentations in the sidebar poll loop. Co-authored-by: Cursor <cursoragent@cursor.com>
Centralize pure helpers (sleep, random, assertNever, async refresh queue), deduplicate SQLite options/errors, import CompletedUsage from vpet-core, and remove unused sqljs-runtime. Co-authored-by: Cursor <cursoragent@cursor.com>
…tation Move animation, artwork, and session modules into a VS Code-free folder to separate visual logic from host-specific webview wiring. Co-authored-by: Cursor <cursoragent@cursor.com>
Introduce notification, scheduler, and webview messenger adapters plus discriminated union message parsing; wire provider through AnimationSink. Co-authored-by: Cursor <cursoragent@cursor.com>
Split VpetSidebarProvider into pure presenter, animation host, and orchestrator modules under webview/sidebar for single-responsibility. Co-authored-by: Cursor <cursoragent@cursor.com>
Extract container wiring, command registration, sidebar setup, and usage pipeline so extension.ts only orchestrates activation. Co-authored-by: Cursor <cursoragent@cursor.com>
Escape HTML in Dex and History panels and relocate panel modules to match the recommended folder structure. Co-authored-by: Cursor <cursoragent@cursor.com>
Add exhaustive state-machine cases for walking, digitama, sleep, viewport, and activity transitions per architecture analysis. Co-authored-by: Cursor <cursoragent@cursor.com>
Group imports as third-party, @sbugallo workspace packages, then relative paths across src and tests. Co-authored-by: Cursor <cursoragent@cursor.com>
Cover sidebar orchestrator, animation host, and provider behavior with fixtures and mocks so functional regressions are caught without changing production code. Co-authored-by: Cursor <cursoragent@cursor.com>
Normalize formatting across source and test files so biome ci passes. Co-authored-by: Cursor <cursoragent@cursor.com>
Move repeated literals into shared/constants, add tsconfig.test.json so Bun tests typecheck in the IDE, and cover game persistence, usage pipeline, and domain evolution rules. Co-authored-by: Cursor <cursoragent@cursor.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.
Summary
Refactors
packages/cursor-vpetwith modern patterns while preserving functional behavior andpet.dbcompatibility.Base:
feat/unify-evolution-behaviorScope: 11 commits · 85 files · +4635 / −666 lines (
cursor-vpetonly)Architecture
shared/) and SQLite foundations (errors,options, removessqljs-runtime).notification,scheduler,animation-sink,webview-messenger) and typed webview messages.webview/presentation/and moves panels towebview/panels/with stricter CSP.provider,presenter,orchestrator, andanimation-host.container,register-commands,register-sidebar,ensure-hooks) with a thinextension.ts.presentation-timing,sidebar-ui,evolution-battle, etc.).Tests & quality
architecture-boundary,hexagonal-boundary).Documentation
packages/cursor-vpet/docs/REFACTORING-IMPLEMENTATION-SPEC.mdwith the refactor plan and current status (~15% complete).Commits
refactor(cursor-vpet): add shared utilities and sqlite foundationsrefactor(cursor-vpet): isolate pure presentation under webview/presentationrefactor(cursor-vpet): add VS Code ports and typed webview messagesrefactor(cursor-vpet): decompose sidebar into presenter and orchestratorrefactor(cursor-vpet): modular bootstrap and thin extension entrypointrefactor(cursor-vpet): secure panels and move under webview/panelstest(cursor-vpet): expand MonsterAnimationController coveragestyle(cursor-vpet): standardize import grouping ordertest(cursor-vpet): add sidebar and architecture boundary testsstyle(cursor-vpet): apply biome formattingrefactor(cursor-vpet): centralize constants and expand test coverageTest plan
bun run --filter cursor-vpet checkbun run --filter cursor-vpet testbun run --filter cursor-vpet test:persistencebun run --filter cursor-vpet build && bun run --filter cursor-vpet packagepet.dbsync across extension windows remains intact