Skip to content

release: prepare git-cas v6.5.0#83

Merged
flyingrobots merged 3 commits into
mainfrom
release/v6.5.0
Jul 18, 2026
Merged

release: prepare git-cas v6.5.0#83
flyingrobots merged 3 commits into
mainfrom
release/v6.5.0

Conversation

@flyingrobots

Copy link
Copy Markdown
Member

Linked Issue

Summary

  • prepare the reviewed bounded bundle-reference and immutable-metadata implementation for v6.5.0;
  • publish v6.5.0 release notes, upgrade guidance, lifecycle assertions, roadmap truth, and an explicitly unpublished candidate witness;
  • record the RootSet compare-and-swap and bounded-cache settlement repairs that landed during implementation review;
  • preserve unfinished operator TUI, agent automation, and browser work in later milestones rather than claiming it as shipped.

Design / Proof

  • Design doc: docs/design/0050-lazy-bundle-reference-reads/lazy-bundle-reference-reads.md
  • Feature witness: docs/design/0050-lazy-bundle-reference-reads/witness/verification.md
  • Release candidate witness: docs/design/0050-lazy-bundle-reference-reads/witness/release-candidate.md

Validation

mise exec node@22.23.0 -- pnpm run release:verify
  14/14 gates passed
  6,625 tests observed
  Node unit: 2,020
  Bun unit: 2,019
  Deno unit: 2,010
  Node/Bun/Deno integration: 192 each
  npm pack dry-run: PASS
  JSR publish dry-run: PASS

npm pack --dry-run --json
  249 files
  769,785 packed bytes observed in the final verifier run
  2,149,364 unpacked bytes

focused release contract
  53/53 passed

scripts/diagnostics/stress-root-set-replacement.js
  500/500 passed

The packed byte count is an observation rather than a reproducibility invariant because build metadata is stamped during packaging.

Graft found no removed JavaScript exports. Its only semver warning is the additive package.json files array entry that packages docs/releases/v6.5.0.md; this does not change an executable API signature.

Self-Review

Strict review found one incorrect source citation in the release witness. Commit f788e71e corrected it to the direct target-type validation block. The post-fix worktree was clean, refs were fetched, and no unresolved code, documentation, migration, or packaging findings remained.

Release Impact

  • Changelog updated.
  • Public docs and upgrade guidance updated.
  • Version metadata aligned across npm, JSR, and runtime exports.
  • Milestones and roadmap preserve unfinished work honestly.
  • Tag, npm provenance, and final GitHub Release evidence remain pending.

@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 55 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1c27fc91-3244-49c1-91a5-4f391c5882ff

📥 Commits

Reviewing files that changed from the base of the PR and between f788e71 and d65f177.

📒 Files selected for processing (1)
  • UPGRADING.md
📝 Walkthrough

Walkthrough

This PR prepares the v6.5.0 release by updating package metadata, release and upgrade documentation, candidate evidence, status tracking, and documentation lifecycle tests.

Changes

v6.5.0 release preparation

Layer / File(s) Summary
Version metadata and package documentation
package.json, jsr.json, src/package-version.js, README.md, CHANGELOG.md, test/unit/docs/package-docs.test.js
Version references, release links, package contents, and packaged-document checks are updated for v6.5.0.
Release notes and upgrade contract
docs/releases/v6.5.0.md, UPGRADING.md, CHANGELOG.md, test/unit/docs/release-truth.test.js
Documentation covers direct bundle references, bounded reuse, concurrency repairs, verification evidence, and upgrade behavior.
Candidate posture and lifecycle validation
STATUS.md, ROADMAP.md, docs/design/0050-lazy-bundle-reference-reads/witness/release-candidate.md, test/unit/docs/release-state.test.js
Release posture, design references, candidate evidence, publication gates, and lifecycle assertions are updated for v6.5.0.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related issues

  • git-stunts/git-warp issue 734 — RootSet and cache ownership concerns align with the documented concurrency and cache-settlement repairs.

Possibly related PRs

Suggested reviewers: git-stunts

Poem

