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: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ Email builds without a Deft source checkout or private Deft imports. Operators u

## Supported compatibility set

The [published compatibility manifest](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.19/compatibility.json) is the authoritative detached public release record. The repository [`release/compatibility.json`](release/compatibility.json) is its source template and also records that URL. The published record identifies the Host version/commit/image/schema, App and Runtime versions, each component's Kit, public assets, checksums and corresponding source. Use its verified publication state and release assets; a candidate record or open PR does not establish that downloads are available.
The [published compatibility manifest](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.20/compatibility.json) is the authoritative detached public release record. The repository [`release/compatibility.json`](release/compatibility.json) is its source template and also records that URL. The published record identifies the Host version/commit/image/schema, App and Runtime versions, each component's Kit, public assets, checksums and corresponding source. Use its verified publication state and release assets; a candidate record or open PR does not establish that downloads are available.

Release bundle **1.9.0-preview.19** builds App **1.9.0-preview.15** with Kit **0.1.0-alpha.39** and Runtime **0.4.0-preview.18** with Kit **0.1.0-alpha.35**. Their different Kit versions are intentional. The supported Host requires schema **120** and the exact generic contracts in the manifest. An older stable Host or a matching schema number alone is insufficient.
Release bundle **1.9.0-preview.20** builds App **1.9.1-preview.1** with Kit **0.1.0-alpha.39** and Runtime **0.4.0-preview.18** with Kit **0.1.0-alpha.35**. Their different Kit versions are intentional. The supported Host requires schema **120** and the exact generic contracts in the manifest. An older stable Host or a matching schema number alone is insufficient.

This release adds Email's own background-refresh description and requires Host **0.3.0-preview.127 or newer**. Older Hosts reject the new experience-bundle field. App preview.15 carries the new bundle field. Runtime preview.18 is unchanged and retains its existing sessions and durable store. [Kit provenance and validation](docs/background-refresh-description.md).
This release adds Email's own background-refresh description and requires Host **0.3.0-preview.127 or newer**. Older Hosts reject the new experience-bundle field. App 1.9.1-preview.1 carries the new bundle field. Runtime preview.18 is unchanged and retains its existing sessions and durable store. [Kit provenance and validation](docs/background-refresh-description.md).

Previous release bundle **1.9.0-preview.18** selects Host **0.3.0-preview.125**. The Runtime now accepts background sessions that the Host delivers when an owner re-establishes background access after an App upgrade, so nobody copies session tokens into operator files. The App and both Kit packages are unchanged. Host preview.125 still uses schema120; no schema migration is needed.

