Release history

Changelog

Version history from the repo CHANGELOG.md — evidence-named releases, not marketing blurbs. Full notes live under GitHub.

  1. v1.8.6

    Relay-join owner + membership read-model

    • **T6-1/T6-2** — `community-invite-relay-join.ts` + invite-card retry owner (`handleRelayJoinRetry`); deterministic terminal states (`joined`, `retry_scheduled`, `terminal_failed`) and honest user copy.
    • **T6-3/T6-4** — `use-community-membership-read-model-index` as canonical owner for participants, network summary, invite gating, chat header member count.
    • **T6-5** — `scripts/relay-runtime-smoke.mjs`; reliability/release workflows include relay runtime smoke against `nostr-rs-relay` container.
    • Parallel fallback read paths removed from modal/network/invite summary consumers.
    • Manual invite→accept→relay-join matrix pending staging evidence at tag time ([v1.8.8](docs/assets/demo/v1.8.8/README.md) supersedes for local infra).
    Release notes (docs)
  2. v1.5.6

    Mobile Preview + desktop shared kernel

    • **M1** — Mobile shell DM-first navigation: full-screen conversation list, thread header with back, shared `ChatView` / `dmController` (no parallel send path); `AppShell` `mobileDmMode` hides bottom tab bar.
    • M2 — Safe areas and tab bar polish in emulator (**paused** until signing/install).
    • Optional unsigned APK on tag for preview (**paused**).
    • **R4** — Settings storage-tab health/path probes and Search recent-history hydration defer via `scheduleIdleWork` (closes v1.5.3 idle deferral gap).
    • **U1** — Community invite status banners: direction-aware title/subtitle copy and stronger light/dark contrast.
    • **Themed selects** — `@dweb/ui-kit` `SelectField` replaces native `<select>` across invites, network filters, and dev tools (gradient/popover styling).
    • **R5 (MEM-005)** — Terminal invite decline/cancel no longer backfills declined peers into inviter roster evidence.
    • **MEM-002 (partial)** — Community home/management participant list and invite gate use **active** membership (`leftMembers` / `expelledMembers` applied) instead of widen-only discovery roster; display names prefer persisted `createdGroups.displayName` over relay hex group ids.
    • **SelectField** — Body-portaled menu for reliable dropdowns inside stacked modals (Add Connection expiration).
    • **Community Phase 1 (desktop)** — Sealed descriptor updates (`community.descriptor_updated`) with `persistCommunityDescriptorUpdate` and `descriptor_updated` ledger reason; Network `resolveCommunityDisplayName`; sealed governance propose / vote / resolve (accept, rejection-quorum reject, TTL `expired`); Governance tab + home banner; session governance cache; **expel** via governance when member count > 2 else legacy `vote-kick`; multi-member rename propose path.
    • Lane M emulator smoke — no device/signing path on desktop. **Desktop `v1.5.6` tag** may still ship with end-to-end gate **A1–A4** (plus community Track D desktop slice) per [v1.5.6-gate.md](docs/releases/v1.5.6-gate.md). Lane M remains optional.
    • Store signing and device matrix production gates remain optional.
    Release notes (docs)
  3. v1.5.7

    Governance hardening + publish copy

    • **U3** — `getRelayPublishFailureUserMessage` maps `failed`, `retry_scheduled`, upload-related reason codes, and `storage_unavailable` to explicit user-facing strings (still falls back to `error` when provided).
    • **G2** — Governance proposal TTL **72h** (was 7d); **tie votes** (`approve === reject` at quorum) close as rejected; duplicate `governance.resolved` with the same resolution is idempotent in the reducer.
    • **G1** — Manual matrix: [docs/assets/demo/v1.5.7/README.md](docs/assets/demo/v1.5.7/README.md).
    • **U3** audit of all publish call sites not fully closed (continues in v1.5.8).
    • Phase 1 manual sign-off (G1 matrix) may still be pending maintainer execution.
    Release notes (docs)
  4. v1.8.0

    Open v1.8.x band

    • **Version line** — Minor bump `1.7.x` → `1.8.x`; feature work proceeds in `v1.8.1+` patches per program roadmap.
    Release notes (docs)
  5. v1.8.5

    • **CI** — `docs-check`, `release:test-pack` (AppShell relay banner mock, storage-health IDB policy, message-queue in-memory reset, standby latency timer jitter).
    • **Dev setup** — `apps/pwa/.env.example` for coordination URL (copy to `.env.local`).
    • Greenfield planning docs moved to `docs/archive/greenfield/` (reference only).
    • **REL-004** — Durable local leave + outbox retry.
    • **Community invite DM** — `inviteId`, supersede, acceptance cards, inviter thread UX.
    • **Membership truth** — Coordination-backed participant display (no ghost leavers).
    • Relay join after DM accept (`Complete join on relay`) — **v1.8.6+**.
    Release notes (docs)
  6. v1.8.4

    tag only — no GitHub Release

    • **REL-004** — Leave intent and ledger/outbox apply before relay publish; left communities do not resurrect on relay failure or offline windows.
    • **MEM-002 (partial)** — Sealed `leftMembers` terminal evidence applied before widen-only discovery roster in participant surfaces; coordination directory truth for workspace participant display (no monotonic ghost roster when coordination is configured).
    • **Outbox UX** — Pending leave publish surfaced on Network and group cards with honest retry/terminal copy.
    • **Invite DM UX** — Outgoing invite cards show local avatar and readable timestamps; ledger synthetic rows carry sender pubkey.
    • **Desktop dev** — `/groups/view` 404 under `dev:desktop:online` (static export + Suspense).
    • **Invite thread** — Dedupe prefers hydrated rows over ledger synthetics; no `??` avatar on inviter cards.
    • **CI** — `release:test-pack` green after IDB-excision test alignment (`app-shell`, storage-health, message-queue).
    • Leave path audit and REL-001 intent guard tests; background outbox retry on runtime activation.
    • **Community invite DM** — Stable `inviteId` on wire; unified invite pipeline/ledger; inviter DM thread shows outbound invites, superseded cards, and inbound **Acceptance recorded** responses.
    • Relay-backed **group join after accept** (`Complete join on relay`) and full two-profile community chat E2E deferred to **v1.8.5+** (transport soak, not roster logic).
    • Group chat on a community relay requires that relay writable in Settings; not a REL-004 claim.
    Release notes (docs)
  7. v1.8.3

    not published

    • **REL-004** — Leave intent and ledger/outbox apply before relay publish; left communities do not resurrect on relay failure or offline windows.
    • **MEM-002 (partial)** — Sealed `leftMembers` terminal evidence applied before widen-only discovery roster in participant surfaces; coordination directory truth for workspace participant display (no monotonic ghost roster when coordination is configured).
    • **Outbox UX** — Pending leave publish surfaced on Network and group cards with honest retry/terminal copy.
    • **Invite DM UX** — Outgoing invite cards show local avatar and readable timestamps; ledger synthetic rows carry sender pubkey.
    • **Desktop dev** — `/groups/view` 404 under `dev:desktop:online` (static export + Suspense).
    • **Invite thread** — Dedupe prefers hydrated rows over ledger synthetics; no `??` avatar on inviter cards.
    • Leave path audit and REL-001 intent guard tests; background outbox retry on runtime activation.
    • **Community invite DM (partial, on `main`)** — Stable `inviteId` on wire; unified invite pipeline/ledger; inviter DM thread shows outbound invites, superseded cards, and inbound **Acceptance recorded** responses (maintainer soak 2026-05-27).
    • Relay-backed **group join after accept** (`Complete join on relay`) and full two-profile community chat E2E deferred to **v1.8.4** (transport soak, not roster logic).
    • Group chat on a community relay requires that relay writable in Settings; not a REL-004 claim.
    Release notes (docs)
  8. v1.8.2

    Phase 4.2 — manage hub

    • **C-4.2** — Tabbed **manage hub** as canonical community settings surface; group home stays daily-use focused.
    • **C-4.2a** — Home copy: Personal controls vs full settings in manage hub.
    • **C-4.2c** — Community mode badge and relay host in manage shell header.
    • **Navigation warm-up** — Critical → context → idle background prefetch; cancels stale work on navigation.
    Release notes (docs)