Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
ce8b517
feat: add experimental hybrid readonly UI orchestration
linnnn89 Oct 6, 2026
a47b6b3
feat(client): bind readonly UI workflows to session lifecycle
linnnn89 Oct 6, 2026
7929cb9
test(hybrid): measure real model readonly workflow costs
linnnn89 Oct 6, 2026
e798f99
feat(client): expose trusted readonly recipes in skill sessions
linnnn89 Oct 6, 2026
5003ad6
fix(hybrid): reject incomplete model turns and invalid evidence
linnnn89 Oct 6, 2026
eb6c63f
docs(hybrid): record observed defects and validation limits
linnnn89 Oct 6, 2026
a27c7b3
feat(hybrid): report failed costs and enforce conditional observations
linnnn89 Oct 6, 2026
ccac194
feat(experiments): bound final JSON correction and record recovery costs
linnnn89 Oct 6, 2026
e7350fa
feat(hybrid): validate model recipe parameters and bound corrections
linnnn89 Oct 6, 2026
ef98cb6
fix(hybrid): distinguish tool invocation from final findings
linnnn89 Oct 6, 2026
91e074b
docs(hybrid): record stale local delivery receipt
linnnn89 Oct 6, 2026
281f837
docs(hybrid): prepare actionable client validation handoff
linnnn89 Oct 6, 2026
67c4dce
docs(hybrid): record client and real-app validation with navigation gap
linnnn89 Oct 6, 2026
751d3fe
feat(hybrid): verify explicit expansion before reading child state
linnnn89 Oct 6, 2026
0163e7c
feat(hybrid): discover a unique collapsed group before navigation
linnnn89 Oct 6, 2026
70a378f
feat(hybrid): return selectable navigation candidates with live valid…
linnnn89 Oct 6, 2026
6149ee8
docs(hybrid): reconcile current navigation gaps and request boundaries
linnnn89 Oct 6, 2026
77f4ab4
docs: reassess hybrid UI constraints and iteration priorities
linnnn89 Oct 6, 2026
dc3eec3
fix: allow auxiliary UI property gaps in expansion workflows
linnnn89 Oct 6, 2026
1be61ef
fix: resume expanded UI targets with local navigation evidence
linnnn89 Oct 6, 2026
5989c6b
feat: scope UI inspection and expansion to parent paths
linnnn89 Oct 6, 2026
3d3d019
docs: define hybrid main merge acceptance line
linnnn89 Oct 7, 2026
b8c5ce2
feat: finish scoped client UI workflows for 0.17.0
linnnn89 Oct 7, 2026
2f3afab
docs: link 0.17.0 merge evidence to PR 52
linnnn89 Oct 7, 2026
c677ad5
feat: read flat UI groups and streamline agent guidance
linnnn89 Oct 8, 2026
e193fde
merge: align hybrid branch with the prior main squash
linnnn89 Oct 8, 2026
7c66058
feat: support named checkbox audits and organize validation docs
linnnn89 Oct 10, 2026
a2b8181
merge: align hybrid history with main squash
linnnn89 Oct 10, 2026
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## 0.17.0 (unreleased)

- Add an explicit name + CheckBox selector mode to checkbox-audit for controls without AutomationIds. Validate only task-relevant known properties while retaining raw gaps and refusing uncertain identity, ambiguity, unknown state and incomplete coverage. Preserve the existing ID-based parameter, result and validation contracts; named results return exact selectors in request order. No UI actions or default configuration changes.
- Reorganize the four managed Skill documents by task. Keep the entry short, place executable UI recipe examples inside the installed Skill, and remove duplicated instructions and historical iteration notes.

- Add the readonly sibling-range client recipe for flat lists whose headings and items are siblings. Read one explicit container, validate unique ordered boundaries and readable row names, and retain native identities and property gaps. Results describe only the observed logical range; missing/ambiguous boundaries and incomplete reads stop without inventing an empty or complete business group. No scrolling or item actions are performed.
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@

The persistent JSON Skill session also supports explicit readonly workflows, checkbox summaries and one-parent expansion with observed ancestor paths. See [client workflows and validation boundaries / 客户端工作流与验证边界](docs/hybrid-readonly-orchestration.md). 这些流程通过显式调用启用;支持按实际父路径定位、一次展开与子控件状态读回,不自动递归导航或调用模型 API。

Checkbox audits accept either AutomationIds or exact name + CheckBox selectors. Real-application coverage and performance remain subject to validation; merging these capabilities does not change client defaults. 复选框统计可使用 ID 或精确名称与类型;真实应用覆盖与性能仍须验收,合并不改变客户端默认配置。

For repository maintenance, start with [current work and acceptance criteria / 当前任务与验收条件](docs/next-iteration.md), [architecture / 架构与数据流](WinCode-架构与数据流说明.md), or [contributing and verification / 开发与验证](CONTRIBUTING.md). Keep private screenshots and raw diagnostic results in ignored local directories; publish only sanitized findings. 本机截图和原始诊断材料保留在忽略目录,公开内容仅包含去标识后的结论。

