@rehearsal-db/core 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/COMPATIBILITY.md +15 -6
  3. package/README.md +1 -1
  4. package/dist/package.json +2 -1
  5. package/dist/src/cli/arguments.d.mts +1 -0
  6. package/dist/src/cli/arguments.mjs +4 -0
  7. package/dist/src/cli/basic_command_handlers.mjs +2 -0
  8. package/dist/src/cli/cli_commands.mjs +2 -0
  9. package/dist/src/cli/project_commands.d.mts +8 -0
  10. package/dist/src/cli/runtime_commands.d.mts +2 -19
  11. package/dist/src/cli/runtime_commands.mjs +3 -90
  12. package/dist/src/cli/runtime_stack_runner.d.mts +41 -0
  13. package/dist/src/cli/runtime_stack_runner.mjs +104 -0
  14. package/dist/src/cli/runtime_workload_admission.d.mts +8 -0
  15. package/dist/src/cli/runtime_workload_admission.mjs +22 -0
  16. package/dist/src/cli/source_commands.d.mts +8 -0
  17. package/dist/src/cli/workload_command_handlers.d.mts +2 -0
  18. package/dist/src/cli/workload_command_handlers.mjs +38 -0
  19. package/dist/src/project/configuration_contract.d.mts +5 -0
  20. package/dist/src/project/configuration_normalization.d.mts +4 -0
  21. package/dist/src/project/configuration_resolution.d.mts +4 -0
  22. package/dist/src/project/configuration_resource_policy.d.mts +4 -0
  23. package/dist/src/project/configuration_resource_policy.mjs +20 -1
  24. package/dist/src/project/configuration_schema.mjs +1 -0
  25. package/dist/src/runtime/workload_queue.d.mts +39 -0
  26. package/dist/src/runtime/workload_queue.mjs +211 -0
  27. package/dist/src/runtime/workload_queue_location.d.mts +1 -0
  28. package/dist/src/runtime/workload_queue_location.mjs +43 -0
  29. package/dist/src/runtime/workload_queue_store.d.mts +27 -0
  30. package/dist/src/runtime/workload_queue_store.mjs +182 -0
  31. package/dist/src/shared/cancellation.mjs +1 -0
  32. package/docs/architecture.md +9 -0
  33. package/docs/commands.md +26 -6
  34. package/docs/configuration.md +33 -1
  35. package/docs/getting-started.md +1 -1
  36. package/docs/releasing.md +4 -0
  37. package/docs/roadmap.md +8 -6
  38. package/docs/stability.md +4 -4
  39. package/docs/updating.md +2 -2
  40. package/docs/vscode.md +1 -1
  41. package/package.json +2 -1
@@ -386,7 +386,8 @@ inspection remain explicit command choices. See [CLI commands](commands.md).
386
386
 
387
387
  ### Resource review policies
388
388
 
389
- `resources` applies to the configured project topology, not the shared Docker engine:
389
+ Resource review limits apply to the configured project topology, not the shared Docker
390
+ engine. The optional workload queue instead coordinates participating local projects:
390
391
 
391
392
  ```ts
392
393
  resources: {
@@ -394,6 +395,7 @@ resources: {
394
395
  retainedEnvironmentCount: 2,
395
396
  maximumBytes: null,
396
397
  cleanupSchedule: "daily-preview",
398
+ workloadQueue: { enabled: true, waitTimeoutSeconds: 30 },
397
399
  },
398
400
  ```
399
401
 