Expand Down
4 changes: 2 additions & 2 deletions app/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"@deft/app-kit": "file:deft-app-kit-0.1.0-alpha.39.tgz",
"esbuild": "0.28.2"
},
"version": "1.9.0-preview.15",
"version": "1.9.1-preview.1",
"scripts": {
"build": "node build.mjs",
"test": "node --test release-package.test.mjs imported-history.test.mjs",
Expand Down
2 changes: 1 addition & 1 deletion app/release-package.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ test('packed public Kit keeps the displayed target on a mailbox refresh', async

test('fresh package authenticates its manifest and worker artifact against public Kit39', () => {
assert.equal(DEFT_APP_KIT_VERSION, '0.1.0-alpha.39');
assert.equal(metadata.version, '1.9.0-preview.15');
assert.equal(metadata.version, '1.9.1-preview.1');
assert.equal(compatibility.email.tag, 'v' + rootMetadata.version);
assert.equal(compatibility.email.app_version, metadata.version);
assert.equal(compatibility.host.minimum_version, '0.3.0-preview.127');
Expand Down
2 changes: 1 addition & 1 deletion docs/author-independence.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The developer-preview claim is specific: a developer can build this connected Email App from its public repository and public Author Kit packages, sideload it into a compatible Deft Host, deploy its provider Runtime separately, and update Email without changing that Host. It does not claim that operator setup is automatic or that any older Deft release accepts these contracts.

Use [the compatibility manifest](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.19/compatibility.json) for exact artifacts and [verification](verification.md) for acceptance. Historical demo results remain tied to their own versions.
Use [the compatibility manifest](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.20/compatibility.json) for exact artifacts and [verification](verification.md) for acceptance. Historical demo results remain tied to their own versions.

## Ownership

Expand Down
4 changes: 2 additions & 2 deletions docs/background-refresh-description.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Email preview.19 background-refresh description
# Email preview.20 background-refresh description

Email now owns the explanation displayed in its background-refresh review:

Expand All @@ -8,4 +8,4 @@ Email now owns the explanation displayed in its background-refresh review:

The App uses sealed Author Kit alpha.39, built and packed from `packages/app-kit` in the public Host preview.127 source. `scripts/verify-pins.mjs`, the npm lockfile, and `release/compatibility.json` pin its exact bytes. Alpha.38 remains retained as a historical input, and the Runtime keeps its unchanged alpha.35 package and source provenance. The Host source tag and source archive allow reconstruction of the new Kit; no local Host checkout is required to build Email from this repository.

Validation includes a fresh App build, package verification of the exact description and Host minimum, App/UI tests, Runtime tests, and provenance checks. Bundle preview.19 allocates App preview.15 and retains unchanged Runtime preview.18. The detached compatibility record resolves published Host127 assets and the exact release commit. Preview.18 remains available for rollback.
Validation includes a fresh App build, package verification of the exact description and Host minimum, App/UI tests, Runtime tests, and provenance checks. Bundle preview.20 allocates App 1.9.1-preview.1 and retains unchanged Runtime preview.18. The detached compatibility record resolves published Host127 assets and the exact release commit. Preview.18 remains available for rollback.
6 changes: 3 additions & 3 deletions docs/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

[`release/compatibility.json`](../release/compatibility.json) is the source template and entry point. Follow its `authoritative_release_manifest` URL for the single authoritative detached cross-component release record. Use that resolved record for exact Host and Email commits, versions, image digests, schema/contracts, Kit artifacts, download locations, checksums and corresponding source. The publication state in that record distinguishes a prepared candidate from a verified public release. Do not replace its pins with a branch tip, a similarly named preview or a demo image.

## Release preview.19 contract
## Release preview.20 contract

Bundle preview.19 requires Host preview.127 or newer and pairs App preview.15 with unchanged Runtime preview.18. The detached release record binds the new App and Kit39 to the published Host127 assets. Preview.18 remains available for rollback.
Bundle preview.20 requires Host preview.127 or newer and pairs App 1.9.1-preview.1 with unchanged Runtime preview.18. The detached release record binds the new App and Kit39 to the published Host127 assets. Preview.18 remains available for rollback.

| Component | Version/contract |
|---|---|
| Email App | `1.9.0-preview.15` |
| Email App | `1.9.1-preview.1` |
| App Author Kit | `0.1.0-alpha.39` |
| Email Runtime | `0.4.0-preview.18` |
| Runtime Author Kit | `0.1.0-alpha.35` |
Expand Down
6 changes: 5 additions & 1 deletion docs/independence-upgrade.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,11 @@

The existing example is an optional private note on a draft, up to 1000 characters, kept out of outgoing MIME. It is already implemented; no new feature is needed to demonstrate independence. New drafts may use the note, while retained pre-note drafts keep their original form without an on-read migration.

Current App and Runtime identities come from [the compatibility manifest](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.19/compatibility.json). This source is App `1.9.0-preview.15` with Kit39 and Runtime `0.4.0-preview.18` with Kit35. Historical App7/Runtime9 upgrade/retention receipts apply only to those frozen versions. [Verification](verification.md) records which final-release evidence was reused and which checks were rerun.
Current App and Runtime identities come from [the compatibility manifest](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.20/compatibility.json). This source is App `1.9.1-preview.1` with Kit39 and Runtime `0.4.0-preview.18` with Kit35. Historical App7/Runtime9 upgrade/retention receipts apply only to those frozen versions. [Verification](verification.md) records which final-release evidence was reused and which checks were rerun.

## Upgrade from the local demo build

The demo previously installed `1.9.0-preview.14-local.20261018`. SemVer treats `14-local` as an alphanumeric prerelease identifier, which sorts above every numeric identifier in `1.9.0-preview.N`. Consequently the published preview.19 bundle (App `1.9.0-preview.15`) cannot upgrade that installation. Bundle preview.20 uses App `1.9.1-preview.1`, whose higher patch version admits the upgrade without changing Host validation or rewriting installed history. Preview.19 assets remain immutable. Runtime preview.18 is unchanged.

## Demonstrate the boundary

Expand Down
2 changes: 1 addition & 1 deletion docs/limitations.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Developer-preview limitations

This preview demonstrates a connected, independently deployed Email App using public Deft contracts. It is intended for developers and operators, with Gmail as the accepted provider path. It does not promise effortless onboarding, full Gmail/Outlook parity or production-scale operation. Exact published identities and acceptance belong to [the compatibility manifest](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.19/compatibility.json) and [verification](verification.md).
This preview demonstrates a connected, independently deployed Email App using public Deft contracts. It is intended for developers and operators, with Gmail as the accepted provider path. It does not promise effortless onboarding, full Gmail/Outlook parity or production-scale operation. Exact published identities and acceptance belong to [the compatibility manifest](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.20/compatibility.json) and [verification](verification.md).

## Known behavior

Expand Down
2 changes: 1 addition & 1 deletion docs/release.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Developer-preview release procedure

This release demonstrates an independently built connected App using public Author Kit contracts. It does not certify a production mail service or add roadmap features. [The compatibility manifest](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.19/compatibility.json) is authoritative for the final integrated source and artifacts; [limitations](limitations.md) must accompany the prerelease.
This release demonstrates an independently built connected App using public Author Kit contracts. It does not certify a production mail service or add roadmap features. [The compatibility manifest](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.20/compatibility.json) is authoritative for the final integrated source and artifacts; [limitations](limitations.md) must accompany the prerelease.

## Freeze and integrate

Expand Down
2 changes: 1 addition & 1 deletion docs/setup.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Developer-preview setup

Use the exact Apps-enabled Host and public artifacts in [the authoritative compatibility record](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.19/compatibility.json). The supported Host requires schema **120** and the matching generic contracts, not merely an older compatible-looking release label. Check the record's publication state and download hashes before starting. [Verification](verification.md) distinguishes previous demo evidence from final public acceptance.
Use the exact Apps-enabled Host and public artifacts in [the authoritative compatibility record](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.20/compatibility.json). The supported Host requires schema **120** and the matching generic contracts, not merely an older compatible-looking release label. Check the record's publication state and download hashes before starting. [Verification](verification.md) distinguishes previous demo evidence from final public acceptance.

The external consumer path is: obtain compatible Deft → independently build Email → sideload/review it → configure the separately operated Runtime, HTTPS/OAuth and authority → use Email and source integrations → [upgrade Email against the same Host](independence-upgrade.md). This requires operator work; no Deft source checkout, private import, native Email adapter or SQL patch is part of the Email installation.

Expand Down
2 changes: 1 addition & 1 deletion docs/verification.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Verification and acceptance

Use [the authoritative compatibility record](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.19/compatibility.json) for the exact release source, artifacts, checksums and publication state. A prepared candidate is not published merely because its files build. The final public prerelease must link its acceptance results and disclose unverified behavior.
Use [the authoritative compatibility record](https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.20/compatibility.json) for the exact release source, artifacts, checksums and publication state. A prepared candidate is not published merely because its files build. The final public prerelease must link its acceptance results and disclose unverified behavior.

## Evidence that can be reused

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "deft-email-preview",
"version": "1.9.0-preview.19",
"version": "1.9.0-preview.20",
"private": true,
"license": "AGPL-3.0-only",
"type": "module",
Expand Down
8 changes: 4 additions & 4 deletions release/compatibility.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"schema": "deft.email.preview.compatibility.v1",
"publication_state": "source-template",
"authoritative_release_manifest": "https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.19/compatibility.json",
"resolution": "The detached preview.19 release asset resolves exact tagged source commits, Host preview.127 image digest and asset SHA256 values after packaging. This source template does not certify publication or contain its own archive checksum.",
"authoritative_release_manifest": "https://github.com/Maneek21/deft-email/releases/download/v1.9.0-preview.20/compatibility.json",
"resolution": "The detached preview.20 release asset resolves exact tagged source commits, Host preview.127 image digest and asset SHA256 values after packaging. This source template does not certify publication or contain its own archive checksum.",
"host": {
"version": "0.3.0-preview.127",
"minimum_version": "0.3.0-preview.127",
Expand All @@ -14,9 +14,9 @@
"contracts": { "app_protocol": 7, "connection_protocol": 2, "record_form": 3, "resource_sync_channel": 3 }
},
"email": {
"tag": "v1.9.0-preview.19",
"tag": "v1.9.0-preview.20",
"repository": "https://github.com/Maneek21/deft-email",
"app_version": "1.9.0-preview.15",
"app_version": "1.9.1-preview.1",
"runtime_version": "0.4.0-preview.18",
"app_kit_version": "0.1.0-alpha.39",
"runtime_kit_version": "0.1.0-alpha.35",
Expand Down
Loading