@calcit/procs 0.13.27 → 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.
- package/.yarn/install-state.gz +0 -0
- package/README.md +34 -34
- package/RFCs/02-04-runtime-traits-plan.md +1 -1
- package/RFCs/02-17-register-platform-api-rfc.md +1 -1
- package/RFCs/02-18-language-theory-evolution-plan.md +3 -3
- package/RFCs/03-05-function-schema-dual-track-rfc.md +3 -3
- package/RFCs/03-18-query-def-tree-show-chunked-display-plan.md +11 -11
- package/RFCs/04-13-type-slot-mechanism-rfc.md +10 -10
- package/RFCs/05-12-program-diff-rfc.md +7 -7
- package/RFCs/06-15-effects-graph-rfc.md +16 -16
- package/RFCs/07-06-semantic-tree-navigation-rfc.md +33 -33
- package/RFCs/07-19-doc-knowledge-index-rfc.md +15 -15
- package/RFCs/07-19-type-introspection-consistency-rfc.md +3 -3
- package/RFCs/07-26-agent-docs-and-evaluation-rfc.md +1 -1
- package/RFCs/07-26-agent-machine-protocol-rfc.md +5 -5
- package/RFCs/07-26-safe-structured-editing-rfc.md +4 -4
- package/RFCs/07-26-static-semantic-analysis-rfc.md +9 -9
- package/RFCs/07-28-git-module-store-rfc.md +4 -4
- package/RFCs/07-28-persistent-tree-cursor-rfc.md +54 -54
- package/RFCs/08-08-cross-backend-host-ffi-contracts-rfc.md +4 -4
- package/RFCs/08-14-architecture-scaffold-rfc.md +7 -7
- package/RFCs/08-14-todo-placeholder-rfc.md +2 -2
- package/RFCs/08-18-calcit-typed-js-ffi-boundary-rfc.md +2 -2
- package/RFCs/08-21-js-ffi-runtime-contract-validation-rfc.md +295 -0
- package/RFCs/08-21-setup-calcit-version-and-toolchain-contract-rfc.md +241 -0
- package/RFCs/08-21-static-type-system-evolution-roadmap.md +315 -0
- package/RFCs/08-21-type-quality-ci-adoption-rfc.md +272 -0
- package/RFCs/README.md +7 -4
- package/editing-history/20260820-1704-repository-maintenance-review.md +21 -0
- package/editing-history/20260821-1512-type-system-ecosystem-rfcs.md +25 -0
- package/editing-history/20260821-1648-type-quality-and-ffi-doc-hints.md +12 -0
- package/editing-history/202608211958-calcit-command-alias.md +6 -0
- package/editing-history/202608212018-cli-review-followups.md +4 -0
- package/editing-history/202608212200-review-followups.md +11 -0
- package/editing-history/202608212232-unsafe-coerce-inventory.md +25 -0
- package/editing-history/202608212243-unsafe-coerce-boundary-evidence.md +27 -0
- package/editing-history/202608212305-quality-unsafe-boundary-gate.md +13 -0
- package/editing-history/202608212327-quality-agent-protocol-v2.md +7 -0
- package/editing-history/202608212330-release-asset-manifest.md +9 -0
- package/editing-history/202608212334-quality-v1-reporting.md +10 -0
- package/editing-history/202608212344-quality-metric-name-comparison.md +5 -0
- package/editing-history/202608212345-release-manifest-review.md +6 -0
- package/editing-history/202608212346-quality-baseline-migration-docs.md +5 -0
- package/editing-history/202608220012-release-0-13-29.md +5 -0
- package/editing-history/ARCHIVE.md +45 -4
- package/editing-history/README.md +3 -1
- package/history/202608212020-release-01328.md +5 -0
- package/lib/package.json +11 -11
- package/package.json +11 -11
- package/profiling/README.md +3 -3
- package/profiling/profile-once.sh +1 -1
- package/profiling/samply-once.sh +4 -4
- package/profiling/samply-summary.py +1 -1
- package/editing-history/2026-07-28-1346-edit-transaction.md +0 -27
- package/editing-history/2026-07-28-1454-persistent-tree-cursor.md +0 -30
- package/editing-history/2026-07-28-1651-cursor-focus-stack-clipboard.md +0 -30
- package/editing-history/2026-07-28-1719-cursor-navigation-search-selection.md +0 -21
- package/editing-history/2026-07-28-1958-agent-rfc-split.md +0 -14
- package/editing-history/2026-07-28-2004-cursor-editing-docs.md +0 -14
- package/editing-history/2026-07-28-2132-cursor-recoverable-clipboard.md +0 -18
- package/editing-history/2026-07-28-2151-cursor-native-structural-editing.md +0 -20
- package/editing-history/2026-07-28-2158-document-cursor-native-workflows.md +0 -13
- package/editing-history/2026-07-29-0022-add-cursor-cli-options.md +0 -7
- package/editing-history/2026-07-29-0022-audit-cursor-development-scenarios.md +0 -6
- package/editing-history/2026-07-29-0022-complete-cursor-structural-edits.md +0 -8
- package/editing-history/2026-07-29-0022-document-cursor-edit-recipes.md +0 -8
- package/editing-history/2026-07-29-0022-edit-target-cursor-alias.md +0 -6
- package/editing-history/2026-07-29-0022-guide-agents-through-cursor-workflows.md +0 -7
- package/editing-history/2026-07-29-0022-query-from-active-cursor.md +0 -8
- package/editing-history/2026-07-29-0022-tree-target-cursor-alias.md +0 -5
- package/editing-history/202608021730-release-0.12.58.md +0 -5
- package/editing-history/202608021928-release-0.12.59.md +0 -5
- package/editing-history/202608082312-release-0.13.5.md +0 -10
- package/editing-history/202608090107-release-0.13.6.md +0 -10
- package/editing-history/202608091812-release-0.13.7.md +0 -8
- package/editing-history/202608101042-release-0.13.8.md +0 -6
- package/editing-history/202608101101-release-pr-workflow.md +0 -8
- package/editing-history/202608101102-release-doc-tracked-path.md +0 -5
- package/editing-history/202608110140-release-0.13.9.md +0 -4
- package/editing-history/202608111349-release-0.13.10.md +0 -13
- package/editing-history/202608111650-release-0.13.11.md +0 -5
- package/editing-history/202608121900-release-0.13.12.md +0 -5
- package/editing-history/202608130003-release-0.13.13.md +0 -9
- package/editing-history/202608131650-release-0.13.15.md +0 -10
- package/editing-history/20260816-0254-release-0.13.17.md +0 -5
- package/editing-history/20260817-0006-release-0-13-18.md +0 -6
- package/editing-history/202608171118-project-module-runtime-resolution.md +0 -6
- package/editing-history/202608171133-visible-module-versions-and-cleanup.md +0 -6
- package/editing-history/202608171140-module-caches-root.md +0 -5
- package/editing-history/202608171200-module-cache-review-follow-up.md +0 -5
- package/editing-history/202608171205-release-0-13-19.md +0 -4
- package/editing-history/202608171215-module-path-resolution-docs.md +0 -4
- package/editing-history/202608171409-module-cache-review-followup.md +0 -5
- package/editing-history/202608171427-module-cache-review-followup-locking.md +0 -5
- package/editing-history/202608171438-module-docs-home-lock.md +0 -4
- package/editing-history/202608171611-dependency-audit-review.md +0 -4
- package/editing-history/202608181000-release-0-13-20.md +0 -5
- 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,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.
|
|
@@ -13,10 +13,10 @@ navigation layer.
|
|
|
13
13
|
|
|
14
14
|
## Release history (Jul–Aug 2026)
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
| --- | --- |
|
|
@@ -26,11 +26,28 @@ from 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. |
|
|
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
|
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@calcit/procs",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.29",
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
26
|
-
"try-rs": "cargo run --bin
|
|
27
|
-
"warn-dyn-method": "cargo run --bin
|
|
28
|
-
"try-js-brk": "cargo run --bin
|
|
29
|
-
"try-js": "cargo run --bin
|
|
30
|
-
"try-ir": "cargo run --bin
|
|
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.
|
|
3
|
+
"version": "0.13.29",
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
26
|
-
"try-rs": "cargo run --bin
|
|
27
|
-
"warn-dyn-method": "cargo run --bin
|
|
28
|
-
"try-js-brk": "cargo run --bin
|
|
29
|
-
"try-js": "cargo run --bin
|
|
30
|
-
"try-ir": "cargo run --bin
|
|
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/profiling/README.md
CHANGED
|
@@ -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/
|
|
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/
|
|
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/
|
|
83
|
+
- `samply-once.sh` 会先 `cargo build`,再直接对 `target/debug/calcit` 或 `target/release/calcit` 录制,避免把 `rustc` 编译过程混入热点。
|
|
84
84
|
- 临时产物位于 `.tmp-profiles/`,可按需清理。
|
package/profiling/samply-once.sh
CHANGED
|
@@ -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
|
|
41
|
-
binary="target/release/
|
|
40
|
+
build_args=(build --release --bin calcit)
|
|
41
|
+
binary="target/release/calcit"
|
|
42
42
|
else
|
|
43
|
-
build_args=(build --bin
|
|
44
|
-
binary="target/debug/
|
|
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/
|
|
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`.
|