Rehearsal for VS CodeUnderstand whether a database change is ready—without memorizing the CLI. This free Starter preview is a project-aware client for the Rehearsal package installed in each workspace. Its native project navigator opens a Rehearsal Workspace with persistent navigation for Overview, Project setup, Migrations, Environments, Data & auth, Configuration, and Activity & reports. The repository and reviewed VSIX previews are public on GitHub. Use the official installation guide for current distribution channels. Starter is free; preview status describes stability, not a trial or a paid launch. The canonical extension identity from 0.1.19 is
Already using a GitHub preview through 0.1.18? Follow the one-time identity migration before installing the canonical package. This is an explicit manual change, not an automatic rename. Install and open your projectUse desktop VS Code 1.101 or newer on macOS or Linux, with Node.js 22, 24, or 26.
No source checkout, extension build, or Test Lab installation is needed.
For Windows desktop use, open the project with Remote - WSL in a WSL 2 Linux
distribution and install Rehearsal into that Linux extension host. Keep project files,
Linux Node and the local Docker engine on the Linux side, not under
If VS Code's
Move from a preview through 0.1.18Earlier GitHub previews use
The canonical extension refuses activation while VS Code still reports the legacy ID. An installed extension that is not currently active is not necessarily disabled. Uninstalling and reloading is the supported path above; if both IDs are still reported, resolve the old installation before retrying. Rehearsal never silently disables or uninstalls another extension or interrupts an active session for this migration. Project configuration, keys, baseline files and database/Storage data are not migrated,
reset or deleted by this identity change. Shared VS Code user settings, including
Keep the canonical installation currentTo update manually, download and verify the next reviewed VSIX and repeat step 3.
Or opt in to Keep this extension up to date in the Rehearsal update prompt.
Rehearsal downloads the official release, verifies its checksum, package identity and
compatibility, then hands it to VS Code's installer. It never forces a reload.
Canonical updates accept only Use Check for updates in the dashboard or Rehearsal: Check for Updates in the Command Palette for an optional release check. The first trusted opening offers informed opt-in: npm/GitHub see ordinary connection information, but receive no project data or installed versions. Metadata-only daily checks run at project opening. Automatic-update opt-ins additionally check daily while the window remains open. You can defer or skip a release, or disable checks with Rehearsal: Configure Update Checks. Checks alone never authorize installation. The update prompt has independent, initially off extension and CLI auto-update checkboxes. Choose Save preferences to remember them, or edit your user settings:
Enable The dashboard's top-right Extension badge always shows the loaded extension version, separately from Core. A confirmed update shows installed → newest; select the badge to check or review updates. Offline or unchecked availability is unknown—not “up to date.” Release results update in place without refreshing the view. What the workbench showsOverview distinguishes a command that is currently running from the database's running/stopped state and the last recorded rehearsal result. A completed run can leave the database running without another command being active. Recorded CLI proof requires the completed primary proof stage; it is historical evidence, not a new check of the current configuration or migrations. Database-only projects offer Verify database and migration review without asking you to configure a browser application. Optional application launch remains available when the project actually configures it. With core 1.0.2, Activity & reports retains bounded migration failure explanations and safe next steps after refresh. Recognized provider evidence can distinguish a syntax error from, for example, existing rows violating a new constraint. Unsupported or ambiguous evidence stays unknown. SQL, row values, connection strings and raw provider details are not included in these diagnostics. When core proves the exact attempted project-local migration input, Open exact migration input opens only the unchanged, reviewed file in VS Code. Changed or dirty files require a fresh review; an attempted input is not a proven SQL origin and no line or column is guessed. Rehearsal never rewrites or retries the migration automatically. Follow the main failure-and-fix tutorial to review a fresh candidate, observe a safe failure, correct it and verify the result. If the tutorial CLI works but the dashboard says Project package link needs repair, npm linked its package outside this repository. Keep the same project and baseline. Install a project-local copy:
Alternatively, install a reviewed tarball/published package, then choose Refresh. A local copy does not track later source edits. Do not reset data, clear editor state or relax the repository boundary to repair a package link. The Environments page consumes Rehearsal core's versioned resource inventory. It shows
only the current project's ownership-proven containers, running/stopped state, nullable
live CPU and memory totals, restart policy, retention intent, Docker totals, and
measurable Colima disk capacity. The
extension never queries Docker directly and never starts the shared engine. Cleanup stays
behind core's exact preview and confirmation.
Core releases advertising It does not implement database behavior, inspect private rows, read credentials, or contact hosted databases. Rehearsal core remains the only migration and safety engine. Passive inspection stays read-only. User-triggered terminal actions preview their exact allowlisted public CLI command before opening an owned integrated terminal. Compatible automatic CLI updates instead require the separate saved opt-in and repeated checks above; migration execution, runtime changes, and cleanup retain explicit editor or core confirmation. A running editor-started action can be cancelled from Activity without signaling an unrelated operation. The structured configuration editor accepts custom local URLs, application/proof commands, lifecycle choices, and baseline retention. It validates bounded values, shows an exact diff, rechecks the source for concurrent edits, and writes only after Apply changes in a readable review tab. The complete diff stays visible without a covering dialog; Cancel makes no changes, and a saved state offers Return to project. Image cleanup and long-running environment review also show their complete details before the existing final destructive confirmation. Complex expression-based fields fail closed and remain available through Open configuration. Finish or dismiss a configuration review before starting another. If the source changes while saving, Rehearsal asks you to review the current file instead of claiming success. Core releases advertising configuration review also expose the validated resource policies and named project profiles. A profile selects the targets shown and an optional local browser address; selecting it never changes the database, skips required migrations, or creates another runtime. Saved profiles are views of configured targets, not historical database copies. Per-environment actions show their exact target before use. Long-running environment review uses observable container start/stop times, not proof of user inactivity. Scheduled policy choices request a later review; they do not install a background cleanup daemon. Activity shows bounded, core-recorded stages and recent outcomes when available. Missing or unsafe evidence is shown as unavailable, not successful. Provider consent, screen-reader acceptance, and application-specific security checks remain separate from these receipts. Live progress updates in place rather than reloading the dashboard, preserving navigation, focus, scroll position and expanded evidence while an operation runs. Live monitoring is bounded to five minutes. A sandbox can stay open longer: when that limit is reached, Rehearsal checks its actual state once instead of treating the time limit as a failed project check. The application is not stopped or reset. During a hands-on session, Overview distinguishes Opening sandbox, Sandbox running and Closing sandbox using core's public phase evidence. Missing phase evidence says Sandbox session open, not ready. Project inspection is on hold until the session closes; the application itself is not paused. Use Overview's local-address field and Open application to visit the URL shown by the owning terminal. A remembered address is labelled as user-entered, not freshly verified; no port is guessed. Opening the browser does not run another command or reset data. If VS Code cannot confirm a terminal's exit, its activity stays Unverified, even after reloading. A different command in that terminal cannot mark Rehearsal complete. Commands reuse the same Rehearsal terminal for each project after its previous command has a confirmed exit. A running sandbox or manually entered foreground command is never interrupted to make room for another action. If you close the terminal, change its working directory, or reopen the project, Rehearsal creates a fresh project-scoped terminal. Without shell integration or a confirmed exit, finish the command and close that terminal before retrying; an idle database lock alone does not prove the terminal is ready. New terminals allow up to five seconds for shell integration, proceeding immediately when it arrives. Diagnostics identify compatibility-mode dispatch and the specific reason reuse is blocked; a finishing project check is not reported as an unknown exit. Markdown and JSON exports retain aggregate counts where supplied. Detailed lists are limited to the first 1,000 readiness checks, 32 runtime targets, and 1,000 baseline generations; an omission notice reports any additional entries. A bounded detail list is not a claim that the omitted checks passed or that additional environments were tested. Export asks you to choose a local file. If project trust, the open dashboard or inspected state changes while that dialog is open, refresh and export again. No report is uploaded. Projects on an older incompatible package get an Update Rehearsal button instead of a cryptic timeout. The extension detects npm, pnpm, Yarn, or Bun, shows the exact update command and affected project files, and runs it only after approval. When the terminal finishes, the project workspace refreshes automatically where shell integration permits. Updates made in another terminal are detected from the project manifest, lockfile, and installed package metadata, then reflected automatically without reloading the VS Code window. When a workspace has not installed a discovery-capable Rehearsal release, the extension
uses a deliberately small bootstrap scan through VS Code's workspace APIs. It reads only
Contributing and local developmentThese steps are for developing the extension, not installing it into your application.
Clone this repository first. The F5 launch configuration expects a sibling
The maintained check also initializes the compiled webview controller in an isolated DOM double. This catches packaging/serialization errors; it is not visual or screen-reader acceptance. Press Use the workspace navigation to move among the seven focused destinations. The primary card always shows the next useful action. Operational buttons preserve the exact candidate digest and open the command in a project-scoped terminal. For fast visual review without launching a second VS Code window, run:
Open To try the packaged extension instead:
The workspace repository must install Licensing and planned editionsThe approved direction is a complete free MIT CLI, a useful free VS Code Starter, and optional paid Pro editor workflows. Starter keeps basic setup, migration-plan review, runtime controls, safety and recovery; Pro adds advanced visual productivity. See the edition boundary and launch gates. Versions distributed with the Starter license include all their editor features indefinitely at no charge for personal or commercial development work. No account, payment card, purchase, trial period or license activation is required. This includes the existing advanced review, configuration, comparison and reporting tools; they are not being removed or put behind a paywall. Future optional Pro features must be separately identified and cannot retroactively restrict a version already granted under the Starter license. No Pro entitlement system, billing flow or paid-feature gate is implemented. Pro terms, pricing and paid publication remain separate decisions. Rehearsal core stays MIT-licensed and fully usable without the extension. Existing accepted-order rights and support remain in effect. Historical VSIX files retain their bundled terms; this source change does not replace their bytes or checksums. Install a reviewed release carrying the Starter license to use that grant. Technical preview status describes stability, not a timed trial. GitHub VSIX installations update automatically only after the separate opt-in above. Every delivery must identify the extension version, compatible core version, and SHA-256. Install a replacement with:
Read the bundled license, privacy statement, and support policy before use. The extension also exposes each document through the Command Palette. It includes no telemetry, advertising, hosted database access, or automatic license activation. Product boundary
Read the architecture decisions, security model, and CLI audit before extending the prototype. |