@calcit/procs 0.13.27 → 0.13.28

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 (87) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/README.md +34 -34
  3. package/RFCs/02-04-runtime-traits-plan.md +1 -1
  4. package/RFCs/02-17-register-platform-api-rfc.md +1 -1
  5. package/RFCs/02-18-language-theory-evolution-plan.md +3 -3
  6. package/RFCs/03-05-function-schema-dual-track-rfc.md +3 -3
  7. package/RFCs/03-18-query-def-tree-show-chunked-display-plan.md +11 -11
  8. package/RFCs/04-13-type-slot-mechanism-rfc.md +10 -10
  9. package/RFCs/05-12-program-diff-rfc.md +7 -7
  10. package/RFCs/06-15-effects-graph-rfc.md +16 -16
  11. package/RFCs/07-06-semantic-tree-navigation-rfc.md +33 -33
  12. package/RFCs/07-19-doc-knowledge-index-rfc.md +15 -15
  13. package/RFCs/07-19-type-introspection-consistency-rfc.md +3 -3
  14. package/RFCs/07-26-agent-docs-and-evaluation-rfc.md +1 -1
  15. package/RFCs/07-26-agent-machine-protocol-rfc.md +5 -5
  16. package/RFCs/07-26-safe-structured-editing-rfc.md +4 -4
  17. package/RFCs/07-26-static-semantic-analysis-rfc.md +9 -9
  18. package/RFCs/07-28-git-module-store-rfc.md +4 -4
  19. package/RFCs/07-28-persistent-tree-cursor-rfc.md +54 -54
  20. package/RFCs/08-08-cross-backend-host-ffi-contracts-rfc.md +4 -4
  21. package/RFCs/08-14-architecture-scaffold-rfc.md +7 -7
  22. package/RFCs/08-14-todo-placeholder-rfc.md +2 -2
  23. package/RFCs/08-18-calcit-typed-js-ffi-boundary-rfc.md +2 -2
  24. package/RFCs/08-21-js-ffi-runtime-contract-validation-rfc.md +295 -0
  25. package/RFCs/08-21-setup-calcit-version-and-toolchain-contract-rfc.md +241 -0
  26. package/RFCs/08-21-static-type-system-evolution-roadmap.md +315 -0
  27. package/RFCs/08-21-type-quality-ci-adoption-rfc.md +272 -0
  28. package/RFCs/README.md +7 -4
  29. package/editing-history/20260820-1704-repository-maintenance-review.md +20 -0
  30. package/editing-history/20260821-1512-type-system-ecosystem-rfcs.md +25 -0
  31. package/editing-history/20260821-1648-type-quality-and-ffi-doc-hints.md +12 -0
  32. package/editing-history/202608211958-calcit-command-alias.md +6 -0
  33. package/editing-history/202608212018-cli-review-followups.md +4 -0
  34. package/editing-history/ARCHIVE.md +45 -4
  35. package/editing-history/README.md +3 -1
  36. package/history/202608212020-release-01328.md +5 -0
  37. package/lib/package.json +11 -11
  38. package/package.json +11 -11
  39. package/profiling/README.md +3 -3
  40. package/profiling/profile-once.sh +1 -1
  41. package/profiling/samply-once.sh +4 -4
  42. package/profiling/samply-summary.py +1 -1
  43. package/editing-history/2026-07-28-1346-edit-transaction.md +0 -27
  44. package/editing-history/2026-07-28-1454-persistent-tree-cursor.md +0 -30
  45. package/editing-history/2026-07-28-1651-cursor-focus-stack-clipboard.md +0 -30
  46. package/editing-history/2026-07-28-1719-cursor-navigation-search-selection.md +0 -21
  47. package/editing-history/2026-07-28-1958-agent-rfc-split.md +0 -14
  48. package/editing-history/2026-07-28-2004-cursor-editing-docs.md +0 -14
  49. package/editing-history/2026-07-28-2132-cursor-recoverable-clipboard.md +0 -18
  50. package/editing-history/2026-07-28-2151-cursor-native-structural-editing.md +0 -20
  51. package/editing-history/2026-07-28-2158-document-cursor-native-workflows.md +0 -13
  52. package/editing-history/2026-07-29-0022-add-cursor-cli-options.md +0 -7
  53. package/editing-history/2026-07-29-0022-audit-cursor-development-scenarios.md +0 -6
  54. package/editing-history/2026-07-29-0022-complete-cursor-structural-edits.md +0 -8
  55. package/editing-history/2026-07-29-0022-document-cursor-edit-recipes.md +0 -8
  56. package/editing-history/2026-07-29-0022-edit-target-cursor-alias.md +0 -6
  57. package/editing-history/2026-07-29-0022-guide-agents-through-cursor-workflows.md +0 -7
  58. package/editing-history/2026-07-29-0022-query-from-active-cursor.md +0 -8
  59. package/editing-history/2026-07-29-0022-tree-target-cursor-alias.md +0 -5
  60. package/editing-history/202608021730-release-0.12.58.md +0 -5
  61. package/editing-history/202608021928-release-0.12.59.md +0 -5
  62. package/editing-history/202608082312-release-0.13.5.md +0 -10
  63. package/editing-history/202608090107-release-0.13.6.md +0 -10
  64. package/editing-history/202608091812-release-0.13.7.md +0 -8
  65. package/editing-history/202608101042-release-0.13.8.md +0 -6
  66. package/editing-history/202608101101-release-pr-workflow.md +0 -8
  67. package/editing-history/202608101102-release-doc-tracked-path.md +0 -5
  68. package/editing-history/202608110140-release-0.13.9.md +0 -4
  69. package/editing-history/202608111349-release-0.13.10.md +0 -13
  70. package/editing-history/202608111650-release-0.13.11.md +0 -5
  71. package/editing-history/202608121900-release-0.13.12.md +0 -5
  72. package/editing-history/202608130003-release-0.13.13.md +0 -9
  73. package/editing-history/202608131650-release-0.13.15.md +0 -10
  74. package/editing-history/20260816-0254-release-0.13.17.md +0 -5
  75. package/editing-history/20260817-0006-release-0-13-18.md +0 -6
  76. package/editing-history/202608171118-project-module-runtime-resolution.md +0 -6
  77. package/editing-history/202608171133-visible-module-versions-and-cleanup.md +0 -6
  78. package/editing-history/202608171140-module-caches-root.md +0 -5
  79. package/editing-history/202608171200-module-cache-review-follow-up.md +0 -5
  80. package/editing-history/202608171205-release-0-13-19.md +0 -4
  81. package/editing-history/202608171215-module-path-resolution-docs.md +0 -4
  82. package/editing-history/202608171409-module-cache-review-followup.md +0 -5
  83. package/editing-history/202608171427-module-cache-review-followup-locking.md +0 -5
  84. package/editing-history/202608171438-module-docs-home-lock.md +0 -4
  85. package/editing-history/202608171611-dependency-audit-review.md +0 -4
  86. package/editing-history/202608181000-release-0-13-20.md +0 -5
  87. package/editing-history/202608181930-release-0-13-21.md +0 -5
