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
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog

## 0.12.3

- Add an opt-in six-task TavernDesk acceptance entry point. Discover candidate files with bounded native searches, locate unique live navigation controls, and verify command assignments and method declaration snippets against current source hashes.
- Count native and MCP calls, UTF-16 response characters, elapsed call time and repeated displayed lines. Keep failures and cleanup errors in local reports; this is neither a native-only comparison nor proof of whole-method or runtime binding correctness.
- Validate real isolated WPF repair, fixed-profile TavernDesk UI/source evidence and explicit line coverage. Real Serena remains unverified because no usable local command was found; no upstream or language-server installation was performed.
- An existing Codex connection was confirmed to retain Gateway 0.11.2 while a freshly launched Host reported 0.12.3. A new stdio probe does not establish that the user's existing connection has reloaded.

## 0.12.2

- Support Node 24 as primary and 22 as compatibility runtime; require Node >=22. Pin .NET SDK 10.0.303 and lock native Host/fixture restores without changing declared dependencies.
Expand Down
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ npm run delivery:verify

Reports and bounded stage logs are under `test-tmp/check/<run>/`. CI uploads only the compact report, including failures; it does not upload local workspaces or screenshots. A passing core check does not establish desktop or real-upstream acceptance.

For opt-in fixed-profile TavernDesk acceptance, use `npm run test:tavern-context -- <repository> --ui-pid=<PID> --ui-hwnd=<HWND>` and `npm run test:product -- <repository> <PID> <HWND>`. The latter checks the fixed profile receipt and performs six navigation-to-source tasks without source filenames supplied in advance. Native candidate discovery is counted, source reads used only as the oracle are separate, and all returned bodies are checked against current file hashes. Source candidates remain distinct from verified runtime bindings. The scripts do not install Serena, activate a language server, launch the target application or use personal databases.

The delivery manifest covers Gateway JavaScript, all published Host files including dependency sidecars, four managed Skill documents, and package/SDK/Host lock configuration. It records the Git revision and toolchains. Timestamps and checkout paths do not participate in content identity. Hashes detect local mismatches; they are not signatures. Run a complete check after changing delivery inputs. Keep a complete previous checkout/artifact set for rollback; do not mix old DLLs with a new Gateway.

Production startup uses `npm start` and the published Release Host. `npm run dev` explicitly enables Debug/dotnet-run fallback. `customHostPath` remains an explicit configuration override; an old helper must not be mistaken for a verified current release. Rebuilds do not replace a running client's MCP connection.
Expand Down
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ WinCode is a local MCP server built for Windows and .NET engineering. It bridges
- **Inspect the running app:** Enumerate visible windows, query specific controls or subtrees, and capture numbered visual overlays without activating or stealing focus from the target.
- **Review with evidence:** Trace on-screen widgets back to literal XAML declaration tags, line numbers, and file hashes, with transparent reporting for ambiguity, truncation, or degraded upstreams.

Current source version: **0.12.2**. All UI tools are strictly read-only and non-destructive. See [CHANGELOG](CHANGELOG.md) for full version history.
Current source version: **0.12.3**. All UI tools are strictly read-only and non-destructive. See [CHANGELOG](CHANGELOG.md) for full version history.

### Quick start

Expand Down Expand Up @@ -197,6 +197,8 @@ npm run benchmark:agent -- 1 # Opt-in pilot; -- 3 for three repetitions

Live UI suites require an interactive Windows desktop session. In a 222-node test fixture, targeted queries reduced response text from 62 KB to ~1.6 KB while completing in ~0.78 seconds. Detailed test records are maintained in the [work log](docs/codex_worklog.md).

`npm run test:product -- <TavernDesk repository> <dedicated-test PID> <HWND>` explicitly runs six navigation-to-source tasks against an already running fixed test profile. It discovers source files, checks the live control and verifies literal command/method candidates, recording native and MCP calls, response characters and repeated source lines under `test-tmp/product-tasks`. It neither launches the application nor changes its data or source. This scripted acceptance does not establish runtime bindings, full-method coverage, native-only speedup or real Serena integration; see the acceptance matrix in the work log.

The agent benchmark covers ten scripted scenarios, including existing `dotnet-mini` C# fixtures and four levels of initial location knowledge. It validates returned files, ranges, bodies and status against current fixture contents. Tool/transport/response/cleanup failures remain in the JSON report under `test-tmp/agent-efficiency`; failed cases produce a nonzero exit code. Unchanged-evidence reuse is tested only under trusted, controlled fixture writes; edits require a new request. Reports measure MCP calls, output characters, repeated displayed lines and call time using local fallback with upstreams and GUI disabled. They do not establish real-agent completion rates, model-token savings or production cache benefits. Schema v2 results should not be compared directly with the earlier six-scenario report.