@@ -410,6 +412,36 @@ resources: {
410
412
  shown on the next resource inspection. There is no daemon, operating-system scheduler,
411
413
  or automatic deletion. An approved cleanup records an owner-only, project/policy-bound
412
414
  review time; ordinary read-only inspection writes nothing.
415
+ - `workloadQueue` is optional and off when omitted. With `enabled: true`, participating
416
+ Rehearsal clients serialize their `start`, `reset`, `run` and `migrate` runtime phases
417
+ across projects for the same local OS user, boot and process namespace. Waiting is
418
+ bounded to `waitTimeoutSeconds` (integer 0–300; default 30); zero refuses immediately
419
+ when busy. Ctrl+C cancels the waiting request without interrupting its holder.
420
+ Stop, discard, inspection and cleanup remain available. `open` releases admission
421
+ after startup, before its interactive session; application proofs run outside this
422
+ first lifecycle-only queue. This does **not** measure available RAM, stop existing
423
+ runtimes, limit other tools, or promise an entire Docker/VM memory budget. All projects
424
+ that should cooperate must opt in. Older clients and different OS users/namespaces do
425
+ not participate. Local filesystems with coherent atomic file operations are required;
426
+ this is not a network-filesystem or distributed scheduler.
427
+ Configure it in the source configuration for now; the existing editor field-metadata
428
+ contract is unchanged so older supported Starter clients keep working.
429
+
430
+ Run `rehearsal workloads` (or `--json`) without Docker to inspect this queue. Waiting
431
+ requests whose processes have died can be removed automatically because guarded work
432
+ never began. A dead **holder** remains blocking: its child may still be running.
433
+ After checking its owned commands and descendants, use the exact digest shown by
434
+ inspection with `rehearsal workloads recover --confirm-workloads=<digest>`. Recovery
435
+ removes only those reviewed dead-holder metadata records. It never kills a process,
436
+ stops a container, removes data or treats age alone as permission to steal admission.
437
+ Live owners cannot be recovered, even after a wait expires. Malformed or inaccessible
438
+ state refuses admission; it is not silently deleted.
439
+
440
+ Queue state is private to the local OS user under `~/Library/Application Support/Rehearsal`
441
+ on macOS or `~/.local/state/rehearsal` on Linux/WSL, independent of `TMPDIR`. Advanced
442
+ launchers can set `REHEARSAL_USER_STATE_DIRECTORY` to one absolute local directory;
443
+ every cooperating client must use the same value. Do not delete or move active queue
444
+ state. Boot/namespace-separated records are retained, not automatically pruned.
413
445
 
414
446
  Temporary files and application processes created by an operation are cleaned up by
415
447
  that operation's existing ownership boundary. These policies do not turn a persistent
@@ -15,7 +15,7 @@ They are readable helpers, not native executables or bundled Node/Docker install
15
15
  Existing Node.js 22, 24 or 26 is required. The default only checks an existing project;
16
16
  installation needs an explicit option and does not start a database. Review the
17
17
  [shared behavior and release availability](https://github.com/Ddupasquier/rehearsal-db/blob/main/installers/README.md)
18
- before choosing an install option. An exact core 1.1.0 install requires that version to
18
+ before choosing an install option. The helper's exact target requires that version to
19
19
  be published; a checked-in helper is not proof of publication.
20
20
 
21
21
  ### Windows: use a WSL 2 Linux workspace
package/docs/releasing.md CHANGED
@@ -133,6 +133,10 @@ release-source migration.
133
133
 
134
134
  1. Start from protected `main` on a dedicated ticketed release branch.
135
135
  2. Verify the exact version, changelog, compatibility notes, and packed file list.
136
+ Reconcile the core, VS Code extension and Test Lab READMEs and affected guides with
137
+ their actual published versions and contracts. Keep candidate availability explicit,
138
+ link to the owning installation/update guide instead of duplicating version lists,
139
+ and retain dated historical evidence without presenting it as current acceptance.
136
140
  3. Run `npm run release:verify`. It performs the package checks and every
137
141
  installed-consumer scenario against one tarball, then records the exact package
138
142
  version, SHA-256, environment, commands, timings, and results in
package/docs/roadmap.md CHANGED
@@ -1,11 +1,13 @@
1
1
  # Next steps
2
2
 
3
- Rehearsal core **1.1.0 is available on
4
- [npm](https://www.npmjs.com/package/@rehearsal-db/core)** for guided Supabase and
5
- ordinary PostgreSQL migration rehearsals. The [free VS Code Starter 0.1.23 preview](vscode.md)
6
- adds a visual workbench and is distributed through Marketplace and reviewed GitHub
7
- VSIX releases. Neither requires a purchase or account. Core is MIT-licensed; all
8
- features included in Starter are free indefinitely for personal or commercial development.
3
+ Rehearsal core is available on
4
+ [npm](https://www.npmjs.com/package/@rehearsal-db/core) for guided Supabase and
5
+ ordinary PostgreSQL migration rehearsals. The [free VS Code Starter preview](vscode.md)
6
+ adds a visual workbench through Marketplace and reviewed GitHub VSIX releases.
7
+ [Releases and updates](updating.md) explains how to find and install the published
8
+ versions; a roadmap or source version is not a publication claim. Neither requires
9
+ a purchase or account. Core is MIT-licensed; all features included in Starter are
10
+ free indefinitely for personal or commercial development.
9
11
 
10
12
  Stable core, the editor preview and a future paid Pro offer have separate completion
11
13
  boundaries. A downloadable preview does not imply that every native accessibility,
package/docs/stability.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # Stability and release verification
2
2
 
3
- Rehearsal core **1.1.0 is published** on
4
- [npm](https://www.npmjs.com/package/@rehearsal-db/core). This page defines its
3
+ Stable Rehearsal core releases are available on
4
+ [npm](https://www.npmjs.com/package/@rehearsal-db/core). This page defines the
5
5
  compatibility promise and the verification policy for releases; it is not an
6
6
  unfinished launch checklist. Stable core does not require every planned database,
7
7
  editor interface, or paid feature.
8
8
 
9
9
  The compatibility promise began with **1.0.0**. The separate
10
- [VS Code Starter 0.1.23 preview](vscode.md) has its own editor acceptance and does
10
+ [VS Code Starter preview](vscode.md) has its own editor acceptance and does
11
11
  not turn a core release into a completed accessibility or provider walkthrough.
12
12
 
13
13
  ## What becomes a compatibility promise
@@ -98,7 +98,7 @@ baseline. Automatic compatible updates do not cross the 0.x-to-1.x version bound
98
98
  review the changelog and deliberately select the stable version:
99
99
 
100
100
  ```bash
101
- npm install --save-dev --save-exact @rehearsal-db/core@1.1.0
101
+ npm install --save-dev --save-exact @rehearsal-db/core@1.3.0
102
102
  npx --no-install rehearsal --version
103
103
  npx --no-install rehearsal doctor
104
104
  ```
package/docs/updating.md CHANGED
@@ -38,11 +38,11 @@ instead of installing both extension identities together.
38
38
 
39
39
  Finish active Rehearsal commands first. Read the [release notes](https://github.com/Ddupasquier/rehearsal-db/releases),
40
40
  then use your project's existing package manager and dependency location. For an npm
41
- project that keeps Rehearsal in development dependencies, update to the reviewed 1.2.0
41
+ project that keeps Rehearsal in development dependencies, update to the reviewed 1.3.0
42
42
  release only after it appears in the official registry:
43
43
 
44
44
  ```bash
45
- npm install --save-dev --save-exact @rehearsal-db/core@1.2.0
45
+ npm install --save-dev --save-exact @rehearsal-db/core@1.3.0
46
46
  npx --no-install rehearsal --version
47
47
  ```
48
48
 
package/docs/vscode.md CHANGED
@@ -70,7 +70,7 @@ real WSL core fixtures do not certify a native Remote-WSL editor walkthrough.
70
70
  setup, source access, migration execution and cleanup keep their own confirmations.
71
71
 
72
72
  Core and the extension have independent version numbers. This guide targets core
73
- **1.2.0** and Starter **0.1.24**, only once each is published. See [Updates](updating.md)
73
+ **1.3.0** and Starter **0.1.24**, only once each is published. See [Updates](updating.md)
74
74
  when moving an existing installation forward.
75
75
  The extension's minimum core is `0.1.0-rc.4`. A project that is not ready should show
76
76
  setup guidance, not require you to build the extension. Opening the dashboard does not
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rehearsal-db/core",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "private": false,
5
5
  "description": "Catch PostgreSQL and Supabase migrations that pass on empty databases but fail on real data—before deploy.",
6
6
  "repository": {
@@ -26,6 +26,7 @@
26
26
  "projectDiscovery": 1,
27
27
  "resourceInventory": 1,
28
28
  "resourceManager": 1,
29
+ "workloadQueue": 1,
29
30
  "migrationReview": 1,
30
31
  "migrationInsights": 1,
31
32
  "migrationImpact": 1,