@@ -0,0 +1,12 @@
1
+ # Type quality and JS FFI documentation hints
2
+
3
+ - Added a direct `cr docs read library-quality.md --full` hint when the native
4
+ `analyze quality` gate fails, so baseline regressions lead to the accepted
5
+ CI workflow rather than project-local report scripts.
6
+ - Added a direct `cr docs read js-interop.md --full` hint to strict JS FFI
7
+ capability, target, and read-only external-field diagnostics.
8
+ - Added regression assertions that the strict FFI errors retain their stable
9
+ diagnostic code and expose the documentation command.
10
+
11
+ Validation: targeted Rust tests for the affected diagnostics, full Rust tests,
12
+ Markdown documentation checks, and `git diff --check`.
@@ -0,0 +1,6 @@
1
+ # Calcit command migration
2
+
3
+ - Make `calcit` the only compiled primary CLI binary; do not keep a second Rust `cr` artifact.
4
+ - Keep old GitHub Actions workflows compatible in `setup-calcit` by creating a lightweight `cr` link beside the installed `calcit` binary.
5
+ - Move repository scripts, CI, user-facing diagnostics, and documentation to canonical `calcit` command examples.
6
+ - Refresh the agent-interface weak-type schema assertion from v2 to v3 so the renamed CLI continues to exercise the current machine protocol.
@@ -0,0 +1,4 @@
1
+ # CLI migration review follow-ups
2
+
3
+ - Pass binary arguments after `cargo run --bin calcit --` in test and release workflows.
4
+ - Make the `try-ir` script exercise IR emission rather than duplicating JavaScript code generation.
@@ -13,10 +13,10 @@ navigation layer.
13
13
 
14
14
  ## Release history (Jul–Aug 2026)
15
15
 
16
- Non-functional version-bump notes were consolidated here on 2026-08-08. Each
17
- release synchronizes `Cargo.toml` / `package.json` and refreshes the workspace
18
- lockfile with `cargo update --workspace`; the full note text remains recoverable
19
- from Git history.
16
+ Release and release-policy notes are consolidated here. Each release
17
+ synchronizes `Cargo.toml` / `package.json` and refreshes the workspace lockfile
18
+ with `cargo update --workspace`; the full note text remains recoverable from
19
+ Git history.
20
20
 
21
21
  | Version | Durable context |
22
22
  | --- | --- |
@@ -31,6 +31,23 @@ from Git history.
31
31
  | 0.13.2 | Struct/enum data model cleanup (PR #301), direct required Struct field access, symbol-based nominal formatting. |
32
32
  | 0.13.3 | Struct/Enum terminology migration, deprecated API analysis, cross-backend canonical EDN formatting. |
33
33
  | 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
+ | 0.13.5 | Typed `js-get` / `js-set` field access plus named-type preservation. |
37
+ | 0.13.6 | Opt-in raw-JS-FFI warning and readable low-cost JS emission. |
38
+ | 0.13.7 | Definition-attached core tests and safer, less noisy `cr` edits. |
39
+ | 0.13.8 | Typed Struct field access and robust branch-ref resolution. |
40
+ | 0.13.9 | Routine aligned Cargo/npm release. |
41
+ | 0.13.10 | Agent migration convergence and quoted-Cirru edit reliability. |
42
+ | 0.13.11 | Trailing `Option` parameters, typed Option/Struct handling, and terminating JS string replacement. |
43
+ | 0.13.12 | Type guidance/Dynamic audits and typed Struct constructors with omitted Option fields. |
44
+ | 0.13.13 | Project module-store and dependency-boundary work. |
45
+ | 0.13.15 | `decode-map-as` runtime decoder and core metadata. |
46
+ | 0.13.17 | Nested Struct context, migration diagnostics, and agent guidance. |
47
+ | 0.13.18 | Correct source locations for macro-generated field warnings. |
48
+ | 0.13.19 | Project-scoped module resolution, immutable cache visibility, and safe cleanup. |
49
+ | 0.13.20 | Typed JavaScript FFI capability boundary and browser/Node validation. |
50
+ | 0.13.21 | Typed JavaScript FFI follow-ups and `deps.cirru` version migration diagnostics. |
34
51
 
35
52
  Also consolidated here: the 2026-08-01 ARCHIVE consolidation note, and the
36
53
  release main-branch policy note — `main` needs no pull-request protection for
@@ -40,3 +57,27 @@ before tagging, and npm verification uses the published package name
40
57
 
41
58
  For current behavior, prefer `docs/`, tests, and the retained current-window
42
59
  notes over this summary.
60
+
61
+ ## Consolidated development topics (Jul–Aug 2026)
62
+
63
+ ### Cursor and transactional structural editing (Jul 28–29)
64
+
65
+ The CLI gained a project-local persistent cursor for safe, multi-command tree
66
+ editing. It supports navigation/history, selection search, clipboard actions,
67
+ focus previews, depth-first movement, symmetric slurp/barf operations, and
68
+ duplication. `@cursor` may resolve a definition target and tree path, but
69
+ two-target edits retain explicit destinations and transaction files remain
70
+ self-contained. Snapshot and cursor-sidecar writes are staged and report
71
+ partial success explicitly; a cursor is navigation state, never a concurrency
72
+ primitive or source identity. The authoritative interface and examples are in
73
+ `docs/run/edit-tree.md`, `docs/CalcitAgent.md`, and the cursor RFC.
74
+
75
+ ### Project module cache hardening (Aug 17)
76
+
77
+ Runtime package-style module resolution is restricted to a project's
78
+ `.calcit/modules/` view, while immutable revisions live in the global
79
+ `module-caches/` store. Cache metadata preserves the highest observed SemVer
80
+ reference; `caps clean` retains the newest revision and every revision still
81
+ linked by a registered project. Cache and project-view updates are serialized
82
+ with OS-managed locks and installation is transactional. Current operational
83
+ details live in `docs/run/load-deps.md` and `docs/run/upgrade.md`.
@@ -7,7 +7,9 @@ history after they leave this directory.
7
7
  ## Retention
8
8
 
9
9
  - Keep individual notes for the current development window (normally the most
10
- recent 45 days).
10
+ recent 45 days), unless a completed topic has produced several overlapping
11
+ notes. Consolidate those clusters promptly; recency alone is not a reason to
12
+ retain duplicate implementation checkpoints.
11
13
  - Periodically replace older clusters with a concise topic summary in
