Skip to content

feat: initial version 0.1.0#1

Merged
b2m9 merged 9 commits into
mainfrom
feat/initial-version
Jul 11, 2026
Merged

feat: initial version 0.1.0#1
b2m9 merged 9 commits into
mainfrom
feat/initial-version

Conversation

@b2m9

@b2m9 b2m9 commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Summary by cubic

Release the initial @b2m9/keyfold v0.1.0: a typed ESM library that folds partial deltas into nested state with identity‑keyed list reconciliation. Provides an immutable, deterministic merge for plain objects and keyed arrays.

  • New Features

    • createMerger<T, Atomic>(options) with keyBy, replace (supports "list[]" item swap), and optional wireDeletes.
    • Objects deep‑merge; keyed lists reconcile with $delete tombstones; unkeyed arrays and non‑plain objects replace.
    • Deletes and safety: DELETE and DELETE_TOKEN (when wired); null sets null; undefined is ignored; validates with KeyfoldConfigError/KeyfoldMergeError; ignores __proto__, constructor, prototype; immutable with structural sharing.
  • Bug Fixes

    • Built‑in Error is treated as opaque in Delta<T>; error‑shaped payloads remain structural.
    • No‑op folds now keep base references without discarding explicit inserts or replacements (e.g., empty objects/arrays supplied intentionally are retained).

Written for commit d06a90d. Summary will update on new commits.

Review in cubic

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 23 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name=".github/workflows/ci.yml">

<violation number="1" location=".github/workflows/ci.yml:19">
P2: This workflow depends on mutable major-version action tags for both checkout and setup-node, so a retagged or compromised action release can change CI code without a repository diff. Consider pinning each action to a verified full-length commit SHA.</violation>
</file>

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

Comment thread .github/workflows/ci.yml
@@ -0,0 +1,25 @@
name: CI

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This workflow depends on mutable major-version action tags for both checkout and setup-node, so a retagged or compromised action release can change CI code without a repository diff. Consider pinning each action to a verified full-length commit SHA.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/ci.yml, line 19:

<comment>This workflow depends on mutable major-version action tags for both checkout and setup-node, so a retagged or compromised action release can change CI code without a repository diff. Consider pinning each action to a verified full-length commit SHA.</comment>

<file context>
@@ -0,0 +1,25 @@
+        node-version: [20, 24]
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: actions/setup-node@v4
+        with:
</file context>

Comment thread src/types.ts
Comment thread src/merge.ts Outdated

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All reported issues were addressed across 5 files (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread README.md Outdated
@b2m9 b2m9 merged commit 9b1ca13 into main Jul 11, 2026
4 checks passed
@b2m9 b2m9 deleted the feat/initial-version branch July 11, 2026 18:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant