Merge pull request 'chore: bump @ocas/core to 0.4.1' (#96) from chore/bump-core-0.4.1 into main
CI / check (push) Successful in 6m16s
CI / check (push) Successful in 6m16s
This commit was merged in pull request #96.
This commit is contained in:
@@ -1,17 +0,0 @@
|
|||||||
---
|
|
||||||
"@ocas/core": patch
|
|
||||||
---
|
|
||||||
|
|
||||||
Fix `gc` false-orphan deletion of `oneOf`-linked CAS chains and template content nodes.
|
|
||||||
|
|
||||||
`collectRefs` now traverses `oneOf` sub-schemas (previously skipped even though
|
|
||||||
the meta-schema accepted the keyword), so `walk`/`refs` correctly follow
|
|
||||||
`ocas_ref` fields nested inside `oneOf` combinators (e.g. nullable `prev` /
|
|
||||||
`detail` / `workflow` refs in uwf step chains).
|
|
||||||
|
|
||||||
`gc` no longer treats `@ocas/template/text/*` variables as roots; instead it
|
|
||||||
walks template content only when its referenced schema is itself reachable
|
|
||||||
from non-template roots, mirroring `computeClosure` Phase 3. This prevents
|
|
||||||
orphan template nodes from surviving GC when their schema is unreachable.
|
|
||||||
|
|
||||||
Fixes #93
|
|
||||||
+32
-44
@@ -2,64 +2,52 @@
|
|||||||
|
|
||||||
## 0.4.0 — 2026-06-07
|
## 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.
|
- New `ocas export <root> [<root>...] -o <bundle.tar>` — export CAS closures as self-contained tar bundles.
|
||||||
- Add CAS closure export/import (`ocas export` / `ocas import`):
|
- New `ocas import <bundle.tar> [--scope @new]` — import bundles into a store.
|
||||||
|
- New global `--store <bundle.tar>` flag — open a bundle as read-only store for inspection commands.
|
||||||
- **`@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.
|
- Rename `ocas prompt setup` to `ocas prompt bootstrap` with programmatic generation.
|
||||||
- **`@ocas/cli`**: New `ocas export <root> [<root> ...] -o <bundle.tar>` and `ocas import <bundle.tar> [--scope @new]` commands. New global `--store <bundle.tar>` 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.
|
- New `ocas prompt list` subcommand.
|
||||||
|
|
||||||
## 0.3.1
|
## 0.3.1 — 2026-06-04
|
||||||
|
|
||||||
### Patch Changes
|
- Fix prompt docs: `bun` → `pnpm` install instructions, remove stale `--var-db` flag.
|
||||||
|
|
||||||
- Fix prompt docs: `bun` → `pnpm` install instructions, remove stale `--var-db` flag from usage docs.
|
## 0.3.0 — 2026-06-03
|
||||||
|
|
||||||
## 0.2.0
|
- No CLI-specific changes. Coordinated version bump with `@ocas/fs` 0.3.0.
|
||||||
|
|
||||||
|
## 0.2.2 — 2026-06-03
|
||||||
|
|
||||||
|
- Lint and format fixes.
|
||||||
|
|
||||||
|
## 0.2.1 — 2026-06-03
|
||||||
|
|
||||||
|
- Full CLI build support with `tsc` emit + Node compatibility.
|
||||||
|
- Migrate runtime from Bun to Node.js + pnpm.
|
||||||
|
|
||||||
|
## 0.2.0 — 2026-06-02
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- `Store` is now `{ cas: CasStore, var: VarStore, tag: TagStore }` — all sub-stores accessed via properties
|
- `ocas var tag` subcommand removed — use `ocas tag` / `ocas untag` instead.
|
||||||
- `bootstrap(store)` and `putSchema(store, schema)` are now **synchronous** (were async)
|
|
||||||
- `VariableStore` class removed from `@ocas/core` — SQLite implementation moved to `@ocas/fs`
|
|
||||||
- `createVariableStore()` removed from `@ocas/core`
|
|
||||||
- `openStoreAndVarStore()` removed — use `openStore()` returning unified `Store`
|
|
||||||
- `RenderOptions.varStore` removed — templates resolved via `store.var` internally
|
|
||||||
- `@ocas/core` has zero `bun:sqlite` imports — pure TypeScript
|
|
||||||
- `ocas var tag` subcommand removed — use `ocas tag` / `ocas untag` instead
|
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- `CasStore`, `VarStore`, `TagStore` sub-store types
|
- Top-level `ocas tag <target> <tag>...` and `ocas untag <target> <tag>...` commands.
|
||||||
- `TagStore` — first-class tags on any CAS node (not just variables)
|
- `ocas get` and `ocas var get` now include tag info in output.
|
||||||
- Top-level `ocas tag <target> <tag>...` and `ocas untag <target> <tag>...` commands
|
- `ocas list --tag` and `ocas var list --tag` filter support.
|
||||||
- `ocas get` and `ocas var get` now include tag info in output
|
|
||||||
- `ocas list --tag` and `ocas var list --tag` filter support
|
|
||||||
- `var-store-helpers.ts` — shared validation/history logic
|
|
||||||
- `validation.ts` — shared `validateName()` exported from core
|
|
||||||
|
|
||||||
## 0.1.2
|
## 0.1.2 — 2026-06-02
|
||||||
|
|
||||||
### Patch Changes
|
|
||||||
|
|
||||||
- Fix render output missing trailing newline.
|
- Fix render output missing trailing newline.
|
||||||
- Fix TypeScript LSP errors: tsconfig `noEmit`, `exactOptionalPropertyTypes` conditional spread, `schemaHash` scope.
|
- Add agent skill setup hint with version to help output.
|
||||||
- Add agent skill setup hint with version to help output. Remove postinstall script (blocked by bun security policy). Update `ocas prompt setup` to guide cleanup of old skill versions before installing new ones.
|
- Remove postinstall script.
|
||||||
|
|
||||||
- Updated dependencies:
|
## 0.1.1 — 2026-06-02
|
||||||
- @ocas/core@0.1.2
|
|
||||||
- @ocas/fs@0.1.2
|
|
||||||
|
|
||||||
## 0.1.1
|
- Add `ocas prompt usage` and `ocas prompt setup` commands.
|
||||||
|
- Add `--version` flag.
|
||||||
|
|
||||||
### Patch Changes
|
## 0.1.0 — 2026-06-01
|
||||||
|
|
||||||
- Add `ocas prompt usage` and `ocas prompt setup` commands for agent skill management. Prompt content is bundled with the CLI and versioned with it.
|
Initial release. CLI tool for OCAS with put, get, list, render, verify, gc, var, and template commands.
|
||||||
- Add `--version` flag to display CLI version.
|
|
||||||
|
|
||||||
- Updated dependencies:
|
|
||||||
- @ocas/core@0.1.1
|
|
||||||
- @ocas/fs@0.1.1
|
|
||||||
|
|
||||||
## 0.1.0
|
|
||||||
|
|
||||||
Initial release as `@ocas/cli`. CLI tool for OCAS with put, get, list, render, verify, gc, var, and template commands. Envelope output format with pipe composition support.
|
|
||||||
|
|||||||
+34
-29
@@ -1,47 +1,52 @@
|
|||||||
# @ocas/core
|
# @ocas/core
|
||||||
|
|
||||||
|
## 0.4.1 — 2026-06-07
|
||||||
|
|
||||||
|
- Fix `gc` failing to preserve nodes referenced via `oneOf` — `collectRefs()` now traverses `oneOf` branches alongside existing `anyOf`/`allOf`/`if-then-else` handling.
|
||||||
|
|
||||||
## 0.4.0 — 2026-06-07
|
## 0.4.0 — 2026-06-07
|
||||||
|
|
||||||
- Add CAS closure export/import (`ocas export` / `ocas import`):
|
- 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`).
|
||||||
- **`@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.
|
- New builtin output schemas: `@ocas/output/export`, `@ocas/output/import`.
|
||||||
- **`@ocas/cli`**: New `ocas export <root> [<root> ...] -o <bundle.tar>` and `ocas import <bundle.tar> [--scope @new]` commands. New global `--store <bundle.tar>` 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
|
## 0.3.0 — 2026-06-03
|
||||||
|
|
||||||
|
- No API changes. Coordinated version bump with `@ocas/fs` 0.3.0.
|
||||||
|
|
||||||
|
## 0.2.2 — 2026-06-03
|
||||||
|
|
||||||
|
- Lint and format fixes.
|
||||||
|
|
||||||
|
## 0.2.1 — 2026-06-03
|
||||||
|
|
||||||
|
- Migrate runtime from Bun to Node.js + pnpm.
|
||||||
|
- Migrate test framework from `bun:test` to Vitest.
|
||||||
|
- Extract `VariableStore` SQLite implementation to `@ocas/fs`.
|
||||||
|
|
||||||
|
## 0.2.0 — 2026-06-02
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- `Store` is now `{ cas: CasStore, var: VarStore, tag: TagStore }` — all sub-stores accessed via properties
|
- `Store` is now `{ cas: CasStore, var: VarStore, tag: TagStore }` — all sub-stores accessed via properties.
|
||||||
- `bootstrap(store)` and `putSchema(store, schema)` are now **synchronous** (were async)
|
- `bootstrap(store)` and `putSchema(store, schema)` are now synchronous.
|
||||||
- `VariableStore` class removed from `@ocas/core` — SQLite implementation moved to `@ocas/fs`
|
- `VariableStore` class removed — SQLite implementation moved to `@ocas/fs`.
|
||||||
- `createVariableStore()` removed from `@ocas/core`
|
- `createVariableStore()` removed.
|
||||||
- `openStoreAndVarStore()` removed — use `openStore()` returning unified `Store`
|
- Zero `bun:sqlite` imports — pure TypeScript.
|
||||||
- `RenderOptions.varStore` removed — templates resolved via `store.var` internally
|
|
||||||
- `@ocas/core` has zero `bun:sqlite` imports — pure TypeScript
|
|
||||||
- `ocas var tag` subcommand removed — use `ocas tag` / `ocas untag` instead
|
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- `CasStore`, `VarStore`, `TagStore` sub-store types
|
- `CasStore`, `VarStore`, `TagStore` sub-store types.
|
||||||
- `TagStore` — first-class tags on any CAS node (not just variables)
|
- `validation.ts` — shared `validateName()` exported from core.
|
||||||
- Top-level `ocas tag <target> <tag>...` and `ocas untag <target> <tag>...` commands
|
|
||||||
- `ocas get` and `ocas var get` now include tag info in output
|
|
||||||
- `ocas list --tag` and `ocas var list --tag` filter support
|
|
||||||
- `var-store-helpers.ts` — shared validation/history logic
|
|
||||||
- `validation.ts` — shared `validateName()` exported from core
|
|
||||||
|
|
||||||
## 0.1.2
|
## 0.1.2 — 2026-06-02
|
||||||
|
|
||||||
### Patch Changes
|
|
||||||
|
|
||||||
- Fix TypeScript LSP errors: tsconfig `noEmit`, `exactOptionalPropertyTypes` conditional spread, `schemaHash` scope.
|
- Fix TypeScript LSP errors: tsconfig `noEmit`, `exactOptionalPropertyTypes` conditional spread, `schemaHash` scope.
|
||||||
|
|
||||||
## 0.1.1
|
## 0.1.1 — 2026-06-02
|
||||||
|
|
||||||
### Patch Changes
|
- Internal improvements.
|
||||||
|
|
||||||
- Internal improvements for v0.1.1 release.
|
## 0.1.0 — 2026-06-01
|
||||||
|
|
||||||
## 0.1.0
|
Initial release. Content-addressable store engine with JSON Schema typed nodes, XXH64 hashing, variable store, render with resolution decay, and LiquidJS template support.
|
||||||
|
|
||||||
Initial release as `@ocas/core`. Content-addressable store engine with JSON Schema typed nodes, XXH64 hashing, variable store, render with resolution decay, and LiquidJS template support.
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ocas/core",
|
"name": "@ocas/core",
|
||||||
"version": "0.4.0",
|
"version": "0.4.1",
|
||||||
"description": "Core CAS engine — hashing, schema, store, verify, bootstrap",
|
"description": "Core CAS engine — hashing, schema, store, verify, bootstrap",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"cas",
|
"cas",
|
||||||
|
|||||||
+25
-31
@@ -2,50 +2,44 @@
|
|||||||
|
|
||||||
## 0.4.0 — 2026-06-07
|
## 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.
|
- Lazy loading: `FsStore` scans only filenames in `nodes/` at startup (no CBOR decoding), reads each node from disk on first `get()`. Startup is O(filenames) instead of O(decoded-bytes).
|
||||||
- Move CAS node files from the store root into a `nodes/` subdirectory. Pre-existing flat-layout stores are auto-migrated on first open: any `<HASH>.bin` files in the store root are renamed into `nodes/`. Metadata (`_index/`, `_store.db`, `_meta`) remain at the store root unchanged.
|
- Move CAS node files from store root into `nodes/` subdirectory. Pre-existing flat-layout stores are auto-migrated on first open.
|
||||||
|
|
||||||
## 0.3.0 — 2026-06-03
|
## 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.
|
- Migrate from `better-sqlite3` to built-in `node:sqlite` — zero native addon dependencies.
|
||||||
|
|
||||||
## 0.2.0
|
## 0.2.2 — 2026-06-03
|
||||||
|
|
||||||
|
- Lint and format fixes.
|
||||||
|
|
||||||
|
## 0.2.1 — 2026-06-03
|
||||||
|
|
||||||
|
- Migrate var/tag store from JSONL to `better-sqlite3`.
|
||||||
|
- `openStore()` now returns unified `Store` with `cas`, `var`, `tag` sub-stores.
|
||||||
|
- Migrate runtime from Bun to Node.js + pnpm.
|
||||||
|
|
||||||
|
## 0.2.0 — 2026-06-02
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- `Store` is now `{ cas: CasStore, var: VarStore, tag: TagStore }` — all sub-stores accessed via properties
|
- `openStoreAndVarStore()` removed — use `openStore()` returning unified `Store`.
|
||||||
- `bootstrap(store)` and `putSchema(store, schema)` are now **synchronous** (were async)
|
- `RenderOptions.varStore` removed — templates resolved via `store.var` internally.
|
||||||
- `VariableStore` class removed from `@ocas/core` — SQLite implementation moved to `@ocas/fs`
|
|
||||||
- `createVariableStore()` removed from `@ocas/core`
|
|
||||||
- `openStoreAndVarStore()` removed — use `openStore()` returning unified `Store`
|
|
||||||
- `RenderOptions.varStore` removed — templates resolved via `store.var` internally
|
|
||||||
- `@ocas/core` has zero `bun:sqlite` imports — pure TypeScript
|
|
||||||
- `ocas var tag` subcommand removed — use `ocas tag` / `ocas untag` instead
|
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- `CasStore`, `VarStore`, `TagStore` sub-store types
|
- SQLite-backed `VarStore` and `TagStore` implementations.
|
||||||
- `TagStore` — first-class tags on any CAS node (not just variables)
|
- `TagStore` — first-class tags on any CAS node.
|
||||||
- Top-level `ocas tag <target> <tag>...` and `ocas untag <target> <tag>...` commands
|
- `var-store-helpers.ts` — shared validation/history logic.
|
||||||
- `ocas get` and `ocas var get` now include tag info in output
|
|
||||||
- `ocas list --tag` and `ocas var list --tag` filter support
|
|
||||||
- `var-store-helpers.ts` — shared validation/history logic
|
|
||||||
- `validation.ts` — shared `validateName()` exported from core
|
|
||||||
|
|
||||||
## 0.1.2
|
## 0.1.2 — 2026-06-02
|
||||||
|
|
||||||
### Patch Changes
|
- Updated dependencies.
|
||||||
|
|
||||||
- Updated dependencies:
|
## 0.1.1 — 2026-06-02
|
||||||
- @ocas/core@0.1.2
|
|
||||||
|
|
||||||
## 0.1.1
|
- Updated dependencies.
|
||||||
|
|
||||||
### Patch Changes
|
## 0.1.0 — 2026-06-01
|
||||||
|
|
||||||
- Updated dependencies:
|
Initial release. Filesystem-backed CAS store with SQLite indexing and auto-bootstrap.
|
||||||
- @ocas/core@0.1.1
|
|
||||||
|
|
||||||
## 0.1.0
|
|
||||||
|
|
||||||
Initial release as `@ocas/fs`. Filesystem-backed CAS store with SQLite indexing and auto-bootstrap.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user