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
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## 0.1.0-alpha.5

Published on 27 October 2026 (Europe/Kyiv) to [crates.io](https://crates.io/crates/edit-session/0.1.0-alpha.5)
and as a [GitHub prerelease](https://github.com/PerchAnton/edit-session/releases/tag/v0.1.0-alpha.5).
Fresh installation, archive checksums and packaged examples verified. [Evidence](docs/evidence/release-alpha5.json).

Examples and documentation release. Runtime behavior is unchanged.

- Add a runnable context walkthrough: a host edit followed by Undo restores the
Expand Down
23 changes: 12 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,24 @@ development tool is optional. Neither project depends on the other.

## Current prerelease

**[0.1.0-alpha.4 on crates.io](https://crates.io/crates/edit-session/0.1.0-alpha.4) · published 27 October 2026 (Europe/Kyiv) · Rust 1.88+**
**[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+**

**[API documentation](https://docs.rs/edit-session/0.1.0-alpha.4/edit_session/)** · [Download the crate](https://crates.io/api/v1/crates/edit-session/0.1.0-alpha.4/download) · [SHA-256 and installation evidence](docs/evidence/release-alpha4.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-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)

<details>
<summary>Published package snapshot and verification</summary>

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

Release snapshot: **16 lifecycle tests + 8 host-example tests + 1 doctest**,
**0 runtime dependencies**, **34.2 KiB source crate (35,058 bytes)**.
[Exact file, hash, release CI and clean installation](docs/evidence/release-alpha4.json). The example tests
**0 runtime dependencies**, **41.3 KiB source crate (42,299 bytes)**.
[Exact file, hash, release CI and clean installation](docs/evidence/release-alpha5.json). The example tests
model host recovery; they are separate from real application UI regressions. Package
size describes the download. The library API is unchanged from alpha.2.
size describes the download. The library API is unchanged from alpha.4.

The crate was downloaded from crates.io into a fresh Cargo cache and built with
Rust 1.88; commit, no-op and stale-context behavior were checked. The CI badge above
Rust 1.88; commit, no-op, Undo freshness and Reset behavior were checked. Both
examples and the generated diagram also pass from the packaged source. The CI badge above
tracks current main, while release facts stay tied to the tagged commit. The
[previous GitHub release](https://github.com/PerchAnton/edit-session/releases/tag/v0.1.0-alpha.3)
remains available.
Expand All @@ -80,7 +81,7 @@ correction, Cancel, preserved Redo and duplicate confirmation.
From a checkout of this release:

```sh
git clone --branch v0.1.0-alpha.4 --depth 1 https://github.com/PerchAnton/edit-session.git
git clone --branch v0.1.0-alpha.5 --depth 1 https://github.com/PerchAnton/edit-session.git
cd edit-session
cargo run --locked --example retry_command
cargo test --locked --example retry_command
Expand Down Expand Up @@ -111,7 +112,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.4.** Maintained by [PerchAnton](https://github.com/PerchAnton).
**Experimental, 0.1.0-alpha.5.** 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 @@ -163,11 +164,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.4"
edit-session = "=0.1.0-alpha.5"
```

Commit the resulting `Cargo.lock`. For a Git dependency, the same release is pinned
at revision `621ece8c2a969c47927fecbff80f94ac9adfa618`.
at revision `6bbf13256a8240076ec4d6f8c4ea13477a7c5876`.
The companion
[interaction-check](https://github.com/PerchAnton/interaction-check) project replays semantic
scenarios against adapters using this library.
Expand Down
44 changes: 20 additions & 24 deletions docs/RELEASING.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,15 @@
# Releases and alpha compatibility

## Current candidate

`0.1.0-alpha.5` packages the context walkthrough and feedback-driven documentation.
Publication is pending. The public API, runtime behavior, Rust 1.88 minimum and zero
runtime dependencies are unchanged. The release workflow runs both examples and
checks the generated context diagram from the extracted crate before upload.

## Published prerelease

**[0.1.0-alpha.4 on crates.io](https://crates.io/crates/edit-session/0.1.0-alpha.4)**
was published on **27 October 2026 (Europe/Kyiv; 26 October UTC)**. Its public API,
behavior, Rust 1.88 minimum and zero runtime dependencies are unchanged from alpha.3.
A fresh consumer downloaded it from the registry and checked commit, no-op and
stale-context behavior. The archive hash matches the upload and release CI artifact.
[Evidence](evidence/release-alpha4.json) · [Installation](../README.md#use-from-another-project).
The previous alpha.3 GitHub prerelease remains unchanged.
**[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.
The [GitHub prerelease](https://github.com/PerchAnton/edit-session/releases/tag/v0.1.0-alpha.5)
attaches the same verified source archive and its checksum. This release adds examples
and documentation; public API, runtime behavior, Rust 1.88 and zero dependencies remain.
A fresh consumer checked commit, no-op, Undo freshness and Reset. Both packaged examples
and the generated context diagram pass. [Evidence](evidence/release-alpha5.json).
Earlier alpha.4 registry files and alpha.3 GitHub assets remain unchanged.

## Alpha compatibility

Expand Down Expand Up @@ -67,11 +61,12 @@ Do not present an alpha release as the latest stable release.

### Published version

`0.1.0-alpha.4` is **published on crates.io**. The API, behavior, Rust 1.88 minimum
and runtime dependencies are unchanged. Package metadata/docs change, so the candidate
uses a new version; alpha.3 tags and archives stay untouched. `publish = ["crates-io"]`
limits the registry target. `PACKAGE.md` is the registry landing page and uses absolute
links so it works outside GitHub.
`0.1.0-alpha.5` is **published on crates.io** through
[workflow 40463972786](https://github.com/PerchAnton/edit-session/actions/runs/40463972786).
The API, behavior, Rust minimum and runtime dependencies are unchanged. The new version
includes the added examples and documentation without replacing earlier archives.
`publish = ["crates-io"]` limits the registry target. `PACKAGE.md` is the registry
landing page and uses absolute links so it works outside GitHub.

The registry lists `PerchAnton` as the owner. This version cannot be overwritten;
prepare a new version for any future package change.
Expand Down Expand Up @@ -107,7 +102,8 @@ rehearsal. Do not run it merely to test credentials or reserve a name.

### Subsequent releases: Trusted Publishing

In the published crate's **Settings → Trusted Publishing**, add:
Trusted Publishing is configured and verified by the alpha.5 upload. Keep these
identity fields unchanged:

| Field | Value |
| --- | --- |
Expand All @@ -116,8 +112,8 @@ In the published crate's **Settings → Trusted Publishing**, add:
| Workflow filename | `publish.yml` |
| Environment | `crates-io` |

Create the `crates-io` GitHub environment, require owner approval and allow release
tags (`v*`). These repository files do not configure the account or environment.
The existing `crates-io` environment requires owner approval and allows release
tags. These repository files do not configure the account or environment.
The workflow uses the Rust project's OIDC action; no permanent CI token is needed.

Run **Prepare or publish to crates.io** from `main` with `publish=false` (default)
Expand All @@ -136,11 +132,11 @@ Use a fresh consumer project and the exact prerelease dependency:

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

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.4/).
override), and check the [API documentation](https://docs.rs/edit-session/0.1.0-alpha.5/).
Only then mark the README/changelog as published. Never
overwrite a published version; fixes require a new version.

Expand Down
2 changes: 1 addition & 1 deletion docs/assets/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ the same information in a text table. Existing measured counts are unchanged.

`release.svg` is a dated release summary and a three-step workflow diagram. Its
version, publication date, exact compressed file size and CI references come from
the [release snapshot](../evidence/release-alpha4.json). KiB means bytes / 1024,
the [release snapshot](../evidence/release-alpha5.json). KiB means bytes / 1024,
rounded to one decimal; this is download size, not runtime memory or a comparison
between projects. The README repeats the scoped counts and links to the real assets.

Expand Down
8 changes: 4 additions & 4 deletions docs/assets/release.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 53 additions & 0 deletions docs/evidence/release-alpha5.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"recorded_date": "2026-10-27",
"timezone": "Europe/Kyiv",
"status": "published",
"package": "edit-session",
"version": "0.1.0-alpha.5",
"tag": "v0.1.0-alpha.5",
"source_commit": "6bbf13256a8240076ec4d6f8c4ea13477a7c5876",
"runtime_dependencies": 0,
"license": "MIT OR Apache-2.0",
"minimum_rust": "1.88",
"scope": "Examples and documentation release; runtime API and behavior unchanged. No upstream adoption or performance claim.",
"registry": "https://crates.io/crates/edit-session/0.1.0-alpha.5",
"registry_metadata": "https://crates.io/api/v1/crates/edit-session/0.1.0-alpha.5",
"github_release": "https://github.com/PerchAnton/edit-session/releases/tag/v0.1.0-alpha.5",
"published_at_utc": "2026-10-27T06:58:11.228896Z",
"publish_workflow": "https://github.com/PerchAnton/edit-session/actions/runs/40463972786",
"release_commit_ci": "https://github.com/PerchAnton/edit-session/actions/runs/40463851643",
"tests": {
"lifecycle": 16,
"recovery_example": 8,
"compile_fail_doctest": 1
},
"examples": [
"retry_command",
"context_walkthrough"
],
"installation": {
"system": "macOS arm64",
"rust": "1.88.0",
"fresh_project": true,
"fresh_cargo_cache": true,
"dependency_source": "registry+https://github.com/rust-lang/crates.io-index",
"checks": [
"exact prerelease download and compile",
"commit before/after values",
"reset produces no-op",
"Undo to original value leaves old context stale",
"Reset does not rebase stale context",
"zero runtime dependencies and dual license",
"registry download equals verified CI archive byte for byte",
"versioned docs.rs API documentation available"
]
},
"files": [
{
"name": "edit-session-0.1.0-alpha.5.crate",
"bytes": 42299,
"sha256": "e898a59ee22c0dd449a8e05d26de0354df39a3babacd9eaf4ba87742eb9747ea",
"url": "https://crates.io/api/v1/crates/edit-session/0.1.0-alpha.5/download"
}
]
}