diff --git a/CHANGELOG.md b/CHANGELOG.md index a3a66f3..7596e36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. The format ## [Unreleased] +## [0.5.1] - 2026-07-29 + ### Added - [#40](https://github.com/mohanagy/miftah/issues/40) Added an owner-readable Miftah 0.5 feature and usage guide that distinguishes the 0.5 onboarding/profile-management delta from capabilities first shipped in 0.4, maps each outcome to production-bound CLI or Console entry points, and retains the package's OAuth, active-session, provider-ownership, pre-1.0, and incomplete external-validation boundaries. @@ -12,6 +14,7 @@ All notable changes to this project will be documented in this file. The format - [#204](https://github.com/mohanagy/miftah/issues/204) Made guided setup an explicit first-use product front door: the terminal wizard now presents numbered source choices, visible setup steps, safe back/cancel handling before connection details, and current-step recovery for invalid choices; the README now places both `miftah setup` and the `miftah dashboard` browser Console ahead of the optional scripted `init` example and distinguishes the browser UI from the lower-level `console` API command. Existing local STDIO, returning provider-owned account, no-secret, no-shell, no-overwrite, OAuth ownership, import, validation, and shared CLI/Console setup boundaries are unchanged. External evaluator acceptance remains open and is not claimed. - [#290](https://github.com/mohanagy/miftah/issues/290) Redesigned the README as a concise product front door: first-screen fit guidance, one connector with named profiles, one safe GitHub first-success path, distinct secret/native-OAuth/upstream-owned-OAuth routes, visible client/wizard/Console choices, and progressively disclosed security, architecture, reference, and troubleshooting links. External evaluator acceptance remains open and is not claimed by this documentation change. +- [#297](https://github.com/mohanagy/miftah/issues/297) Prepared the compatible v0.5.1 corrective release for the first-use README and setup-wizard improvements. This release keeps Miftah experimental and pre-1.0 and does not claim that external validation under #25, #88, #202, #204, or #290 is complete. ### Fixed diff --git a/README.md b/README.md index 2aefdaf..af1e695 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ Install Miftah, then choose the terminal wizard or the browser Console. Both use ### 1. Install the current release ```bash -npm install -g @lubab/miftah@0.5.0 +npm install -g @lubab/miftah@0.5.1 miftah version ``` diff --git a/docs/presets-and-clients.md b/docs/presets-and-clients.md index 1c9a7a9..6f40930 100644 --- a/docs/presets-and-clients.md +++ b/docs/presets-and-clients.md @@ -3,7 +3,7 @@ This is the compatibility source of truth for generated `miftah init` configurations and client snippets. - Catalog version: `3` -- Miftah package version: `0.5.0` +- Miftah package version: `0.5.1` - Last tested / validation boundary: the catalog builds strict Miftah configuration that `validateConfig` accepts. The docs contract test checks generated configuration only; it does **not** construct a runtime, start, authenticate to, or smoke-test external providers. Miftah itself requires Node.js `>=20`. That does not establish an upstream server's Node requirement. diff --git a/docs/whats-new-in-0.5.md b/docs/whats-new-in-0.5.md index 4d37ad9..e950131 100644 --- a/docs/whats-new-in-0.5.md +++ b/docs/whats-new-in-0.5.md @@ -1,9 +1,9 @@ # What is in Miftah 0.5 -Install `@lubab/miftah@0.5.0` when you want Miftah to guide setup instead of assembling a multi-account configuration by hand: +Install `@lubab/miftah@0.5.1` when you want Miftah to guide setup instead of assembling a multi-account configuration by hand: ```bash -npm install -g @lubab/miftah@0.5.0 +npm install -g @lubab/miftah@0.5.1 miftah version ``` diff --git a/package-lock.json b/package-lock.json index 2826c20..287297d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@lubab/miftah", - "version": "0.5.0", + "version": "0.5.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@lubab/miftah", - "version": "0.5.0", + "version": "0.5.1", "license": "MIT", "dependencies": { "@modelcontextprotocol/sdk": "^1.30.0", diff --git a/package.json b/package.json index e7e270d..9be1790 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@lubab/miftah", - "version": "0.5.0", + "version": "0.5.1", "description": "Wrap any MCP. Use the right account without reconnecting.", "keywords": [ "mcp", diff --git a/tests/release-version.test.ts b/tests/release-version.test.ts index 2d34cb1..2ffd22b 100644 --- a/tests/release-version.test.ts +++ b/tests/release-version.test.ts @@ -1,7 +1,7 @@ import { readFileSync } from "node:fs"; import { describe, expect, it } from "vitest"; -const releaseVersion = "0.5.0"; +const releaseVersion = "0.5.1"; function readRepositoryFile(path: string): string { return readFileSync(new URL(`../${path}`, import.meta.url), "utf8"); @@ -21,10 +21,10 @@ function releaseNotes(changelog: string, version: string): string { return changelog.slice(match.index, end < 0 ? undefined : end); } -describe("v0.5.0 release artifacts", () => { +describe("v0.5.1 release artifacts", () => { it.each([ - "## [0.5.0] - 2026-7-28\n\n### Added\n", - "Release candidate: ## [0.5.0] - 2026-07-28\n\n### Added\n" + "## [0.5.1] - 2026-7-29\n\n### Added\n", + "Release candidate: ## [0.5.1] - 2026-07-29\n\n### Added\n" ])("requires a dated release heading at the start of a line", (changelog) => { expect(() => releaseNotes(changelog, releaseVersion)).toThrow( `Unable to find the ${releaseVersion} changelog entry.` @@ -65,21 +65,20 @@ describe("v0.5.0 release artifacts", () => { } }); - it("documents guided multi-account onboarding while retaining the experimental package status", () => { + it("documents the first-use corrections while retaining the experimental package status", () => { const changelog = readRepositoryFile("CHANGELOG.md"); const notes = releaseNotes(changelog, releaseVersion); expect(changelog).toContain("Miftah is experimental and pre-1.0"); expect(notes).toContain("### Added"); + expect(notes).toContain("### Changed"); expect(notes).toContain("### Fixed"); - expect(notes).toMatch(/guided multi-account/iu); - expect(notes).toMatch(/resumable connector-setup/iu); - expect(notes).toMatch(/Google Search Console/iu); - expect(notes).toMatch(/native OAuth-bound profile rename/iu); - expect(notes).toMatch(/external design-partner validation/iu); - expect(notes).toMatch(/MCP SDK Hono runtime dependency chain/iu); - expect(notes).toMatch(/patched development toolchain dependencies/iu); - expect(notes).toMatch(/batched Windows Console catalog ACL verification/iu); + expect(notes).toMatch(/owner-readable Miftah 0\.5 feature and usage guide/iu); + expect(notes).toMatch(/first-use product front door/iu); + expect(notes).toMatch(/numbered source choices/iu); + expect(notes).toMatch(/safe back\/cancel handling/iu); + expect(notes).toMatch(/external evaluator acceptance remains open/iu); + expect(notes).toMatch(/host-dependent file-flush latency/iu); const readme = readRepositoryFile("README.md"); expect(readme).toContain("Use the right account with the MCP servers you already trust"); expect(readme).toContain("experimental and pre-1.0");