-
Notifications
You must be signed in to change notification settings - Fork 0
Release git-cas v6.5.4 #101
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
102 changes: 102 additions & 0 deletions
102
docs/design/0054-batched-page-retention/witness/release-candidate.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,102 @@ | ||
| # PERF-0054 v6.5.4 Release Candidate Witness | ||
|
|
||
| Date: 2026-07-26 | ||
|
|
||
| Issue: #99 | ||
|
|
||
| Implementation review: #100 | ||
|
|
||
| Release review: #101 | ||
|
|
||
| ## Scope | ||
|
|
||
| This witness records the pre-publication release candidate for batched | ||
| staging-workspace page retention. It does not claim that a `v6.5.4` tag, npm | ||
| artifact, or GitHub Release exists. This is an explicitly unpublished | ||
| candidate. | ||
|
|
||
| The candidate: | ||
|
|
||
| - sets npm, JSR, and the runtime `PACKAGE_VERSION` export to `6.5.4`; | ||
| - moves batched workspace page retention from `Unreleased` to `6.5.4`; | ||
| - packages and links `docs/releases/v6.5.4.md`; | ||
| - adds v6.5.3-to-v6.5.4 compatibility guidance to `UPGRADING.md`; | ||
| - marks design 0054 landed and records its release-candidate posture; | ||
| - preserves all v6.5.3 publication evidence as immutable history; and | ||
| - leaves tag and registry publication claims deliberately absent. | ||
|
|
||
| ## Implementation Provenance | ||
|
|
||
| | Capability | Review anchor | Commit | | ||
| | ---------------------------------- | ------------- | ------------------------------------------ | | ||
| | Batched workspace page retention | #100 | `6dba2bab22241276a316d2af12f06704f7582eee` | | ||
| | Independent ordered-result proof | #100 | `18d3c9e66b4c1cef6c6c148dd6d21eeb544d5b5d` | | ||
| | Reviewed feature merge | #100 | `e6c58f10bf5244d0ee815a60636dec3c896ef38f` | | ||
|
|
||
| The staging workspace delegates one bounded page batch, resolves every page, | ||
| deduplicates only the installed target map, installs one generation, and maps | ||
| the exact witness back to every ordered result. | ||
|
|
||
| [cite: `src/domain/services/StagingWorkspace.js#209-269@e6c58f10bf5244d0ee815a60636dec3c896ef38f`] | ||
|
|
||
| Unit coverage derives expected handles independently and proves input order, | ||
| duplicate-result preservation, a shared generation, one ref update, bounded | ||
| failure, and failure containment. Real-Git integration proves reachability | ||
| through prune and exact release cleanup. | ||
|
|
||
| [cite: `test/unit/domain/services/StagingWorkspace.test.js#87-185@e6c58f10bf5244d0ee815a60636dec3c896ef38f`] | ||
| [cite: `test/integration/staging-workspace.test.js#117-154@e6c58f10bf5244d0ee815a60636dec3c896ef38f`] | ||
|
|
||
| The change adds one public method and changes no stored format, handle identity, | ||
| existing staging behavior, retention policy, ref authority, or release | ||
| lifecycle. | ||
|
|
||
| ## Scale Witness | ||
|
|
||
| A disposable bare repository staged 8,188 deterministic tiny pages in 32 | ||
| batches of at most 256 pages. It completed in 15.546 seconds, the final | ||
| generation matched the workspace ref, 8,188 page objects were reachable, and | ||
| Git reported no garbage. | ||
|
|
||
| The pre-change downstream rehearsal had retained only 5,213 pages after 75 | ||
| minutes and produced about 1.16 GiB of loose scratch objects. The scale witness | ||
| contained no Think data and no large benchmark repository or fixture is part of | ||
| this release candidate. | ||
|
|
||
| ## Verification | ||
|
|
||
| The versioned candidate passed the complete `pnpm run release:verify` method: | ||
|
|
||
| | Gate | Result | Observed tests | | ||
| | -------------------------- | ---------------- | -------------: | | ||
| | Lint | PASS | - | | ||
| | Unit tests (Node) | PASS | 2,086 | | ||
| | Unit tests (Bun) | PASS | 2,085 | | ||
| | Unit tests (Deno) | PASS | 2,076 | | ||
| | Public type compatibility | PASS | - | | ||
| | Integration tests (Node) | PASS | 199 | | ||
| | Integration tests (Bun) | PASS | 199 | | ||
| | Integration tests (Deno) | PASS | 199 | | ||
| | Examples and build stamp | PASS | - | | ||
| | npm and JSR dry-runs | PASS | - | | ||
| | **Release method summary** | **PASS (14/14)** | **6,844** | | ||
|
|
||
| The implementation PR merged only after GitHub lint and all Node/Bun/Deno jobs | ||
| passed, CodeRabbit approved the exact head commit, and its only review thread | ||
| was resolved against the independently derived order proof. Tag and publication | ||
| evidence remain deliberately absent from this candidate witness. | ||
|
|
||
| ## Publication Gate | ||
|
|
||
| Publication remains blocked until all of the following are true: | ||
|
|
||
| 1. the versioned candidate passes every release-verifier step; | ||
| 2. the release PR passes GitHub CI and review without unresolved findings; | ||
| 3. the release PR is merged; | ||
| 4. a signed annotated `v6.5.4` tag points at the reviewed merge commit; | ||
| 5. the release workflow passes version validation and runtime tests; | ||
| 6. npm reports `@git-stunts/git-cas@6.5.4` with provenance; and | ||
| 7. GitHub reports the final non-draft `v6.5.4` Release. | ||
|
|
||
| Downstream git-warp adoption and its full disposable v18-to-v19 migration | ||
| rehearsal remain separate post-publication obligations. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| # git-cas v6.5.4 Release Notes | ||
|
|
||
| v6.5.4 adds ordered page-batch retention to scoped staging workspaces. It lets | ||
| applications write a bounded page group and retain the complete group under one | ||
| exact workspace generation instead of rewriting a growing root set for every | ||
| page. | ||
|
|
||
| ## Batched Workspace Pages | ||
|
|
||
| `workspace.pages.putBatch()` accepts the existing page-batch count and byte | ||
| limits, delegates page creation to the bounded page service, and installs the | ||
| resulting handles in one compare-and-swap workspace update. Returned pages stay | ||
| in input order and each carries an exact retained witness for the shared | ||
| generation. | ||
|
|
||
| Repeated content still produces one result per input position while the | ||
| workspace target set deduplicates the content handle. An oversized batch fails | ||
| before workspace-ref mutation, and a failed generation installation returns no | ||
| retained batch. | ||
|
|
||
| ## Measured Effect | ||
|
|
||
| A disposable bare repository staged 8,188 deterministic tiny pages in 32 | ||
| batches of at most 256 pages. It completed in 15.546 seconds, installed 8,188 | ||
| page objects under the expected generation chain, and left no garbage reported | ||
| by Git. | ||
|
|
||
| The motivating pre-change git-warp rehearsal had retained only 5,213 of the | ||
| same 8,188-page cardinality after 75 minutes while producing about 1.16 GiB of | ||
| loose scratch objects. These measurements establish the removed quadratic | ||
| root-set rewrite at that workload; they are local evidence, not a | ||
| cross-platform timing guarantee. The benchmark used synthetic tiny pages, | ||
| contained no Think data, and added no large fixture to this repository. | ||
|
|
||
| ## Verification | ||
|
|
||
| The versioned candidate passed 2,086 Node unit tests, 2,085 Bun unit tests, | ||
| 2,076 Deno unit tests, and 199 real-Git integration tests on each runtime. The | ||
| full release verifier passed all 14 steps with 6,844 observed tests, including | ||
| public type compatibility, examples, build stamping, and npm and JSR dry-runs. | ||
|
|
||
| ## Compatibility | ||
|
|
||
| This release is API-additive and requires no application or stored-data | ||
| migration. Existing `workspace.pages.put()` calls, handles, object identities, | ||
| workspace refs, witnesses, retention semantics, limits, release behavior, and | ||
| pruning behavior are unchanged. Callers opt into batching explicitly. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| export const PACKAGE_VERSION = '6.5.3'; | ||
| export const PACKAGE_VERSION = '6.5.4'; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.