Repository navigation
docs(spec): mark the TypeScript default tenant conformant from @cachekit-io/cachekit 0.2.1 (LAB-11371) - #215
Conversation
…kit-io/cachekit 0.2.1 Published 0.2.1 derives the key and builds the AAD under one 'default' tenant; createCache.secure() with no tenantId decrypts default_tenant_interop through an interop-mode wrap read. npm 0.1.5 still mismatches.
Code Review Completed! 🔥The code review was successfully completed based on your current configurations. Kody Guide: Usage and ConfigurationInteracting with Kody
Providing Context (Files & MCPs)Add these hints in your PR description (or a comment) to unlock deeper checks:
Current Kody ConfigurationReview OptionsThe following review options are enabled or disabled:
|
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Record TypeScript conformance evidence spec/intent-presets.md, changelog.d/20261027_lab-11371.md, conformance/coverage.md |
The specification and changelog record TypeScript 0.2.1+ conformance, including default tenant values for key derivation and AAD, rejection of an empty tenant ID, and a successful interop read. The coverage report updates its specification line references. |
Priority:
Estimated code review effort: 1 (Trivial) | ~4 minutes
Change: Other
Possibly related PRs
- cachekit-io/protocol#206: Records the Rust conformance result for the same default-tenant interoperability rule.
- cachekit-io/protocol#200: Updates the SDK conformance area and includes the Rust default-tenant handling row.
Suggested reviewers: kodus-27b
Merge Risk: 
Minimal · up to 2f3d5
-
The conformance documentation and coverage references are ready to merge.
Pre-merge checks: 
5
-
Full details: Title check
-
Explanation
The title names the change: the TypeScript default tenant is marked conformant from
@cachekit-io/cachekit0.2.1, with the ticket reference LAB-11371. The raw summary and objectives confirm that the spec table cell changes from failing to passing, a version floor is added, and a changelog fragment is included. The title is specific and matches the main change.
Full details: Description check
-
Explanation
The description matches the changeset. It explains the flipped cell in spec/intent-presets.md, the 0.2.1 floor added to the section preface, the changelog.d fragment, and the regenerated conformance/coverage.md. It also gives the evidence and checks that support the change.
Full details: Docstring Coverage
-
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (3 skipped: 3 unsupported.)
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
Flips the TypeScript cell of the
spec/intent-presets.md§ SDK Conformance row "Defaulttenant_idis"default", identical for HKDF and AAD" from ❌ to ✅, with the floor@cachekit-io/cachekit0.2.1+. Adds the TypeScript 0.2.1 floor sentence to the section preface and achangelog.d/fragment.conformance/coverage.mdis regenerated; only its line numbers moved. Docs only.The old cell said key derivation used
'default'while the AAD used''. That was true at the pinnedcachekit-ts@379847cand is still true of npm 0.1.5. In 0.2.1 oneeffectiveTenantId = tenantId ?? 'default'feeds both, and an emptytenantIdis rejected at construction.Evidence
Executed 2026-10-27 against the published npm artifacts, not
main.@cachekit-io/cachekit@0.2.1installed from npm, integritysha512-YEYpID8q…E2mTg==(matchesnpm view dist.integrity), Node 26.backendholds onlytest-vectors/encryption.json(1.5.0)default_tenant.vectors[0](default_tenant_interop) ciphertext at itscache_key, which equalsinterop-mode.jsonsingle_int.expected_key.setthrows.createCache.secure({ masterKey: <master_key_hex>, backend, metrics: false }), notenantId.cache.wrap(fn, { namespace: 'users', ttl: 60, interop: 'get_user', interopArity: 1 }), wherefnthrows, called with42.tenantId{age: 30, name: "alice"};fnnot called"other"(control)fncalled and throwsfncalled and throwsThe two controls show the read fails when the tenant is wrong, so the 0.2.1 pass is not vacuous. The floor is 0.2.1, not 0.2.0: npm 0.2.0 is deprecated (it pins an unpublished core package), as the feature matrix's footnote 17 already notes.
sdk-feature-matrix.mdhas no default-tenant HKDF/AAD row; its "Tenancy on the encrypted preset" row already gives 0.2.1 for TypeScript, so it is unchanged.Checks
python3 tools/test_conformance.py: 284 cases pass.python3 tools/conformance.py check --base origin/main: OK,conformance/coverage.mdis current.check-spec-duplication.py,check-version-floors.pyandtest_changelog_collect.pypass.CHANGELOG.mdis untouched.Closes LAB-11371