12
14
  [ARCHIVE.md](ARCHIVE.md), then remove their individual files.
13
15
  - Each code commit still adds one timestamped note, but it should capture only
@@ -0,0 +1,5 @@
1
+ # Release 0.13.28
2
+
3
+ - Publish `calcit` as the primary CLI asset.
4
+ - Keep `caps` and `cr-wasm` release assets.
5
+ - Let setup-calcit v1 supply the workflow-only CLI compatibility links.
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.13.27",
3
+ "version": "0.13.28",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^25.7.0",
@@ -10,24 +10,24 @@
10
10
  "compile": "rm -rf lib && tsc",
11
11
  "procs-link": "ln -sfn ../../ node_modules/@calcit/procs",
12
12
  "cp-mac": "cargo build --release && rm -rfv builds/* && node scripts/cp-version.js && scp builds/* rsync-user@calcit-lang.org:/web-assets/repo/calcit-lang/binaries/macos/",
13
- "eval": "cargo run --bin cr -- eval",
13
+ "eval": "cargo run --bin calcit -- eval",
14
14
  "fmt-rs": "cargo fmt --all",
15
15
  "lint-rs": "cargo clippy --all-targets -- -D warnings",
16
16
  "test-rs": "cargo test -q",
17
- "test-fail": "cargo test -q --bin cr type_fail_",
17
+ "test-fail": "cargo test -q --bin calcit type_fail_",
18
18
  "test-snippets": "cargo test -q snippets::tests",
19
19
  "check-js-runtime": "node scripts/check-js-runtime-identity.mjs",
20
- "bench-recur-smoke": "cargo run --bin cr -- calcit/test.cirru js && node --input-type=module -e \"import { test_loop } from './js-out/test-recursion.main.mjs'; const n=3000; const t0=process.hrtime.bigint(); for(let i=0;i<n;i++) test_loop(); const dt=Number(process.hrtime.bigint()-t0)/1e6; console.log('test_loop_ms='+dt.toFixed(3));\"",
20
+ "bench-recur-smoke": "cargo run --bin calcit -- calcit/test.cirru js && node --input-type=module -e \"import { test_loop } from './js-out/test-recursion.main.mjs'; const n=3000; const t0=process.hrtime.bigint(); for(let i=0;i<n;i++) test_loop(); const dt=Number(process.hrtime.bigint()-t0)/1e6; console.log('test_loop_ms='+dt.toFixed(3));\"",
21
21
  "check-smooth": "yarn fmt-rs && yarn lint-rs && yarn test-rs && yarn check-all",
22
22
  "check-all": "yarn compile && yarn check-js-runtime && yarn check-agent-interface && yarn try-core-tests && yarn try-rs && yarn try-js && yarn try-ir && yarn try-wasm",
23
- "check-agent-interface": "cargo build --bin cr && node scripts/check-agent-interface.mjs",
23
+ "check-agent-interface": "cargo build --bin calcit && node scripts/check-agent-interface.mjs",
24
24
  "try-all": "yarn check-all",
25
- "try-core-tests": "cargo run --bin cr -- src/cirru/calcit-core.cirru test --tag unit --summary-only",
26
- "try-rs": "cargo run --bin cr -- calcit/test.cirru",
27
- "warn-dyn-method": "cargo run --bin cr -- calcit/test.cirru --warn-dyn-method",
28
- "try-js-brk": "cargo run --bin cr -- calcit/test.cirru js && node --inspect-brk js-out/main.mjs",
29
- "try-js": "cargo run --bin cr -- calcit/test.cirru js && node js-out/main.mjs",
30
- "try-ir": "cargo run --bin cr -- calcit/test.cirru js",
25
+ "try-core-tests": "cargo run --bin calcit -- src/cirru/calcit-core.cirru test --tag unit --summary-only",
26
+ "try-rs": "cargo run --bin calcit -- calcit/test.cirru",
27
+ "warn-dyn-method": "cargo run --bin calcit -- calcit/test.cirru --warn-dyn-method",
28
+ "try-js-brk": "cargo run --bin calcit -- calcit/test.cirru js && node --inspect-brk js-out/main.mjs",
29
+ "try-js": "cargo run --bin calcit -- calcit/test.cirru js && node js-out/main.mjs",
30
+ "try-ir": "cargo run --bin calcit -- calcit/test.cirru ir",
31
31
  "try-wasm": "bash scripts/test-wasm.sh"
32
32
  },
33
33
  "repository": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calcit/procs",
3
- "version": "0.13.27",
3
+ "version": "0.13.28",
4
4
  "main": "./lib/calcit.procs.mjs",
5
5
  "devDependencies": {
6
6
  "@types/node": "^25.7.0",
@@ -10,24 +10,24 @@
10
10
  "compile": "rm -rf lib && tsc",
11
11
  "procs-link": "ln -sfn ../../ node_modules/@calcit/procs",
12
12
  "cp-mac": "cargo build --release && rm -rfv builds/* && node scripts/cp-version.js && scp builds/* rsync-user@calcit-lang.org:/web-assets/repo/calcit-lang/binaries/macos/",
13
- "eval": "cargo run --bin cr -- eval",
13
+ "eval": "cargo run --bin calcit -- eval",
14
14
  "fmt-rs": "cargo fmt --all",
15
15
  "lint-rs": "cargo clippy --all-targets -- -D warnings",
16
16
  "test-rs": "cargo test -q",
17
- "test-fail": "cargo test -q --bin cr type_fail_",
17
+ "test-fail": "cargo test -q --bin calcit type_fail_",
18
18
  "test-snippets": "cargo test -q snippets::tests",
19
19
  "check-js-runtime": "node scripts/check-js-runtime-identity.mjs",
20
- "bench-recur-smoke": "cargo run --bin cr -- calcit/test.cirru js && node --input-type=module -e \"import { test_loop } from './js-out/test-recursion.main.mjs'; const n=3000; const t0=process.hrtime.bigint(); for(let i=0;i<n;i++) test_loop(); const dt=Number(process.hrtime.bigint()-t0)/1e6; console.log('test_loop_ms='+dt.toFixed(3));\"",
20
+ "bench-recur-smoke": "cargo run --bin calcit -- calcit/test.cirru js && node --input-type=module -e \"import { test_loop } from './js-out/test-recursion.main.mjs'; const n=3000; const t0=process.hrtime.bigint(); for(let i=0;i<n;i++) test_loop(); const dt=Number(process.hrtime.bigint()-t0)/1e6; console.log('test_loop_ms='+dt.toFixed(3));\"",
21
21
  "check-smooth": "yarn fmt-rs && yarn lint-rs && yarn test-rs && yarn check-all",
22
22
  "check-all": "yarn compile && yarn check-js-runtime && yarn check-agent-interface && yarn try-core-tests && yarn try-rs && yarn try-js && yarn try-ir && yarn try-wasm",
23
- "check-agent-interface": "cargo build --bin cr && node scripts/check-agent-interface.mjs",
23
+ "check-agent-interface": "cargo build --bin calcit && node scripts/check-agent-interface.mjs",
24
24
  "try-all": "yarn check-all",
25
- "try-core-tests": "cargo run --bin cr -- src/cirru/calcit-core.cirru test --tag unit --summary-only",
26
- "try-rs": "cargo run --bin cr -- calcit/test.cirru",
27
- "warn-dyn-method": "cargo run --bin cr -- calcit/test.cirru --warn-dyn-method",
28
- "try-js-brk": "cargo run --bin cr -- calcit/test.cirru js && node --inspect-brk js-out/main.mjs",
29
- "try-js": "cargo run --bin cr -- calcit/test.cirru js && node js-out/main.mjs",
30
- "try-ir": "cargo run --bin cr -- calcit/test.cirru js",
25
+ "try-core-tests": "cargo run --bin calcit -- src/cirru/calcit-core.cirru test --tag unit --summary-only",
26
+ "try-rs": "cargo run --bin calcit -- calcit/test.cirru",
27
+ "warn-dyn-method": "cargo run --bin calcit -- calcit/test.cirru --warn-dyn-method",
28
+ "try-js-brk": "cargo run --bin calcit -- calcit/test.cirru js && node --inspect-brk js-out/main.mjs",
29
+ "try-js": "cargo run --bin calcit -- calcit/test.cirru js && node js-out/main.mjs",
30
+ "try-ir": "cargo run --bin calcit -- calcit/test.cirru ir",
31
31
  "try-wasm": "bash scripts/test-wasm.sh"
32
32
  },
