diff --git a/.changeset/bootstrap-rename.md b/.changeset/bootstrap-rename.md deleted file mode 100644 index 42d59ea..0000000 --- a/.changeset/bootstrap-rename.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ocas/cli": patch ---- - -Rename `ocas prompt setup` to `ocas prompt bootstrap` with programmatic generation (dynamic CLI_VERSION injection). Add `ocas prompt list` subcommand. diff --git a/.changeset/export-import-bundle.md b/.changeset/export-import-bundle.md deleted file mode 100644 index 22ebf99..0000000 --- a/.changeset/export-import-bundle.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@ocas/core": minor -"@ocas/cli": minor ---- - -Add CAS closure export/import (`ocas export` / `ocas import`): - -- **`@ocas/core`**: New `computeClosure(store, roots)` traverses references and schema chains to gather a complete CAS closure. New `exportBundle()` / `importBundle()` / `loadBundleStore()` produce and consume self-contained POSIX-tar bundles (`cas/*.bin` CBOR payloads, `vars.jsonl`, `tags.jsonl`). Added `@ocas/output/export` and `@ocas/output/import` builtin output schemas. -- **`@ocas/cli`**: New `ocas export [ ...] -o ` and `ocas import [--scope @new]` commands. New global `--store ` flag opens a bundle as a read-only store for inspection commands (`get`, `walk`, `refs`, `var list`, …). Write commands reject `--store` with a clear error. diff --git a/.changeset/fsstore-lazy-loading.md b/.changeset/fsstore-lazy-loading.md deleted file mode 100644 index 595afc4..0000000 --- a/.changeset/fsstore-lazy-loading.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ocas/fs": patch ---- - -`FsStore` now uses lazy loading: at startup it scans only filenames in the `nodes/` subdirectory (no CBOR decoding) and reads each node from disk on first `get()`. This makes startup O(filenames) instead of O(decoded-bytes), keeps memory usage bounded by what's actually accessed, and avoids paying the full-load cost for stores with many nodes. Behaviour is unchanged: `has()`, `listAll()`, `listByType()`, `listMeta()`, and `listSchemas()` return the same results as before. Index/meta migration paths still work — they perform a one-time scan + decode when `_index/` is missing. diff --git a/.changeset/nodes-subdirectory.md b/.changeset/nodes-subdirectory.md deleted file mode 100644 index f6c9451..0000000 --- a/.changeset/nodes-subdirectory.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@ocas/fs": minor ---- - -Move CAS node files from the store root into a `nodes/` subdirectory. Pre-existing flat-layout stores are auto-migrated on first open: any `.bin` files in the store root are renamed into `nodes/`. Metadata (`_index/`, `_store.db`, `_meta`) remain at the store root unchanged. diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index a197cd2..01b819c 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,13 @@ # @ocas/cli +## 0.4.0 — 2026-06-07 + +- Rename `ocas prompt setup` to `ocas prompt bootstrap` with programmatic generation (dynamic CLI_VERSION injection). Add `ocas prompt list` subcommand. +- Add CAS closure export/import (`ocas export` / `ocas import`): + + - **`@ocas/core`**: New `computeClosure(store, roots)` traverses references and schema chains to gather a complete CAS closure. New `exportBundle()` / `importBundle()` / `loadBundleStore()` produce and consume self-contained POSIX-tar bundles (`cas/*.bin` CBOR payloads, `vars.jsonl`, `tags.jsonl`). Added `@ocas/output/export` and `@ocas/output/import` builtin output schemas. + - **`@ocas/cli`**: New `ocas export [ ...] -o ` and `ocas import [--scope @new]` commands. New global `--store ` flag opens a bundle as a read-only store for inspection commands (`get`, `walk`, `refs`, `var list`, …). Write commands reject `--store` with a clear error. + ## 0.3.1 ### Patch Changes diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index aafff83..c8758fa 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,12 @@ # @ocas/core +## 0.4.0 — 2026-06-07 + +- Add CAS closure export/import (`ocas export` / `ocas import`): + + - **`@ocas/core`**: New `computeClosure(store, roots)` traverses references and schema chains to gather a complete CAS closure. New `exportBundle()` / `importBundle()` / `loadBundleStore()` produce and consume self-contained POSIX-tar bundles (`cas/*.bin` CBOR payloads, `vars.jsonl`, `tags.jsonl`). Added `@ocas/output/export` and `@ocas/output/import` builtin output schemas. + - **`@ocas/cli`**: New `ocas export [ ...] -o ` and `ocas import [--scope @new]` commands. New global `--store ` flag opens a bundle as a read-only store for inspection commands (`get`, `walk`, `refs`, `var list`, …). Write commands reject `--store` with a clear error. + ## 0.2.0 ### Breaking Changes diff --git a/packages/fs/CHANGELOG.md b/packages/fs/CHANGELOG.md index 1090ab9..8b5bc98 100644 --- a/packages/fs/CHANGELOG.md +++ b/packages/fs/CHANGELOG.md @@ -1,5 +1,10 @@ # @ocas/fs +## 0.4.0 — 2026-06-07 + +- `FsStore` now uses lazy loading: at startup it scans only filenames in the `nodes/` subdirectory (no CBOR decoding) and reads each node from disk on first `get()`. This makes startup O(filenames) instead of O(decoded-bytes), keeps memory usage bounded by what's actually accessed, and avoids paying the full-load cost for stores with many nodes. Behaviour is unchanged: `has()`, `listAll()`, `listByType()`, `listMeta()`, and `listSchemas()` return the same results as before. Index/meta migration paths still work — they perform a one-time scan + decode when `_index/` is missing. +- Move CAS node files from the store root into a `nodes/` subdirectory. Pre-existing flat-layout stores are auto-migrated on first open: any `.bin` files in the store root are renamed into `nodes/`. Metadata (`_index/`, `_store.db`, `_meta`) remain at the store root unchanged. + ## 0.3.0 — 2026-06-03 - Migrate from better-sqlite3 to built-in node:sqlite — zero native addon dependencies, no more NODE_MODULE_VERSION mismatch across Node upgrades.