@calcit/procs 0.13.28 → 0.13.29

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
@@ -16,5 +16,6 @@
16
16
  consolidated even within the normal current-development window.
17
17
 
18
18
  Validation: `yarn compile`, `cargo clippy --all-targets -- -D warnings`,
19
- `cargo test -q`, `yarn check-agent-interface`, and `cr docs check-md` over
20
- every Markdown file with `--entry calcit/test.cirru`.
19
+ `cargo test -q`, `yarn check-agent-interface`,
20
+ `cr docs check-md README.md --entry calcit/test.cirru`, and
21
+ `./scripts/check-docs-md.sh calcit/test.cirru` for the Markdown under `docs/`.
@@ -0,0 +1,11 @@
1
+ # Review follow-ups from recent PRs
2
+
3
+ - Preserved unresolved type-slot occurrences while applying intentional
4
+ Dynamic and JS FFI intents through nested annotations.
5
+ - Corrected the maintenance record's Markdown validation commands and restored
6
+ ascending order for the 0.12.58 and 0.12.59 archive entries.
7
+ - Documented the local `git diff` trade-off of the `.gitattributes` `-diff`
8
+ attribute for generated quality baselines.
9
+
10
+ Validation: `cargo fmt --check`, targeted type-coverage tests, and the required
11
+ repository checks after the follow-up changes.
@@ -0,0 +1,25 @@
1
+ # Unsafe-coerce inventory
2
+
3
+ ## Summary
4
+
5
+ - Extended `calcit analyze weak-types` with the closed `unsafe-coerce` kind and
6
+ the `explicit-unsafe` intent.
7
+ - Every executable assertion now reports its exact `code@...` Snapshot path and
8
+ declared target schema, without classifying it as unresolved Dynamic debt.
9
+ - Bumped the JSON protocol to v4 and added `W_JS_FFI_UNCHECKED_COERCE` so
10
+ tooling can turn the inventory into a runtime-contract test checklist.
11
+ - Kept the existing eight-metric `analyze quality` baseline stable; the new
12
+ inventory is deliberately visible but not budgeted until a versioned baseline
13
+ migration is introduced.
14
+
15
+ ## Validation
16
+
17
+ - `cargo fmt`
18
+ - `cargo clippy -- -D warnings`
19
+ - `cargo test`
20
+ - `yarn compile`
21
+ - `yarn check-agent-interface` (13/13 scenarios)
22
+ - `yarn check-all`
23
+ - New debug CLI against `../respo-calcit-workflow/calcit.cirru` with
24
+ `analyze weak-types --only unsafe-coerce --format json --summary-only`
25
+ (4 inventory hits, JSON protocol v4)
@@ -0,0 +1,27 @@
1
+ # Unsafe-coerce boundary evidence
2
+
3
+ ## Summary
4
+
5
+ - Extended the `unsafe-coerce` inventory with an explicit static `evidence`
6
+ object: input source form, target schema, declared `:js-ffi` capability, and
7
+ `js-ffi.raw.*` adapter-namespace convention.
8
+ - Kept the evidence honest: it describes Snapshot source only and never claims
9
+ to have observed or validated a JavaScript runtime value.
10
+ - Bumped `analyze.weak-types` JSON protocol to v5 and added tests for raw JS,
11
+ host-member, ordinary-expression, and adapter namespace classification.
12
+ - Applied #378 review feedback before merging this follow-up: quoted and
13
+ quasiquoted descendants no longer create unsafe inventory debt, while `~` /
14
+ `~@` expressions remain executable; unsafe diagnostics now describe generic
15
+ runtime values rather than assuming every assertion is JavaScript-backed.
16
+
17
+ ## Validation
18
+
19
+ - `cargo fmt`
20
+ - `cargo clippy -- -D warnings`
21
+ - `cargo test`
22
+ - `yarn compile`
23
+ - `yarn check-agent-interface` (13/13 scenarios)
24
+ - `yarn check-all`
25
+ - New debug CLI against `../respo-calcit-workflow/calcit.cirru`; it surfaced
26
+ four assertions and accurately identifies two definitions without a declared
27
+ `:js-ffi` capability.
@@ -0,0 +1,13 @@
1
+ # Quality baseline v2: explicit unsafe boundary budget
2
+
3
+ - `analyze quality` now collects explicit `unsafe-coerce` occurrences as the
4
+ independent `unsafeCoerce` metric instead of folding them into Dynamic debt.
5
+ - Newly written native baseline files use schema version 2 and preserve the
6
+ metric per definition, so an adapter moved to another definition cannot hide
7
+ a regression.
8
+ - Native v1 and legacy flat eight-metric baselines remain readable and retain
9
+ their original enforcement. Maintainers must review and regenerate a v2
10
+ baseline before the new metric becomes a gate.
11
+ - Static quality only counts visible assertions. It does not claim that a
12
+ Node/browser runtime contract test has executed; those remain an explicit Q3
13
+ requirement.
@@ -0,0 +1,7 @@
1
+ # Quality agent protocol v2 assertion
2
+
3
+ - The Agent CLI smoke check now expects `analyze.quality` protocol v2 and
4
+ asserts that the newly versioned `unsafeCoerce` metric is present.
5
+ - This keeps the development-process check aligned with the public JSON
6
+ contract, preventing a future accidental downgrade or silent omission of the
7
+ new boundary budget.
@@ -0,0 +1,9 @@
1
+ # Versioned release asset manifest
2
+
3
+ - The release workflow now publishes `calcit-release-manifest.json` alongside
4
+ `calcit`, `caps`, and `cr-wasm`.
5
+ - Manifest schema v1 records release version, filename, byte size, and SHA-256
6
+ for each asset. Setup tooling can verify a downloaded binary before adding it
7
+ to `PATH`, without trusting a successful HTTP response alone.
8
+ - The generator uses Node standard-library APIs and has a focused fixture test
9
+ so the release file remains deterministic and machine-readable.
@@ -0,0 +1,10 @@
1
+ # Honest v1 quality-baseline reporting
2
+
3
+ - Native quality baseline v1 intentionally lacks the later `unsafeCoerce`
4
+ budget. It still enforces its original eight metrics.
5
+ - The report now labels this mode `native-baseline-v1` and normalizes the
6
+ unenforced metric to the current count, preventing a positive delta from
7
+ being mistaken for a rejected regression.
8
+ - This supports staged ecosystem upgrades: old released CLIs can keep their
9
+ accepted baseline while a reviewed v2 migration starts enforcing explicit
10
+ host-boundary inventory.
@@ -0,0 +1,5 @@
1
+ # Quality metric name comparison
2
+
3
+ The static-quality gate compares each metric to its limit by its stable wire name,
4
+ rather than relying on the parallel ordering of two metric arrays. This keeps new
5
+ or reordered metrics from silently being compared with a different budget.
@@ -0,0 +1,6 @@
1
+ # Release manifest review follow-up
2
+
3
+ The release-manifest helper now emits a single-line usage error instead of a
4
+ stack trace. The publishing workflow passes the release tag through an
5
+ environment variable, preventing release metadata from being interpolated into
6
+ shell source.
@@ -0,0 +1,5 @@
1
+ # Quality baseline migration wording
2
+
3
+ The upgrade guide now states that `unsafe-coerce` occurrence comparison applies
4
+ to native v2 or regenerated quality baselines only. Existing native v1 and
5
+ flat baselines retain their eight-metric compatibility behavior.
@@ -0,0 +1,5 @@
1
+ # Release 0.13.29
2
+
3
+ This release ships the static-quality unsafe-boundary gate, JS FFI contract
4
+ workflow improvements, and the release asset manifest consumed by
5
+ setup-calcit 1.3.0. Cargo and npm package versions advance together.
@@ -26,13 +26,13 @@ Git history.
26
26
  | 0.12.55 | Semantic snapshot entry descriptions and canonical symbol storage for entry functions. |
