Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Changelog

## 0.1.0-beta.1 (candidate, not published)
## 0.1.0-beta.1

Published on 1 November 2026 (Europe/Kyiv) to [crates.io](https://crates.io/crates/edit-session/0.1.0-beta.1)
and as a [GitHub prerelease](https://github.com/PerchAnton/edit-session/releases/tag/v0.1.0-beta.1).
[Archive hashes and registry-consumer checks](docs/evidence/release-beta1.json).

- Define the supported beta API, error precedence and migration boundary; retain Rust 1.88, no_std and zero dependencies.
- Add downstream-style tests for minimal trait bounds and simultaneous conflicts. Runtime source is unchanged from alpha.5.
Expand Down
12 changes: 6 additions & 6 deletions PACKAGE.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# edit-session

**Beta candidate:** the checkout prepares `0.1.0-beta.1`; it is not published.
The latest published package remains `0.1.0-alpha.5`. See the
[compatibility boundary](docs/COMPATIBILITY.md) before upgrading.
**Published beta:** `0.1.0-beta.1` is available on
[crates.io](https://crates.io/crates/edit-session/0.1.0-beta.1), verified 1 November 2026
(Europe/Kyiv). Read the [compatibility boundary](https://github.com/PerchAnton/edit-session/blob/main/docs/COMPATIBILITY.md) before upgrading.

A small, toolkit-independent Rust library for preview, validation and commit
lifecycles. **`no_std`, zero runtime dependencies, Rust 1.88+.** MIT OR Apache-2.0.
Expand All @@ -17,12 +17,12 @@ Add a published copy of this prerelease to your dependencies:

```toml
[dependencies]
edit-session = "=0.1.0-alpha.5"
edit-session = "=0.1.0-beta.1"
```

This is an experimental alpha. Pin an exact version and keep `Cargo.lock` for
This is an experimental beta. Pin an exact version and keep `Cargo.lock` for
applications. Read the
[compatibility policy](https://github.com/PerchAnton/edit-session/blob/main/docs/RELEASING.md#alpha-compatibility)
[compatibility policy](https://github.com/PerchAnton/edit-session/blob/main/docs/COMPATIBILITY.md)
before upgrading. For other distribution options and current publication status,
see the [project README](https://github.com/PerchAnton/edit-session#use-from-another-project).

Expand Down
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# edit-session

**Beta candidate:** the checkout prepares `0.1.0-beta.1`; it is not published.
The latest published package remains `0.1.0-alpha.5`. See the
[compatibility boundary](docs/COMPATIBILITY.md) before upgrading.
**Published beta:** `0.1.0-beta.1` is available on
[crates.io](https://crates.io/crates/edit-session/0.1.0-beta.1), verified 1 November 2026
(Europe/Kyiv). Read the [compatibility boundary](https://github.com/PerchAnton/edit-session/blob/main/docs/COMPATIBILITY.md) before upgrading.

Keep an editable draft separate from live data, then check that its document, target
and revision are still current before the host applies a change. A standalone Rust
Expand Down Expand Up @@ -47,12 +47,12 @@ development tool is optional. Neither project depends on the other.

## Current prerelease

**[0.1.0-alpha.5 on crates.io](https://crates.io/crates/edit-session/0.1.0-alpha.5) · published 27 October 2026 (Europe/Kyiv) · Rust 1.88+**
**[0.1.0-beta.1 on crates.io](https://crates.io/crates/edit-session/0.1.0-beta.1) · published 1 November 2026 (Europe/Kyiv) · Rust 1.88+**

**[GitHub prerelease and checksums](https://github.com/PerchAnton/edit-session/releases/tag/v0.1.0-alpha.5)** · **[API documentation](https://docs.rs/edit-session/0.1.0-alpha.5/edit_session/)** · [Download the crate](https://crates.io/api/v1/crates/edit-session/0.1.0-alpha.5/download) · [SHA-256 and installation evidence](docs/evidence/release-alpha5.json) · [Changelog](CHANGELOG.md) · [Use as a dependency](#use-from-another-project)
**[GitHub prerelease and checksums](https://github.com/PerchAnton/edit-session/releases/tag/v0.1.0-beta.1)** · **[API documentation](https://docs.rs/edit-session/0.1.0-beta.1/edit_session/)** · [Download the crate](https://crates.io/api/v1/crates/edit-session/0.1.0-beta.1/download) · [SHA-256 and installation evidence](docs/evidence/release-beta1.json) · [Changelog](CHANGELOG.md) · [Use as a dependency](#use-from-another-project)

<details>
<summary>Published package snapshot and verification</summary>
<summary>Historical alpha.5 package snapshot and verification</summary>

![edit-session alpha 5, published on crates.io 27 October 2026: 0 runtime dependencies, 25 scoped checks and a 41.3 KiB source archive. Check live state, attempt the host command, retain fields and draft on rejection, and close on success.](docs/assets/release.svg)

Expand All @@ -71,8 +71,8 @@ remains available.

</details>

Trying the alpha? [Report a bug](https://github.com/PerchAnton/edit-session/issues/new?template=bug_report.yml)
with your revision and a short sequence of calls, or read the [alpha compatibility policy](docs/RELEASING.md#alpha-compatibility).
Trying the beta? [Report a bug](https://github.com/PerchAnton/edit-session/issues/new?template=bug_report.yml)
with your revision and a short sequence of calls, or read the [beta compatibility policy](docs/COMPATIBILITY.md).

## Retry after a rejected command

Expand All @@ -85,15 +85,15 @@ correction, Cancel, preserved Redo and duplicate confirmation.
From a checkout of this release:

```sh
git clone --branch v0.1.0-alpha.5 --depth 1 https://github.com/PerchAnton/edit-session.git
git clone --branch v0.1.0-beta.1 --depth 1 https://github.com/PerchAnton/edit-session.git
cd edit-session
cargo run --locked --example retry_command
cargo test --locked --example retry_command
```

This uses the existing API; the host owns atomic command rejection and UI state.
These model tests do not substitute for consumer UI regressions. [Changelog](CHANGELOG.md)
and [release preparation](docs/RELEASING.md) describe the published alpha and its package checks.
and [release preparation](docs/RELEASING.md) describe the published beta and its package checks.

## Evidence and trade-offs

Expand All @@ -116,7 +116,7 @@ dated measurements. Each figure has a source and a defined scope.
| Proposal/check loop | **999 pairs; 0 additional clones** | [Instrumented test](tests/lifecycle.rs); one clone at construction, one more on Reset; caller work excluded |
| Integration cost | **+217 production UI lines** | [267 added / 50 removed](docs/ADOPTION.md#count-the-cost-as-well); no total-code or speed improvement is claimed |

**Experimental, 0.1.0-alpha.5.** Maintained by [PerchAnton](https://github.com/PerchAnton).
**Experimental beta, 0.1.0-beta.1.** Maintained by [PerchAnton](https://github.com/PerchAnton).
Available on crates.io and as a Git dependency. PhotoCraft and PdfCraft
integrations are proposed and await upstream approval.

Expand Down Expand Up @@ -168,11 +168,11 @@ sequence and shared report help your consumer. The [API contracts](src/lib.rs) a
Add this exact prerelease to your crate's `[dependencies]`:

```toml
edit-session = "=0.1.0-alpha.5"
edit-session = "=0.1.0-beta.1"
```

Commit the resulting `Cargo.lock`. For a Git dependency, the same release is pinned
at revision `6bbf13256a8240076ec4d6f8c4ea13477a7c5876`.
at revision `e3da338fdfa15190f98111cb57f9b3f25c1c2f2f`.
The companion
[interaction-check](https://github.com/PerchAnton/interaction-check) project replays semantic
scenarios against adapters using this library.
Expand Down
9 changes: 5 additions & 4 deletions docs/COMPATIBILITY.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Beta compatibility boundary

`0.1.0-beta.1` is a release candidate, not a published or stable release. The last
published version is `0.1.0-alpha.5`. No runtime implementation changes are needed
for this candidate; the added checks make the intended consumer contract explicit.
`0.1.0-beta.1` was published on 1 November 2026 (Europe/Kyiv); it remains a
prerelease, not a stable 1.0 release. Runtime implementation is unchanged from
`0.1.0-alpha.5`; the added checks make the intended consumer contract explicit.
[Publication and registry checks](evidence/release-beta1.json).

## Supported surface

Expand All @@ -27,7 +28,7 @@ lock. An `Rc<RefCell<_>>` clone is not an independent snapshot.

## Upgrading and evidence

Pin the exact prerelease (`=0.1.0-beta.1` once published). Re-run the host's native
Pin the exact prerelease (`=0.1.0-beta.1`). Re-run the host's native
regressions before changing the pin. The beta adds no fields to stored documents:
sessions are in-memory state, not a serialization format. Error variants are for
branching; Display/Debug prose and memory layout are not a machine protocol.
Expand Down
24 changes: 15 additions & 9 deletions docs/RELEASING.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
# Releases and alpha compatibility
# Releases and compatibility

The next candidate is `0.1.0-beta.1`. [Its compatibility contract](COMPATIBILITY.md)
adds consumer tests without changing the runtime. Do not describe it as published
until the existing exact-tag/archive and registry read-back gates below pass.
The alpha history below describes already published versions.
## Published beta

## Published prerelease
**[0.1.0-beta.1 on crates.io](https://crates.io/crates/edit-session/0.1.0-beta.1)**
was published on **1 November 2026 (Europe/Kyiv)** through
[Trusted Publishing](https://github.com/PerchAnton/edit-session/actions/runs/41309450079).
The [GitHub prerelease](https://github.com/PerchAnton/edit-session/releases/tag/v0.1.0-beta.1)
attaches the exact checked archive and checksum. Registry and GitHub downloads
match; a fresh no_std registry consumer passed 3 contract and 16 lifecycle tests.
[Receipt](evidence/release-beta1.json) and [beta contract](COMPATIBILITY.md).
Runtime source remains unchanged from alpha.5. Do not upload this version again.

## Previous published prerelease: alpha.5

**[0.1.0-alpha.5 on crates.io](https://crates.io/crates/edit-session/0.1.0-alpha.5)**
was published on **27 October 2026 (Europe/Kyiv)** through Trusted Publishing.
Expand Down Expand Up @@ -64,7 +70,7 @@ Do not present an alpha release as the latest stable release.

## Registry publication

### Published version
### Earlier publication: alpha.5

`0.1.0-alpha.5` is **published on crates.io** through
[workflow 40463972786](https://github.com/PerchAnton/edit-session/actions/runs/40463972786).
Expand Down Expand Up @@ -137,11 +143,11 @@ Use a fresh consumer project and the exact prerelease dependency:

```toml
[dependencies]
edit-session = "=0.1.0-alpha.5"
edit-session = "=0.1.0-beta.1"
```

Run `cargo check`, confirm `Cargo.lock` names the crates.io source (not a path/Git
override), and check the [API documentation](https://docs.rs/edit-session/0.1.0-alpha.5/).
override), and check the [API documentation](https://docs.rs/edit-session/0.1.0-beta.1/).
Only then mark the README/changelog as published. Never
overwrite a published version; fixes require a new version.

Expand Down
48 changes: 48 additions & 0 deletions docs/evidence/release-beta1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"checked_at": "2026-11-01T15:18:32.735656+02:00",
"version": "0.1.0-beta.1",
"commit": "e3da338fdfa15190f98111cb57f9b3f25c1c2f2f",
"tag": "v0.1.0-beta.1",
"registry": {
"version": "0.1.0-beta.1",
"sha256": "728d31d355327c086c172ac8927d9822375dae606b198b4784f7c05b80d0455e",
"url": "https://static.crates.io/crates/edit-session/edit-session-0.1.0-beta.1.crate",
"workflow_match": true,
"consumer_lock": {
"name": "edit-session",
"version": "0.1.0-beta.1",
"source": "registry+https://github.com/rust-lang/crates.io-index",
"checksum": "728d31d355327c086c172ac8927d9822375dae606b198b4784f7c05b80d0455e"
}
},
"github_release": "https://github.com/PerchAnton/edit-session/releases/tag/v0.1.0-beta.1",
"prerelease": true,
"workflow": {
"url": "https://github.com/PerchAnton/edit-session/actions/runs/41309450079",
"conclusion": "success",
"head_sha": "e3da338fdfa15190f98111cb57f9b3f25c1c2f2f"
},
"github_assets": [
{
"name": "edit-session-0.1.0-beta.1.crate",
"sha256": "728d31d355327c086c172ac8927d9822375dae606b198b4784f7c05b80d0455e",
"bytes": 44723,
"url": "https://github.com/PerchAnton/edit-session/releases/download/v0.1.0-beta.1/edit-session-0.1.0-beta.1.crate"
},
{
"name": "SHA256SUMS",
"sha256": "bca6a218ef4ec2fa9b84bed3b86c94731693f42a557526d60db13d85b2dde8fd",
"bytes": 98,
"url": "https://github.com/PerchAnton/edit-session/releases/download/v0.1.0-beta.1/SHA256SUMS"
}
],
"installed_checks": {
"toolchain": "Rust 1.88.0",
"source": "crates.io exact dependency, no path override",
"no_std_consumer": true,
"contract_tests": 3,
"lifecycle_tests": 16,
"result": "passed"
},
"limitations": "These checks validate the published package and documented examples, not external adoption or consumer source-policy approval. Release archives and tags remain immutable; this receipt is recorded after publication."
}