## English

WinCode is a local server implementing the Model Context Protocol (MCP) for AI coding agents. It combines Windows UI Automation (UIA), code navigation and .NET project analysis, so an agent can inspect a running application and investigate its source code through the same connection.
Expand Down
8 changes: 6 additions & 2 deletions docs/hybrid-readonly-orchestration.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
{"id":"audit1","action":"readonly-ui","recipe":"checkbox-audit","target":{"pid":1234,"hwnd":"0x123456"},"parameters":{"scopePath":[{"automationId":"voiceSettings"}],"summaryAutomationId":"summary","regionAutomationId":"checks","checkboxAutomationIds":["optionA","optionB"],"maxDepth":4,"maxNodes":40},"timeoutMs":15000}
```

- checkboxAutomationIds:1–64 个互不重复的 ID。每个目标必须在指定区域内唯一,为 CheckBox,isEnabled 已知,toggle 为 On 或 Off。
- checkboxAutomationIds:1–64 个互不重复的 ID。每个目标必须在指定区域内唯一,为 CheckBox,isEnabled 已知,toggle 为 On 或 Off。原有 ID 模式的参数、结果形状和属性检查保持不变。
- 没有 AutomationId 的控件可改用 checkboxSelectors,例如 `[{"name":"24 小时制","controlType":"CheckBox"}]`;与 checkboxAutomationIds 二选一。接受 1–64 个互不重复的精确名称,controlType 必须为 CheckBox,不接受其他选择字段。区域仍用 regionAutomationId,摘要仍用可选 summaryAutomationId。
- 名称模式的 unchecked、disabled 返回对应选择器对象,顺序与请求一致;checkedCount 仍统计所有 On,包括禁用目标。原始节点身份、状态和属性缺口保留在 steps.evidence。
- summaryAutomationId 可省略。提供时先读摘要:On 才读详情,Off 返回 detailsRequired:false;未知或缺失停止。
- scopePath 可省略;提供时包含 1–50 个仅使用 automationId/name/controlType 的精确父选择器,摘要和详情共用该祖先范围。每次读取重新解析,不复用摘要的定位对象。不提供路径时沿用原查询范围和调用数。
- maxDepth 默认 4,允许 1–50;maxNodes 默认 300,允许 1–5000。详情区域一次读取后在客户端统计,禁用且 On 的控件仍计入 checkedCount。
Expand All @@ -34,7 +36,9 @@

带路径的读取要求 inspectionVersion 5,并确认 scopeResult 已解析全部父级;旧版本返回 VERSION_MISMATCH,缺少范围证据停止为 INCOMPLETE_OBSERVATION。原生 SCOPE_NOT_FOUND/SCOPE_AMBIGUOUS/SCOPE_SEARCH_INCOMPLETE 原样保留,步骤证据包含 scopeResult,不回退整窗。路径不会自动展开隐藏区域,也不裁剪窗口截图;摘要和详情没有合适共同祖先时使用显式单次读取。

checkbox-audit 允许 className、bounds、isOffscreen 的辅助属性缺口,仍在步骤证据中保留原始 propertyIssues 和数量;不因这些缺口丢弃已观察到的状态。身份、启用状态、toggle、搜索/遍历完整性、歧义和未分类缺口仍按原规则判断。可信 TypeScript 调用方可在 reader.inspect 中显式设置 allowAuxiliaryPropertyGaps:true 使用同一规则;此选项默认关闭,只在客户端解释,不发送给 MCP,不属于 JSON 配方参数。reader.review 的严格行为不变。
ID 模式允许 className、bounds、isOffscreen 的辅助属性缺口,仍在步骤证据中保留原始 propertyIssues 和数量;身份、启用状态、toggle、搜索/遍历完整性、歧义和未分类缺口仍按原规则判断。可信 TypeScript 调用方可在 reader.inspect 中显式设置 allowAuxiliaryPropertyGaps:true 使用同一规则;此选项默认关闭,只在客户端解释,不发送给 MCP,不属于 JSON 配方参数。reader.review 的严格行为不变。

名称模式在区域后代中检查精确名称与 CheckBox 类型;同名 Text 不计入。仅当某个可读字段明确不匹配时才排除节点,身份不全且可能匹配的节点仍阻断唯一性。所选控件必须有可读名称、类型、isEnabled 和确定的 On/Off,区域 ID 也必须可读。已知且无关的属性缺口保留但不阻断;未分类缺口和无法解释的缺口总数仍阻断。该规则只由名称配方通过客户端 allowPropertyGaps 执行,不改变默认 reader、ID 模式或原生工具的行为。

## 同级标题之间的条目

Expand Down
Loading
Loading