---
Expand All @@ -209,7 +211,7 @@ WinCode 是面向 Windows 与 .NET 工程研发的本地 MCP 服务。它将项
- **观察实际界面:**发现系统可见窗口,按条件定向查询目标控件或子树,并在不激活、不抢占前台焦点的前提下获取数字标注截图。
- **源码双向印证:**将运行时抓取的控件关联回 XAML 源码声明的起始行号、代码片段与文件哈希,清晰报告歧义、截断与降级状态。

当前源码版本为 **0.12.2**。所有 UI 取证工具均为纯只读与非侵入设计。版本历史见 [CHANGELOG](CHANGELOG.md)。
当前源码版本为 **0.12.3**。所有 UI 取证工具均为纯只读与非侵入设计。版本历史见 [CHANGELOG](CHANGELOG.md)。

### 快速上手

Expand Down Expand Up @@ -386,6 +388,8 @@ npm run benchmark:agent -- 1 # 显式小样本;三轮对照使用 -- 3

实机 UI 测试需要交互式 Windows 桌面会话。实测在包含 222 个节点的测试夹具中,定向查询将返回文本由 62 KB 降至约 1.6 KB,单次耗时稳定在 0.78 秒左右。详尽的测试记录参见 [工作日志](docs/codex_worklog.md)。

`npm run test:product -- <TavernDesk仓库> <专用测试PID> <HWND>` 显式运行六项导航到源码任务,要求固定测试 profile 已启动。它发现候选文件、核对实际控件及命令/方法文字候选,将原生和 MCP 调用、返回字符、重复源码行写入 `test-tmp/product-tasks`;不启动应用、不修改数据或源码。此脚本验收不证明运行时绑定、完整方法覆盖、相对纯原生工具提速或真实 Serena 集成;详见工作日志验收矩阵。

Agent 基准包含 10 类脚本场景,复用现有 `dotnet-mini` C# 夹具,并按四种初始位置信息分层。返回的文件、行号、正文及状态均与当前夹具核对;工具错误、传输异常、响应损坏和清理失败会保留在 `test-tmp/agent-efficiency` 下的 JSON 报告中,失败返回非零退出码。无变化复用只在夹具写入受控、变化事件可信的条件下测试,修改后必须重新请求。测量使用本地回退,关闭上游与 GUI,记录 MCP 调用、返回字符、重复显示行和调用耗时,不代表真实 Agent 完成率、模型 Token 节省或生产缓存收益。Schema v2 场景与旧版六场景报告不同,不能直接比较两版总量。

---
Expand Down
3 changes: 3 additions & 0 deletions WinCode-下一轮工程化迭代计划书.md
Original file line number Diff line number Diff line change
Expand Up @@ -235,3 +235,6 @@ ToolRouter 是允许知道具体实现的组装位置;Gateway 不再访问适
- 2026-09-08 更新:WP2 / 0.12.0 已按精确 head CI 合并 PR #23(main=39d2b20)。WP3 / 0.12.1 实施中,用户已确认 hello 被动、diagnose 主动;后续默认由主代理推进,独立审核与自审分别记载。
- 2026-09-08 20:16:48(北京时间):WP3 / 0.12.1 的精确 head CI 通过并合并 [PR #24](https://github.com/linnnn89/WinCode/pull/24),main=227463e。WP4 / 0.12.2 正在执行:已实现 Node 24/22、SDK/NuGet 锁定、统一 check 和桌面入口、交付清单、真实 Host 身份与维护文档;首轮核心 300 pass/1 skip、桌面 35/35。最终干净检出与 CI 尚待完成;D3/F12 继续保留未决,不将自审写成独立审查。
- WP4 干净检出经一次目录名假设修正后两次完整 check 通过,内容身份稳定;非仓库 cwd 的 stdio 与原生 Host health 通过。D3 未决,因此仅建立仓内检查和精确 head 人工核对,不声明 GitHub 已强制保护。详情与失败证据见工作日志。
- 2026-09-08 20:44:51(北京时间):WP4 / 0.12.2 精确 head 的 Node 22/24 与 CodeQL 全通过,合并 [PR #25](https://github.com/linnnn89/WinCode/pull/25),main=ba94c00。D3 仍未决,工程交付完成不等于分支保护已生效。
- WP5 / 0.12.3:已完成新 stdio 精准范围、固定 TavernDesk 六导航→源码候选、真实 WPF 修复闭环和实际截图核对;产品任务 30 次调用/67103 UTF-16 字符,127 显示源码行中 42 行重复,不宣称普遍提速。实际 Codex hello 仍为 0.11.2,安装 Skill 已备份同步。真实 Serena 命令缺失、用户新导入角色卡尚待定位,按本计划保持部分完成;详见工作日志验收矩阵。F12/D3 未决状态不变。
- WP5 新卡补充:用户指明书架角色后,入库、原始 JSON 字段保持、头像文件与书架截图已核对;在新 0.12.3 Gateway/Host 中,同名两文本节点正确返回完整但 ambiguous,不猜测唯一项。含真实卡的六导航取证再度 6/6;详情动作/聊天、真实 Serena、当前 Codex 重连仍未验收。不会把 Computer Use 误归属问题记为 WinCode 故障。
Loading