From 45abb1a8418eab9e5746c73548962e0691136664 Mon Sep 17 00:00:00 2001 From: ivndev001 Date: Sat, 5 Sep 2026 11:03:53 +0000 Subject: [PATCH 1/2] =?UTF-8?q?chore:=20release=20v1.9.0=20=E2=80=94=20.dz?= =?UTF-8?q?/=20dual-read=20config=20resolution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## What Bumps the package to 1.9.0 across all four places that carry the version (`package.json`, `server.json` top-level + `packages[0]`, and the exported `VERSION` in `src/index.ts`), and adds the 1.9.0 CHANGELOG entry covering everything merged since v1.8.0. ## Why v1.8.0 (2026-07-31) is still `dist-tags.latest` on npm and knows only `CONFIG_FILENAME = '.ui-debugger-mcp.json'` — it throws when that file is absent. The dual-read landed on `main` in #65 on 2026-09-02 and has never been published, so nothing that installs `@latest` can read a `.dz/` config. That unpublished release is the explicit, currently-unmet precondition on developerz-ai/developerz.ai#3239 (closes its #2964, epic #2958): merging the platform side first would write the config only to `.dz/`, which 1.8.0 never opens, breaking `/ui-sweep` and any customer repo declaring the ui-debugger tool service. Cutting this release is what unblocks that merge. ## Changes - `package.json` 1.8.0 -> 1.9.0 - `server.json` — both `version` fields (top-level and `packages[0].version`), which PUBLISHING.md requires be bumped alongside package.json because the MCP registry resolves the npm package by the version named here - `src/index.ts` `VERSION` 1.8.0 -> 1.9.0 — caught by the repo's own "VERSION matches package.json" test, which failed until this line moved - `CHANGELOG.md` — 1.9.0 entry: the `.dz/` dual-read (#65), the `ActResult.navigated` full-document-load signal (#62), and the biome absolute-path prune fix (#63) Minor, not patch: the dual-read is a backwards-compatible feature — the root file still resolves, and `.dz/` only wins where it exists. ## Verification Run on the branch, after `bun install --frozen-lockfile`: - `bun run lint` — 157 files checked, clean - `bun run typecheck` — clean - `bun run build` — clean - `bun test` — 1171 pass / 10 skip / 0 fail (1181 across 75 files) - `node -e "JSON.parse(...)"` on both `server.json` and `package.json` The one failure this change had to fix was found by the gate, not by reading: `bun test` reported `(fail) VERSION matches package.json` until `src/index.ts` was bumped. No test was modified. ## Post-merge Publishing is a human step and deliberately not automated here: cut a GitHub Release `v1.9.0` (or Actions -> release -> Run workflow). `release.yml` publishes to npm over OIDC trusted publishing — no token — and then registers the version with the MCP registry in the same job. Confirm `npm view @developerz.ai/ui-debugger-mcp dist-tags` reads 1.9.0 and that the published `src/config/load.ts` carries `CONFIG_CANDIDATES` before merging developerz-ai/developerz.ai#3239. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01NCugazR85MEY7B2KVpcf7F --- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ package.json | 2 +- server.json | 4 ++-- src/index.ts | 2 +- 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1873539..7a83809 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,39 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.9.0] - 2026-09-05 + +### Added + +- **The per-repo config is read from `.dz/ui-debugger/ui-debugger-mcp.json` + first**, falling back to the root `.ui-debugger-mcp.json`. A repo that has + consolidated its agent config under `.dz/` now boots the tool unchanged + instead of failing to find a config at all. The two-candidate order lives in + one place — `CONFIG_CANDIDATES` in `src/config/load.ts`, reached through + `resolveConfigPath(cwd)` by every read and write. + + Resolution is fail-fast in both directions: `.dz/` wins when both files + exist, and a *bad* `.dz/` copy raises `ConfigError` rather than silently + falling through to the root file. A fresh `init` writes to `.dz/` when the + repo already has that directory, and to the root file otherwise. + + This is the release the platform side of the `.dz/` migration waits on + (developerz-ai/developerz.ai#2964, epic #2958): until it is on npm, a + consumer pinned to `@latest` gets 1.8.0, which knows only the root path. + +- `ActResult.navigated`, plus a note on the step that caused it, fed by a new + optional adapter method. A full-document load wipes every bit of in-page + state and nothing on screen distinguishes that from "my click did nothing" — + the driver used to read a reloaded page as an unchanged one and report the + reload-causing action as a success. + +### Fixed + +- `biome.json` no longer carries `"!**/tmp"` in `files.includes`. That pattern + is matched against the **absolute** path, so a checkout under `/tmp/...`, + `~/tmp/project`, or any container workdir with a `tmp` component matched at + the path root and biome pruned the entire tree before reaching the repo. + ## [1.8.0] - 2026-07-30 ### Changed diff --git a/package.json b/package.json index a6a5dfe..e017c50 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@developerz.ai/ui-debugger-mcp", - "version": "1.8.0", + "version": "1.9.0", "description": "Autonomous UI debugging MCP server. Give a goal; a fast agent drives the browser/desktop, finds bugs + visual issues, and reports back.", "mcpName": "io.github.developerz-ai/ui-debugger-mcp", "license": "MIT", diff --git a/server.json b/server.json index 4c963f0..86799cd 100644 --- a/server.json +++ b/server.json @@ -2,7 +2,7 @@ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", "name": "io.github.developerz-ai/ui-debugger-mcp", "description": "Autonomous UI debugging MCP server: an agent drives the browser/desktop, reports bugs + UX issues.", - "version": "1.8.0", + "version": "1.9.0", "repository": { "url": "https://github.com/developerz-ai/ui-debugger-mcp", "source": "github" @@ -12,7 +12,7 @@ { "registryType": "npm", "identifier": "@developerz.ai/ui-debugger-mcp", - "version": "1.8.0", + "version": "1.9.0", "transport": { "type": "stdio" }, diff --git a/src/index.ts b/src/index.ts index d4400da..67069fd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ // Public package surface. Implementation lands incrementally — see idea/ for design. export const NAME = 'ui-debugger-mcp'; -export const VERSION = '1.8.0'; +export const VERSION = '1.9.0'; From 77081f8d279a58973e55f047aa9be0cc38044383 Mon Sep 17 00:00:00 2001 From: ivndev001 Date: Sat, 5 Sep 2026 12:14:13 +0000 Subject: [PATCH 2/2] chore: re-run the gate on a head this PR alone owns No content change. Commit 45abb1a8 is shared with #67's branch, so that SHA carries #67's own failed check-run alongside this PR's green one, and the merge-readiness gate fails closed on the pair. Re-running #67's run to green lost three coin flips in a row against the known session-builder flake, which is a pre-existing 30s timeout that reddens main itself and cannot be reached by a diff of four version strings. This empty commit gives the PR a head whose check history is its own. The full gate still runs on it; nothing is skipped, quarantined, or relaxed. The flake is tracked separately. Co-Authored-By: Claude Opus 5