@calcit/procs 0.13.38 → 0.13.40

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.
Binary file
package/README.md CHANGED
@@ -170,6 +170,7 @@ caps tree
170
170
  caps why calcit-lang/memof
171
171
  caps status
172
172
  caps verify
173
+ caps verify --toolchain # after yarn install, for JS projects
173
174
  ```
174
175
 
175
176
  ### Development
@@ -0,0 +1,6 @@
1
+ # `caps verify --toolchain` runtime version guard
2
+
3
+ - `deps.cirru :calcit-version` is the project-selected Calcit release. A regular `caps verify` validates module-store integrity; `caps verify --toolchain` additionally makes this version a CI gate.
4
+ - For JavaScript projects the guard requires the running `caps` release, `package.json`'s exact `@calcit/procs` version, and the version Yarn resolves through `yarn node` to match exactly. This supports both Yarn PnP and node-modules installations.
5
+ - `caps upgrade --all` now requests `@calcit/procs@<current-calcit-version>` explicitly, so its manifest and lockfile remain tied to the Calcit release rather than whichever npm version happens to be latest.
6
+ - Place `caps verify --toolchain` after `caps --ci && yarn install --immutable` in JS CI. Native-only projects without `package.json` remain supported and verify the Calcit/deps pair only.
@@ -0,0 +1,6 @@
1
+ # Follow up: exact JS runtime toolchain guard
2
+
3
+ - The CI guard now treats a `package.json` without `@calcit/procs` as an error. The no-`package.json` case remains the explicit native-project escape hatch.
4
+ - Both `caps upgrade --all` and `caps verify --toolchain` use exact `@calcit/procs` versions. A SemVer caret could otherwise resolve a newer patch and make the upgrade command violate its own gate.
5
+ - `caps upgrade --all <path/to/deps.cirru>` now runs Yarn in the directory containing that dependency file, rather than the caller's working directory.
6
+ - Toolchain helper tests cover absent, exact, range, and installed-version cases, plus deriving the project root from a non-default `deps.cirru` path.
@@ -0,0 +1,5 @@
1
+ # Release 0.13.39
2
+
3
+ - Release the merged `caps verify --toolchain` guard.
4
+ - The release keeps `deps.cirru :calcit-version`, the installed Calcit CLI, the exact `@calcit/procs` manifest dependency, and Yarn's resolved runtime version aligned in JavaScript CI.
5
+ - `caps upgrade --all` now syncs the exact runtime version in the project directory selected by its `deps.cirru` input.
@@ -0,0 +1,23 @@
1
+ # option:fold shared callback return type
2
+
3
+ - Higher-order callback matching must reuse the enclosing generic binding map.
4
+ A fresh map per callback makes repeated variables such as `option:fold`'s
5
+ return `U` independent and silently accepts incompatible branch results.
6
+ - Unhinted zero-argument thunks may safely retain a concrete return type from
7
+ their final expression. This supplies the none-branch binding for `U` while
8
+ keeping unhinted callbacks with parameters dynamic, avoiding retroactive
9
+ tightening of existing higher-order call sites.
10
+ - The inferred thunk annotation must preserve `SchemaKind::Macro` for
11
+ `defmacro` forms, matching the explicit-hint path; a dedicated regression
12
+ test prevents zero-argument macros from being exposed as ordinary functions.
13
+ - Callback signature matching stages generic bindings and commits them only on
14
+ success, so a rejected nested callback cannot constrain a later argument.
15
+ `option:fold` additionally recovers a concrete return type for unhinted
16
+ callback bodies during its own argument check, including parameterized
17
+ callbacks, without globally tightening unrelated higher-order calls.
18
+ - Preprocessing regressions cover direct folds, parameterized callbacks, and a
19
+ user macro expanding to `option:fold`; empty unhinted functions remain
20
+ dynamic rather than treating their parameter list as a return value.
21
+ - Regression coverage includes the shared-binding matcher and literal thunk
22
+ inference. The CLI reproduction now fails during preprocessing when a
23
+ `String` none branch is combined with a numeric Option payload and `identity`.
@@ -0,0 +1,4 @@
1
+ # Release 0.13.40
2
+
3
+ - Release the merged `option:fold` callback return-type enforcement from PR #397.
4
+ - Keep the Cargo crate and npm package versions aligned, then refresh the workspace lockfile before tagging from `main`.
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.13.38",
3
+ "version": "0.13.40",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^25.7.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.13.38",
3
+ "version": "0.13.40",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^25.7.0",