33
33
  "repository": {
@@ -56,13 +56,13 @@ profiling/samply-once.sh calcit/fibo.cirru --release --top 20 --include 'calcit:
56
56
  ### 仅汇总已有 `.samply`
57
57
 
58
58
  ```bash
59
- python3 profiling/samply-summary.py --input .tmp-profiles/fibo-debug-xxxx.samply --binary target/debug/cr --top 30
59
+ python3 profiling/samply-summary.py --input .tmp-profiles/fibo-debug-xxxx.samply --binary target/debug/calcit --top 30
60
60
  ```
61
61
 
62
62
  release 对应:
63
63
 
64
64
  ```bash
65
- python3 profiling/samply-summary.py --input .tmp-profiles/fibo-release-xxxx.samply --binary target/release/cr --top 30
65
+ python3 profiling/samply-summary.py --input .tmp-profiles/fibo-release-xxxx.samply --binary target/release/calcit --top 30
66
66
  ```
67
67
 
68
68
  常用参数:
@@ -80,5 +80,5 @@ python3 profiling/samply-summary.py --input .tmp-profiles/fibo-release-xxxx.samp
80
80
 
81
81
  ## 说明
82
82
 
83
- - `samply-once.sh` 会先 `cargo build`,再直接对 `target/debug/cr` 或 `target/release/cr` 录制,避免把 `rustc` 编译过程混入热点。
83
+ - `samply-once.sh` 会先 `cargo build`,再直接对 `target/debug/calcit` 或 `target/release/calcit` 录制,避免把 `rustc` 编译过程混入热点。
84
84
  - 临时产物位于 `.tmp-profiles/`,可按需清理。
@@ -34,7 +34,7 @@ xctrace record \
34
34
  --template "Time Profiler" \
35
35
  --output "$trace_path" \
36
36
  --launch -- \
37
- cargo run --release --bin cr -- "$entry"
37
+ cargo run --release --bin calcit -- "$entry"
38
38
 
39
39
  echo
40
40
  echo "Summarizing hotspots..."
@@ -37,11 +37,11 @@ stamp="$(date +%Y%m%d-%H%M%S)"
37
37
  samply_path=".tmp-profiles/${entry_name}-${mode}-${stamp}.samply"
38
38
 
39
39
  if [[ "$mode" == "release" ]]; then
40
- build_args=(build --release --bin cr)
41
- binary="target/release/cr"
40
+ build_args=(build --release --bin calcit)
41
+ binary="target/release/calcit"
42
42
  else
43
- build_args=(build --bin cr)
44
- binary="target/debug/cr"
43
+ build_args=(build --bin calcit)
44
+ binary="target/debug/calcit"
45
45
  fi
46
46
 
47
47
  echo "Building binary: $binary"
@@ -34,7 +34,7 @@ def parse_args() -> argparse.Namespace:
34
34
  parser.add_argument(
35
35
  "--binary",
36
36
  type=Path,
37
- help="Mach-O binary for atos symbolization fallback (e.g. target/debug/cr)",
37
+ help="Mach-O binary for atos symbolization fallback (e.g. target/debug/calcit)",
38
38
  )
39
39
  parser.add_argument(
40
40
  "--image-base",
@@ -1,27 +0,0 @@
1
- # `cr edit transaction` 第一版
2
-
3
- ## 概要
4
-
5
- - 在既有 `cr edit` 命令组中增加 `transaction`,输入复用现有 `edit`、`tree`、`config` 参数序列。
6
- - 以 Cirru EDN argument lists 为主输入,并允许在 `--code` 后直接嵌入 quoted AST;JSON 作为兼容格式保留。支持 `--dry-run`、`--expect-revision` 和 human/JSON 输出。
7
- - 所有 operation 只修改同目录 staged snapshot;全部成功、snapshot 可重新加载/序列化且原文件 revision 未变化后,才通过 rename 一次提交。
8
- - staged 文件保留原 snapshot 权限;失败、stale revision 与 dry-run 都由 guard 清理,不修改原文件。
9
- - transaction 会捕获每个子命令的 stdout/stderr,保证成功时 JSON stdout 仍是单个可解析值。
10
-
11
- ## 关键取舍
12
-
13
- - 没有立即把全部 handler 重构成新的内存 mutation API,因为这会同时改变大量稳定的 `edit/tree/config` 路径。
14
- - 第一版通过 staged snapshot 调用当前 `cr` 子命令,直接复用参数解析、namespace 边界、tree path、schema 和保存校验。
15
- - transaction 仅允许 `edit`、`tree`、`config`,拒绝嵌套 transaction 和只读/执行类命令。
16
- - snapshot revision 当前是原文件内容的 MD5 opaque ID;执行前和最终 rename 前都会检查,避免 stale write。
17
-
18
- ## 验证
19
-
20
- - 新增 JSON/Cirru 解析、Cirru EDN 内嵌 quoted code、非法 command、nested transaction、stale revision、dry-run、operation failure rollback、成功提交测试。
21
- - 真实临时 snapshot 验证了 `config version`、`edit doc` 与 `tree replace` 的组合提交及失败回滚。
22
- - `cargo fmt --all`
23
- - `cargo clippy -- -D warnings`
24
- - `cargo test`
25
- - `yarn compile`
26
- - `yarn check-agent-interface`(新增 staged transaction 场景,12/12)
27
- - `yarn check-all`
@@ -1,30 +0,0 @@
1
- # 可持续迁移的 tree cursor
2
-
3
- ## 概要
4
-
5
- - 新增 `07-28-persistent-tree-cursor-rfc.md`,将 cursor 定义为 CLI 跨调用维护的树形选择状态,而不是 snapshot 中的源码身份。
6
- - 新增 `cr cursor set/show/clear/parent/child/next/prev`,状态以 Cirru EDN 保存到 snapshot 同目录的 `.calcit-cursor.cirru`。
7
- - path-based tree 命令可通过 `--path @cursor` 引用 active cursor,显式 definition target 必须匹配。
8
- - `cursor show` 在展示副本中用 `CURSOR` 包裹目标;JSON 输出仍返回真实 subtree 与独立 cursor 元数据。
9
- - 直接 tree mutation 成功后会刷新 cursor fingerprint、preview 与 definition revision,并对插入、删除、swap、unwrap、raise、wrap、replace 等操作执行确定性 path 迁移。
10
-
11
- ## 安全边界
12
-
13
- - cursor 文件是本地状态,已加入 `.gitignore`,不会写进 snapshot 或模块内容。
14
- - 外部修改导致 path fingerprint 不匹配时,只允许通过唯一 fingerprint 命中自动重定位;零命中或多命中拒绝猜测。
15
- - snapshot 已保存但 cursor 写入失败时,错误会明确说明源码 mutation 已成功,避免误认为整体回滚。
16
- - transaction staged 子命令暂时禁用真实 cursor 写入;transaction 内 cursor 演化留到下一阶段实现。
17
-
18
- ## 验证
19
-
20
- - cursor path transform 单元测试覆盖前方插入、前方删除、删除目标、swap 与 unwrap。
21
- - Cursor Cirru EDN 文件 round-trip 测试。
22
- - 临时 snapshot 集成测试覆盖源码插入后持久化 cursor 从 `@48.1` 迁移到 `@48.2`,且 preview 仍为原来的 `true` 节点。
23
- - 手工 CLI smoke 覆盖 `cursor set/show --format json`、`tree show --path @cursor` 和 `tree insert-before --path @cursor`。
24
- - `cargo fmt --all`
25
- - `cargo clippy -- -D warnings`
26
- - `cargo test`(256 lib + 147 cr)
27
- - `yarn compile`
28
- - `yarn check-agent-interface`(12/12)
29
- - `yarn check-all`
30
- - `cr docs check-md` 验证 `docs/run/edit-tree.md` 与 `docs/CalcitAgent.md`
@@ -1,30 +0,0 @@
1
- # Cursor focus、导航栈与结构化 clipboard
2
-
3
- ## 概要
4
-
5
- - `cursor show` 基于 Cirru Parser 0.2.15 `focus_cirru_preview_with_options` 展示 definition 上下文,由 parser 直接保留 definition 签名并生成展示态 `CURSOR`。
6
- - 精确锁定 `cirru_parser = 0.2.15`。原因是 `cargo install --path` 不保证沿用仓库 lockfile;若只使用兼容版本范围,本地测试与全局安装可能获得不同的 focus marker 语义。
7
- - `.calcit-cursor.cirru` 升级到 schema v2,继续兼容读取 v1;新增普通导航 history、显式 `push/pop` stack 与保存 Cirru tree 的 clipboard。
8
- - 新增 `cursor back/push/pop/copy/cut/paste/clipboard/clear-clipboard`。cut 后选择 parent,paste 后选择新节点,clipboard 保留以支持重复粘贴。
9
- - 顶层 `--cursor-after none|summary|focus` 控制 mutation 后的 stderr 回显;默认 summary,不影响实际 cursor 维护。
10
- - `edit cp/mv/split-def` 支持 `@cursor`;definition overwrite/rename/move/delete、namespace delete 与 transaction 提交后验证会更新或明确提示 cursor 状态。
11
-
12
- ## 准确性要点
13
-
14
- - `edit mv` 按插入路径、源删除后的 index 漂移和 cursor 在源 subtree 内的相对路径做确定性迁移,不依赖可能多命中的 fingerprint 搜索。
15
- - focus、full 和 node 都只构造 presentation tree;真实 snapshot、path、fingerprint 与 JSON `tree` 不包含 `CURSOR`。
16
- - JSON `cursor.show` 分开返回真实 `tree` 和展示用 `preview_tree`,并报告 `exact`、`verified-at-path` 或 `relocated`。
17
- - sidecar 不在 `.gitignore` 时只提示建议,不自动修改用户项目。
18
-
19
- ## 验证
20
-
21
- - cursor 单元测试覆盖 v1→v2 兼容、history/stack/clipboard round-trip、focus 签名与 marker、cut/paste、前方增删、swap/unwrap,以及重复 fingerprint 下的确定性 move。
22
- - 临时 Calcit snapshot 手工验证 `cursor show --view focus`、`--cursor-after focus`、back/push/pop、copy/cut/paste 和 `edit cp/mv/split-def/rename/mv-def`。
23
- - 全局安装后的 `cr` 在 `respo-calcit-workflow` 临时副本中完成深层 cursor focus、cut/paste 原位恢复、`tree replace --path @cursor` 与 `cr js` 编译。
24
- - `cargo fmt`
25
- - `cargo clippy -- -D warnings`
26
- - `cargo test`
27
- - `yarn compile`
28
- - `yarn check-agent-interface`(12/12)
29
- - `yarn check-all`
30
- - `cr docs check-md` 验证 `docs/run/edit-tree.md` 与 `docs/CalcitAgent.md`
@@ -1,21 +0,0 @@
1
- # Cursor 多步导航与搜索选取
2
-
3
- ## 概要
4
-
5
- - `cursor child` 省略 index 时进入首子节点,`cursor child --last` 按当前树进入末子节点。
6
- - `cursor next`、`cursor prev` 与 `cursor back` 支持 `--count N`;多步移动只产生一次 history transition,参数为零或越界时不写 cursor。
7
- - `query search` 与 `query search-expr` 的每个结果获得稳定的全局 cursor index:human 输出为 `[#N]`,JSON 字段为 `cursor_index`。
8
- - 搜索命令新增 `--set-cursor N`,直接将对应结果写入项目 cursor。确认信息走 stderr,保持 JSON stdout 为单个可解析对象。
9
- - dependency-only 搜索结果不能映射到当前可编辑 snapshot 时明确报错,不将 cursor 猜测性落到同名定义。
10
-
11
- ## 验证关注点
12
-
13
- - `child --last` 必须读取当前 node 的 child count,不能把 `-1` 或陈旧 index 写入 sidecar。
14
- - sibling skip 和 multi-back 必须预先验证完整步数;失败后 active cursor 与 history 均保持不变。
15
- - human 与 JSON 的结果编号必须共享同一排序和扁平化顺序。
16
-
17
- ## 验证结果
18
-
19
- - `cargo fmt`、`cargo clippy --all-targets -- -D warnings`、`cargo test`、`yarn compile` 与 `yarn check-all` 通过。
20
- - Agent interface smoke 12/12,`docs/run/edit-tree.md` 与 `docs/CalcitAgent.md` 的可执行代码块检查通过。
21
- - 全局安装 `cr 0.12.53` 后,在 `respo-calcit-workflow` 临时副本以 `query search --set-cursor 0` 定位 `comp-runs`,随后验证 `child --last`、`prev --count 1`、`back --count 2`、focus 展示,并完成 `cr calcit.cirru js` 编译。
@@ -1,14 +0,0 @@
1
- # Agent 工具链 RFC 拆分
2
-
3
- ## 概要
4
-
5
- - 移除体量过大的 `07-26-agent-semantic-interface-roadmap-rfc.md`,按紧密关联的功能边界拆分为文档与评估、机器协议、安全结构化编辑、静态语义分析等 RFC。
6
- - 补充单项目工具契约、Git 模块存储与持久树形 cursor RFC,明确 Calcit 继续以 EDN/Cirru 树形源码、结构化文档和既有 `cr` 子命令为中心。
7
- - Git 模块仍以 tag 为最佳实践、允许分支名,不引入 registry、workspace 或 lockfile;依赖冲突采用最高版本并输出 warning。
8
- - LSP 延后到一次性解析接口足够稳定且维护成本可接受之后,不把行号作为源码或诊断的核心身份。
9
-
10
- ## 文档边界
11
-
12
- - 新 RFC 各自描述一块可独立评审和实施的能力,避免实现状态、长期设想和不适用于 Calcit 的 Cargo 风格命令混在同一文件中。
13
- - `RFCs/README.md` 更新索引,后续实现和验收可直接引用对应 RFC。
14
-
@@ -1,14 +0,0 @@
1
- # Cursor 与 transaction 使用文档
2
-
3
- ## 概要
4
-
5
- - 在 Agent 指南中补充通过搜索结果设置 cursor、用 `@cursor` 进行连续树形编辑、导航栈与结构化 clipboard 的推荐流程。
6
- - 在结构化编辑参考中完整记录 cursor sidecar、focus/node/full 展示、mutation 后坐标维护与 `--cursor-after` 回显控制。
7
- - 记录 Cirru EDN transaction 的主要输入形式、quoted code、dry-run、revision 检查与 JSON 兼容边界。
8
- - 将新增命令加入 Agent 能力地图和文档 frontmatter,便于结构化文档查询定位。
9
-
10
- ## 一致性
11
-
12
- - 文档示例沿用既有 `cr` 子命令风格,不引入 Cargo 风格命令。
13
- - 所有路径仍指向 Snapshot 中的 Cirru tree,展示用 `CURSOR` 不改变真实源码与 path。
14
-
@@ -1,18 +0,0 @@
1
- # Cursor clipboard 可恢复提交与精简状态
2
-
3
- ## 概要
4
-
5
- - `.calcit-cursor.cirru` 升级到 schema v3,继续读取 v1/v2;active、history 与 stack 不再重复保存完整 subtree preview,展示时从当前 Snapshot 重建。
6
- - `cursor cut` 和 `cursor paste` 在修改任何目标文件前先生成 Snapshot 与 sidecar staged 文件,避免序列化或临时文件失败造成半成品。
7
- - cut 按 sidecar→Snapshot 顺序提交,确保 Snapshot 提交失败时完整表达式已经存在于结构化 clipboard。
8
- - paste 按 Snapshot→sidecar 顺序提交;若第二步失败,错误明确说明源码已经修改并禁止盲目重试。
9
- - `cursor show` 构造真实节点和 focus preview 时复用同一次 Snapshot 读取,减少重复解析。
10
-
11
- ## 验证
12
-
13
- - 新增 cut 第二阶段失败时 clipboard 已持久化的故障注入测试。
14
- - 新增 paste cursor 提交失败时 Snapshot 已提交且错误包含 partial-success 指引的测试。
15
- - sidecar round-trip 断言 schema v3 且不包含 `:preview`。
16
- - `cargo test --bin cr cursor`
17
- - `cargo clippy --bin cr -- -D warnings`
18
-
@@ -1,20 +0,0 @@
1
- # Cursor 原生结构编辑与跨层导航
2
-
3
- ## 概要
4
-
5
- - 新增 `cursor apply <operation>`,由 active cursor 推导 definition target 与 tree path,再复用既有 tree handler,避免 Agent 在连续操作中重复传递坐标。
6
- - 新增 `cursor slurp-next` 与 `cursor barf-last`,通过已有 `edit mv` 完成跨 parent 的 Paredit 风格节点移动,cursor 始终跟随原先选中的 list。
7
- - 新增 `cursor forward/backward --count N`,按 definition 的深度优先结构顺序跨 list 边界移动,并把整次多步移动记录为一条 history。
8
- - 当顶层使用 `--cursor-after focus` 时,set、search 选中、普通导航与 history/stack 恢复会立即输出 focus preview。
9
- - 非法 root、leaf、空 list、缺少 sibling、零步和越界操作均在写 Snapshot 前失败。
10
-
11
- ## 验证
12
-
13
- - `cargo fmt`
14
- - `cargo clippy -- -D warnings`
15
- - `cargo test`
16
- - `yarn compile`
17
- - `yarn check-agent-interface`
18
- - `yarn check-all`
19
- - `cr docs check-md` 检查 Agent 指南和 tree editing 文档。
20
- - 全局安装当前 `cr` 后,在 Respo workflow 临时副本往返执行 depth-first navigation、swap、slurp/barf;Snapshot 与原文件逐字节一致,`cr js` 成功。
@@ -1,13 +0,0 @@
1
- # 补充 Cursor 原生工作流文档
2
-
3
- ## 概要
4
-
5
- - RFC 增加 `cursor apply`、`slurp-next`、`barf-last`、`forward/backward` 的命令契约、复用边界和验收项。
6
- - Agent 快速指南说明同级导航与跨 list 深度优先导航的区别,并加入 cursor 原生 mutation 的选择建议。
7
- - tree editing 指南补充完整命令示例、`--cursor-after focus` 的导航反馈,以及 `unwrap` 并非任意 wrapper 的严格逆操作这一边界。
8
-
9
- ## 验证
10
-
11
- - `target/debug/cr calcit/test.cirru docs check-md docs/CalcitAgent.md --entry calcit/test.cirru`
12
- - `target/debug/cr calcit/test.cirru docs check-md docs/run/edit-tree.md --entry calcit/test.cirru`
13
- - `git diff --check`
@@ -1,7 +0,0 @@
1
- # Cursor CLI surface
2
-
3
- - Added symmetric `slurp-prev` and `barf-first` cursor commands.
4
- - Added `cursor duplicate --at before|after`.
5
- - Added `--start-path` to structural expression search.
6
-
7
- Validation for the complete change set: `cargo fmt`, `cargo clippy -- -D warnings`, `cargo test`, `yarn compile`, `yarn check-agent-interface`, and `yarn check-all`.
@@ -1,6 +0,0 @@
1
- # Audit cursor development scenarios
2
-
3
- - Mapped the cursor contract to high-frequency development workflows.
4
- - Specified symmetric Paredit operations, duplication, target aliases, and subtree search.
5
- - Clarified transaction, source-undo, and concurrent-agent boundaries.
6
- - Kept workspace, module, and project-wide operations explicit rather than cursor-dependent.
@@ -1,8 +0,0 @@
1
- # Complete cursor structural edits
2
-
3
- - Implemented leftward slurp/barf operations and clipboard-preserving duplication.
4
- - Used staged Snapshot and sidecar writes with explicit partial-success diagnostics.
5
- - Added reusable active target/path resolution for `@cursor` aliases.
6
- - Covered selection tracking, invalid boundaries, and parallel-test temporary-directory collisions.
7
-
8
- The operations were round-trip tested on a temporary copy of `respo-calcit-workflow` with the globally installed `cr`.
@@ -1,8 +0,0 @@
1
- # Document cursor edit recipes
2
-
3
- - Added concrete recipes for cursor-aware query, tree, and edit commands.
4
- - Documented symmetric slurp/barf and clipboard-preserving duplicate operations.
5
- - Added cursor-scoped leaf and structural searches.
6
- - Clarified navigation history and multi-agent boundaries.
7
-
8
- The documented workflow was exercised against a temporary Respo project and finished with a successful JS build.
@@ -1,6 +0,0 @@
1
- # Edit target cursor alias
2
-
3
- - Added `@cursor` definition targets to definition, metadata, copy/move, rename, and split operations.
4
- - Defined the alias as the source for two-target commands while keeping destinations explicit.
5
- - Reused a single active target/path resolution when an edit references both.
6
- - Left transaction operation files self-contained with concrete targets and paths.
@@ -1,7 +0,0 @@
1
- # Guide agents through cursor workflows
2
-
3
- - Documented cursor target aliases and subtree-scoped search for agents.
4
- - Added symmetric structural editing and duplication guidance.
5
- - Clarified that cursor history is navigation-only and the sidecar is not a concurrency primitive.
6
-
7
- All executable Markdown blocks passed `cr docs check-md`.
@@ -1,8 +0,0 @@
1
- # Query from the active cursor
2
-
3
- - Allowed definition-oriented queries to use `@cursor` as their target.
4
- - Added cursor-scoped structural expression search with absolute result paths.
5
- - Made `query type-at @cursor --path @cursor` resolve one validated cursor state.
6
- - Rejected conflicting explicit filters for cursor-scoped searches.
7
-
8
- Real-project checks covered search selection, type evidence, and bounded semantic context.
@@ -1,5 +0,0 @@
1
- # Tree target cursor alias
2
-
3
- - Allowed every target-bearing `cr tree` command to resolve `@cursor` as both definition target and structural path.
4
- - Reused one validated active cursor when both aliases occur in the same command.
5
- - Preserved target mismatch rejection for explicit definitions.
@@ -1,5 +0,0 @@
1
- # Release 0.12.58
2
-
3
- - Release the receiver-first method inference and trait nominal-identity fixes merged in PR #288.
4
- - Synchronize the crate, npm package, and Cargo lockfile versions at `0.12.58`.
5
- - The merge commit passed the main Test and CodeQL workflows before this release commit.
@@ -1,5 +0,0 @@
1
- # Release 0.12.59
2
-
3
- - Release the top-level nominal value schema fix from PR #291.
4
- - Synchronize the crate, npm package, and Cargo lockfile versions at `0.12.59`.
5
- - The merged main commit passed Test and CodeQL before this release preparation.
@@ -1,10 +0,0 @@
1
- # Release 0.13.5
2
-
3
- - Bumped the Calcit package versions in `Cargo.toml`, `package.json`, and
4
- `Cargo.lock` from 0.13.4 to 0.13.5.
5
- - Releases typed static `js-get`/`js-set` field access with external-object
6
- traits (PR #316) and the `unsafe-coerce` named-type preservation fix.
7
- - Consolidated redundant non-functional editing-history notes (release and
8
- release-policy entries) into `ARCHIVE.md`.
9
- - Verified with formatting, tests, clippy, compilation, full checks, agent
10
- interface smoke checks, and Markdown example checks.
@@ -1,10 +0,0 @@
1
- # Release 0.13.6
2
-
3
- - Bumped the Calcit package versions in `Cargo.toml`, `package.json`, and
4
- `Cargo.lock` from 0.13.5 to 0.13.6.
5
- - Releases the opt-in `W_JS_FFI_UNTYPED_ACCESS` warning (behind
6
- `--warn-dyn-method`) for untyped raw JS FFI access on bare `JsObject`, plus
7
- the cheap JS codegen readability improvements (line-based indentation, blank
8
- lines between top-level functions, verbatim `&raw-code` preservation).
9
- - Verified with formatting, tests, clippy, compilation, full checks, agent
10
- interface smoke checks, and Markdown example checks.
@@ -1,8 +0,0 @@
1
- # Release 0.13.7
2
-
3
- Released the merged definition-attached core test and `cr` CLI accuracy work.
4
-
5
- - Bumped the Rust crate and npm package versions from `0.13.6` to `0.13.7`.
6
- - Updated `Cargo.lock` with the workspace version through `cargo update --workspace`.
7
- - Release validation covers the merged PR's core tests, native/JS/WASM targets,
8
- Agent CLI interface, and the repository test workflow before tagging.
@@ -1,6 +0,0 @@
1
- ## Release 0.13.8
2
-
3
- - Publishes the typed Struct field-access and collection path-boundary work
4
- merged through PR #327.
5
- - Keeps module branch resolution robust by fetching and pruning remote branch
6
- refs before checkout.
@@ -1,8 +0,0 @@
1
- ## Release PR workflow
2
-
3
- - `main` is protected by a pull-request requirement, including release version
4
- changes; release commits must be created on a dedicated release branch.
5
- - A release tag is created only after the release PR is green, merged, and
6
- fetched back onto local `main`.
7
- - Publication verification uses non-interactive `gh pr checks` and `gh run
8
- list` polling, then confirms matching crates.io and npm versions.
@@ -1,5 +0,0 @@
1
- ## Release documentation tracked path
2
-
3
- - The repository tracks its agent instructions as `Agents.md`; release-flow
4
- documentation updates must stage that exact path so the release PR includes
5
- the operational guidance as well as its history record.
@@ -1,4 +0,0 @@
1
- ## Release 0.13.9
2
-
3
- - Bump the Cargo and npm package versions together after merging PR #331.
4
- - Refresh the workspace lockfile before creating the release PR and tag.