A bunny bumps the version bright,
And links the release notes just right.
Root races settle, caches behave,
Docs hop neatly from page to page.
v6.5.0 leaves a trail of light.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately summarizes the main change: preparing the git-cas v6.5.0 release.
Description check ✅ Passed The description covers all required template sections with linked issue, design/proof, validation, and release impact details.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@flyingrobots

Copy link
Copy Markdown
Member Author

Self-Code Review

@codex please confirm this post-fix review posture.

Severity Open Resolved
Critical 0 0
High 0 0
Medium 0 1
Low 0 0

Resolved Finding

File Infraction Severity Resolution
docs/design/0050-lazy-bundle-reference-reads/witness/release-candidate.md The direct-target-validation claim cited descriptor-cache lines that did not support the claim. Medium, evidence integrity Commit f788e71e changed the citation to the actual leaf-reference OID and object-type validation block. [cite: docs/design/0050-lazy-bundle-reference-reads/witness/release-candidate.md#48@f788e71e]

Post-Fix Verdict

No unresolved logical, packaging, migration, documentation, public-API, or test findings remain.

  • Pre-review worktree: clean; no unstaged or untracked paths.
  • Refs: fetched from origin immediately before review.
  • Diff reviewed: origin/main...HEAD, 13 files.
  • Graft: no removed exports; the only semver alert is the additive package-files entry for the v6.5.0 release note.
  • Complete verifier: 14/14, 6,625 tests.
  • Pre-push gate: lint plus 2,020 Node unit tests passed.
  • Focused post-witness contract: 53/53 passed.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@UPGRADING.md`:
- Around line 430-437: Update the impact cell for “Plaintext + gzip restore now
streams” to use a complete sentence, such as stating that this lowers memory
usage and should be transparent. Leave the other table entries unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 8b8925c3-86ac-4dd7-8173-4e2bb0bf0074

📥 Commits

Reviewing files that changed from the base of the PR and between d5f770f and f788e71.

📒 Files selected for processing (13)
  • CHANGELOG.md
  • README.md
  • ROADMAP.md
  • STATUS.md
  • UPGRADING.md
  • docs/design/0050-lazy-bundle-reference-reads/witness/release-candidate.md
  • docs/releases/v6.5.0.md
  • jsr.json
  • package.json
  • src/package-version.js
  • test/unit/docs/package-docs.test.js
  • test/unit/docs/release-state.test.js
  • test/unit/docs/release-truth.test.js
📜 Review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: test-docker (deno)
  • GitHub Check: test-docker (bun)
  • GitHub Check: test-docker (node)
🧰 Additional context used
📓 Path-based instructions (5)
docs/design/**

📄 CodeRabbit inference engine (AGENTS.md)

Use docs/design/ directory for durable design contracts and proof plans

Files:

  • docs/design/0050-lazy-bundle-reference-reads/witness/release-candidate.md
CHANGELOG.md

📄 CodeRabbit inference engine (AGENTS.md)

Use CHANGELOG.md to record the historical truth of merged behavior

Files:

  • CHANGELOG.md
STATUS.md

📄 CodeRabbit inference engine (AGENTS.md)

Use STATUS.md as a compact snapshot of release and runtime truth

Files:

  • STATUS.md
README.md

📄 CodeRabbit inference engine (AGENTS.md)

Use README.md as the public front door, core value prop, and quick start documentation

Files:

  • README.md
ROADMAP.md

📄 CodeRabbit inference engine (AGENTS.md)

Use ROADMAP.md as a signpost to the GitHub release tracker

Files:

  • ROADMAP.md
🧠 Learnings (3)
📚 Learning: 2026-07-13T17:00:46.222Z
Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 65
File: src/domain/helpers/isCanonicalCollectionKey.js:21-35
Timestamp: 2026-07-13T17:00:46.222Z
Learning: In git-stunts/git-cas, the codebase is intended to run on multiple JavaScript runtimes (Node, Bun, and Deno), not just Node. During code review, don’t suggest replacing existing portable helper logic with newer Node-only built-ins (e.g., Node 20+ APIs like `String.prototype.isWellFormed()`) unless the change preserves Bun/Deno compatibility (via portable/polyfill implementations or safe runtime gating). If a file includes manual implementations (such as `src/domain/helpers/isCanonicalCollectionKey.js`), treat them as intentional to avoid requiring a higher host built-in baseline.

Applied to files:

  • src/package-version.js
📚 Learning: 2026-02-28T19:21:13.982Z
Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 15
File: test/unit/domain/services/CasService.envelope.test.js:326-330
Timestamp: 2026-02-28T19:21:13.982Z
Learning: In fuzz tests for cryptographic operations, use a seeded PRNG (e.g., xorshift32) for control-flow variables such as plaintext size selection and recipient index selection to ensure reproducibility. Continue to use randomBytes() for cryptographic keys and nonces to preserve realistic randomness and avoid security anti-patterns. This guideline applies to test files that perform fuzz testing of crypto logic; implement a consistent seed setup (e.g., fixed seed in test initialization) and document the rationale to enable deterministic replays across runs.

Applied to files:

  • test/unit/docs/release-truth.test.js
  • test/unit/docs/package-docs.test.js
  • test/unit/docs/release-state.test.js
📚 Learning: 2026-03-30T19:53:48.000Z
Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 29
File: docs/design/TR-010-planning-index-consistency-review.md:121-131
Timestamp: 2026-03-30T19:53:48.000Z
Learning: In this repo, CHANGELOG.md entries should be user-facing and descriptive (bullet points) rather than cycle-ID headings (e.g., use a phrase like “Planning-index consistency review” instead of a “TR-010 — …” heading). When searching the changelog, don’t rely on grepping for cycle IDs (e.g., “TR-010”) because it may cause false negatives; search for the descriptive keywords/phrases from the bullet entries instead.

Applied to files:

  • CHANGELOG.md
🪛 LanguageTool
docs/design/0050-lazy-bundle-reference-reads/witness/release-candidate.md

[style] ~98-~98: Consider removing “of” to be more concise
Context: ...Gate Publication remains blocked until all of the following are true: 1. the release PR ...

(ALL_OF_THE)

docs/releases/v6.5.0.md

[style] ~7-~7: ‘under stress’ might be wordy. Consider a shorter alternative.
Context: ... cases found while proving the new path under stress. This release is API-additive. It does...

(EN_WORDINESS_PREMIUM_UNDER_STRESS)

UPGRADING.md

[style] ~432-~432: To form a complete sentence, be sure to include a subject.
Context: ...e now streams | Lower memory usage. Should be transparent. ...

(MISSING_IT_THERE)

🔇 Additional comments (13)
CHANGELOG.md (1)

10-11: LGTM!

Also applies to: 29-40

README.md (1)

47-47: LGTM!

Also applies to: 97-111, 205-206

jsr.json (1)

3-3: LGTM!

package.json (1)

3-3: LGTM!

Also applies to: 39-39

src/package-version.js (1)

1-1: LGTM!

docs/design/0050-lazy-bundle-reference-reads/witness/release-candidate.md (1)

1-110: LGTM!

test/unit/docs/release-state.test.js (1)

6-13: LGTM!

Also applies to: 27-44, 46-75, 87-132

test/unit/docs/package-docs.test.js (1)

17-20: LGTM!

Also applies to: 88-88, 136-138

UPGRADING.md (1)

5-49: LGTM!

Also applies to: 246-252, 333-337

docs/releases/v6.5.0.md (1)

1-141: LGTM!

test/unit/docs/release-truth.test.js (1)

171-173: LGTM!

Also applies to: 220-235

ROADMAP.md (1)

32-44: LGTM!

Also applies to: 45-52

STATUS.md (1)

4-5: LGTM!

Also applies to: 21-27, 113-117

Comment thread UPGRADING.md
@flyingrobots
flyingrobots merged commit f464b92 into main Jul 18, 2026
6 checks passed
@flyingrobots
flyingrobots deleted the release/v6.5.0 branch July 18, 2026 18:01
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