27
27
  | 0.12.56 | Routine version bump after snapshot/entry work. |
28
28
  | 0.12.57 | CLI mutation, atomic staging, test deduplication (PR #284) plus Windows staged-file synchronization fixes. |
29
+ | 0.12.58 | Receiver-first method inference and nominal trait identity fixes. |
30
+ | 0.12.59 | Top-level nominal value schema fix. |
29
31
  | 0.13.0 | Concentrated breaking-change baseline for the Option/Result/Unit/JsNullish public contracts. |
30
32
  | 0.13.1 | Fixed recursive expansion of self-referential nominal struct type annotations. |
31
33
  | 0.13.2 | Struct/enum data model cleanup (PR #301), direct required Struct field access, symbol-based nominal formatting. |
32
34
  | 0.13.3 | Struct/Enum terminology migration, deprecated API analysis, cross-backend canonical EDN formatting. |
33
35
  | 0.13.4 | Typed host FFI (external-object traits) merged and released. |
34
- | 0.12.58 | Receiver-first method inference and nominal trait identity fixes. |
35
- | 0.12.59 | Top-level nominal value schema fix. |
36
36
  | 0.13.5 | Typed `js-get` / `js-set` field access plus named-type preservation. |
37
37
  | 0.13.6 | Opt-in raw-JS-FFI warning and readable low-cost JS emission. |
38
38
  | 0.13.7 | Definition-attached core tests and safer, less noisy `cr` edits. |
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.13.28",
3
+ "version": "0.13.29",
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.28",
3
+ "version": "0.13.29",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^25.7.0",