@calcit/procs 0.13.19 → 0.13.21
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.
- package/.yarn/install-state.gz +0 -0
- package/RFCs/08-18-calcit-typed-js-ffi-boundary-rfc.md +1004 -0
- package/RFCs/README.md +2 -1
- package/build.rs +24 -0
- package/editing-history/202608131340-agent-dependency-intent-audit.md +21 -0
- package/editing-history/202608171230-update-release-dependencies.md +4 -0
- package/editing-history/202608171409-module-cache-review-followup.md +5 -0
- package/editing-history/202608171427-module-cache-review-followup-locking.md +5 -0
- package/editing-history/202608171438-module-docs-home-lock.md +4 -0
- package/editing-history/202608171611-dependency-audit-review.md +4 -0
- package/editing-history/202608181000-release-0-13-20.md +5 -0
- package/editing-history/202608181930-release-0-13-21.md +5 -0
- package/lib/package.json +1 -1
- package/package.json +1 -1
- /package/{history → editing-history}/202608021153-runtime-traits.md +0 -0
- /package/{history → editing-history}/202608021227-format-markdown-cirru.md +0 -0
- /package/{history → editing-history}/202608021239-review-trait-followups.md +0 -0
- /package/{history → editing-history}/202608021251-defimpl-symbol-traits.md +0 -0
- /package/{history → editing-history}/202608021255-doc-type-symbols.md +0 -0
- /package/{history → editing-history}/202608021322-postfix-enum-methods.md +0 -0
- /package/{history → editing-history}/202608021327-postfix-unwrap-examples.md +0 -0
- /package/{history → editing-history}/202608021507-receiver-first-static-inference.md +0 -0
- /package/{history → editing-history}/202608021550-review-type-correctness.md +0 -0
- /package/{history → editing-history}/202608021730-release-0.12.58.md +0 -0
- /package/{history → editing-history}/202608021922-top-level-nominal-schema.md +0 -0
- /package/{history → editing-history}/202608021928-release-0.12.59.md +0 -0
- /package/{history → editing-history}/202608040125-js-runtime-impl-identity.md +0 -0
- /package/{history → editing-history}/202608040241-strict-cirru-edn-decoding.md +0 -0
- /package/{history → editing-history}/202608040954-strict-edn-review-followups.md +0 -0
- /package/{history → editing-history}/202608041206-harden-js-impl-brand-check.md +0 -0
- /package/{history → editing-history}/202608041223-cover-inherited-js-impl-brand.md +0 -0
- /package/{history → editing-history}/202608041911-typed-data-shape-patch.md +0 -0
- /package/{history → editing-history}/202608042252-reject-decoded-edn-collisions.md +0 -0
- /package/{history → editing-history}/202608042338-strict-edn-js-collision-parity.md +0 -0
- /package/{history → editing-history}/202608042344-isolate-strict-edn-dependency-test.md +0 -0
- /package/{history → editing-history}/202608061335-recursive-nominal-display.md +0 -0
- /package/{history → editing-history}/202608061433-required-record-field-access.md +0 -0
- /package/{history → editing-history}/202608062004-wasm-ffi-declarations.md +0 -0
- /package/{history → editing-history}/202608071500-wasm-ffi-review-fixes.md +0 -0
- /package/{history → editing-history}/202608092318-enum-edn-option-diagnostics.md +0 -0
- /package/{history → editing-history}/202608100022-required-struct-field-access.md +0 -0
- /package/{history → editing-history}/202608100102-docs-field-access-ci.md +0 -0
- /package/{history → editing-history}/202608100145-cirru-edn-doc-fences.md +0 -0
- /package/{history → editing-history}/202608100339-struct-path-boundaries.md +0 -0
- /package/{history → editing-history}/202608100348-caps-branch-checkout.md +0 -0
- /package/{history → editing-history}/202608100349-caps-remote-branch-reset.md +0 -0
- /package/{history → editing-history}/202608100959-struct-path-review-followups.md +0 -0
- /package/{history → editing-history}/202608101042-release-0.13.8.md +0 -0
- /package/{history → editing-history}/202608101101-release-pr-workflow.md +0 -0
- /package/{history → editing-history}/202608101102-release-doc-tracked-path.md +0 -0
- /package/{history → editing-history}/202608110054-small-edit-advice.md +0 -0
- /package/{history → editing-history}/202608110125-review-optional-list-first.md +0 -0
- /package/{history → editing-history}/202608110133-review-core-call-sites-and-thresholds.md +0 -0
- /package/{history → editing-history}/202608110140-release-0.13.9.md +0 -0
- /package/{history → editing-history}/202608111550-trailing-option-parameters.md +0 -0
- /package/{history → editing-history}/202608111610-review-core-option-identity.md +0 -0
- /package/{history → editing-history}/202608111624-js-string-replace-termination.md +0 -0
- /package/{history → editing-history}/202608111650-release-0.13.11.md +0 -0
- /package/{202608121618-type-guidance.md → editing-history/202608121618-type-guidance.md} +0 -0
- /package/{202608121730-struct-option-constructor.md → editing-history/202608121730-struct-option-constructor.md} +0 -0
- /package/{202608121900-release-0.13.12.md → editing-history/202608121900-release-0.13.12.md} +0 -0
- /package/{history → editing-history}/202608131228-scope-development-dependencies.md +0 -0
- /package/{history → editing-history}/202608131258-audit-legacy-upgrade-playbook.md +0 -0
- /package/{history → editing-history}/202608131607-runtime-map-decoder.md +0 -0
- /package/{history → editing-history}/202608131625-core-decode-map-as-metadata.md +0 -0
- /package/{history → editing-history}/202608131650-release-0.13.15.md +0 -0
package/RFCs/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# RFC 整理索引
|
|
2
2
|
|
|
3
|
-
更新时间:2026-08-
|
|
3
|
+
更新时间:2026-08-18
|
|
4
4
|
|
|
5
5
|
## 目录原则
|
|
6
6
|
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
| `08-04-strict-cirru-edn-decoding-rfc.md` | Implemented | Phase 1:`parse-cirru-edn-as` 严格类型化反序列化、无 Dynamic 的 `EdnDecoderGraph`、名义身份与 Native/JS 一致性。 |
|
|
45
45
|
| `08-05-systematic-nil-reduction-rfc.md` | Partial | 类型驱动减少 nil:先拆分可省略参数与 nullable 值,再迁移至 Option/Result 并逐步收紧 typed code。 |
|
|
46
46
|
| `08-08-cross-backend-host-ffi-contracts-rfc.md` | Draft | 统一 JS/native/WASM/WASI 的逻辑 FFI 契约与诊断,ABI transport 保持 backend-specific;首个完整 shape consumer 为 JS/DOM。 |
|
|
47
|
+
| `08-18-calcit-typed-js-ffi-boundary-rfc.md` | Draft | 在现有 Struct/Enum/Fn/trait 上补齐 JS capability gate 与 target validation;FFI metadata 不进入普通 trait 匹配和泛型推断。 |
|
|
47
48
|
|
|
48
49
|
## 已执行的清理
|
|
49
50
|
|
package/build.rs
CHANGED
|
@@ -57,6 +57,10 @@ pub struct SnapshotEntry {
|
|
|
57
57
|
pub modules: Vec<String>,
|
|
58
58
|
#[serde(default, rename = "type-slots")]
|
|
59
59
|
pub type_slots: HashMap<String, String>,
|
|
60
|
+
#[serde(default, rename = "feature-policy")]
|
|
61
|
+
pub feature_policy: HashMap<String, String>,
|
|
62
|
+
#[serde(default)]
|
|
63
|
+
pub target: Option<String>,
|
|
60
64
|
}
|
|
61
65
|
|
|
62
66
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
|
@@ -139,9 +143,27 @@ fn parse_snapshot_entry(data: Edn) -> Result<SnapshotEntry, String> {
|
|
|
139
143
|
description: from_edn(map.get_or_nil("description")).map_err(|e| format!("entry `:description`: {e}"))?,
|
|
140
144
|
modules: from_edn(map.get_or_nil("modules")).map_err(|e| format!("entry `:modules`: {e}"))?,
|
|
141
145
|
type_slots: from_edn(map.get_or_nil("type-slots")).map_err(|e| format!("entry `:type-slots`: {e}"))?,
|
|
146
|
+
feature_policy: match map.get_or_nil("feature-policy") {
|
|
147
|
+
Edn::Nil => HashMap::new(),
|
|
148
|
+
value => parse_feature_policy(value)?,
|
|
149
|
+
},
|
|
150
|
+
target: match map.get_or_nil("target") {
|
|
151
|
+
Edn::Nil => None,
|
|
152
|
+
value => Some(from_edn(value).map_err(|e| format!("entry `:target`: {e}"))?),
|
|
153
|
+
},
|
|
142
154
|
})
|
|
143
155
|
}
|
|
144
156
|
|
|
157
|
+
fn parse_feature_policy(data: Edn) -> Result<HashMap<String, String>, String> {
|
|
158
|
+
let map = data.view_map().map_err(|e| format!("entry `:feature-policy` must be a map: {e}"))?;
|
|
159
|
+
let text = |value: &Edn| match value {
|
|
160
|
+
Edn::Tag(tag) => Ok(tag.ref_str().to_owned()),
|
|
161
|
+
Edn::Str(value) | Edn::Symbol(value) => Ok(value.to_string().trim_start_matches(':').to_owned()),
|
|
162
|
+
other => Err(format!("entry `:feature-policy` expects tag/string/symbol values, got {other:?}")),
|
|
163
|
+
};
|
|
164
|
+
map.0.iter().map(|(key, value)| Ok((text(key)?, text(value)?))).collect()
|
|
165
|
+
}
|
|
166
|
+
|
|
145
167
|
fn parse_entries(data: Edn) -> Result<HashMap<String, SnapshotEntry>, String> {
|
|
146
168
|
let map = data.view_map().map_err(|e| format!("entries must be a map: {e}"))?;
|
|
147
169
|
let mut entries = HashMap::with_capacity(map.0.len());
|
|
@@ -576,6 +598,8 @@ fn main() {
|
|
|
576
598
|
description: String::new(),
|
|
577
599
|
modules: configs.modules.clone(),
|
|
578
600
|
type_slots: configs.type_slots.clone(),
|
|
601
|
+
feature_policy: HashMap::new(),
|
|
602
|
+
target: None,
|
|
579
603
|
},
|
|
580
604
|
);
|
|
581
605
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Make dependency-boundary audits discoverable to agents
|
|
2
|
+
|
|
3
|
+
## Knowledge points
|
|
4
|
+
|
|
5
|
+
- `:dependencies`, `:dev-dependencies`, configured entry modules, and statically reachable source paths
|
|
6
|
+
answer different questions. An installed module must not be classified as runtime-only from its presence
|
|
7
|
+
under `.calcit/modules/`.
|
|
8
|
+
- Inspect root declaration intent in `deps.cirru`; use `caps tree` and `caps why <owner/repo>` to explain
|
|
9
|
+
the resolved recursive graph. The current display combines both root groups, so it cannot be the
|
|
10
|
+
authority for runtime versus development declaration intent.
|
|
11
|
+
- Use `cr config modules [--entry <name>]` to inspect each selected entry's module configuration, then
|
|
12
|
+
run `cr --check-only` for default and every release/CI entry. Named entries do not inherit default
|
|
13
|
+
modules.
|
|
14
|
+
- `docs check-md` defaults to modules from the default entry. Documentation-only dependencies require
|
|
15
|
+
appropriate explicit module paths through repeatable `--dep`; these checks, like entry preprocessing,
|
|
16
|
+
are static evidence and do not prove dynamic loading or external consumer use.
|
|
17
|
+
|
|
18
|
+
## Validation
|
|
19
|
+
|
|
20
|
+
- `cr docs check-md docs/run/load-deps.md --entry calcit/test.cirru --failures-only`
|
|
21
|
+
- `cr docs check-md docs/CalcitAgent.md --entry calcit/test.cirru --failures-only`
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Module cache review follow-up
|
|
2
|
+
|
|
3
|
+
- Added a shared inter-process metadata lock for cache revision metadata updates and cleanup scans, preventing concurrent `caps` processes from losing the highest observed SemVer reference.
|
|
4
|
+
- Made project-view installation transactional across module links and `caps-state.cirru`; registration failures now restore the previous view and state before returning an error.
|
|
5
|
+
- Added concurrency and rollback regression tests, and routed module documentation tests through project-root-aware resolver helpers so the production path is covered.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Module cache locking follow-up
|
|
2
|
+
|
|
3
|
+
- Replaced removable lock files with OS-managed `fs4` locks, so ownership is released when the handle or process exits on every supported platform.
|
|
4
|
+
- Held the cache lock across revision installation and metadata publication, and added a project-scoped lock spanning module view activation, state replacement, registration, rollback, and cleanup.
|
|
5
|
+
- Isolated the documentation fallback regression test against the actual `$HOME/.config/calcit/modules` layout without leaking the test environment.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# 2026-08-17 14:38 — Serialize documentation HOME access
|
|
2
|
+
|
|
3
|
+
- Shared the documentation test HOME mutex between `TestHome` and tests that read the guidebook through the process environment.
|
|
4
|
+
- Guarded `collect_docs_for_query_uses_guidebook_without_module` so it cannot race with tests that temporarily replace `HOME`.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
# Address dependency audit documentation review
|
|
2
|
+
|
|
3
|
+
- Clarified that `docs check-md --entry` takes a snapshot filename, unlike named-entry selection in `config modules` and top-level `--check-only`.
|
|
4
|
+
- Recorded Markdown validation for both changed dependency-audit documents.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Release 0.13.20
|
|
2
|
+
|
|
3
|
+
- Publish the typed JavaScript FFI capability boundary and browser/Node target validation from PR #367.
|
|
4
|
+
- Reorganize and expand the JavaScript FFI documentation, including adapter design, diagnostics, and release checks.
|
|
5
|
+
- Keep Cargo and npm package versions synchronized at `0.13.20` for the direct PR-branch release.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Release 0.13.21
|
|
2
|
+
|
|
3
|
+
- Publish the typed JavaScript FFI boundary and the related struct/enum type-resolution fixes merged from PR #367.
|
|
4
|
+
- Improve migration diagnostics for projects moving their version field to `deps.cirru`.
|
|
5
|
+
- Keep Cargo and npm package versions synchronized at `0.13.21`.
|
package/lib/package.json
CHANGED
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{202608121900-release-0.13.12.md → editing-history/202608121900-release-0.13.12.md}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|